- 🔩 Easily Customizable
- 🕊 Lightweight - less than 4kb including styles
- ✅ Accessible
You can visit the example here:
yarn add react-star-ratenpm install react-star-rateYou can add React Stars Rating to your project using the <StarsRating /> component.
import { useState } from 'react';
import StarsRating from 'react-star-rate';
const App = () => {
  const [value, setValue] = useState(0);
  return (
    <div>
      <StarsRating
        value={value}
        onChange={value => {
          setValue(value);
        }}
      />
    </div>
  );
};| Name | Type | Default | Description | 
|---|---|---|---|
| allowClear | boolean | true | Allow the value to be reset when clicked again | 
| allowHalf | boolean | true | Allow half of the star to be selected | 
| autoFocus | boolean | - | Automatically focus the element | 
| classNamePrefix | string | "react-star-rate" | The components will have classNames with the given prefix | 
| count | number | 5 | Number of stars | 
| defaultValue | number | 0 | The default value of the stars. Should be the same as the default useStatevalue | 
| direction | string | "ltr" | The direction of the selected stars. Either "ltr"or"rtl" | 
| disabled | boolean | false | Disable the rating element | 
| onBlur | function | - | Will be triggered on blur | 
| onChange | function | (value) => {} | Will be triggered on change of value | 
| onFocus | function | - | Will be triggered on focus | 
| onHoverChange | function | (value) => {} | Will be triggered on hover | 
| style | object | {} | Custom styles. See styling | 
| symbol | string | "★" | The symbol to be displayed | 
| tabIndex | number | 0 | The tab index of the stars container | 
| value | number | - | Controlled value of the component | 
Each component inside the StarsRating component is keyed and ships with default styles. You can apply custom styles by accessing the key on the style prop.
- style.style- The main wrapper- ulelement.
- style.full- Styles for when the star is fully active.- style.full.star- The wrapper- lielement every star.
- style.full.first- The first half star, on top.
- style.full.second- The second full star, in the background.
 
- style.half- Styles for when the star is half active.- style.half.star- The wrapper- lielement every star.
- style.half.first- The first half star, on top.
- style.half.second- The second full star, in the background.
 
- style.zero- Styles for when the star is not active.- style.zero.star- The wrapper- lielement every star.
- style.zero.first- The first half star, on top.
- style.zero.second- The second full star, in the background.
 
- style.hover- Styles for when the element is hovered over. You can use access of the keys listed above in the- hoverobject.
You can also apply custom styles using CSS Stylesheets. The classnames are determined with the classNamePrefix prop (defaults to "react-star-rate").
- ${classNamePrefix}- The main- ulelement.
- ${classNamePrefix}--ltr| -- ${classNamePrefix}--rtl- If the rating component is from left-to-right or right-to-left respectively.
- ${classNamePrefix}__star- The star- lielement.
- ${classNamePrefix}__star--zero|- ${classNamePrefix}__star--half|- ${classNamePrefix}__star--full- When the star is inactive, half, or completely full.
- ${classNamePrefix}__star__first- The first half star, on top.
- ${classNamePrefix}__star__second- The second full star, in the background.
MIT Licensed. Copyright (c) 2021-present, Raymon Zhang.