Компонент Skeleton Loader для Angular | ng-hub-ui-skeleton

Skeleton-заглушки загрузки для Angular с переиспользуемыми пресетами, инлайн-шаблонами DSL, адаптивными значениями и CSS-переменными для состояний shimmer.

Справочник API

Вот полный контракт skeleton: всё, что можно привязать, прослушать, спроецировать и тематизировать, собрано в одном месте. Подключите то, что нужно, и оформите так, как хотите — это standalone и дружит с сигналами.

Входные свойства

Настройте skeleton с помощью 7 входных свойств. Привязывайте их, как любой @Input в Angular.

ИмяТипПо умолчаниюОписание
presetstring | nullnullИмя встроенного или зарегистрированного preset. Когда указано, компонент разрешает значения по умолчанию, варианты и композицию псевдонимов из реестра preset.
templatestring | HubSkeletonTemplateDefinition | nullnullСтрока DSL в стиле Emmet или объект определения шаблона с необязательными переопределениями адаптивных breakpoint.
paramsHubSkeletonParams{}Сериализуемые параметры, интерполируемые в placeholder `{{param}}` перед разбором и расширением preset.
variantstring | nullnullНеобязательное имя варианта preset, например `compact`, используемое для переключения значений шаблона по умолчанию или переопределения базового шаблона preset.
animatedbooleantrueВключает или отключает анимацию shimmer, сохраняя тот же макет placeholder.
appearance'default' | 'subtle' | 'contrast''default'Изменяет визуальную интенсивность поверхностей skeleton без изменения разрешённого макета.
ariaLabelstring'Loading placeholder'Доступная метка, применяемая к элементу контейнера для вспомогательных технологий.

События

События пока не задокументированы.

Шаблоны

Сделайте его своим — 3 слотов шаблона позволяют проецировать собственную разметку.

ИмяОписаниеПример
Bundled PresetsДоступные имена preset в начальном каталоге: card, list-item, table-row, detail-view, form-section, dashboard-widget, stat-card, chart-panel, profile-summary, master-detail, kanban-card, feed-item, search-result, table-toolbar, filter-bar и empty-state-skeleton.<hub-skeleton preset="table-row" [params]="{ columns: 4 }"></hub-skeleton>
Preset DSLКомпактный строковый синтаксис, поддерживающий имена узлов, модификаторы, композицию соседних элементов через `+`, вложение дочерних элементов через `>` и повторение через `*N`.<hub-skeleton template="stack(gap:12)>circle(size:40)+stack(gap:8)>line(width:42%)+line(width:72%)"></hub-skeleton>
provideHubSkeletonPresetsРегистрирует пользовательские preset во внедрении зависимостей Angular, чтобы любой компонент мог отрисовывать их по имени.providers: [provideHubSkeletonPresets([{ name: 'profile-card', template: 'stack(gap:16)>circle(size:72)+line(width:48%)' }])]

CSS-переменные

Тематизируйте каждый пиксель с помощью 5 CSS-переменных. Переопределите их в :root или ограничьте их областью обёртки.

Визуальные tokens

Основные CSS-переменные, предоставляемые host-компонентом.

ПеременнаяПо умолчаниюТипОписание
--hub-skeleton-bgrgba(148, 163, 184, 0.18)color Базовый цвет placeholder, используемый для видимых поверхностей skeleton.
--hub-skeleton-highlightrgba(255, 255, 255, 0.52)color Цвет подсветки, используемый градиентом shimmer.
--hub-skeleton-radius12pxlength Радиус скругления по умолчанию для узлов block и line.
--hub-skeleton-gap12pxlength Промежуток по умолчанию, используемый узлами stack и grid, когда не переопределён модификаторами.
--hub-skeleton-animation-duration1.35stransition Длительность цикла анимации shimmer.

Стилизация и тематизация

Примеры стилизации пока не задокументированы. В этом разделе будут рецепты кастомизации и примеры тематизации.