# makeStyles/classes mechanism const useStyles = makeStyles(theme => { return { // styles applied to the root element root: { textAlign: 'middle' }, // styles applied when component is active active: { border: '1px solid' }, // styles applied when component is disabled disabled: { color: 'grey' } } }, { name: 'BaseName'}); export const MyComponent = ({ className, isActive, isDisabled, ...props}) => { const classes = useStyles(props); // classes is an object containing css classnames // e.g. classes.root === 'BaseName-root' // classes.active === 'BaseName-active' const finalClassName = clsx(props.className, classes.root, { [classes.active]: isActive, // only applied when isActive is true [classes.disabled]: isDisabled // only applied when isDisabled is true }); return
} ## CSS result .BaseName-root { text-align: 'middle' } .BaseName-active { border: '1px solid' } .BaseName-disabled { color: 'grey' } ## JS Usage JS: