Badge
Badge generates a small badge to the top-right of its child(ren).
Introduction
The badge component is most frequently used to signal status (online, offline, busy, etc) and whether there's notifications or not.
<Badge />Playground
Color
size
Component
After installation, you can start building with this component using the following basic elements:
import Badge from '@mui/joy/Badge';
export default function MyApp() {
return <Badge />;
}
Basic usage
The default appearance of the Badge is a dot with a primary color.
🛒
<Badge>
<Typography fontSize="xl">🛒</Typography>
</Badge>🛍
4🔔
❕<Badge badgeContent={4}>
<Typography fontSize="xl">🛍</Typography>
</Badge>
<Badge badgeContent="❕">
<Typography fontSize="xl">🔔</Typography>
</Badge>The badge automatically hidden if badgeContent is zero.
You can change this by toggling on the showZero prop.
🛍
0
🛍
12<Badge badgeContent={12} invisible={invisible}>
<Typography fontSize="xl">🛍</Typography>
</Badge>
<Switch
startDecorator="invisible"
checked={invisible}
onChange={(event) => setInvisible(event.target.checked)}
variant={invisible ? 'solid' : 'outlined'}
sx={{ '--Switch-track-width': '40px' }}
/><Badge badgeContent={99}>
<MailIcon />
</Badge>
<Badge badgeContent={100} badgeInset="0 -6px 0 0">
<MailIcon />
</Badge>
<Badge badgeContent={1000} max={999} badgeInset="0 -12px 0 0">
<MailIcon />
</Badge><Badge
anchorOrigin={{
vertical: 'top',
horizontal: 'right',
}}
>Inset
The badgeInset prop gives you precise control of the badge's position.
Use a string value matching the inset CSS property syntax.
<Badge badgeInset="14%" color="danger">
<Avatar src="/static/images/avatar/1.jpg" />
</Badge>Accessibility
Make sure to always provide a meaningful description to the aria-label prop, regardless if it is on the badge or the component wrapping it.
<IconButton color="neutral" aria-label={notificationsLabel(100)}>
<Badge badgeContent={100} badgeInset="-20%">
<MailIcon />
</Badge>
</IconButton>Unstyled
The component also comes with an unstyled version. It's ideal for doing heavy customizations and minimizing bundle size.