Обзор
Cabinet включает библиотеку из 15 анимированных фонов, работающих как полноэкранные визуальные эффекты за контентом. Фоны построены на основе компонентов Aceternity UI, оптимизированных для производительности в браузере и Telegram MiniApp.15 эффектов
CSS, Canvas и SVG-анимации на выбор
Live-превью
Предпросмотр прямо в админке при настройке
Мобильная оптимизация
Автоматическое снижение нагрузки на мобильных устройствах
Доступные фоны
CSS-анимации
Canvas-анимации
SVG-анимации
Настройка через админку
Управление фонами доступно в Настройки → Фоны в админ-панели Cabinet.1
Включите анимацию
Переключатель «Анимация включена» активирует фон для всех пользователей.
2
Выберите тип
Кнопки сгруппированы по категориям (CSS / Canvas / SVG). При выборе тип сразу применяется в превью.
3
Настройте параметры
Каждый тип имеет свои настройки: цвета, скорость, плотность частиц и другие. Изменения видны в live-превью.
4
Глобальные настройки
Для любого типа доступны общие параметры.
Глобальные параметры
Производительность
Все фоны оптимизированы для работы без просадок:- Portal-рендеринг — фон рендерится через
createPortalнаdocument.bodyсz-index: -1, полностью исключая implicit compositing между фоном и UI-элементами - GPU-ускорение — CSS-анимации используют
transformиwill-changeдля композиторного слоя - CSS containment —
contain: strictизолирует перерисовки фона от остального UI - Lazy-загрузка — JS-чанк фона загружается отложенно через
React.lazy - Предзагрузка — при повторных визитах чанк подгружается из localStorage-кэша ещё до рендера React
- FPS-троттлинг —
useAnimationLoopхук: 30 FPS на мобильных / 60 FPS на десктопе, автопауза при сворачивании вкладки (Page Visibility API) и деактивации Telegram MiniApp - Мобильный режим — количество частиц уменьшается, DPR ограничивается до 1.5, интерактивные эффекты отключаются, blur ограничен 4px
prefers-reduced-motion— анимация полностью отключается при системной настройке «Уменьшить движение»- Валидация конфигурации — проверка типа анимации по allowlist, числовые ограничения, лимит размера JSON-конфигурации
SVG Beams
Компонент Background Beams использует чистые CSS-анимацииstroke-dashoffset без изменения opacity — это предотвращает перерисовку (repaint) всей страницы. Из 50 лучей одновременно анимируются только 17, остальные отображаются статически с минимальной прозрачностью.
Canvas Boxes
Компонент Boxes переписан с 225 отдельных DOM-элементов на единый<canvas>. Это исключает проблему re-compositing’а, когда hover-эффекты на контенте вызывали перерисовку всех 225 регионов. Canvas-содержимое пиксельное и не подвержено влиянию DOM-событий.
API
Формат конфигурации
Кэширование
Конфигурация фона кэшируется вlocalStorage (cabinet_animation_config). При загрузке страницы Cabinet сначала использует кэш для мгновенного отображения, затем в фоне запрашивает актуальную конфигурацию с сервера. Это обеспечивает отображение фона без задержки даже при медленном соединении.
Отключение
Для полного отключения анимированных фонов:- Через админку — выключите переключатель «Анимация включена» в разделе настроек
- Через API —
PATCH /cabinet/branding/animationс{"enabled": false} - Тип «none» — выберите тип «Без анимации» для явного отключения
