Skip to content

Rating API

API reference docs for the React Rating component. Learn about the props, CSS, and other APIs of this exported module.

Demos

For examples and details on the usage of this React component, visit the component demo pages:

Import

import Rating from '@mui/material/Rating';
// or
import { Rating } from '@mui/material';
You can learn about the difference by reading this guide on minimizing bundle size.

Props

Props of the native component are also available.

NameTypeDefaultDescription
classesobject
Override or extend the styles applied to the component. See CSS API below for more details.
defaultValuenumbernull
The default value. Use when the component is not controlled.
disabledboolfalse
If true, the component is disabled.
emptyIconnode<StarBorder fontSize="inherit" />
The icon to display when empty.
emptyLabelTextnode'Empty'
The label read when the rating input is empty.
getLabelTextfuncfunction defaultLabelText(value) { return `${value} Star${value !== 1 ? 's' : ''}`; }
Accepts a function which returns a string value that provides a user-friendly name for the current value of the rating. This is important for screen reader users.
For localization purposes, you can use the provided translations.

Signature:
function(value: number) => string
value: The rating label's value to format.
highlightSelectedOnlyboolfalse
If true, only the selected icon will be highlighted.
iconnode<Star fontSize="inherit" />
The icon to display.
IconContainerComponentelementTypefunction IconContainer(props) { const { value, ...other } = props; return <span {...other} />; }
The component containing the icon.
maxnumber5
Maximum rating.
namestring
The name attribute of the radio input elements. This input name should be unique within the page. Being unique within a form is insufficient since the name is used to generated IDs.
onChangefunc
Callback fired when the value changes.

Signature:
function(event: React.SyntheticEvent, value: number | null) => void
event: The event source of the callback.
value: The new value.
onChangeActivefunc
Callback function that is fired when the hover state changes.

Signature:
function(event: React.SyntheticEvent, value: number) => void
event: The event source of the callback.
value: The new value.
precisionnumber1
The minimum increment value change allowed.
readOnlyboolfalse
Removes all hover effects and pointer events.
size'small'
| 'medium'
| 'large'
| string
'medium'
The size of the component.
sxArray<func
| object
| bool>
| func
| object
The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.
valuenumber
The rating value.

The ref is forwarded to the root element.

Theme default props

You can use MuiRating to change the default props of this component with the theme.

CSS

The following class names are useful for styling with CSS (the state classes are marked).
To learn more, visit the component customization page.

Rule nameGlobal classDescription
root.MuiRating-rootStyles applied to the root element.
sizeSmall.MuiRating-sizeSmallStyles applied to the root element if size="small".
sizeMedium.MuiRating-sizeMediumStyles applied to the root element if size="medium".
sizeLarge.MuiRating-sizeLargeStyles applied to the root element if size="large".
readOnly
STATE
.Mui-readOnlyStyles applied to the root element if readOnly={true}.
disabled
STATE
.Mui-disabledState class applied to the root element if disabled={true}.
focusVisible
STATE
.Mui-focusVisibleState class applied to the root element if keyboard focused.
visuallyHidden.MuiRating-visuallyHiddenVisually hide an element.
label.MuiRating-labelStyles applied to the label elements.
labelEmptyValueActive.MuiRating-labelEmptyValueActiveStyles applied to the label of the "no value" input when it is active.
icon.MuiRating-iconStyles applied to the icon wrapping elements.
iconEmpty.MuiRating-iconEmptyStyles applied to the icon wrapping elements when empty.
iconFilled.MuiRating-iconFilledStyles applied to the icon wrapping elements when filled.
iconHover.MuiRating-iconHoverStyles applied to the icon wrapping elements when hover.
iconFocus.MuiRating-iconFocusStyles applied to the icon wrapping elements when focus.
iconActive.MuiRating-iconActiveStyles applied to the icon wrapping elements when active.
decimal.MuiRating-decimalStyles applied to the icon wrapping elements when decimals are necessary.

You can override the style of the component using one of these customization options: