Skip to content

Commit e4369f4

Browse files
committed
feat(theme): add support to auto theme whith media query
1 parent 8c40244 commit e4369f4

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/scripts/theme.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,18 @@ const normalizeKey = (k) =>
3131
.toLowerCase()
3232
.replace(/^theme-/, '');
3333

34+
const preferDarkMode = ({ theme }) => {
35+
if (theme === 'auto') {
36+
if (typeof window.matchMedia === 'function') {
37+
const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');
38+
return prefersDarkScheme && prefersDarkScheme.matches;
39+
}
40+
}
41+
return theme === 'dark';
42+
};
43+
3444
export const loadTheme = (props, style) => {
35-
THEME = props.theme == 'dark' ? DARK_THEME : LIGHT_THEME;
45+
THEME = preferDarkMode(props) ? DARK_THEME : LIGHT_THEME;
3646
Object.entries(props)
3747
.filter(([k, v]) => v && /^theme[A-Z]/.test(k))
3848
.map(([k, v]) => [normalizeKey(k), v])

0 commit comments

Comments
 (0)