Маркер
отображает встроенный статус, системное примечание, строку с рамкой или помеченный разделитель в разговоре.
❯buridan add маркерПримеры
Варианты
Используйте variant для переключения между встроенным маркером, строкой с рамкой и маркированным разделителем.
Статус
Установите role="status" и включите §§IC_10§§ для маркеров потоковой передачи или выполнения, чтобы объявлялось об обновлениях.
Мерцание
Добавьте служебный класс §§IC_11§§ к marker.content для создания эффекта анимированного потокового текста. Утилита поставляется с пакетом buridan — для установки см. документацию по мерцанию.
Разделитель
Используйте вариант separator для помеченных разделителей, таких как даты или разрывы разделов, в разговоре.
Граница
Используйте вариант border для строк состояния, которые должны сохранять выравнивание маркера по умолчанию при разделении следующей строки.
со значком
Используйте marker.icon для отображения значка рядом с содержимым. Используйте flex-col, чтобы расположить значок над содержимым.
Ссылки и кнопки
Превратите маркер в ссылку или кнопку с помощью .
Доступность
marker.root по умолчанию является презентационным. Правильная семантика зависит от того, как вы ее используете, поэтому выбирайте роль на основе намерения, а не полагайтесь на одно значение по умолчанию.
Статус и прогресс
Для потоковой передачи или маркеров прогресса, таких как «Думая...» или работающего инструмента, установите role="status", чтобы вспомогательные технологии объявляли об обновлении по мере его появления. marker.root пересылает role базовому элементу.
marker.root(
marker.icon(spinner()),
marker.content("Compacting conversation"),
role="status",
)
Маркированные разделители
separator, содержащий текст, например дату или метку раздела, не требует никакой роли. Разделительные линии представляют собой декоративные псевдоэлементы CSS, а текст объявляется как обычный контент.
marker.root(
marker.content("Today"),
variant="separator",
)
Примечание. Не добавляйте
role="separator"к помеченному разделителю. Доступное имя разделителя берется изaria-label, а не из его текста, а его содержимое рассматривается как презентационное, поэтому видимая метка не будет объявлена. Зарезервируйтеrole="separator"для разделителя без значимого текста.
Маркеры с рамкой
Маркер с рамкой сохраняет ту же семантику, что и маркер по умолчанию. Нижняя граница является декоративной, поэтому выберите role="status" или отсутствие роли в зависимости от назначения маркера.
marker.root(
marker.icon(rx.icon("file-text", size=14)),
marker.content("Opened implementation notes"),
variant="border",
)
Декоративные значки
marker.icon является декоративным и скрыт от вспомогательных технологий с помощью aria-hidden, поэтому соседний marker.content несет в себе смысл. Для маркера, состоящего только из значков, укажите aria_label, чтобы он не объявлялся пустым.
marker.root(
marker.icon(rx.icon("check", size=14)),
aria_label="Synced",
)
Интерактивные маркеры
Когда маркер связывает или запускает действие, визуализируйте его как rx.link или передайте on_click, чтобы он был фокусируемым и отображал правильную роль.
rx.link(
marker.root(
marker.icon(rx.icon("file-text", size=14)),
marker.content("Explored 4 files"),
),
href="/files",
)
Справочник по API
маркер.корень
Элемент корневого маркера.
маркер.значок
Декоративный слот для иконок. Скрыто от вспомогательных технологий с помощью aria-hidden.
маркер.содержание
Текстовое содержимое маркера.