Обзор
Стили SegmentedControl разделены между дорожкой корня, содержимым элементов и анимированным индикатором. Индикатор следует за отмеченным сегментом через CSS anchor positioning — без измерений в JS.
Публичные CSS-переменные
| Переменная | Значение | Влияет на |
|---|---|---|
Общая высота контрола.SegmentedControl | В этом состоянии изменений не видно | |
Фон дорожки.SegmentedControl | В этом состоянии изменений не видно | |
Коэффициент радиуса контрола.SegmentedControl | В этом состоянии изменений не видно | |
Фон элемента по умолчанию при наведении.SegmentedControl | В этом состоянии изменений не видно | |
Фон элемента по умолчанию при нажатии.SegmentedControl | В этом состоянии изменений не видно | |
Цвет текста элемента.SegmentedControlItem | В этом состоянии изменений не видно | |
Фон элемента.SegmentedControlItem | В этом состоянии изменений не видно | |
Фон элемента при наведении.SegmentedControlItem | В этом состоянии изменений не видно | |
Фон элемента при нажатии.SegmentedControlItem | В этом состоянии изменений не видно | |
Фон выбранного элемента.SegmentedControlItem | В этом состоянии изменений не видно |
Переменные частей
SegmentedControl: дорожка корня, модель размеров и контур фокуса.SegmentedControlItem: размеры подписи, внутренние отступы и оформление текста в активном или отключённом состоянии. Активный сегмент — тот, чья радиокнопка отмечена; выбирайте его через:has(input:checked).SegmentedControlIndicator: анимированная поверхность выбранного состояния.SegmentedControlItemInput: семантический носитель нативного поведения группы радиокнопок.
Взаимодействие состояний и вариантов
sizeменяет высоту, размер шрифта и модель внутренних отступов.variantменяет цветовое семейство индикатора.- Отключённое состояние влияет и на стили элементов, и на вид индикатора.
Примеры
.compactSegments {
--segmented-control-height: 32px;
}.brandSegments {
--segmented-control-background-color: var(--fills-secondary);
}Не переопределяйте
- Не задавайте геометрию индикатора жёстко:
leftиwidthберутся из якоря отмеченного сегмента. - Браузеры без поддержки CSS anchor positioning скрывают индикатор и вместо этого закрашивают фон самого отмеченного сегмента.
- Не ослабляйте видимость фокуса корня.
- Не навязывайте сильно неравные внутренние отступы элементов, если подписи и так различаются по длине.