Featherlight — компактная JavaScript-библиотека для реализации lightbox-окон. Для корректной работы требуется подключение CSS, JavaScript и библиотеки jQuery, так как Featherlight полностью на неё опирается.
Featherlight не является нативной библиотекой и не работает без jQuery. Совместима с jQuery версии 1.7+, однако для современных проектов рекомендуется использовать актуальные версии 3.x.
Подключение jQuery выполняется строго до подключения Featherlight.
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
Featherlight состоит из двух основных файлов:
featherlight.min.css — стили lightboxfeatherlight.min.js — логика отображения и
управленияНаиболее быстрый и распространённый способ — использование CDN.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.css">
<script src="https://cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js"></script>
Порядок подключения имеет критическое значение:
Нарушение порядка приводит к ошибкам и неработоспособности lightbox.
Для проектов с ограничением на внешние ресурсы файлы Featherlight могут быть загружены и подключены локально.
/assets
/css
featherlight.min.css
/js
featherlight.min.js
jquery.min.js
<link rel="stylesheet" href="/assets/css/featherlight.min.css">
<script src="/assets/js/jquery.min.js"></script>
<script src="/assets/js/featherlight.min.js"></script>
Локальное подключение даёт полный контроль над версией библиотеки и исключает зависимость от CDN.
После подключения Featherlight автоматически регистрирует глобальный
объект $.featherlight.
Минимальная проверка в консоли браузера:
typeof $.featherlight
Корректная загрузка возвращает значение "function".
Featherlight поддерживает расширения (галереи, iframe, видео, AJAX-контент). Они подключаются после основного файла библиотеки.
Пример подключения галереи:
<script src="https://cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.gallery.min.js"></script>
И соответствующий CSS:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.gallery.min.css">
Каждое расширение использует уже загруженный базовый объект Featherlight и не работает автономно.
Featherlight не предназначен для ES-модулей из коробки, однако может использоваться в сборках Webpack, Vite и аналогичных инструментов через глобальное подключение jQuery.
Принципиальные особенности:
window.jQueryimport без дополнительной настройки не работаетProvidePlugin
(Webpack)Пример для Webpack:
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
});
После этого Featherlight может быть импортирован как обычный скрипт.
В одностраничных приложениях Featherlight загружается один раз при инициализации приложения. Повторное подключение библиотеки или динамическая загрузка скрипта может привести к дублированию обработчиков событий.
Рекомендуемый подход:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Featherlight</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.css">
</head>
<body>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js"></script>
</body>
</html>
Этот шаблон представляет базовую, корректную конфигурацию для дальнейшего использования библиотеки без дополнительных зависимостей и настроек.