Sample Code
"use client";
import React from 'react';
import { Box, FormControlLabel } from '@mui/material';
import { styled } from '@mui/material/styles';
import Radio, { RadioProps } from '@mui/material/Radio';
const BpIcon = styled('span')(({ theme }) => ({
borderRadius: '50%',
width: 21,
height: 21,
boxShadow:
theme.palette.mode === 'dark'
? '0 0 0 1px {theme.palette.grey[200]}'
: 'inset 0 0 0 1px {theme.palette.grey[300]}',
backgroundColor: 'transparent',
'.Mui-focusVisible &': {
outline:
theme.palette.mode === 'dark'
? '0px auto {theme.palette.grey[200]}'
: '0px auto {theme.palette.grey[300]}',
outlineOffset: 2,
},
'input:hover ~ &': {
backgroundColor: theme.palette.primary,
},
'input:disabled ~ &': {
boxShadow: 'none',
background: theme.palette.grey[100],
},
}));
const BpCheckedIcon = styled(BpIcon)(({ theme }) => ({
boxShadow: 'none',
'&:before': {
display: 'block',
width: 21,
height: 21,
backgroundImage:
theme.palette.mode === 'dark'
? 'radial-gradient({theme.palette.background.paper},{theme.palette.background.paper} 28%,transparent 32%)'
: 'radial-gradient(#fff,#fff 28%,transparent 32%)',
content: '""',
},
}));
function CustomRadio(props: RadioProps) {
return (
<Radio
disableRipple
color="default"
checkedIcon={
<BpCheckedIcon
sx={{
backgroundColor: props.color ? '{props.color}.main' : 'primary.main',
}}
/>
}
icon={<BpIcon />}
inputProps={{ 'aria-label': 'Checkbox demo' }}
{...props}
/>
);
}
const [checked, setChecked] = React.useState(true);
const handleChange = (event) => {
setChecked(event.target.checked);
};
<Box textAlign="center">
<FormControlLabel
value="end"
control={<CustomRadio color="primary" checked />}
label="Primary"
labelPlacement="end"
/>
<FormControlLabel
value="end"
control={<CustomRadio color="secondary" checked />}
label="Secondary"
labelPlacement="end"
/>
<FormControlLabel
value="end"
control={<CustomRadio color="success" checked />}
label="Success"
labelPlacement="end"
/>
<FormControlLabel
value="end"
control={<CustomRadio color="error" checked />}
label="Danger"
labelPlacement="end"
/>
<FormControlLabel
value="end"
control={<CustomRadio color="warning" checked />}
label="Warning"
labelPlacement="end"
/>
</Box>