Featherlight — это компактная JavaScript-библиотека для создания модальных окон (lightbox), ориентированная на минимальный размер, простоту подключения и предсказуемое поведение. Библиотека используется для отображения изображений, HTML-контента, iframe и данных, загружаемых по AJAX, поверх основного содержимого страницы без перезагрузки.
Ключевая особенность Featherlight — минимализм: библиотека не стремится быть универсальным UI-фреймворком, а решает одну задачу — показ легковесных модальных окон — максимально эффективно и без лишних зависимостей.
Featherlight построена вокруг нескольких базовых принципов:
Минимальный размер В сжатом виде библиотека занимает несколько килобайт, что делает её подходящей для проектов с жёсткими требованиями к производительности.
Зависимость только от jQuery Featherlight не использует сторонние плагины или сложные инфраструктурные решения. Вся функциональность опирается на jQuery и стандартный DOM API.
Декларативное использование Поведение lightbox может быть задано через HTML-атрибуты без написания JavaScript-кода.
Расширяемость Несмотря на компактность, библиотека поддерживает хуки, колбэки и переопределение поведения.
Lightbox в Featherlight — это динамически создаваемый DOM-элемент, который:
При открытии lightbox библиотека:
Featherlight универсален по отношению к источнику данных. Поддерживаются следующие варианты.
Модальное окно может отображать существующий HTML-элемент страницы:
<a href="#popup" data-featherlight>Открыть</a>
<div id="popup" style="display:none">
<p>Любой HTML-контент</p>
</div>
Контент клонируется или перемещается в lightbox в зависимости от настроек.
Featherlight автоматически распознаёт изображения по URL:
<a href="image.jpg" data-featherlight="image">Изображение</a>
Библиотека корректно обрабатывает размеры изображения, центрирование и масштабирование.
Контент может загружаться асинхронно:
<a href="content.html" data-featherlight="ajax">AJAX</a>
При этом Featherlight самостоятельно выполняет запрос и вставляет результат в модальное окно.
Поддержка iframe используется для внешних страниц, видео или встроенных сервисов:
<a href="https://example.com" data-featherlight="iframe">Iframe</a>
Featherlight активируется автоматически при наличии атрибута
data-featherlight. Это позволяет использовать библиотеку
без написания JavaScript-кода.
Lightbox может быть создан напрямую через Jav * aScript:
$.featherlight('<p>HTML из JavaScript</p>');
При таком подходе доступно полное управление параметрами и событиями.
Featherlight поддерживает передачу настроек через объект конфигурации.
Основные параметры:
Пример:
$.featherlight('<p>Контент</p>', {
closeOnEsc: false,
closeOnClick: 'background',
variant: 'custom-lightbox'
});
Библиотека предоставляет систему событий, позволяющую встраиваться в жизненный цикл модального окна.
Основные события:
Пример подписки:
$(document).on('opened.featherlight', function () {
// логика после открытия
});
События позволяют управлять анимациями, логикой загрузки данных и синхронизацией интерфейса.
Featherlight поставляется с минимальным CSS-файлом, который отвечает за:
Кастомизация обычно выполняется через:
variant;Пример селектора:
.featherlight.custom-lightbox .featherlight-content {
max-width: 800px;
background: #fff;
}
Featherlight имеет официальные расширения, такие как:
Галерея добавляет поддержку:
Featherlight оптимален для:
Ограничения библиотеки:
В отличие от крупных UI-решений, Featherlight:
Библиотека следует философии «делать одно, но делать хорошо», что делает её устойчивым и понятным инструментом в экосистеме JavaScript.