@rubenvara/react-star-rating
v1.0.1
Published
A simple React component that shows a rating from 0 to 5 with svg stars when passed a number
Downloads
2
Maintainers
Readme
React Star Rating
What is this
A simple React component that shows a rating from 0 to 5 with svg stars. Just need to pass a number. No dependencies required.
Installation
As with any other node package in React, Gatsby, Next.js, etc.:
npm i @rubenvara/react-star-rating
Usage
The package exports a React component.
The component takes a number of props:
| Prop | Type | Default | Required | Description | | ------ | ------ | ------- | -------- | ----------------------------------------------------- | | rating | Number | - | Yes | The rating. Any number from 0 to 5.0 | | config | Object | {} | No | Config options for the component. See below | | style | Object | {} | No | CSS styles passed directly to the container component |
About the config object:
| Option | Type | Default | Description | | ---------- | ------- | --------- | ----------------------------------------------- | | fullColor | String | '#ffcf00' | The color for the filling of the stars | | emptyColor | String | '#7f7f7f' | The color for the empty parts of the stars | | size | Number | 20 | The size of the stars. Pass a number of pixels. | | showText | Boolean | false | Show the rating number next to the stars or not |
About the style prop: It accepts an object of css styles, written in camelCase to inline in JSX components. It is passed directly, unchecked, to the main div
. Use it cautiously. Check the example below.
Be aware
- Any css-valid color is accepted (hsl, hex, rgb, string, etc.).
- Stars are 1:1 proportionate (width equals height, so both equal the size property).
- If the rating number is shown (when
config.showText = true
), font size is half the star size or 16px, whichever is higher.
Example
Use it as follows:
Simple
import StarRating from '@rubenvara/react-star-rating';
// ...
return <StarRating rating={3.35} />;
// ...
Output:
More advanced
import StarRating from '@rubenvara/react-star-rating';
// ...
const rating = 3.35;
const config = {
fullColor: '#f05',
emptyColor: 'hsl(240, 80%, 85%)',
size: 42,
showText: true,
};
const style = {border: `1px solid`, borderColor: `firebrick`, padding: 12};
// ...
return <StarRating rating={rating} config={config} style={style} />;
//...
Output:
Be careful
- Passing a rating higher than 5.0 or lower than 0.0 will break the component.
Future?
- [ ] Write tests.
- [ ] Check the user input rating and return an error or something more usefull than just breaking the thing.
- [ ] Improve styling of the rating number.