К содержанию

Навигация

Уведомления

Уведомление выделяет важную информацию в потоке страницы: подсказку, предупреждение, ошибку или подтверждение результата. Для краткого сообщения поверх интерфейса берите всплывающее сообщение.

Пример

Доступна новая версия
Сохраните изменения перед обновлением страницы.

Разметка

Минимальную разметку показывает пример выше. Части вложены так: sf-alert → иконка sf-icon и sf-alert-wrap → sf-alert-content → sf-alert-text и sf-alert-supporting-text.

  • На блоке sf-alert — один класс статуса и один класс вида.
  • sf-alert-text — заголовок, sf-alert-supporting-text — пояснение. Оба набраны одним размером; заголовок выделен средним начертанием.
  • Иконка необязательна; она декоративна и получает aria-hidden="true".
  • Кнопки действий кладутся в sf-alert-buttons внутри sf-alert-wrap, кнопка закрытия — последним потомком блока.

Варианты

Статус

Статус задаёт цвет заливки, границы, текста и иконки: sf-alert--neutral, sf-alert--info, sf-alert--success, sf-alert--warning, sf-alert--error — общий словарь статусов Framework. Для обычной подсказки берите neutral; остальные выбирайте по смыслу сообщения, а не по желаемому цвету. Классы sf-alert--clear и sf-alert--danger — другие имена neutral и error.

sf-alert--neutral
Обратите внимание
Нейтральная информация без оценки результата.
sf-alert--info
Доступна новая версия
Сохраните изменения перед обновлением страницы.
sf-alert--success
Изменения сохранены
Новая версия доступна участникам команды.
sf-alert--warning
Проверьте настройки
После сохранения часть параметров изменить нельзя.
sf-alert--error
Не удалось сохранить
Проверьте соединение и повторите попытку.

Вид

Вид задаёт, чем уведомление отделено от окружения: sf-alert--default — заливкой и границей, для самостоятельного заметного сообщения; sf-alert--outlined — только границей, спокойнее на фоне страницы; sf-alert--flat — только заливкой, внутри поверхности, границы которой задаёт окружающий контейнер. В одном сценарии держите один вид.

Состав

Обязателен только заголовок. Пояснение, иконка, кнопки действий и кнопка закрытия добавляются по задаче; иконка сама берёт цвет статуса, у neutral — вспомогательный цвет текста. Размеров у уведомления нет: текст набран основным размером.

sf-alert-text
Заголовок без пояснения
sf-alert-text + sf-alert-supporting-text
Заголовок
Пояснение под заголовком набрано тем же размером.
sf-icon перед sf-alert-wrap
С иконкой
Иконка берёт цвет статуса.
sf-alert-buttons внутри sf-alert-wrap
Есть несохранённые изменения
Сохраните их перед выходом.
кнопка закрытия — последний потомок блока
Файл загружен
Кнопка закрытия удаляет уведомление.

Доступность

  • Уведомлению, которое появляется динамически, задайте role="status" для спокойного сообщения и role="alert" для срочной ошибки. Сообщению, которое есть на странице с первой загрузки, живая роль не нужна.
  • Смысл передаёт текст; цвет и иконка его только поддерживают.
  • Кнопке закрытия нужно доступное имя: aria-label="Закрыть уведомление".
  • Если при закрытии фокус был внутри уведомления, приложение переносит его на следующий осмысленный элемент: компонент удаляет блок вместе с фокусом.

JavaScript

Скрипт компонента обрабатывает нажатия внутри .sf-alert:

Атрибут на кнопке Что происходит
data-action="значение" на блоке возникает событие sf-alert-action; уведомление остаётся
data-close на блоке возникает событие sf-alert-close, затем блок удаляется

Кнопка «Скачать» в примере сообщает о выборе и оставляет уведомление на месте, кнопка с крестиком удаляет его; после закрытия пример позволяет вернуть уведомление.

Оба события всплывают. sf-alert-action несёт в detail поля action (значение атрибута), alert и trigger; sf-alert-close — alert и trigger. Недоступная кнопка (disabled или aria-disabled="true") событий не вызывает. На время удаления блок получает класс closing и плавно гаснет на токенах движения; при системной настройке уменьшения движения блок удаляется сразу. data-alert-action, data-alert-close и класс sf-alert--close — другие имена тех же атрибутов.

Подписка на действие:

JavaScript
document.addEventListener('sf-alert-action', (event) => {
  if (event.detail.action === 'download') startDownload();
});

Классы

Что Классы
Блок sf-alert
Части sf-alert-buttons, sf-alert-content, sf-alert-supporting-text, sf-alert-text, sf-alert-wrap
Модификаторы sf-alert--default, sf-alert--error, sf-alert--flat, sf-alert--info, sf-alert--neutral, sf-alert--outlined, sf-alert--success, sf-alert--warning
Устаревшие sf-alert--clear → sf-alert--neutral, sf-alert--danger → sf-alert--error

Классы и переменные собраны из CSS выпуска и обновляются вместе с ним.

Переменные

Настройка

Эти переменные — поверхность настройки компонента. Их имена стабильны: переименовать или убрать такую переменную можно только через журнал изменений, с предупреждением, как атрибут. Framework их не задаёт, поэтому значение можно поставить на сам компонент (.sf-alert) или на любого предка. Переменные действуют на спокойный вид; наведение, фокус, нажатие, недоступность и ошибка рисуются поверх, поэтому состояния остаются видны.

Переменная Что задаёт По умолчанию
--sf-alert-background-color Заливка предупреждения. var(--sf-surface-container); зависит от вида, статуса
--sf-alert-border-color Цвет рамки. var(--sf-outline); зависит от вида, статуса
--sf-alert-color Цвет текста. var(--sf-on-surface); зависит от вида, статуса
--sf-alert-border-width Ширина рамки со всех сторон. var(--sf-px)
--sf-alert-radius Скругление углов. var(--sf-radius--surface)
--sf-alert-padding-inline Отступ до и после содержимого по строчной оси. var(--sf-space-1)
--sf-alert-padding-block Отступ над и под содержимым. var(--sf-space-1)
--sf-alert-gap Промежуток между иконкой, текстом и кнопками. var(--sf-space-1)
CSS
.sf-alert {
  --sf-alert-radius: 0;
}

Устройство

Остальные переменные — внутренняя проводка компонента: модификаторы задают им значения, а части их читают. Их имена и устройство могут меняться в любом выпуске, поэтому проект их не задаёт. Значение по умолчанию — из базового правила блока (.sf-alert); переменную без него задают только модификаторы.

Переменная По умолчанию Задаёт
--sf-alert--background-color не задана; задают модификаторы, например .sf-alert.sf-alert--neutral.sf-alert--default: var(--sf-alert-background-color, var(--sf-surface-container)) background-color
--sf-alert--border-color не задана; задают модификаторы, например .sf-alert.sf-alert--neutral.sf-alert--default: var(--sf-alert-border-color, var(--sf-outline)) border-color
--sf-alert--color var(--sf-alert-color, var(--sf-on-surface)) color, --sf-alert-supporting-text--color, --sf-alert-text--color
--sf-alert--opacity не задана; задают модификаторы, например .sf-alert.closing: 0 opacity
--sf-alert-buttons--background-color не задана; задают модификаторы, например .sf-alert .sf-alert-buttons: transparent background-color
--sf-alert-buttons--gap не задана; задают модификаторы, например .sf-alert .sf-alert-buttons: var(--sf-space-1/3) gap
--sf-alert-content--background-color не задана; задают модификаторы, например .sf-alert .sf-alert-content: transparent background-color
--sf-alert-content--gap не задана; задают модификаторы, например .sf-alert .sf-alert-content: var(--sf-space-1/2) gap
--sf-alert-supporting-text--color не задана; задают модификаторы, например .sf-alert .sf-alert-supporting-text: var(--sf-alert--color) color
--sf-alert-supporting-text--font-family не задана; задают модификаторы, например .sf-alert .sf-alert-supporting-text: var(--sf-text--family) font-family
--sf-alert-supporting-text--font-size не задана; задают модификаторы, например .sf-alert .sf-alert-supporting-text: var(--sf-text-size-1) font-size
--sf-alert-supporting-text--font-weight не задана; задают модификаторы, например .sf-alert .sf-alert-supporting-text: var(--sf-font-weight-regular) font-weight
--sf-alert-supporting-text--line-height не задана; задают модификаторы, например .sf-alert .sf-alert-supporting-text: var(--sf-text-height-1) line-height
--sf-alert-text--color не задана; задают модификаторы, например .sf-alert .sf-alert-text: var(--sf-alert--color) color
--sf-alert-text--font-family не задана; задают модификаторы, например .sf-alert .sf-alert-text: var(--sf-text--family) font-family
--sf-alert-text--font-size не задана; задают модификаторы, например .sf-alert .sf-alert-text: var(--sf-text-size-1) font-size
--sf-alert-text--font-weight не задана; задают модификаторы, например .sf-alert .sf-alert-text: var(--sf-font-weight-medium) font-weight
--sf-alert-text--line-height не задана; задают модификаторы, например .sf-alert .sf-alert-text: var(--sf-text-height-1) line-height
--sf-alert-wrap--background-color не задана; задают модификаторы, например .sf-alert .sf-alert-wrap: transparent background-color
--sf-alert-wrap--gap не задана; задают модификаторы, например .sf-alert .sf-alert-wrap: var(--sf-space-1) gap

См. также

Поиск по документации

Введите минимум 2 символа

    Настройки

    Тема
    Размер шрифта
    Ширина страницы