DataList
DataList — список свойств сущности парами «подпись → значение»: панель деталей задачи, карточка профиля, сводка проекта.
Подпись — всегда текст, значением может быть что угодно: строка, Badge, Date, EntityLabel, кнопка. Компонент отвечает только за раскладку и кегль — внешний вид значения ведёт сам вложенный компонент.
Подписи всех строк выстраиваются в общую колонку по самой длинной из них: колонки объявлены на DataList.Root, а строки подхватывают их через subgrid. Поэтому ширину колонки задавать не нужно, но и строки из разных списков между собой не выравниваются — один блок свойств должен быть одним DataList.Root.
В отличие от Cell это не список сущностей, по которым переходят: ни подложки, ни ховера, ни выбора — только данные. Разметка семантическая (dl / dt / dd), так что пары читаются скринридером как пары.
- Статус
- В работе
- Исполнитель
- АПАнна Петрова
- Создана
- Проект
- Дизайн-система
Анатомия
Примеры
Значения
Значение — не обязательно текст: в DataList.Value кладётся готовый компонент ДС. Несколько элементов подряд (метки, аватары) выстраиваются в ряд с общим зазором и переносятся по ширине, а не выезжают за колонку.
- Название
- Перенести настройки в отдельный раздел
- Метки
- frontendнужен дизайнблокер
- Участники
- АПИСМКПО
- Обновлена
Размер
Размер задаётся на DataList.Root и управляет кеглем, зазорами и высотой строки. Ступень наследуется вложенными компонентами — аватар и бейдж в значении едут за списком, пока им не задали свой size. xs и sm — плотная панель свойств сбоку, md — базовый, lg и xl — сводка на всю ширину страницы.
- Размер
- xs
- Владелец
- АПАнна Петрова
- Размер
- sm
- Владелец
- АПАнна Петрова
- Размер
- md
- Владелец
- АПАнна Петрова
- Размер
- lg
- Владелец
- АПАнна Петрова
- Размер
- xl
- Владелец
- АПАнна Петрова
Длинные значения
Длинное значение переносится по строкам, а подпись остаётся на первой из них — строки выравниваются по верху, а не по центру. Колонка подписей ужимается вслед за контейнером: в узкой панели переносится и она.
- Проект
- Дизайн-система
- Ответственный за релиз
- Анна Петрова
- Описание
- Перенести настройки уведомлений из общего раздела в личный кабинет и согласовать формулировки с поддержкой
Панель свойств
Основной сценарий — блок свойств в Panel сбоку от содержимого. Размер sm держит панель плотной, а подписи узкой колонкой оставляют место значениям.
- Статус
- На ревью
- Автор
- ИСИгорь Соколов
- Срок
- Оценка
- 3 дня
API
| Prop | Type | Default |
|---|---|---|
children*Строки списка — DataList.Item | ReactNode | - |
sizeРазмер компонента | Size | - |
Наследуется от Pick<VisualProps, K>, HTMLAttributes<HTMLDListElement>
DataList.Item
Строка списка — пара подписи и значения. Занимает обе колонки и наследует их у DataList.Root, поэтому подпись попадает в ту же колонку, что и у соседних строк.
| Prop | Type | Default |
|---|---|---|
children*Пара DataList.Label и DataList.Value — одна строка списка | ReactNode | - |
DataList.Label
Подпись строки (dt) — только текст, приглушённым цветом.
| Prop | Type | Default |
|---|---|---|
children*Подпись строки — только текст, приглушённым цветом | ReactNode | - |
DataList.Value
Значение строки (dd): текст или готовый компонент. Несколько элементов подряд встают в ряд с общим зазором.
| Prop | Type | Default |
|---|---|---|
children*Значение строки: текст либо готовый компонент — EntityLabel, Date, Badge, Avatar | ReactNode | - |