К содержимому
uiify

Table

Нативная таблица с необязательным интерактивным адаптером.

Браузеры
Chrome 123+Firefox 121+Safari 17.5+
Уровень
0
Сжатый размер
617 B
Лимит принудительной компоновки
0 ms
Лимит axe
0
Совместим с SSR
Да
Публичный контракт
Тестовый стенд

Песочница

Table

Пример нативной таблицы

Участники команды
ИмяРольСтатус
Alice ChenАдминистраторАктивен
Bob SmithРедакторАктивен
Carol LeeНаблюдательПриглашён
3 участника · 2 активных

Сортировка, фильтрация и раскрытие

РольПодробнее
Alice ChenАдминистратор
Bob SmithРедактор
Carol LeeНаблюдатель
Участников: 3 · выбрано: 0

Закреплённые заголовки, подвал и столбцы

Участник 1Редакторmember1@example.comАктивен
Участник 2Редакторmember2@example.comАктивен
Участник 3Редакторmember3@example.comАктивен
Участник 4Редакторmember4@example.comАктивен
Участник 5Редакторmember5@example.comАктивен
Участник 6Редакторmember6@example.comАктивен
Участник 7Редакторmember7@example.comАктивен
Участник 8Редакторmember8@example.comАктивен
Участник 9Редакторmember9@example.comАктивен
Участник 10Редакторmember10@example.comАктивен
Участник 11Редакторmember11@example.comАктивен
Участник 12Редакторmember12@example.comАктивен
Участник 13Редакторmember13@example.comАктивен
Участник 14Редакторmember14@example.comАктивен
Участник 15Редакторmember15@example.comАктивен
Участник 16Редакторmember16@example.comАктивен
Участник 17Редакторmember17@example.comАктивен
Участник 18Редакторmember18@example.comАктивен
Участник 19Редакторmember19@example.comАктивен
Участник 20Редакторmember20@example.comАктивен
Участник 21Редакторmember21@example.comАктивен
Участник 22Редакторmember22@example.comАктивен
Участник 23Редакторmember23@example.comАктивен
Участник 24Редакторmember24@example.comАктивен
24 участника

API

Table.Root (native)

СвойствоТипПо умолчаниюОписание
layout"auto" | "fixed""auto"Нативная компоновка таблицы. Выбор, сортировка и раскрытие используют отдельную точку входа TableClient.
size"sm" | "md" | "lg"—Интервалы ячеек из выбранной таблицы стилей.
variant"solid" | "outline" | "ghost"—Вариант поверхности из выбранной таблицы стилей.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.Footer

СвойствоТипПо умолчаниюОписание
stickyboolean—Закрепляет подвал в конце блочной оси контейнера прокрутки.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.RowHeader / Table.Cell / Table.ColumnHeader

СвойствоТипПо умолчаниюОписание
align"start" | "center" | "end""start"Логическое выравнивание текста в ячейке.
sticky"start" | "end"—Закрепляет ячейку у логического строчного края. Для соседних закреплённых ячеек задайте каждой --uiify-table-sticky-offset.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

TableClient.ExpandTrigger / TableClient.ExpandedRow

СвойствоТипПо умолчаниюОписание
rowId*string—Общий ключ строки, связывающий кнопку раскрытия с нативным <tr>. Внутрь раскрытой строки поместите <td colSpan={columnCount}>.

TableClient.Root — @gunkin/uiify/components/table/client

СвойствоТипПо умолчаниюОписание
aria-labelstring—Доступное название таблицы, если нет видимой подписи или заголовка.
aria-labelledbystring—Идентификатор элемента, который подписывает таблицу.
selectionMode"none" | "single" | "multiple""none"Разрешён ли выбор строк и скольких одновременно; «none» формирует обычную статическую таблицу без роли grid.
selectionBehavior"toggle" | "replace"—Добавляет ли щелчок строку к выбору или заменяет текущий выбор.
defaultSelectedKeysIterable<string>—Изначально выбранные идентификаторы строк; выбор остаётся неуправляемым внутри компонента.
selectedKeysIterable<string>—Текущие выбранные идентификаторы строк; выбором управляет вызывающая сторона.
onSelectionChange(selectedKeys: Set<string>) => void—Вызывается с новым набором идентификаторов выбранных строк при каждом изменении выбора.
defaultSortDescriptorSortDescriptor | null—Начальные столбец и направление сортировки; состояние сортировки остаётся неуправляемым внутри компонента.
sortDescriptorSortDescriptor | null—Текущие столбец и направление сортировки; сортировка становится управляемой.
onSortChange(descriptor: SortDescriptor | null) => void—Вызывается с новым описателем сортировки или null при активации заголовка сортируемого столбца.
expandedKeys / defaultExpandedKeysIterable<string>—Управляемые или начальные ключи раскрытых строк.
onExpandedChange(keys: Set<string>) => void—Сообщает о запросах раскрытия. Управляемые строки ждут обновлённых ключей.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.Header

СвойствоТипПо умолчаниюОписание
stickybooleanfalseЗакрепляет секцию в контейнере прокрутки: Header — у начала блочной оси, Footer — у конца.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.Body

СвойствоТипПо умолчаниюОписание
childrenReactNode—Строки тела таблицы.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.Row

СвойствоТипПо умолчаниюОписание
id*string—Стабильный идентификатор строки, используемый как ключ выбора и идентификатор элемента.
disabledbooleanfalseЗапрещает выбор строки и получение фокуса с клавиатуры.
selectedboolean—Помечает строку выбранной в серверной разметке до того, как управление перейдёт хранилищу выбора.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.ColumnHeader

СвойствоТипПо умолчаниюОписание
id*string—Идентификатор столбца, на который ссылаются описатели сортировки.
allowsSortingbooleanfalseПозволяет заголовку переключать сортировку столбца и отражать её через aria-sort.
sortDirection"ascending" | "descending" | null—Направление сортировки столбца в начальной серверной разметке, если сортировка разрешена.
onClickReact.MouseEventHandler<HTMLTableCellElement>—Выполняется перед сортировкой; preventDefault() отменяет её изменение.
childrenReactNode—Подпись заголовка.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.Cell

СвойствоТипПо умолчаниюОписание
childrenReactNode—Содержимое ячейки.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.Caption

СвойствоТипПо умолчаниюОписание
childrenReactNode—Текст подписи, описывающей таблицу.
renderReactElement | ((props, state) => ReactElement)—Заменяет отображаемый элемент, сохраняя поведение и связи доступности.

Table.RowSelect

СвойствоТипПо умолчаниюОписание
rowId*string—Идентификатор строки, которую этот флажок выбирает и снимает с выбора.

Клавиатура

КлавишаДействие
TabПеревести фокус на элементы сортировки, выбора и раскрытия в TableClient
Enter / SpaceАктивировать кнопку сортировки или раскрытия в фокусе; переключить флажок
Arrow keysПеремещаться между доступными для выбора строками тела таблицы в TableClient

Доступность

По умолчанию Table формирует нативные <table>, <caption>, <thead>, <tbody> и <tfoot> без клиентского JavaScript; для семантики заголовков используйте ColumnHeader и RowHeader. Точка входа /client добавляет сортировку, выбор, навигацию по строкам с клавиатуры и управляемое раскрытие, отражённые в aria-sort, aria-expanded и aria-controls. ExpandedRow — нативный <tr>; поместите внутрь Cell с colSpan. Фильтрацией и порядком строк управляет потребитель.

Привязка стилей

data-uiify-tabledata-partdata-layoutdata-sizedata-variantdata-stickydata-selecteddata-disabled--uiify-table-sticky-offset
Эта страница переведена автоматически и ещё не проверена.