Saltar al contenido

🎉 Material UI v5 is out now! Check out the announcement blog post

Rating (Calificación)

Las calificaciones proporcionan información sobre las opiniones y experiencias de otros con un producto. Los usuarios también pueden calificar los productos que han comprado.

Calificaciones simples

Controlled
Read only
Disabled
Pristine

Calificaciones personalizadas

Here are some examples of customizing the component. You can learn more about this in the overrides documentation page.

Custom empty icon
Custom icon and color
10 stars
Custom icon set

Hover feedback

You can display a label on hover to help users pick the correct rating value. The demo uses the onChangeActive prop.

Poor+
<Rating
  name="hover-feedback"
  value={value}
  precision={0.5}
  onChange={(event, newValue) => {
    setValue(newValue);
  }}
  onChangeActive={(event, newHover) => {
    setHover(newHover);
  }}
/>
{value !== null && <Box ml={2}>{labels[hover !== -1 ? hover : value]}</Box>}

Half ratings

The rating can display any float number with the value prop. Use the precision prop to define the minimum increment value change allowed.

<Rating name="half-rating" defaultValue={2.5} precision={0.5} />
<Rating name="half-rating-read" defaultValue={2.5} precision={0.5} readOnly />

Tamaños

Fancy larger or smaller ratings? Use the size prop.

<Rating name="size-small" defaultValue={2} size="small" />
<Rating name="size-medium" defaultValue={2} />
<Rating name="size-large" defaultValue={2} size="large" />

Accesibilidad

(WAI tutorial: https://www.w3.org/WAI/tutorials/forms/custom-controls/#a-star-rating)

La accesibilidad de este componente se basa en:

  • A radio group is used with its fields visually hidden. It contains six radio buttons, one for each star and another for 0 stars, which is checked by default. Make sure you are providing a name prop that is unique to the parent form.
  • The labels for the radio buttons contain actual text (“1 Star”, “2 Stars”, …), make sure you provide a getLabelText prop when the page language is not English.