Перейти к содержимому
v2.5.0
English
Русский
Документация

Checkbox

Checkbox — составной компонент для независимых выбираемых вариантов с необязательным участием в нативной форме, рендером индикатора и поддержкой неопределённого состояния.

Обзор

Стилизация Checkbox разделена между моделью состояния корневой подписи и видимой поверхностью индикатора. Отмеченное, неопределённое, отключённое состояния и фокус согласуются через CSS-переменные уровня корня.

Публичные CSS-переменные

ПеременнаяЗначениеВлияет на
Визуальный размер.Checkbox, CheckboxIndicator
В этом состоянии изменений не видно
Текущий цвет рамки.Checkbox, CheckboxIndicator
В этом состоянии изменений не видно
Текущий цвет фона.Checkbox, CheckboxIndicator
В этом состоянии изменений не видно
Цвет иконки.CheckboxIndicator
В этом состоянии изменений не видно
Обводка фокуса.CheckboxIndicator
В этом состоянии изменений не видно
Цвет рамки при наведении.Checkbox
В этом состоянии изменений не видно
Цвет рамки при нажатии.Checkbox
В этом состоянии изменений не видно

Переменные уровня частей

  • Checkbox: корень, отвечающий за стили отмеченного, неопределённого, отключённого состояний и варианта.
  • CheckboxIndicator: видимая поверхность элемента.
  • CheckboxCheckedIcon и CheckboxIndeterminateIcon: рендер иконок внутри индикатора.

Взаимодействие состояний и вариантов

  • variant меняет семейство цветов для отмеченного и неопределённого состояний.
  • Отключённое состояние переопределяет и фон, и рамку.
  • Фокус находится на визуально скрытом input, но отображается через индикатор.

Примеры

.brandCheckbox {
  --checkbox-br-ratio: 0.25;
}
.compactCheckbox {
  --checkbox-size: 14px;
}

Свои иконки состояний

Дочерние элементы CheckboxCheckedIcon и CheckboxIndeterminateIcon заменяют иконку по умолчанию для этого состояния. Другое состояние сохраняет свою иконку.

custom-state-icons.tsx · 35 строк
import {
  Checkbox,
  CheckboxCheckedIcon,
  CheckboxIndeterminateIcon,
  CheckboxIndicator,
  CheckboxInput,
} from '@vega-ui/react';
import { Diff, Rocket } from '@vega-ui/icons';

export default function CustomStateIcons() {
  return (
    <div style={{ display: 'flex', flexWrap: 'wrap', gap: 'var(--spacing-12)' }}>

Что не переопределять

  • Не убирайте обводку фокуса без замены.
  • Не скрывайте разницу между неотмеченным и отмеченным или неопределённым состояниями.
  • Не навязывайте собственные цвета, ухудшающие читаемость отключённого состояния.