Компонент Modal для Angular | ng-hub-ui-modal

Доступный компонент modal для Angular с наложением, полноэкранным режимом, шаблонами, обработкой клавиатуры и CSS-переменными для standalone-приложений.

Справочник API

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

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

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

ИмяТипПо умолчаниюОписание
animationbooleanЕсли true, открытие и закрытие modal будут анимированы. По умолчанию: true
backdropboolean | "static"Если true, будет создан элемент backdrop. В качестве альтернативы укажите "static" для backdrop, который не закрывает modal при клике. По умолчанию: true
centeredbooleanЕсли true, modal будет центрирован по вертикали. По умолчанию: false
placementHubModalPlacementУправляет тем, где размещается modal в области просмотра. По умолчанию: HubModalPlacement.Center
keyboardbooleanЕсли true, modal будет закрыт при нажатии клавиши Escape. По умолчанию: true
closeOnNavigationbooleanЕсли true, modal будет закрыт, когда пользователь переходит назад в истории браузера (history.back(), кнопка «Назад» браузера). По умолчанию: true
size"sm" | "lg" | "xl" | stringРазмер окна modal
windowClassstringПользовательский класс, добавляемый к окну modal
backdropClassstringПользовательский класс, добавляемый к backdrop modal
dismissSelectorstringПользовательский селектор для элементов, которые могут вызвать закрытие (dismiss) окна modal. По умолчанию: "[data-dismiss=\"modal\"]"
closeSelectorstringПользовательский селектор для элементов, которые могут вызвать закрытие (close) окна modal. По умолчанию: "[data-close=\"modal\"]"
headerSelectorstringПользовательский селектор для элемента заголовка окна modal
footerSelectorstringПользовательский селектор для элемента подвала окна modal
dataanyДополнительные данные, которые необходимо передать окну modal при его открытии

События

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

Шаблоны

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

ИмяОписаниеПример
Modal TemplateСсылка на шаблон, которую можно передать в modal service<ng-template #modalTemplate let-close="close" let-dismiss="dismiss"> <div class="modal-header"> <h4 class="modal-title">Modal Title</h4> </div> <div class="modal-body"> Modal content goes here </div> <div class="modal-footer"> <button class="btn btn-secondary" (click)="dismiss()">Cancel</button> <button class="btn btn-primary" (click)="close('result')">OK</button> </div> </ng-template>

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

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

Базовые переменные модального окна

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

ПеременнаяПо умолчаниюТипОписание
--bs-modal-zindex1055number Z-index у modal
--bs-modal-width500pxlength Ширина modal по умолчанию
--bs-modal-padding1remlength Отступы вокруг содержимого modal
--bs-modal-margin0.5remlength Внешние отступы вокруг диалога modal

Внешний вид модального окна

Переменные, управляющие цветами, границами и визуальными эффектами модального окна

ПеременнаяПо умолчаниюТипОписание
--bs-modal-colorvar(--bs-body-color)color Цвет текста содержимого modal
--bs-modal-bgvar(--bs-body-bg)color Цвет фона содержимого modal
--bs-modal-border-colorvar(--bs-border-color-translucent)color Цвет рамки modal
--bs-modal-border-widthvar(--bs-border-width)border Толщина рамки modal
--bs-modal-border-radiusvar(--bs-border-radius-lg)border Радиус скругления рамки modal
--bs-modal-box-shadow0 0.125rem 0.25rem rgba(0, 0, 0, 0.075)shadow Тень (box shadow) modal

Заголовок модального окна

Переменные стилей для секции заголовка модального окна

ПеременнаяПо умолчаниюТипОписание
--bs-modal-header-padding-x1remlength Горизонтальные отступы заголовка modal
--bs-modal-header-padding-y1remlength Вертикальные отступы заголовка modal
--bs-modal-header-border-colorvar(--bs-border-color)color Цвет рамки заголовка modal
--bs-modal-header-border-width0 0 var(--bs-border-width) 0border Толщина рамки заголовка modal

Подвал модального окна

Переменные стилей для секции подвала модального окна

ПеременнаяПо умолчаниюТипОписание
--bs-modal-footer-gap0.5remlength Промежуток между элементами в подвале modal
--bs-modal-footer-border-colorvar(--bs-border-color)color Цвет рамки подвала modal
--bs-modal-footer-border-widthvar(--bs-border-width) 0 0 0border Толщина рамки подвала modal

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

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