Разделитель
Разделитель — тонкая линия между двумя группами содержимого.
Signed in as ada@example.com
Sign out of all devices
<p>Signed in as ada@example.com</p> <tk-divider></tk-divider> <p>Sign out of all devices</p>
Анатомия
| Часть | Что это |
|---|---|
tk-divider |
сам элемент; на него нельзя перейти фокусом, он не реагирует на указатель |
part rule |
линия; один отрезок или по одному с каждой стороны подписи |
part label |
подпись по центру, по желанию; только у горизонтального |
Направление
<div style="display: flex; align-items: center; gap: var(--space-8); height: 32px"> <tk-button variant="ghost">Bold</tk-button> <tk-button variant="ghost">Italic</tk-button> <tk-divider orientation="vertical"></tk-divider> <tk-button variant="ghost">Link</tk-button> </div>
horizontal(по умолчанию): линия во всю ширину в вертикальном потоке.vertical: линия во всю высоту в строке. Поместите его во flex-строку или задайте высоту; сам по себе он высотой в одну строку текста.
Подпись
Текст в слоте по умолчанию разрывает линию и встаёт по центру, например «ИЛИ» между двумя вариантами.
<tk-button full-width>Continue with email</tk-button> <tk-divider>OR</tk-divider> <tk-button variant="outline" full-width>Continue with Google</tk-button>
Подпись работает только у горизонтального разделителя; вертикальный её не показывает. Скринридер читает подпись как имя разделителя.
Отступы, поля и заметность
Отступы и цвет задают CSS-переменными на элементе. По умолчанию линия идёт на всю ширину
контейнера; чтобы отодвинуть её от краёв, задайте элементу margin.
<tk-divider style="--tk-divider-spacing: var(--space-16)"></tk-divider> <tk-divider style="--tk-divider-color: var(--border-default)"></tk-divider> <tk-divider style="margin-inline: var(--space-16)"></tk-divider>
--tk-divider-spacing: отступ с обеих сторон линии, вдоль её оси.--tk-divider-color: цвет линии;var(--border-default)даёт более заметную линию между крупными областями.--tk-divider-thickness: по умолчанию 1px; меняют редко.
Декоративный
Добавьте decorative, если группировка уже видна из структуры, например между двумя
разделами-ориентирами или пунктами настоящего списка. Атрибут скрывает разделитель от
скринридеров. Разделитель с подписью не скрывается никогда.
<tk-divider decorative></tk-divider>
Когда использовать
- Разделитель ставят между группами содержимого: разделами настроек, карточками друг под другом, группами кнопок на панели инструментов.
- Сначала попробуйте отступы и заголовки. Разделитель нужен, только если без него группы не читаются.
- Не рисуйте им собственные линии компонентов: строки таблицы, края диалога, рамку
поля. Их рисуют CSS-границей на
border/subtleилиborder/default.
Можно / нельзя
| ✅ Можно | ❌ Нельзя |
|---|---|
| Между настоящими группами содержимого | Линии там, где группы и так видны по отступам или заголовкам |
| Собственные линии компонента — границей на токене | Оборачивать строку таблицы или рамку поля в tk-divider |
decorative между разделами или пунктами списка |
Лишний разделитель для скринридера там же |
Заметная линия через --tk-divider-color |
Жёстко заданный цвет, который не меняется с темой |
| Вертикальному — строка или высота | Ждать, что он заполнит высоту, которой нет |
Связанные
Menu : разделяет свои секции разделителем.Prose : рисует<hr>в тексте такой же бледной линией.
API
Атрибуты
| Атрибут | Тип | По умолчанию | Что делает |
|---|---|---|---|
orientation |
horizontal | vertical |
horizontal |
направление линии; неизвестное значение даёт горизонтальную |
decorative |
boolean | false |
скрывает разделитель от скринридеров |
Слоты
| Слот | Содержимое |
|---|---|
| по умолчанию | подпись, по желанию; только у горизонтального |
События
Нет.
CSS
| CSS-переменная | По умолчанию | Что делает |
|---|---|---|
--tk-divider-color |
var(--border-subtle) |
цвет линии |
--tk-divider-spacing |
0 |
отступ с обеих сторон линии, вдоль её оси |
--tk-divider-thickness |
1px |
толщина линии |
::part(rule): каждый отрезок линии.::part(label): подпись.
Токены
| Элемент | Токен |
|---|---|
| линия | border/subtle; заметнее border/default |
| подпись | text/secondary, Body Small |
| зазор у подписи | space-12 с каждой стороны |
Значения по темам:
Доступность
Встроено:
- Скринридер объявляет разделитель и его направление.
- Разделитель с подписью объявляется по подписи, например «OR».
decorativeубирает его из дерева доступности.- На разделитель нельзя перейти фокусом.
На вашей стороне:
- Ставьте
decorative, когда группы и так видны из структуры, чтобы скринридер не объявлял лишний разделитель. - Если важно различать группы, не полагайтесь только на разделитель: линия по умолчанию
бледная, и минимум 3:1 к ней не применяется. Для линии, которую обязательно должны
увидеть, берите
border/default.