Skip to content

Rating API

API documentation for the React Rating component. Learn about the available props and the CSS API.

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.

Component name

The name MuiRating can be used when providing default props or style overrides in the theme.

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.
sxobject
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.

CSS

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.MuiRating-readOnlyStyles applied to the root element if readOnly={true}.
disabled.Mui-disabledState class applied to the root element if disabled={true}.
focusVisible.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:

Demos