--- id: star-rating title: Star Rating --- The **Star Rating** component can be used to gather user feedback and provide a visual representation of ratings, helping users make informed decisions, provide social proof, and evaluate the quality or popularity of a product or service. **Why Use It?** - **Collect User Feedback**: Ideal for capturing user opinions on products, services, or content in a simple, visual format. - **Display Ratings**: Perfect for showing aggregated scores, like average ratings for items, courses, or articles. - **Enhanced User Experience**: Offers an intuitive and interactive way for users to express preferences, including half-star precision for more accurate ratings. ## Data |
Property
|
Description
|
Expected Value
| | :-------------------------------------- | :--------------------------------------------------------------------------------- | :-------------------------------------------- | | **Label** | Text to display as the label for the star rating. | `String` | | **Icon Type** | Select the icon to display for the rating. | `stars` or `heart` | | **Number of stars** | Total number of stars displayed on initial load. Default is 5. | `Integer` | | **Default number of selected stars** | Sets how many stars are selected by default. Default is 3. | `Integer` or `half` | | **Allow editing** | Toggle on to allow users to edit. | `Boolean` (`true` / `false`) | | **Enable half star** | Toggle on to allow selection of half stars. Default is `false`. | `Boolean` (`true` / `false`) | | **Tooltips** | Array of strings used to show informative tooltips for each star. Mapped by index. | `Array` of `String` (default: `["Very Poor","Poor","Average", "Good","Excellent"]`) | ## Events |
Event
|
Description
| | :------------------------------------------ | :------------------------------------------------ | | On change | Triggers whenever the user clicks a star. | :::info Check [Action Reference](/docs/actions/run-query) docs to get the detailed information about all the **Actions**. ::: ## Component Specific Actions (CSA) The following actions of the component can be controlled using the component-specific actions (CSA), you can trigger it using an event or use a RunJS query. |
**Action**
| **Description** | **RunJS Query** | |:------------------------------------------|:------------------------------------------------|:-----------------------------------------| | **setValue( )** | Sets the current rating value programmatically. | `components.starrating1.setValue()` | | **resetValue( )** | Resets the rating to the default value. | `components.starrating1.resetValue()` | | **setVisibility( )** | Controls the visibility of the component. | `components.starrating1.setVisibility()` | | **setLoading( )** | Sets the component to a loading state. | `components.starrating1.setLoading()` | | **setDisable( )** | Disables user interaction with the component. | `components.starrating1.setDisable()` | ## Exposed Variables |
Variables
|
Description
|
How To Access
| | :---------------------------------------------- | :------------------------------------------------| :------------------------------------------------- | | value | Holds the value entered by the user whenever a rating is added on the component. | `{{components.starrating1.value}}` | | label | Holds the label name of the component. | `{{components.starrating1.label}}` | | isLoading | Indicates if the component is loading. | `{{components.starrating1.isLoading}}` | | isVisible | Indicates if the component is visible. | `{{components.starrating1.isVisible}}` | | isDisabled | Indicates if the component is disabled. | `{{components.starrating1.isDisabled}}` | ## Additional Actions |
Action
|
Description
|
Configuration Options
| | :------------------------------------------- | :-------------------------------------------------| :---------------------------------------------------------- | | Loading state | Enables a loading spinner, often used with `isLoading` to indicate progress. Toggle or set dynamically. | Enable/disable the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. | | Visibility | Controls component visibility. Toggle or set dynamically. | Enable/disable the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. | | Disable | Enables or disables the component. Toggle or set dynamically. | Enable/disable the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. | | Tooltip | Provides additional information on hover. Set a string value for display. | String (e.g., `Select an option.` ). | ## Devices |
Property
|
Description
|
Expected Value
| | :--------------------------------------------- | :------------------------------------------------ | :----------------------------------------------------| | Show on desktop | Makes the component visible in desktop view. | You can set it with the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. | | Show on mobile | Makes the component visible in mobile view. | You can set it with the toggle button or dynamically configure the value by clicking on **fx** and entering a logical expression. | ## Styles ### Label | **Property** | **Description** | **Configuration Options** | | -------------| ----------------| ------------------------- | | **Style** | Choose whether to keep the label in **standard** or **legacy** style. | Dropdown: *Standard*, *Legacy* | | **Label color** | Change the color of the label text. | Color picker / HEX / RGBA / Custom Themes | | **Alignment** | Adjust the placement of the label relative to the component. | *Side* / *Top* and *Left* / *Right* | | **Width** | Sets the width of the label. | Keep `Auto width` for standard sizing, or deselect to adjust using a slider or an **fx** expression returning a numeric value. | ### Icon | **Property** | **Description** | **Configuration Options** | | ------------------------- | ------------------------------------------ | ----------------------------------------- | | **Selected background** | Color for selected icons (stars/hearts). | Color picker / HEX / RGBA / Custom Themes | | **Unselected background** | Color for unselected icons (stars/hearts). | Color picker / HEX / RGBA / Custom Themes | ### Container | **Property** | **Description** | **Configuration Options** | | -------------- | ------------------------------------------------- | -------------------------------------------------------------------------------- | | **Box shadow** | Apply shadow styling to the component container. | Pick a shadow color, adjust properties, or define programmatically using **fx**. | | **Padding** | Maintain consistent spacing inside the container. | *Default* or *None* |