ChipAssist

Кликабельный чип-кнопка. Инициирует действие в контексте фильтров, тегов и быстрых команд. Лейбл обязателен, иконка опциональна.

Когда использовать

  • Для inline-действий рядом с контентом: добавить тег, применить быструю команду.
  • Когда действие визуально должно восприниматься как чип в ряду фильтров, а не как классическая кнопка.

Когда не нужен ChipAssist:

  • Для основного CTA экрана — используйте Button.
  • Для переключения бинарного состояния — используйте ChipToggle.

Анатомия

Size (default s)

  • s — для плотных тулбаров и строк фильтров.
  • m — стандартный размер.
  • l — для крупных форм.

Icon

Опциональная иконка перед лейблом через проп icon. При loading иконка заменяется спиннером.

Состояния

  • disabled — отключает взаимодействие.
  • loading — показывает спиннер вместо иконки и блокирует клик.

Установка

pnpm add @cloud-ru/ds-chips
import { ChipAssist } from '@cloud-ru/ds-chips';

Примеры использования

Три размера в ряд

Три размера в ряд
tsx
import { ChipAssist } from '@cloud-ru/ds-chips';

export function AssistSizes() {
  return (
    <div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
      <ChipAssist size='s' label='Small' onClick={() => {}} />
      <ChipAssist size='m' label='Medium' onClick={() => {}} />
      <ChipAssist size='l' label='Large' onClick={() => {}} />
    </div>
  );
}

С иконкой

С иконкойИконка перед лейблом через проп icon
tsx
import { ChipAssist } from '@cloud-ru/ds-chips';
import { PlusSVG } from '@cloud-ru/ds-icons/interface/system';

export function AssistWithIcon() {
  return <ChipAssist label='Добавить тег' icon={<PlusSVG />} size='m' onClick={() => {}} />;
}

Состояния

Состоянияdefault, disabled и loading
tsx
import { ChipAssist } from '@cloud-ru/ds-chips';
import { PlusSVG } from '@cloud-ru/ds-icons/interface/system';

export function AssistStates() {
  return (
    <div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
      <ChipAssist label='Обычный' icon={<PlusSVG />} onClick={() => {}} />
      <ChipAssist label='Отключён' icon={<PlusSVG />} disabled onClick={() => {}} />
      <ChipAssist label='Загрузка' icon={<PlusSVG />} loading onClick={() => {}} />
    </div>
  );
}

Props

Types

PropsChipAssistProps
PropTypeDefaultRequiredDescription
classNamestringnoCSS-класс
data-test-idstringno
disabledbooleannoОтключён
iconReactNodenoИконка
labelstringyesТекст чипа
loadingbooleannoСостояние загрузки
onClickMouseEventHandler<HTMLButtonElement>yesКолбек обработки клика
size"l" | "m" | "s"mnoРазмер
tabIndexnumbernoИндекс в порядке фокусировки
truncateVariant"end" | "middle"middlenoВариант обрезания строки

Unions

Types

ChipAssistProps

Unions

Storybook

Figma

Смотри также

  • ChipToggle — чип с состоянием выбора.
  • Button — основные кнопки действий.