Skip to content

CdsTagGroup

New in v4.0

Группа тегов превращает набор CdsTag в переключатель: выбранный тег подсвечивается, значение доступно через v-model, а не поместившиеся теги уезжают в горизонтальную прокрутку. Подходит для фильтров каталога, выбора категории и быстрых переключателей периода.

Storybook GitLab Figma
Покрытие тестами: 100% — хорошее покрытие
API в спеках
30 / 30 пропсы, события, слоты и exposed, у которых есть тест
Тест-кейсы
39 юнит · 0 браузерных
Покрытие кода
100% строк · 100% ветвей замер v4.0.0-alpha.13
A11y (axe)
13 рекомендаций в 11 историях замер v4.0.0-alpha.11

Если выбор нужно оформить кнопками, возьмите CdsButtonToggle. Для выбора из длинного списка подойдёт CdsSelect, а отдельные независимые теги без выбора — просто CdsTag.

Вариации ​

Выбор ​

Каждому тегу задайте value — именно оно попадёт в v-model. Без value значением становится индекс тега в группе. Повторный клик по выбранному тегу снимает выбор.

Sandbox Storybook

Множественный выбор ​

Свойство multiple разрешает выбрать несколько тегов — v-model становится массивом значений.

Sandbox Storybook

Свойство max ограничивает число выбранных тегов: когда лимит достигнут, клики по остальным тегам не добавляют выбор.

Sandbox Storybook

Обязательный выбор ​

Свойство mandatory не даёт снять последний выбор: тег можно только переключить. Со значением 'force' первый доступный тег выбирается автоматически, даже если v-model пуст.

Sandbox Storybook

Индикатор выбора ​

Свойство filter добавляет выбранным тегам иконку-галочку — выбор читается не только по заливке. Иконку меняет filter-icon тега, а слот filter заменяет её своей разметкой.

Sandbox Storybook

Цвет и блокировка ​

Свойства color, active-color, disabled и filter группа проставляет своим тегам как значения по умолчанию — повторять их на каждом теге не нужно. color красит невыбранные теги, active-color — выбранный; без него выбранный тег остаётся брендовым, чтобы выбор читался при любой палитре. disabled блокирует всю группу: выбор виден, но переключить его нельзя. Свойство, заданное прямо на теге, побеждает значение группы.

Sandbox Storybook

Компоновка ​

По умолчанию теги стоят в один ряд, а лишние уезжают в горизонтальную прокрутку со стрелками: группа построена на CdsSlideGroup и принимает его свойства — show-arrows, direction, center-active. Свойство column переносит теги по строкам вместо прокрутки — так все варианты видны сразу.

Sandbox Storybook

Рекомендации ​

Сценарии использования ​

Фильтр каталога ​

Строка категорий над выдачей — самая частая работа группы тегов. column показывает все категории сразу, mandatory не даёт остаться без фильтра, а v-model даёт готовый ключ для запроса товаров.

Sandbox Storybook

Выбор нескольких тем ​

Когда значения не исключают друг друга, включите multiple. max держит выбор в разумных границах, filter отмечает выбранные темы галочкой, а подпись под группой объясняет лимит.

Sandbox Storybook

Переключение периода ​

Группа отдаёт наружу методы next, prev, select и список selected — получите их через ref на компоненте. Так к тегам добавляются стрелки «назад / вперёд», которые листают периоды по порядку.

Sandbox Storybook

API ​

Пропсы

ИмяТипПо умолчаниюОписание
activeColorstring | undefined—Цвет компонента, когда он находится в активном состоянии
centerActiveboolean | undefined—Принудительно выравнивает активный компонент по центру.
colorstring | undefined—Цвет компонента
columnboolean | undefined—Располагает теги в несколько строк с переносом вместо горизонтальной прокрутки.
contentClassany—Добавляет классы к контейнеру slide group
contentStyleany—Добавляет inline-стили к контейнеру slide group
direction"horizontal" | "vertical" | undefined'horizontal'Переключение между горизонтальным или вертикальным отображением.
disabledboolean | null | undefinednullЗаблокированное состояние
filterboolean | undefined—Показывает у выбранных тегов иконку-галочку (прокидывается в CdsTag).
mandatoryboolean | "force" | undefined—Обязательный выбор хотя бы одного элемента
maxnumber | undefined—Максимальное количество выбираемых элементов
mobileboolean | null | undefinednullОпределяет режим отображения компонента: Если значение равно true, компонент будет отображаться в режиме для Mobile. Если значение равно false, компонент будет отображаться в режиме для Desktop. Если значение равно null, режим будет зависеть от текущего Breakpoint.
mobileBreakpointnumber | "xs" | "sm" | "md" | "lg" | "xl" | undefined—Указывает точку преломления, при которой отображение будет переключаться в мобильный режим. Может быть числом (например, 600) или строкой, соответствующей одному из предопределенных Breakpoint (например, 'xs', 'sm', 'md', 'lg', 'xl').
modelValueany—Значение выбранных элементов группы
multipleboolean | undefined—Разрешить множественный выбор
nextIconIconValue | undefined'chevron-right'Иконка для кнопки "следующий".
prevIconIconValue | undefined'chevron-left'Иконка для кнопки "предыдущий".
requiredboolean | "force" | undefined—Обязательный выбор хотя бы одного элемента
scrollToActiveboolean | undefinedfalseЕсли true, то при изменении активного компонента, контейнер будет прокручиваться так, чтобы он был виден.
selectedClassstring | undefined'cds-tag--selected'CSS класс для выбранного состояния
showArrowsstring | boolean | undefined—Изменяет настройки отображения стрелок: По умолчанию стрелки всегда отображаются на Desktop устройствах при переполнении контейнера.<br /> При переполнении контейнера на мобильных устройствах стрелки по умолчанию не отображаются.<br /> Значение «true» для параметра «show-arrows» позволяет отображать эти стрелки на мобильных устройствах при переполнении контейнера.<br /> Значение «desktop» всегда отображает стрелки на настольных устройствах, а значение «mobile» — на мобильных устройствах.<br /> Значение «always» всегда отображает стрелки как на настольных, так и на мобильных устройствах.<br /> Используйте значение «never», чтобы отключить отображение стрелок.
tagstring | JSXComponent<any> | undefined'div'Пользовательский HTML-тег для отображения
themestring | undefined—Тема компонента

События

ИмяТипОписание
update:modelValue[value: unknown]Срабатывает при изменении выбранного значения.

Слоты

ИмяТипОписание
defaultCdsTagGroupSlotPropsТеги группы. В аргументах слота доступно состояние группы (выбор, навигация).

Exposed

ИмяТипОписание
isSelected(id: string) => booleanПроверить, выбран ли тег по id
next() => voidВыбрать следующий тег
prev() => voidВыбрать предыдущий тег
select(id: string, value: boolean) => voidВыбрать тег по id
selectedreadonly string[]Идентификаторы выбранных тегов