2.0.1 • Published 2 years ago

svelte-star-rating v2.0.1

Weekly downloads
20
License
MIT
Repository
github
Last release
2 years ago

Svelte Star Rating

What is this

A simple svelte 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 svelte:

npm install svelte-star-rating

But remember to install it as a dev dependency when using it with SvelteKit (or Sapper):

npm install svelte-star-rating --save-dev

Usage

The package exports a svelte component.

The component takes a number of props:

PropTypeDefaultRequiredDescription
ratingNumber-YesThe rating. Any number from 0 to 5.0
configObject{}NoConfig options for the component. See below
styleString-NoCSS styles passed directly to the container component

About the config object:

OptionTypeDefaultDescription
emptyColorString'#7f7f7f'The color for the empty parts of the stars
fullColorString'#ffcf00'The color for the filling of the stars
showTextBooleanfalseShow the rating number next to the stars or not
sizeNumber20The size of the stars. Pass a number of pixels.

About the style prop: It accepts a string of css styles, written as inline-css. It is passed directly, unchecked, to the main div as inline-css. Use it cautiously.

Be aware

  • Passing a rating higher than 5.0 or lower than 0.0 will throw an error.
  • The component is reactive since v1.3.0 (if rating value changes, the component will change the displayed rating).
  • 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 text is shown (showText: true), font size is half the star size or 16px, whatever is higher.

Also:

  • The component doesn't handle in any way the number passed as rating: If you operate on the number, you may end up with a value of 3.02 + 0.01 = 3.0299999995, for example, due to the way JavaScript works. It's up to you to manage this before passing the number.

Example

Use it as follows:

Simple

<script>
  import StarRating from 'svelte-star-rating';
</script>

<StarRating rating={3.35} />

Output:

Simple example of Svelte Star Rating

Advanced

<script>
  import StarRating from 'svelte-star-rating';
  
  const rating = 3.35;
  const config = {
    emptyColor: 'hsl(240, 80%, 85%)',
    fullColor: '#f05',
    showText: true,
    size: 42,
  };
  const style = 'border: 1px solid firebrick;padding: 12px;';
</script>

<StarRating {rating} {config} {style} />

Output:

Advanced example of Svelte Star Rating

2.0.1

2 years ago

1.3.3-1

2 years ago

1.3.3-2

2 years ago

2.0.0

2 years ago

1.3.2

3 years ago

1.3.0

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago