Usage
Color
Size
xs
sm
md
lg
xl
Count
import { Rating } from '@mantine/core';
function Demo() {
return <Rating defaultValue={2} />
}
Controlled
import { useState } from 'react';
import { Rating } from '@mantine/core';
function Demo() {
const [value, setValue] = useState(0);
return <Rating value={value} onChange={setValue} />;
}
Read only
import { Rating } from '@mantine/core';
function Demo() {
return <Rating value={3.5} fractions={2} readOnly />;
}
Fractions
Fractions: 2
Fractions: 3
Fractions: 4
import { Rating, Group, Stack } from '@mantine/core';
function Demo() {
return (
<Stack>
<Group>
<div>Fractions: 2</div>
<Rating fractions={2} defaultValue={1.5} />
</Group>
<Group>
<div>Fractions: 3</div>
<Rating fractions={3} defaultValue={2.33333333} />
</Group>
<Group>
<div>Fractions: 4</div>
<Rating fractions={4} defaultValue={3.75} />
</Group>
</Stack>
);
}
Custom symbol
import { Rating } from '@mantine/core';
import { IconSun, IconMoon } from '@tabler/icons-react';
function Demo() {
return <Rating emptySymbol={<IconSun size="1rem" />} fullSymbol={<IconMoon size="1rem" />} />;
}
Symbols for each item
import { Rating, rem } from '@mantine/core';
import {
IconMoodCry,
IconMoodSad,
IconMoodSmile,
IconMoodHappy,
IconMoodCrazyHappy,
} from '@tabler/icons-react';
const getIconStyle = (color?: string) => ({
width: rem(24),
height: rem(24),
color: color ? `var(--mantine-color-${color}-7)` : undefined,
});
const getEmptyIcon = (value: number) => {
const iconStyle = getIconStyle();
switch (value) {
case 1:
return <IconMoodCry style={iconStyle} />;
case 2:
return <IconMoodSad style={iconStyle} />;
case 3:
return <IconMoodSmile style={iconStyle} />;
case 4:
return <IconMoodHappy style={iconStyle} />;
case 5:
return <IconMoodCrazyHappy style={iconStyle} />;
default:
return null;
}
};
const getFullIcon = (value: number) => {
switch (value) {
case 1:
return <IconMoodCry style={getIconStyle('red')} />;
case 2:
return <IconMoodSad style={getIconStyle('orange')} />;
case 3:
return <IconMoodSmile style={getIconStyle('yellow')} />;
case 4:
return <IconMoodHappy style={getIconStyle('lime')} />;
case 5:
return <IconMoodCrazyHappy style={getIconStyle('green')} />;
default:
return null;
}
};
function Demo() {
return <Rating emptySymbol={getEmptyIcon} fullSymbol={getFullIcon} highlightSelectedOnly />;
}
Welcome to Mantine, React components library that you always wished for
Build fully functional accessible web applications faster than ever