Вложение
отображает вложенный файл или изображение с медиафайлами, метаданными, состоянием загрузки и действиями.
❯buridan add вложениеОсобенности
- Иконки и изображения через
attachment.media - Состояния загрузки:
idle,uploading,processing,errorиdoneсо встроенным стилем и мерцанием во время выполнения. - Три размера и горизонтальная или вертикальная ориентация
- Полная карточка
attachment.trigger, которая открывает ссылку или диалоговое окно, в то время как действия остаются независимо кликабельными. - Прокручиваемый, привязывающийся
attachment.groupс затуханием края - Настраиваемый стиль с помощью реквизита
class_nameна каждой части.
Примеры
Изображение
Установите variant="image" на attachment.media и визуализируйте rx.el.img() внутри него. Используйте orientation="vertical", чтобы расположить медиафайлы над контентом.
Использованный реквизит: variant на attachment.media; orientation на attachment.root.
Штаты
Установите state, чтобы отразить жизненный цикл загрузки. uploading и processing мерцают в заголовке, а error переключается на деструктивную обработку.
Использованный реквизит: state на attachment.root.
Размеры
Используйте size для переключения между default, sm и xs.
Использованный реквизит: size на attachment.root.
Группа
Оберните вложения в attachment.group, чтобы расположить их в горизонтально прокручиваемом, привязывающемся ряду с плавным переходом по краям.
Использованный реквизит: ничего не требуется, кроме композиции по умолчанию attachment.group.
Триггер
Добавьте attachment.trigger, чтобы вся карточка открывала ссылку или диалог. Он заполняет карточку действий, поэтому действия остаются кликабельными.
Использованный реквизит: link, href, aria_label на attachment.trigger.
Доступность
attachment.action отображает Button, а attachment.trigger отображает либо настоящий rx.el.button(), либо rx.el.a(), если для реквизита link установлено значение True. Следуйте приведенным ниже инструкциям, чтобы оба были работоспособными и объявленными.
Действия, предназначенные только для значков меток
attachment.action обычно содержит только значки, поэтому дайте каждому из них aria-label, описывающее действие и его цель.
attachment.action(
hi("Cancel01Icon"), aria_label="Remove market-research.pdf"
)
Обозначьте триггер
attachment.trigger накладывает на все вложение кликабельную поверхность.
Используйте aria_label, чтобы описать, что происходит при активации вложения. Это необходимо, когда триггер не имеет видимого текста.
Триггер ссылки (открывает URL-адрес)
attachment.trigger(
link=True,
href=url,
target="_blank",
rel="noreferrer",
aria_label="Open workspace.png",
)
Триггер кнопки (интерактивное действие)
attachment.trigger(
on_click=handle_open,
aria_label="Open attachment preview",
)
Триггер находится за действиями в порядке наложения, поэтому attachment.action и attachment.trigger никогда не перехватывают друг друга — оба остаются отдельно фокусируемыми и кликабельными.
Прокрутка клавиатуры
attachment.group прокручивается горизонтально. Когда его вложения интерактивны: триггер или действия, пользователи клавиатуры получают доступ к элементам за пределами экрана, нажимая на них. Для ряда презентационных вложений сделайте саму группу фокусируемой и прокручиваемой, добавив tabIndex={0}, role="group" и aria-label.
Значение за пределами цвета
Состояние error использует деструктивный цвет. Сохраните причину сбоя в attachment.description, чтобы состояние не передавалось только цветом.
Справочник по API
вложение.корень
Контейнер корневого вложения.
вложение.медиа
Медиа-слот для предварительного просмотра значка или изображения.
вложение.содержание
Обертывает заголовок и описание.
вложение.название
Имя вложения. Мерцает, пока прикреплен элемент uploading или processing.
вложение.описание
Вторичные метаданные, такие как тип файла, размер или статус загрузки.
вложение.действия
Контейнер для одного или нескольких действий, выровненный по концу вложения.
вложение.действие
Кнопка действия. Отображает §§IC_85§§ и принимает все его реквизиты.
вложение.триггер
Наложение полной карты, которое активирует вложение. Отображает rx.el.button по умолчанию или rx.el.a, если link=True.
вложение.группа
Располагает вложения в горизонтально прокручиваемом, привязывающемся ряду.