Timeline и шаги прогресса для Angular | ng-hub-ui-milestones

Компонент timeline и шагов прогресса для Angular: вертикальный или горизонтальный, полностью настраиваемые узлы, контент внутри и рядом с каждым шагом, тематизация через CSS-переменные.

Справочник API

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

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

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

ИмяТипПо умолчаниюОписание
orientation (hub-milestones)'vertical' | 'horizontal''vertical'Направление макета временной шкалы.
state (hub-milestone)'complete' | 'active' | 'pending' | 'error''pending'Визуальное state узла; определяет цвета узла и соединителя.
color (hub-milestone)string''Переопределение цвета для каждого узла (любой CSS-цвет). Имеет приоритет над цветом state.
label (hub-milestone)string''Запасной текст, отображаемый внутри узла, когда шаблон `hubMilestoneNode` не предоставлен.
pulse (hub-milestones)booleanfalseПри установке на `<hub-milestones>` активный узел излучает мягкую расходящуюся волну, привлекая внимание к текущему шагу. Опционально; учитывает `prefers-reduced-motion`.
reveal (hub-milestones)booleantrueКогда таймлайн появляется в области просмотра, он анимирует заполнение акцентной линии до активного узла. Включено по умолчанию — настраивается глобально через `provideHubMilestones({ reveal: false })` или для экземпляра через `[reveal]`. Учитывает `prefers-reduced-motion`.

События

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

Шаблоны

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

ИмяОписаниеПример
hubMilestoneNodeПомечает `<ng-template>`, содержимое которого отрисовывается ВНУТРИ круга вехи (число, иконка, эмодзи, аватар). Имеет приоритет над `label` и автонумерацией.<hub-milestone> <ng-template hubMilestoneNode>★</ng-template> <h4>Shipped</h4> </hub-milestone>
hub-milestone body (ng-content)Любое содержимое, спроецированное напрямую в `hub-milestone` (вне шаблона узла), отрисовывается как тело рядом с кругом.<hub-milestone state="active"> <h4>Payment</h4> <p>Enter your payment method.</p> </hub-milestone>

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

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

Узел

Круглый узел: его размер, цвета и поверхности для каждого состояния.

ПеременнаяПо умолчаниюТипОписание
--hub-milestone-node-size2.75remlength Диаметр круга узла.
--hub-milestone-node-font-size1.05remlength Размер шрифта содержимого узла (число / метка).
--hub-milestone-node-colorvar(--hub-sys-color-primary, #0d6efd)color Фон узла для завершённых / активных состояний. `color` отдельного узла переопределяет это.
--hub-milestone-node-textvar(--hub-ref-color-white, #ffffff)color Цвет содержимого узла на цветных узлах.
--hub-milestone-pending-bgvar(--hub-sys-surface-elevated, #f8f9fa)color Фон ожидающего узла.
--hub-milestone-pending-colorvar(--hub-sys-text-muted, #6c757d)color Цвет содержимого ожидающего узла.
--hub-milestone-pending-bordervar(--hub-sys-border-color-default, #dee2e6)color Цвет границы ожидающего узла.
--hub-milestone-error-bgvar(--hub-sys-color-danger, #dc3545)color Фон узла с ошибкой.

Соединитель и компоновка

Линия, проведённая между узлами, и отступы временной шкалы.

ПеременнаяПо умолчаниюТипОписание
--hub-milestone-connector-thickness3pxlength Толщина соединительной линии.
--hub-milestone-connector-bgvar(--hub-milestone-node-color)string Заливка соединителя между завершёнными / активными узлами.
--hub-milestone-connector-pending-bgvar(--hub-sys-border-color-default, #dee2e6)color Заливка соединителя, ведущего к ожидающему узлу.
--hub-milestone-gap1remlength Промежуток между линией узлов и содержимым тела.
--hub-milestone-spacing1.75remlength Расстояние между последовательными шагами.

Тело

Текстовое содержимое, размещённое рядом с каждым узлом.

ПеременнаяПо умолчаниюТипОписание
--hub-milestone-body-colorvar(--hub-sys-text-primary, #212529)color Основной цвет текста тела.
--hub-milestone-body-mutedvar(--hub-sys-text-muted, #6c757d)color Приглушённый / вторичный цвет текста тела.

Анимация

Настройка опциональной пульсации активного узла и линии раскрытия при появлении.

ПеременнаяПо умолчаниюТипОписание
--hub-milestone-pulse-colorvar(--hub-milestone-node-color)color Цвет волны пульсации активного узла. По умолчанию — акцент узла, поэтому учитывает переопределение `color` для узла.
--hub-milestone-pulse-duration1.6sstring Длительность одного цикла пульсации.
--hub-milestone-pulse-spread0.75remlength Насколько далеко волна пульсации расходится от узла.
--hub-milestone-reveal-duration0.5sstring Длительность заполнения каждого коннектора во время раскрытия.
--hub-milestone-reveal-stagger0.14sstring Задержка между заполнением соседних коннекторов, создающая каскадное раскрытие.

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

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