Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[docs] Add page for CSS variables support in @mui/material #32050

Merged
merged 64 commits into from
Apr 6, 2022
Merged
Show file tree
Hide file tree
Changes from 63 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
30468a1
scafolded new pages
mnajdova Mar 18, 2022
5a8dae4
wip
mnajdova Mar 28, 2022
717cd39
inital docs
mnajdova Mar 29, 2022
fdaff5a
address initial code review
mnajdova Mar 30, 2022
b09f9f1
lint & prettier
mnajdova Mar 30, 2022
2e9580d
fix build
mnajdova Mar 30, 2022
d8fd56a
Fix CI
mnajdova Mar 30, 2022
62aa11a
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
5e5d42f
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
a289600
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
6ad517f
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
9c2cc01
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
fbc6587
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
a606ddc
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
6b11e4a
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
c7063e1
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Mar 30, 2022
1f64d72
a bit of refinement
danilo-leal Mar 31, 2022
8d8f161
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
1be065c
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
7133c2b
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
7b986ab
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
a8ba74a
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
45a89a0
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
7d7a554
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
b3b3c41
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
1442f2b
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
1d04b88
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
87871c5
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
fdc8d89
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
65ec5d1
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
9d48341
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
4efbfe7
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
5d4978c
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
4feb9ac
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
6cf41ba
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
a82028c
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
b8ce436
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
364a724
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
7a47bd1
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
852b750
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
534be9e
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 1, 2022
003cff5
Merge branch 'master' into docs/material-ui-css-vars
mnajdova Apr 1, 2022
35f47c2
Move the note for help wanted in the beginning of the page
mnajdova Apr 1, 2022
17b4de5
Add API section for useColorScheme hook
mnajdova Apr 1, 2022
dce9953
Merge branch 'master' into docs/material-ui-css-vars
mnajdova Apr 4, 2022
97d1545
lint & merge conflicts
mnajdova Apr 4, 2022
117341c
Merge branch 'master' of https://github.com/mui/material-ui into docs…
siriwatknp Apr 4, 2022
679f928
update content
siriwatknp Apr 4, 2022
593facc
update content
siriwatknp Apr 4, 2022
099d8bb
remove unused example
siriwatknp Apr 4, 2022
d3afd0b
update content
siriwatknp Apr 4, 2022
f03aa35
Apply suggestions from code review
siriwatknp Apr 5, 2022
863b55f
reorder usage
siriwatknp Apr 5, 2022
0e7c1bc
remove color scheme for simplicity
siriwatknp Apr 5, 2022
52d1bfb
Sam's review
mnajdova Apr 5, 2022
6725734
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 5, 2022
90aa8a0
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 5, 2022
5cdc6f1
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 5, 2022
3647b66
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 5, 2022
8b69612
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 5, 2022
b363081
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 5, 2022
f1a571f
Update docs/data/material/experimental-api/css-variables/css-variable…
mnajdova Apr 5, 2022
c43d6e9
Ask feedback in the Note
mnajdova Apr 5, 2022
3debebe
Apply suggestions from code review
siriwatknp Apr 6, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import * as React from 'react';
import Button from '@mui/material/Button';
import { colorChannel } from '@mui/system';
import {
Experimental_CssVarsProvider as CssVarsProvider,
styled,
} from '@mui/material/styles';

// Custom button using custom styles with CSS variables
const CustomButton = styled(Button)(({ theme }) => ({
backgroundColor: theme.vars.palette.success.dark,
color: theme.vars.palette.common.white,
'&:hover': {
backgroundColor: `rgba(${theme.vars.palette.success.mainChannel} / 0.95)`,
},
}));

// Custom button using CSS variables
const CssVarsCustomButton = styled(Button)({
'--md-palette-primary-main': '#FF0000',
'--md-palette-primary-dark': '#8B0000',
'--md-palette-primary-mainChannel': colorChannel('#FF0000'), // necessary for calculating the alpha values
});

export default function App() {
return (
<CssVarsProvider>
<CustomButton sx={{ mr: 1 }}>Custom styles</CustomButton>
<CssVarsCustomButton variant="contained">CSS variables</CssVarsCustomButton>
</CssVarsProvider>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
import * as React from 'react';
import {
Experimental_CssVarsProvider as CssVarsProvider,
useColorScheme,
experimental_extendTheme,
} from '@mui/material/styles';
import Moon from '@mui/icons-material/DarkMode';
import Sun from '@mui/icons-material/LightMode';
import Button from '@mui/material/Button';
import Box from '@mui/material/Box';
import { teal, deepOrange, orange, cyan } from '@mui/material/colors';

const ColorSchemePicker = () => {
const { mode, setMode } = useColorScheme();
const [mounted, setMounted] = React.useState(false);
React.useEffect(() => {
setMounted(true);
}, []);
if (!mounted) {
return null;
}

return (
<Button
variant="outlined"
onClick={() => {
if (mode === 'light') {
setMode('dark');
} else {
setMode('light');
}
}}
>
{mode === 'light' ? <Moon /> : <Sun />}
</Button>
);
};

const theme = experimental_extendTheme({
colorSchemes: {
light: {
palette: {
primary: teal,
secondary: deepOrange,
},
},
dark: {
palette: {
primary: cyan,
secondary: orange,
},
},
},
});

export default function Page() {
return (
<CssVarsProvider theme={theme}>
<Box bgcolor="background.paper" sx={{ p: 1 }}>
<Box sx={{ py: 2, mx: 'auto' }}>
<Box sx={{ pb: 4 }}>
<ColorSchemePicker />
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button variant="contained">Text</Button>
<Button variant="outlined">Text</Button>
<Button>Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="secondary" variant="contained">
Text
</Button>
<Button color="secondary" variant="outlined">
Text
</Button>
<Button color="secondary">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="error" variant="contained">
Text
</Button>
<Button color="error" variant="outlined">
Text
</Button>
<Button color="error">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="info" variant="contained">
Text
</Button>
<Button color="info" variant="outlined">
Text
</Button>
<Button color="info">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="warning" variant="contained">
Text
</Button>
<Button color="warning" variant="outlined">
Text
</Button>
<Button color="warning">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="success" variant="contained">
Text
</Button>
<Button color="success" variant="outlined">
Text
</Button>
<Button color="success">Text</Button>
</Box>
</Box>
</Box>
</CssVarsProvider>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
import * as React from 'react';
import {
Experimental_CssVarsProvider as CssVarsProvider,
useColorScheme,
experimental_extendTheme,
} from '@mui/material/styles';
import Moon from '@mui/icons-material/DarkMode';
import Sun from '@mui/icons-material/LightMode';
import Button from '@mui/material/Button';
import Box from '@mui/material/Box';
import { teal, deepOrange, orange, cyan } from '@mui/material/colors';

const ColorSchemePicker = () => {
const { mode, setMode } = useColorScheme();
const [mounted, setMounted] = React.useState(false);
React.useEffect(() => {
setMounted(true);
}, []);
if (!mounted) {
return null;
}

return (
<Button
variant="outlined"
onClick={() => {
if (mode === 'light') {
setMode('dark');
} else {
setMode('light');
}
}}
>
{mode === 'light' ? <Moon /> : <Sun />}
</Button>
);
};

const theme = experimental_extendTheme({
colorSchemes: {
light: {
palette: {
primary: teal,
secondary: deepOrange,
},
},
dark: {
palette: {
primary: cyan,
secondary: orange,
},
},
},
});

export default function Page() {
return (
<CssVarsProvider theme={theme}>
<Box bgcolor="background.paper" sx={{ p: 1 }}>
<Box sx={{ py: 2, mx: 'auto' }}>
<Box sx={{ pb: 4 }}>
<ColorSchemePicker />
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button variant="contained">Text</Button>
<Button variant="outlined">Text</Button>
<Button>Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="secondary" variant="contained">
Text
</Button>
<Button color="secondary" variant="outlined">
Text
</Button>
<Button color="secondary">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="error" variant="contained">
Text
</Button>
<Button color="error" variant="outlined">
Text
</Button>
<Button color="error">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="info" variant="contained">
Text
</Button>
<Button color="info" variant="outlined">
Text
</Button>
<Button color="info">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="warning" variant="contained">
Text
</Button>
<Button color="warning" variant="outlined">
Text
</Button>
<Button color="warning">Text</Button>
</Box>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 4, mb: 1 }}>
<Button color="success" variant="contained">
Text
</Button>
<Button color="success" variant="outlined">
Text
</Button>
<Button color="success">Text</Button>
</Box>
</Box>
</Box>
</CssVarsProvider>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<CssVarsProvider>
<ThemeConsumer />
</CssVarsProvider>
Loading