Бейдж
Бейдж с первого взгляда показывает статус или число: короткую подпись, счётчик или точку. Это содержимое, а не элемент управления.
<tk-badge tone="success">Active</tk-badge> <tk-badge tone="error" treatment="solid" count="120" label="120 unread notifications"></tk-badge> <tk-badge dot tone="success" label="Online"></tk-badge>
Анатомия
Бейдж бывает трёх видов. Если задано несколько, dot важнее count, а count важнее
подписи.
| Вид | Высота | Что это |
|---|---|---|
| подпись (слот по умолчанию) | 20px | плашка с одним-двумя словами статуса |
count |
16px | плашка с числом; больше max показывается как «99+» |
dot |
8px | цветная точка без текста |
Тоны и заливка
<tk-badge>Draft</tk-badge> <tk-badge tone="info">In review</tk-badge> <tk-badge tone="success">Stable</tk-badge> <tk-badge tone="warning">Expiring</tk-badge> <tk-badge tone="error">Failed</tk-badge>
tone задаёт смысл: neutral (по умолчанию), info, success, warning или error.
treatment="solid" заливает бейдж цветом, а не подкрашивает. Для большинства бейджей
оставляйте subtle (по умолчанию), а solid берите для счётчиков уведомлений и статусов,
которые должны выделяться. К точке treatment не применяется.
<tk-badge treatment="solid">Draft</tk-badge> <tk-badge treatment="solid" tone="success">Stable</tk-badge> <tk-badge treatment="solid" tone="error" count="3" label="3 failed checks"></tk-badge>
Счётчики
<tk-badge count="3" label="3 updates"></tk-badge> <tk-badge count="42" label="42 updates"></tk-badge> <tk-badge count="120" label="120 updates"></tk-badge>
max(по умолчанию 99) ограничивает число: 120 показывается как «99+».count="0"тоже показывается. Если считать нечего, скрывайте бейдж сами.- Рядом с подписанной целью, например кнопкой «Уведомления», хватит числа. Если бейдж стоит
один, задайте
label.
Точки
<tk-badge dot tone="success" label="Online"></tk-badge> <tk-badge dot tone="warning" label="Away"></tk-badge> <tk-badge dot></tk-badge>
По умолчанию скринридер точку не читает. Если она что-то значит, например «в сети» или «есть
обновления», задайте label или поставьте её рядом с текстом того же смысла. Одного цвета
мало.
На аватаре
Положите бейдж в слот badge у
<tk-avatar shape="circle" name="Mira Petrova"><tk-badge slot="badge" dot tone="success" label="Online"></tk-badge></tk-avatar> <tk-avatar size="40" shape="circle" name="Ada Lovelace"><tk-badge slot="badge" count="5" tone="error" treatment="solid" label="5 unread messages"></tk-badge></tk-avatar>
Когда использовать
- Для постоянного статуса или счётчика: «Активен» рядом с проектом, 3 непрочитанных в строке навигации, точка присутствия на аватаре.
- Для всего, что нажимается или удаляется, берите
Tag . Бейдж на курсор не реагирует. - Не показывайте бейджем ошибку формы. Для неё есть сообщение об ошибке у поля, см.
Field .
Текст
- Одно-два слова: «Активен», «На проверке». Без предложений.
- Заглавная буква только в начале, без точки в конце.
- Большие числа форматирует
max. Не пишите «99+» сами. - В
labelпишите полный смысл: «120 непрочитанных уведомлений», а не «99+».
Можно / нельзя
| ✅ Можно | ❌ Нельзя |
|---|---|
| Одно-два слова | Предложение в бейдже |
label у значимой точки или текст рядом |
Цветная точка как единственный носитель смысла |
subtle по умолчанию, solid для счётчиков |
Залитые бейджи по всему спокойному экрану |
Большие числа форматирует max |
«99+», написанное вручную |
| Нажимаемый бейдж |
Связанные
Avatar : ставит бейдж в свой угол.Tag : интерактивная плашка, которую можно удалить.
API
Атрибуты
| Атрибут | Тип | По умолчанию | Что делает |
|---|---|---|---|
tone |
neutral | info | success | warning | error |
neutral |
смысл |
treatment |
subtle | solid |
subtle |
подкрашенный или залитый |
dot |
boolean | false |
точка 8px без текста; важнее count |
count |
number | не задан | плашка с числом, не больше max |
max |
number | 99 |
большие числа показываются как «max+» |
label |
string | не задан | текст для скринридера; заменяет видимый текст, а точку делает слышимой |
Слоты
| Слот | Содержимое |
|---|---|
| по умолчанию | текст статуса; при dot и count не показывается |
События
Нет. Бейдж не интерактивный.
Токены
| Тон | subtle |
solid |
Точка |
|---|---|---|---|
neutral |
surface/sunken + text/secondary |
surface/inverse + text/inverse |
icon/secondary |
info |
surface/info + text/info |
fill/info + text/info/on-fill |
icon/info |
success |
surface/success + text/success |
fill/success + text/success/on-fill |
icon/success |
warning |
surface/warning + text/warning |
fill/warning + text/warning/on-fill |
icon/warning |
error |
surface/error + text/error |
fill/error + text/error/on-fill |
icon/error |
У всех видов radius-full. Отступ по бокам space-4 у счётчика и space-8 у подписи; текст
font-size-xs. Значения по темам:
Доступность
Встроено:
- Бейдж с подписью читается как её текст, счётчик — как число.
labelзаменяет видимый текст для скринридера, поэтому вместо «99+» прозвучит «120 непрочитанных уведомлений».- Точка скрыта от скринридеров, если у неё нет
label. - Фокуса, клавиш и live-региона нет.
На вашей стороне:
- Дайте значимой точке
labelили поставьте рядом текст. - Дайте одиночному счётчику
label. - Чтобы объявлять изменения счётчика, оберните контекст своим live-регионом. Бейдж об изменениях не сообщает.
Пределы контраста
- Текст
subtle: не ниже 4.5:1 в любой теме. - Текст
solid: не ниже 3:1. В тёмной теме уsuccess3.29:1, уerror3.55:1, ниже минимума 4.5:1 для текста. - Точки: не ниже 3:1.