Библиотека кнопок для Angular | ng-hub-ui-buttons

Полная система кнопок для Angular 22 с API на сигналах — стандартные кнопки, FAB, speed dial и overlay-dropdown. Ноль зависимостей, кроме ng-hub-ui-utils.

Справочник API

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

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

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

ИмяТипПо умолчаниюОписание
variant (hub-button)'solid' | 'outline' | 'soft' | 'ghost' | 'link''solid'Визуальный стиль кнопки: solid, outline, soft, ghost или link.
color (hub-button)'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'neutral' | 'light' | 'dark' | string'primary'Семантический акцент кнопки. Открытое множество: любой из девяти встроенных акцентов, пользовательский акцент, зарегистрированный через hub-btn-color-rules(), именованный цвет CSS или буквальное значение (#hex, rgb(), oklch(), var(...)). Наполняет слот --hub-btn-accent, из которого выводятся все ролевые цвета.
size (hub-button)'sm' | 'md' | 'lg' | 'xl''md'Токен размера кнопки: sm, md, lg или xl.
loading (hub-button)booleanfalseПоказывает анимированный спиннер и помечает кнопку как занятую И отключённую: отражает aria-busy="true" и нативный атрибут disabled, убирает кнопку из порядка табуляции и блокирует активацию указателем/клавиатурой, чтобы выполняющаяся отправка не могла сработать дважды.
disabled (hub-button)booleanfalseОтключает кнопку, зеркалируя нативный атрибут disabled на элементе-хосте.
color (hub-fab)HubSemanticColor'primary'Семантический акцент фона FAB. Принимает встроенные акценты или любой пользовательский/буквальный цвет через слот --hub-fab-accent.
size (hub-fab)'mini' | 'standard' | 'large''standard'Диаметр круглого FAB: mini, standard или large.
extended (hub-fab)booleanfalseОтрисовывает FAB как расширенную «пилюлю», показывающую спроецированное содержимое [slot=label] рядом с иконкой.
position (hub-fab)'top-start' | 'top-center' | 'top-end' | 'middle-start' | 'center' | 'middle-end' | 'bottom-start' | 'bottom-center' | 'bottom-end''bottom-end'Фиксированная позиция FAB в области просмотра на сетке из девяти слотов; реализована через логические свойства CSS для поддержки RTL.
collapseOnScroll (hub-fab)booleanfalseЕсли true, расширенный FAB сворачивается до одной иконки, как только страница прокручивается более чем на 50px.
disabled (hub-fab)booleanfalseОтключает FAB, применяя внешний вид hub-fab-disabled.
color (hub-speed-dial)HubSemanticColor'primary'Семантический акцент, окрашивающий FAB-триггер speed dial. Принимает встроенные акценты или любой пользовательский/буквальный цвет.
size (hub-speed-dial)'mini' | 'standard' | 'large''standard'Размер FAB-триггера: mini, standard или large.
position (hub-speed-dial)HubFabPosition'bottom-end'Фиксированная позиция speed dial в области просмотра на сетке FAB из девяти слотов.
direction (hub-speed-dial)'up' | 'down' | 'left' | 'right''up'Направление, в котором элементы действий раскрываются от триггера: up, down, left или right.
trigger (hub-speed-dial)'click' | 'hover''click'Взаимодействие, открывающее speed dial: click переключает его; hover открывает по mouseenter и закрывает по mouseleave.
isOpen (hub-speed-dial)boolean (two-way model)falseДвусторонне привязываемое состояние открытия speed dial (сигнал model). Нажатие Escape закрывает его автоматически.
icon (hub-speed-dial-item)ОбязательноstringСтрока CSS-классов иконки действия, отрисовываемой как <i [class]="icon()"> внутри кнопки элемента. Также используется как запасной aria-label, когда метка не задана.
label (hub-speed-dial-item)string''Метка-подсказка, показываемая рядом с кнопкой действия; также используется как её доступный aria-label.
color (hub-speed-dial-item)HubSemanticColor | 'default''default'Семантический акцент кнопки действия; 'default' сохраняет нейтральный внешний вид. Пользовательские/буквальные цвета применяются через слот --hub-speed-dial-item-accent.
disabled (hub-speed-dial-item)booleanfalseОтключает кнопку элемента действия; пока она отключена, itemClick не испускается.
hubDropdown ([hubDropdown])ОбязательноTemplateRef<any>ng-template, отрисовываемый внутри панели-оверлея на уровне body и привязываемый как [hubDropdown]="tpl".
placement ([hubDropdown])'top-start' | 'top' | 'top-end' | 'start' | 'end' | 'bottom-start' | 'bottom' | 'bottom-end''bottom-start'Размещение панели относительно элемента-триггера; оверлей пробует сопоставленную позицию и перебирает запасные, пока одна из них не поместится в области просмотра.
trigger ([hubDropdown])'click' | 'hover''click'Взаимодействие, открывающее dropdown: click переключает его; hover открывает по mouseenter и закрывает по mouseleave.
closeOnSelect ([hubDropdown])booleantrueЕсли true, любой клик внутри содержимого панели автоматически закрывает dropdown.
disabled ([hubDropdown])booleanfalseПредотвращает открытие dropdown.
offsetY ([hubDropdown])number4Отступ в пикселях между триггером и панелью вдоль оси размещения.
panelClass ([hubDropdown])string''Дополнительный CSS-класс, добавляемый к панели-оверлею вместе с классом по умолчанию hub-dropdown-overlay.
isOpen ([hubDropdown])boolean (two-way model)falseДвусторонне привязываемое состояние открытия dropdown (сигнал model). Закрывается автоматически по Escape, клику вне панели, клику по backdrop и прокрутке страницы.
color (hub-dropdown-panel)HubSemanticColor | 'default''default'Семантический акцент верхней границы панели; 'default' сохраняет нейтральную границу.
color (hub-dropdown-item)HubSemanticColor | 'default''default'Семантический акцент цвета метки элемента; 'default' наследует цвет панели.
icon (hub-dropdown-item)string | undefinedundefinedНеобязательная строка CSS-классов иконки, отрисовываемой как <i [class]="icon()"> перед меткой.
disabled (hub-dropdown-item)booleanfalseОтключает пункт меню; клики игнорируются, и itemClick не испускается.
selected (hub-dropdown-item)booleanfalseПоказывает индикатор-галочку, помечающий элемент как выбранный.

События

Реагируйте на то, что делает buttons, — 9 событий, к которым можно подключить вашу логику.

ИмяТипОписание
fabClick (hub-fab)OutputEmitterRef<void>Объявленный output активации FAB. Текущая реализация никогда не испускает его самостоятельно — вместо этого привязывайте нативное событие (click) на <hub-fab>.
isOpenChange (hub-speed-dial)OutputEmitterRef<boolean>Испускает новое состояние открытия при каждом изменении модели isOpen (парный output двусторонней привязки).
opened (hub-speed-dial)OutputEmitterRef<void>Испускается после открытия speed dial.
closed (hub-speed-dial)OutputEmitterRef<void>Испускается после закрытия speed dial, в том числе при закрытии клавишей Escape.
itemClick (hub-speed-dial-item)OutputEmitterRef<void>Испускается при активации кнопки элемента действия.
isOpenChange ([hubDropdown])OutputEmitterRef<boolean>Испускает новое состояние открытия при каждом изменении модели isOpen (парный output двусторонней привязки).
opened ([hubDropdown])OutputEmitterRef<void>Испускается после присоединения панели-оверлея и открытия dropdown.
closed ([hubDropdown])OutputEmitterRef<void>Испускается после закрытия dropdown и уничтожения оверлея (Escape, клик вне панели, прокрутка, backdrop или closeOnSelect).
itemClick (hub-dropdown-item)OutputEmitterRef<void>Испускается при активации пункта меню; подавляется, пока элемент отключён.

Шаблоны

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