Rating

Компонент звёздного рейтинга. Поддерживает интерактивный ввод оценки, режим «только для чтения», половинные звёзды (allowHalf) и сброс значения по повторному клику (allowClear). Поведение по умолчанию — неконтролируемое с defaultValue; для контролируемого использования передайте value + onChange.

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

  • Оценка сущности пользователем: отзыв о товаре, качестве услуги, контента.
  • Отображение агрегированного рейтинга в readonly-режиме (карточка товара, профиль исполнителя).

Когда не нужен: многокритериальная оценка (несколько факторов) — стройте форму с несколькими Rating или отдельным UI. NPS-шкала 0–10 — используйте другой компонент.

Анатомия

Appearance

Цвет заполненных звёзд: primary — брендовый акцент (дефолт); red, orange, yellow, green, blue, violet, pink — семантические/декоративные варианты под контекст.

Size

xs — плотные карточки и строки списков; s — дефолт для форм отзывов и профилей.

Установка

pnpm add @cloud-ru/ds-rating
import { Rating } from '@cloud-ru/ds-rating'

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

Базовый рейтинг

Базовый рейтинг5 звёзд, дефолтное значение 3.
tsx
import { Rating } from '@cloud-ru/ds-rating';

export function Basic() {
  return <Rating count={5} defaultValue={3} allowHalf={false} allowClear={false} readonly={false} />;
}

Readonly

ReadonlyДля отображения агрегированной оценки.
tsx
import { Rating } from '@cloud-ru/ds-rating';

export function Readonly() {
  return <Rating count={5} defaultValue={4} readonly allowHalf={false} allowClear={false} />;
}

Половинные звёзды

Половинные звёздыallowHalf=true — поддержка значений 0.5 / 1.0 / 1.5 и т.д.
tsx
import { Rating } from '@cloud-ru/ds-rating';

export function HalfStars() {
  return <Rating count={5} defaultValue={3.5} allowHalf allowClear={false} readonly={false} />;
}

Props

Types

PropsRatingProps
PropTypeDefaultRequiredDescription
allowClearbooleanfalsenoРазрещает сброс рейтинга при повторном нажатии на звезду
allowHalfbooleanfalsenoПоказывать или нет рейтинг в виде половины звезды
appearance"blue" | "green" | "neutral" | "orange" | "pink" | "primary" | "red" | "violet" | "yellow"yellownoВнешний вид (цветовая схема)
classNamestringnoCSS-класс
countnumber5noОбщее количество звезд
data-test-idstringno
defaultValuenumber0noКоличество звезд, заполненных по умолчанию
onChange((value: number) => void)noКолбек, вызываемый на смену состояния
readonlybooleanfalsenoЯвляется ли поле доступным на изменение
size"s" | "xs"snoРазмер
valuenumbernoЗначение количества звезд в случае необходимости управления

Unions

Types

RatingProps

Unions

Storybook

Figma