materialuiupgraded
Version:
Material-UI's workspace package
68 lines (62 loc) • 1.9 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import red from '@material-ui/core/colors/red';
import blue from '@material-ui/core/colors/blue';
import SvgIcon from '@material-ui/core/SvgIcon';
const styles = theme => ({
root: {
display: 'flex',
justifyContent: 'center',
alignItems: 'flex-end',
},
icon: {
margin: theme.spacing.unit * 2,
},
iconHover: {
margin: theme.spacing.unit * 2,
'&:hover': {
color: red[800],
},
},
});
function HomeIcon(props) {
return (
<SvgIcon {...props}>
<path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
</SvgIcon>
);
}
function SvgIcons(props) {
const { classes } = props;
return (
<div className={classes.root}>
<HomeIcon className={classes.icon} />
<HomeIcon className={classes.icon} color="primary" />
<HomeIcon className={classes.icon} color="secondary" />
<HomeIcon className={classes.icon} color="action" />
<HomeIcon className={classes.iconHover} color="error" style={{ fontSize: 30 }} />
<HomeIcon color="disabled" className={classes.icon} fontSize="large" />
<HomeIcon
className={classes.icon}
color="primary"
fontSize="large"
component={svgProps => (
<svg {...svgProps}>
<defs>
<linearGradient id="gradient1">
<stop offset="30%" stopColor={blue[400]} />
<stop offset="70%" stopColor={red[400]} />
</linearGradient>
</defs>
{React.cloneElement(svgProps.children[0], { fill: 'url(#gradient1)' })}
</svg>
)}
/>
</div>
);
}
SvgIcons.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(SvgIcons);