К содержанию

Навигация

Пустое состояние

<sf-empty-state> — то, что список, панель или страница показывает, когда показать нечего. Одна причина — один вид: значок, заголовок, пояснение и, если нужно, действие.

Пример

Применение

Причина

kind Значок Заголовок и текст по умолчанию
no-data (по умолчанию) inbox «Пока ничего нет» / «Здесь появятся записи, когда они будут»
nothing-found search_off «Ничего не найдено» / «Попробуйте изменить запрос или фильтры»
no-access lock «Нет доступа» / «Обратитесь к администратору»
error error «Не удалось загрузить» / «Попробуйте ещё раз» и кнопка «Повторить»

Тексты по умолчанию следуют языку страницы. icon, title и text заменяют их, когда причина конкретнее: «Машин пока нет», «Создайте первую». title здесь — общий атрибут HTML, поэтому браузер показывает его и всплывающей подсказкой при наведении на блок.

Размер и место

  • size="1/2" — внутри таблицы или панели;
  • size="1" — по умолчанию;
  • size="2" — целая страница.

От размера зависят значок, роль заголовка, текст и промежутки. Ширина — не больше 28rem, её меняет переменная --sf-empty-state-max-inline-size.

heading-level (от 2 до 6, по умолчанию 3) ставит заголовок на нужный уровень структуры страницы: на целой странице это обычно 2, в панели — 3 или 4. Вид заголовка от уровня не зависит.

Компактная форма

layout="inline" (и всегда size="1/3") — одна строка высотой с контрол 1/2 с отступом строки списка: маленький значок, текст (text, а без него — заголовок причины) и не больше одного действия-ссылки, без заголовка. Её ставят в списки меню, выпадающих списков и поиска; внутри listbox или меню — вне элемента списка, чтобы она не считалась пунктом.

HTML
<sf-empty-state kind="nothing-found" layout="inline" text="Ничего не найдено по «счёт»"></sf-empty-state>

Действия

Действия передают в слот actions — любые sf-button — или свойством actions со списком [{id, text, appearance}]. Кнопки из свойства рисуются в размере компонента и сообщают sf-empty-state-action с {id}. У kind="error" без своих действий есть «Повторить» (id: retry). Пустой массив actions = [] и кнопки в слоте actions тоже считаются своими действиями, и «Повторить» не появится; чтобы вернуть его, присвойте actions = null.

HTML
<sf-empty-state kind="nothing-found" size="1/2" heading-level="4"></sf-empty-state>
<sf-empty-state kind="error" id="failed"></sf-empty-state>
<script>
  failed.addEventListener('sf-empty-state-action', (event) => {
    if (event.detail.id === 'retry') reload();
  });
</script>

Доступность

  • live="auto" (по умолчанию): «Ничего не найдено» и ошибка объявляются вежливо (role="status"), остальные причины не объявляются. live="alert" — для ошибки, вызванной действием человека, live="off" — когда объявляет сам хост.
  • Заголовок — настоящий заголовок уровня heading-level, поэтому состояние видно в оглавлении страницы.
  • Значок декоративный.

Справочник API

Раздел собран из манифеста компонента выпуска ui-106d5901f8c3 и обновляется вместе с выпуском. Чтобы исправить описание, исправьте манифест.

Каждому атрибуту соответствует свойство элемента с тем же именем в camelCase: search-placeholder — searchPlaceholder. Свойство атрибута template называется templateName.

Тег <sf-empty-state>
Назначение Что говорит список, панель или страница, когда показать нечего: нет данных, ничего не найдено, нет доступа или ошибка — со значком, настоящим заголовком, пояснением и действиями.
Контракт smart.empty-state, версия 1.0.0
Поставка выпуск Framework ui-106d5901f8c3
Жизненный цикл экспериментальный: API может меняться между выпусками
Готовность работает в сценарии студии, продуктовой приёмки нет
Заготовка до прихода кода сервер пишет data-sf-skeleton="block"; своего скелетона при загрузке данных нет (Заготовка до прихода кода)

Атрибуты

  • kind — string, по умолчанию no-data, значения: no-data, nothing-found, no-access, error. Причина: от неё зависят значок, заголовок и текст по умолчанию, а у error — действие «Повторить».
  • size — string, по умолчанию 1, значения: 1/3, 1/2, 1, 2. 1/3 — всегда компактная форма; 1/2 — внутри таблицы или панели, 2 — для целой страницы; от размера зависят значок, роль заголовка, текст и промежутки.
  • icon — string, по умолчанию пусто.
  • title — string, по умолчанию пусто.
  • text — string, по умолчанию пусто.
  • heading-level — string, по умолчанию 3, значения: 2, 3, 4, 5, 6. Уровень заголовка в структуре страницы; его вид зависит от размера.
  • layout — string, по умолчанию block, значения: block, inline. inline — одна строка для списка в меню, выпадающем списке или поиске: маленький значок, текст и не больше одного действия-ссылки, без заголовка.
  • live — string, по умолчанию auto, значения: auto, alert, off. auto — nothing-found и error объявляются вежливо, остальные молчат; alert — ошибка, вызванная действием человека; off — объявляет хост.
  • root-class — string, по умолчанию пусто.
  • template — string, по умолчанию default.

Методы

Публичных методов нет.

События

Все события приходят на сам элемент и всплывают. Общие события базового элемента перечислены в главе Жизненный цикл → Этапы.

  • sf-empty-state-action — detail: { id: string }. Человек нажал одно из действий (retry — у ошибки без собственных действий).

Доступность

  • Роль: status.
  • Доступное имя: внутренний.
  • Клавиши: Tab, Enter, Space.
  • Фокус: Заголовок полной формы — настоящий заголовок уровня heading-level; у компактной заголовка нет. При live=auto nothing-found и error объявляются вежливо (role=status), остальные — нет; live=alert делает объявление срочным, live=off — беззвучным. Значок декоративный; действия — обычные кнопки в порядке Tab. Внутри listbox или меню ставьте его вне элемента списка, чтобы он не считался пунктом.

Минимальная разметка

HTML
<sf-empty-state kind="nothing-found" size="1/2" heading-level="4"></sf-empty-state>

Источник

  • simai/ui@106d5901f8c3b4f23131ce0e7ede5dbd8abfe4f4:distr/smart/empty-state
  • simai/ui@106d5901f8c3b4f23131ce0e7ede5dbd8abfe4f4:distr/rule/rule.json#name=cl-empty-state

См. также

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

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

    Настройки

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