Reputation: 2411
I'm a newbie here to React and I'm a little bit confused on how to override classes in Material UI. I took a look at the examples and tried to mimic it but it didn't seem to do what I want it to do.
Basically, on a table row hover, I want to make it set a background color different from what it is currently doing.
Here is my approach:
const styles = theme => ({
root: {
width: "100%",
marginTop: theme.spacing.unit * 3
},
table: {
minWidth: 1020
},
tableWrapper: {
overflowX: "auto"
},
hover: {
"&:hover": {
backgroundColor: 'rgb(7, 177, 77, 0.42)'
}
}
});
return <TableRow hover classes={{hover: classes.hover}} role="checkbox" aria-checked={isSelected} tabIndex={-1} key={n.row_id} selected={isSelected}>
{this.insertRow(n, isSelected, counter, checkbox)}
;
export default withStyles(styles)(EnhancedTable);
Thanks for your help!
Upvotes: 118
Views: 274604
Reputation: 11
<Button
variant="contained"
sx={{
bgcolor: "yellow",
"&:hover": {
bgcolor: "green",
},
}}
>
Demo
</Button>
Upvotes: 0
Reputation: 1110
For example, I change the SVG icon color when it hovered:
<IconButton>
<CiteIcon
sx={{
'&:hover': {
'& > path,use': {
fill: '#f00',
},
},
}}
/>
</IconButton>
Upvotes: 0
Reputation: 31
Here is my approach
const checkBoxStyles = () => ({
root: {
'&$checked': {
color: '#4885FB'
},
'&$disabled': {
color: '#96C9FF'
},
'&:hover': {
backgroundColor: '#E4F2FF !important'
}
},
checked: {},
disabled: {
color: '#96C9FF'
}
});
const CustomCheckbox = withStyles(checkBoxStyles)(Checkbox);
Just note: If you don't specify !important. When the checkbox is 'checked', the on-hover background color get's over-ridden.
I am using material UI version 4
Upvotes: 2
Reputation: 312
By Adding A simple Statement you can customize Hover properties..
'&:hover': {
background: "rgb(7, 177, 77, 0.42)",
}
So,
tableWrapper: {
overflowX: "auto",
hover: {
"&:hover": {
backgroundColor: 'rgb(7, 177, 77, 0.42)'
},
}
Upvotes: 10
Reputation: 1026
If you are looking to make some custom hover animations then you can try this style
This block of code will change the colour of a card on hover.
For more info please check here Transitions in MUI
card : {
transition: theme.transitions.create(["background", "background-color"], {
duration: theme.transitions.duration.complex,
}),
"&:hover": {
backgroundColor: "#333",
},
}
Upvotes: 7
Reputation: 2836
You should define a key for TableRow as a className and then put your hover style right on that class name as an object.
const styles = theme => ({
...
tr: {
background: "#f1f1f1",
'&:hover': {
background: "#f00",
},
},
...
});
return <TableRow className={props.classes.tr} ...>
In another example it would be something like this:
const styles = {
tr: {
background: "#f1f1f1",
'&:hover': {
background: "#f00",
}
}
};
function Table(props) {
return (
<Table>
<TableRow className={props.classes.tr}>
{"table row"}
</TableRow>
</Table>
);
}
export default withStyles(styles)(Table);
Upvotes: 231