No Preview

Sorry, but you either have no stories or none are selected somehow.

If the problem persists, check the browser console, or the terminal you've run Storybook from.

The component failed to render properly, likely due to a configuration issue in Storybook. Here are some common causes and how you can address them:

  1. Missing Context/Providers: You can use decorators to supply specific contexts or providers, which are sometimes necessary for components to render correctly. For detailed instructions on using decorators, please visit the Decorators documentation.
  2. Misconfigured Webpack or Vite: Verify that Storybook picks up all necessary settings for loaders, plugins, and other relevant parameters. You can find step-by-step guides for configuring Webpack or Vite with Storybook.
  3. Missing Environment Variables: Your Storybook may require specific environment variables to function as intended. You can set up custom environment variables as outlined in the Environment Variables documentation.

Our Rating Web Component allows you to easily integrate a customizable star rating system, providing an interactive and visually appealing way to gather and display user feedback.

<post-rating></post-rating>
NameDescriptionDefaultControl
props
label
Defines a hidden label for the component.
string
'Rating'
stars
Defines the total amount of stars rendered in the component.
number
5
currentRating
Defines the rating that the component should show.
number
0
readonly

Defines if the component is readonly or not. This usually should be used together with the currentRating property.

boolean
false
events
postInput

An event emitted whenever the component's value has changed (on input). The event payload can be used like so: event.detail.value.

{ value: number; }
--
postChange

An event emitted whenever the component's value has changed (on blur). The event payload can be used like so: event.detail.value.

{ value: number; }
--

The <post-rating/> element is part of the @swisspost/design-system-components package. For more information, read the getting started with components guide.

const rating = document.querySelector('post-rating') as HTMLPostRatingElement; rating.addEventListener('postInput', event => { // use event.detail.value for whatever you like }); rating.addEventListener('postChange', event => { // use event.detail.value for whatever you like });