Badge
Badge — составной компонент для небольшой подписи рядом с содержимым: статус, тип, метка.
Badge.Root задаёт цвет, размер и скругление, части внутри него свободно комбинируются: Badge.Icon и Badge.Label можно переставлять и использовать по одной.
Компонент неинтерактивный — это span, а не кнопка: клик, удаление метки и прочие действия вешает потребитель на свою обёртку.
Анатомия
Примеры
Вариант
Смысловой вариант — задаёт цвет: primary — акцент, secondary — второстепенная метка, success / warning / danger — семантические статусы, default — нейтральная.
Внешний вид
Внешний вид: solid — сплошная заливка, outline — обводка без заливки, dashed — та же обводка пунктиром, ghost — приглушённая подложка цветом варианта.
Размер
Размер задаётся на Badge.Root и управляет высотой, отступами и шрифтом бейджа; иконка масштабируется вместе с текстом. xs — для плотных списков и таблиц, sm — базовый, md — для заголовков, lg и xl — для акцентных подписей.
Скругление
Скругление углов — от прямых none до circle («таблетка»).
Иконка
Badge.Icon — иконка рядом с текстом; порядок задаёт разметка, так что иконка может стоять и справа от Badge.Label. Без текста бейдж сжимается до одной иконки.
Кастомный цвет
color — цвет бейджа для меток вне стандартного набора вариантов, принимает любое CSS-значение и перекрывает цвет из variant. Цвет текста при сплошной заливке подбирается автоматически: на светлом фоне — чёрный, на тёмном — белый.
Метки
Пользовательские метки (теги задачи, категории) — цвет закрепляется за текстом хелпером getStableColor, так метка выглядит одинаково во всех списках.
API
| Prop | Type | Default |
|---|---|---|
children* | ReactNode | - |
variantСмысловой вариант — задаёт цвет | Variant | "default" |
appearanceВнешний вид: сплошная заливка, обводка (сплошная или пунктирная) или приглушённая подложка | Appearance | "solid" |
sizeРазмер компонента | Size | - |
radiusСкругление углов: circle — «таблетка» | Radius | "sm" |
colorКастомный цвет — для случаев вне стандартного набора вариантов. Принимает любое CSS-значение, имеет приоритет над цветом из variant | string | - |
Наследуется от Pick<VisualProps, K>, HTMLAttributes<HTMLSpanElement>
Badge.Icon
Иконка рядом с текстом — масштабируется вместе с ним и не сжимается.
| Prop | Type | Default |
|---|---|---|
children*Иконка рядом с текстом бейджа | ReactNode | - |
Badge.Label
Текст бейджа; обрезается многоточием, если не влезает.
| Prop | Type | Default |
|---|---|---|
children*Текст бейджа — обрезается многоточием, если не влезает | ReactNode | - |