Крошки
Крошки показывают, где человек стоит: путь от корня приложения к текущей странице строкой ссылок. По любой крошке можно подняться на уровень выше, а последняя называет саму страницу.
Когда использовать#
- Страница лежит глубоко: проект → его ключи → один ключ, и человеку нужно вернуться на уровень-другой вверх.
- На страницу приходят по ссылке извне, минуя меню, и без пути непонятно, чья она.
- Уровни вложены друг в друга, а не стоят рядом: соседние виды одного объекта переключают вкладки.
Не ставьте крошки на страницу первого уровня: путь из одного пункта ничего не объясняет. Разделы внутри объекта показывает дерево разделов, а навигацию по приложению — единое меню.
Путь к странице#
Крошки — дети узла Кит.Крошки, каждая Кит.Крошка(Подпись, Адрес). Последняя крошка — текущая страница: она печатается текстом, без ссылки, даже если адрес у неё задан, — ссылка на саму себя только вернула бы человека туда, где он уже стоит.
Проект, его ключи и один ключ
HTML = Кит.Крошки(
Кит.Крошка("Проекты", "/проекты"),
Кит.Крошка("альфа", "/проекты/альфа"),
Кит.Крошка("Ключи", "/проекты/альфа/ключи"),
Кит.Крошка("ноутбук")).Рендер();Крошка без адреса и не последняя печатается текстом: уровень есть, а своей страницы у него нет.
Уровень без своей страницы
- Проекты
- Архив
- бета
HTML = Кит.Крошки(
Кит.Крошка("Проекты", "/проекты"),
Кит.Крошка("Архив"),
Кит.Крошка("бета")).Рендер();Компонент строкой#
Тот же путь печатает компонент набора: Набор.Крошки().Отрисовать(Пункты) принимает массив пунктов Подпись, Адрес или модель-структуру с полями Пункты и Подпись.
Массив пунктов
Пункты = Новый Массив();
Пункты.Добавить(Новый Структура("Подпись, Адрес", "Участники", "/участники"));
Пункты.Добавить(Новый Структура("Подпись, Адрес", "Анна", "/участники/анна"));
Пункты.Добавить(Новый Структура("Подпись", "Проекты"));
HTML = Набор.Крошки().Отрисовать(Пункты);Пустой путь не печатает ничего: рамка без пунктов места не занимает.
Пустой путь — ничего
этот вызов не печатает ничего
HTML = Набор.Крошки().Отрисовать(Новый Массив());В доме настроек#
У дома настроек крошки задаёт слово Крошка(Подпись, Адрес), а печатает их этот же компонент — над шапкой дома. Имя навигации у дома своё, из ключа словаря settings.frame.crumbs.label.
Крошки над домом
HTML = Кит.ДомНастроек("Ключи доступа", "/проекты/альфа/ключи", "",
Кит.Секция("Ключи", Кит.Примечание("Ключей пока нет.").Вид("пусто")))
.Ключ("project")
.Крошка("Проекты", "/проекты").Крошка("альфа", "/проекты/альфа").Крошка("Ключи")
.Рендер();Гайдлайны#
Код
HTML = Кит.Крошки(
Кит.Крошка("Проекты", "/проекты"),
Кит.Крошка("альфа", "/проекты/альфа"),
Кит.Крошка("Участники")).Рендер();Код
HTML = Кит.Крошки(
Кит.Крошка("Поиск", "/поиск?q=альфа"),
Кит.Крошка("Анна", "/участники/анна"),
Кит.Крошка("альфа", "/проекты/альфа"),
Кит.Крошка("Участники")).Рендер();- Проекты
- альфа
Код
HTML = Кит.Крошки(
Кит.Крошка("Проекты", "/проекты"),
Кит.Крошка("альфа")).Рендер();- Все проекты, в которых вы участвуете
- Проект «альфа» и его настройки
Код
HTML = Кит.Крошки(
Кит.Крошка("Все проекты, в которых вы участвуете", "/проекты"),
Кит.Крошка("Проект «альфа» и его настройки")).Рендер();Доступность#
- Крошки печатаются
<nav>сaria-label: по умолчанию — текст словаря интерфейса по ключуchrome.crumbs, своё имя задаёт словоПодпись. Без имени скринридер прочёл бы «навигация» — одну из нескольких на странице. - Последний пункт помечен
aria-current="page": скринридер называет его текущей страницей. Ссылки у него нет, поэтому табуляция по нему не ходит. - Разделитель «/» рисует лист стилей (
::before), в тексте его нет: скринридер читает подписи, а не косые черты. - Подпись крошки — данные: она экранируется, как любой текст кита.
Модель#
Структура ниже — прежний вид модели; в дереве холста крошки — узлы Кит.Крошка, а имя навигации пишет слово Подпись.
Крошки.Отрисовать()src/Классы/компоненты/Крошки.os
Отрисовывает крошки.
Параметры:
Модель - Структура, Массив - Пункты (массив структур: Подпись, Адрес — пустой адрес
печатает пункт текстом; у последнего пункта адрес не печатается вовсе),
Подпись (aria-label навигации; по умолчанию текст словаря «chrome.crumbs»).
Массив на месте модели — сами пункты.
Возвращаемое значение:
Строка - фрагмент <nav class="crumbs"> либо "" для пустого списка: строка без пунктов
ни о чём не говорит, а место занимает.Кит.Крошки()src/Классы/холст/Кит.os
Крошки — путь от корня к текущей странице. Пункты — дети узла, узлы Кит.Крошка;
последний из них — текущая страница: печатается текстом, без ссылки, с aria-current.
Слова: Подпись (имя навигации, по умолчанию из словаря «chrome.crumbs»).
Параметры:
Р1…Р8 - ЭлементЭкрана, Структура - (необязательные) крошки; Структура первым
аргументом — прежний вид модели с полем Пункты.
Возвращаемое значение:
ЭлементЭкранаКит.Крошка()src/Классы/холст/Кит.os
Крошка — пункт Кит.Крошки. Печатается только внутри них.
Параметры:
Подпись - Строка - название страницы.
Адрес - Строка - (необязательный) её адрес; пустой — пункт текстом. У последней
крошки адрес не печатается: это страница, на которой человек стоит.
Возвращаемое значение:
ЭлементЭкрана