Directory
- Welcome
Rating Component
The Rating component provides an interactive star-based rating system with keyboard navigation, accessibility features, and form integration capabilities.
Key Features
-
Interactive Stars: Clickable star icons with hover effects
-
Keyboard Navigation: Full keyboard support with arrow keys
-
Form Integration: Works seamlessly with form submissions
-
Accessibility: ARIA support and screen reader compatibility
Basic Usage
Create a simple rating component:
<Rating />Variants
Sizes
<Rating buttonProps={{ size: 'sm' }} />With Label
<Rating label="Rate your experience" />Required Rating
<Rating label="Product Rating" required name="product-rating"/>Initial Rating Value
<Rating label="Pre-filled Rating" rating={3}/>Props API
| Prop | Type | Description |
|---|---|---|
| buttonProps | ComponentProps<typeof Button> | Props for star buttons |
| label | string | Label text for the rating input |
| labelProps | HTMLAttributesWithData<label> | Props for the label element |
| name | string | Form field name |
| rating | number | Initial rating value (1-5) |
| required | boolean | Makes the rating required |
Rating Functions API
The rating component provides a set of functions to interact with the rating:
| Function | Type | Description |
|---|---|---|
| set: rating | (rating: number) => void | Sets the rating value |
| get: rating | () => number | Returns the current rating value |
| reset | () => void | Resets the rating value to 0 |
Custom Event Listeners
Waiting for events to be emitted… (Click on the rating to see the events)
CustomEvent<{ id?: string; name?: string; rating: number;}>;Form Integration
The Rating component works seamlessly with forms as it has a hidden input that is used to store the rating value:
<form> <Rating name="user-rating" required label="How would you rate this?" /> <button type="submit">Submit Rating</button></form>Keyboard Navigation
The Rating component supports full keyboard interaction:
| Key | Action |
|---|---|
| ← / ↓ | Move to previous star |
| → / ↑ | Move to next star |
| Space/Enter | Select current star rating |
| Tab | Move focus to next interactive element |
Limited Time Launch Sale
Add interactive rating components to your website with our AstroJS starter template. Get started now!
GET 60% OFF!