Skip to main content

Обзор

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 containmentcontain: 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 сначала использует кэш для мгновенного отображения, затем в фоне запрашивает актуальную конфигурацию с сервера. Это обеспечивает отображение фона без задержки даже при медленном соединении.

Отключение

Для полного отключения анимированных фонов:
  1. Через админку — выключите переключатель «Анимация включена» в разделе настроек
  2. Через APIPATCH /cabinet/branding/animation с {"enabled": false}
  3. Тип «none» — выберите тип «Без анимации» для явного отключения