Reputation: 4518
How can you use the @supports
css rule in material ui makeStyles?
I tried to search that but didn't find anything describing how to include css rules like supports
Here is the styles I want to have:
@supports (display: grid) {
div {
display: grid;
}
}
I tried this but it didn't work:
const useStyles = makeStyles(() => ({
paper: {
'@supports': {
'(display: grid)': {
display: 'grid';
},
},
}
}))
Upvotes: 6
Views: 1557
Reputation: 81006
The syntax for this is similar to the syntax for media queries. In your case, you would want the following:
const useStyles = makeStyles(() => ({
paper: {
'@supports (display: grid)': {
display: 'grid'
}
}
}))
Here's a working example:
import React from "react";
import Button from "@material-ui/core/Button";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles((theme) => ({
button: {
"@supports (background-color: red)": {
marginTop: theme.spacing(5),
backgroundColor: "red"
},
"@supports not (display: unsupportedvalue)": {
color: "white"
},
"@supports not (display: grid)": {
backgroundColor: "purple"
}
}
}));
export default function App() {
const classes = useStyles();
return (
<Button className={classes.button} variant="contained">
Hello World!
</Button>
);
}
Related answer:
Related documentation:
Upvotes: 6
Reputation: 1360
Just like you use media queries in the Mui, the same way you can make use of @support
in it!
For example:
const useStyles = makeStyles((theme) => ({
grid: {
"@supports (display: grid)": {
display: "grid",
gridTemplateColumns: "1fr 1fr"
}
}
}));
Whole component will look like this:
import React from "react";
import { makeStyles } from "@material-ui/core";
function Grid() {
const useStyles = makeStyles((theme) => ({
grid: {
"@supports (display: grid)": {
display: "grid",
gridTemplateColumns: "1fr 1fr"
}
}
}));
const styles = useStyles();
return (
<div className={styles.grid}>
<div>Grid Item</div>
<div>Grid Item</div>
<div>Grid Item</div>
<div>Grid Item</div>
</div>
);
}
export default Grid;
And here's the working codesandbox example: https://codesandbox.io/s/priceless-lamarr-olciu
Upvotes: 2