Favourite
Toggle для «избранного» — карточка товара, трек в плейлисте, пост в ленте. Переключается между пустой и заполненной иконкой (звезда или сердце).
Когда использовать
- «Добавить в избранное», «лайк», «в wishlist».
- Каталоги, ленты, плейлисты — любой UI с персональными коллекциями.
Когда не нужен Favourite: для булевых настроек — Switch; для выбора опций — Checkbox.
Анатомия
Size
xs — для плотных списков, s — дефолт в карточках.
Favourite icon
Форма иконки: star — «в избранное», heart — «нравится».
Установка
pnpm add @cloud-ru/ds-toggles
import { Favourite } from '@cloud-ru/ds-toggles'
Примеры использования
1. Звезда
tsx
import { Favourite } from '@cloud-ru/ds-toggles';
export function FavouriteStar() {
return <Favourite icon='star' defaultChecked />;
}2. Сердце
tsx
import { Favourite } from '@cloud-ru/ds-toggles';
export function FavouriteHeart() {
return <Favourite icon='heart' defaultChecked />;
}3. Все состояния
tsx
import { Favourite } from '@cloud-ru/ds-toggles';
export function FavouriteStates() {
return (
<div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
<Favourite icon='star' />
<Favourite icon='star' defaultChecked />
<Favourite icon='heart' disabled />
<Favourite icon='heart' loading />
</div>
);
}Props
Types
Props
FavouriteProps| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
autofocus | boolean | — | no | HTML-аттрибут autofocus |
checked | boolean | — | no | HTML-аттрибут checked |
className | string | — | no | CSS-класс |
data-test-id | string | — | no | |
defaultChecked | boolean | — | no | HTML-аттрибут checked по-умолчанию |
disabled | boolean | false | no | HTML-аттрибут disabled |
icon | "heart" | "star" | heart | no | Вариант иконки: звезда или сердце |
id | string | — | no | HTML-аттрибут id |
inputRef | RefObject<HTMLInputElement> | — | no | |
loading | boolean | false | no | Состояние загрузки |
name | string | — | no | HTML-аттрибут name |
onBlur | FocusEventHandler<HTMLInputElement> | — | no | Колбек потери фокуса |
onChange | ((checked: boolean) => void) | — | no | Колбек смены значения |
onClick | MouseEventHandler<HTMLInputElement> | — | no | Колбек клика |
onFocus | FocusEventHandler<HTMLInputElement> | — | no | Колбек приобретения фокуса |
onKeyUp | KeyboardEventHandler<HTMLSpanElement> | — | no | Обработчик keyup |
size | "s" | "xs" | s | no | Размер |
tabIndex | number | — | no | HTML-аттрибут tab-index |
value | string | — | no | HTML-аттрибут value |