Skip to content

Commit

Permalink
fix(theme): Conform theme logic with OS theme preference (nodejs#6138)
Browse files Browse the repository at this point in the history
  • Loading branch information
demakoff committed Nov 23, 2023
1 parent 90af0b5 commit 5882ccb
Show file tree
Hide file tree
Showing 21 changed files with 33 additions and 31 deletions.
2 changes: 1 addition & 1 deletion components/Common/ThemeToggle/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type ThemeToggleProps = {
const ThemeToggle: FC<ThemeToggleProps> = ({ onClick = () => {} }) => {
const t = useTranslations();

const ariaLabel = t('components.header.buttons.toggleDarkMode');
const ariaLabel = t('components.header.buttons.toggleTheme');

return (
<button
Expand Down
18 changes: 10 additions & 8 deletions components/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ import { availableLocales } from '@/next.locales.mjs';
const Header = () => {
const { navigationItems } = useSiteNavigation();
const [showLangPicker, setShowLangPicker] = useState(false);
const { theme, setTheme } = useTheme();
const { resolvedTheme, setTheme } = useTheme();

const pathname = usePathname();
const t = useTranslations();

const toggleLanguage = t('components.header.buttons.toggleLanguage');
const toggleDarkMode = t('components.header.buttons.toggleDarkMode');
const toggleTheme = t('components.header.buttons.toggleTheme');

return (
<header aria-label="Primary">
Expand Down Expand Up @@ -50,19 +50,21 @@ const Header = () => {

<div className="switchers">
<button
className="dark-theme-switcher"
className="theme-switcher"
type="button"
title={toggleDarkMode}
aria-label={toggleDarkMode}
onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}
title={toggleTheme}
aria-label={toggleTheme}
onClick={() =>
setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')
}
>
<Image
priority
width="28"
height="28"
className="dark-image"
src={`${BASE_PATH}/static/images/light-mode.svg`}
alt="Dark Theme Switcher"
alt="Theme Switcher"
/>

<Image
Expand All @@ -71,7 +73,7 @@ const Header = () => {
height="28"
className="light-image"
src={`${BASE_PATH}/static/images/dark-mode.svg`}
alt="Dark Theme Switcher"
alt="Theme Switcher"
/>
</button>

Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/ka.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
2 changes: 1 addition & 1 deletion i18n/locales/zh-tw.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
},
"buttons": {
"toggleLanguage": "Toggle Language",
"toggleDarkMode": "Toggle dark/light mode"
"toggleTheme": "Toggle dark/light mode"
}
},
"navigation": {
Expand Down
4 changes: 2 additions & 2 deletions providers/themeProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import { THEME_STORAGE_KEY } from '@/next.constants.mjs';
export const ThemeProvider: FC<PropsWithChildren> = ({ children }) => (
<NextThemeProvider
attribute="data-theme"
defaultTheme="dark"
defaultTheme="system"
storageKey={THEME_STORAGE_KEY}
enableSystem={false}
enableSystem={true}
>
{children}
</NextThemeProvider>
Expand Down
4 changes: 2 additions & 2 deletions styles/old/layout/dark-theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ html[data-theme='dark'] {
background-color: $dark-black;
color: $white;

.dark-theme-switcher {
.theme-switcher {
img.light-image {
display: none;
}
Expand Down Expand Up @@ -40,7 +40,7 @@ html[data-theme='dark'] {
}

header,
.dark-theme-switcher img,
.theme-switcher img,
.lang-picker-toggler img {
background-color: $dark-black2;
}
Expand Down
4 changes: 2 additions & 2 deletions styles/old/page-modules/header.css
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
header,
.dark-theme-switcher img,
.theme-switcher img,
.lang-picker-toggler img {
background-color: $node-gray;
}
Expand Down Expand Up @@ -47,7 +47,7 @@ header {
top: 0;
}

.dark-theme-switcher {
.theme-switcher {
border: none;
cursor: pointer;
margin: 0 8px 0 0;
Expand Down

0 comments on commit 5882ccb

Please sign in to comment.