Skip to content

Commit 1c9c2e2

Browse files
authored
Merge pull request #7 from circus2271/feature/improve-dark-theme
improve dark theme
2 parents bdfc290 + 485fe36 commit 1c9c2e2

File tree

3 files changed

+30
-39
lines changed

3 files changed

+30
-39
lines changed

src/components/Footer/styles.module.css

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@
4747
background: 50% no-repeat;
4848
background-size: contain;
4949
background-image: url('./logo-dark.svg');
50-
}
5150

52-
:global(.theme-dark) .logo {
53-
background-image: url('./logo-light.svg');
51+
@media (prefers-color-scheme: dark) {
52+
background-image: url('./logo-light.svg');
53+
}
5454
}
5555

5656
.cooperationInfo {

src/pages/_app.tsx

+1-24
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,9 @@
11
import { AppProps } from 'next/app';
22
import Head from 'next/head';
3-
import React, { useEffect, useLayoutEffect } from 'react';
3+
import React from 'react';
44
import './../styles/globals.css';
55

6-
const useUniversalLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
7-
86
export default function App({ Component, pageProps }: AppProps) {
9-
useUniversalLayoutEffect(() => {
10-
if (typeof window === 'undefined' || typeof document === 'undefined' || !document.body) {
11-
return;
12-
}
13-
14-
const handleDarkmodeChange = (event?: MediaQueryListEvent) => {
15-
const isDarkMode = event == null ? window.matchMedia('(prefers-color-scheme: dark)').matches : event.matches;
16-
17-
document.body.classList.toggle('theme-dark', isDarkMode);
18-
document.body.classList.toggle('theme-light', !isDarkMode);
19-
};
20-
21-
handleDarkmodeChange();
22-
23-
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', handleDarkmodeChange);
24-
25-
return () => {
26-
window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', handleDarkmodeChange);
27-
};
28-
}, []);
29-
307
return (
318
<>
329
<Head>

src/styles/variables.css

+26-12
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,32 @@
1313
--text-color-white: var(--color-white);
1414

1515
/* Theme colors*/
16+
body {
17+
--background-color: var(--background-color-light);
18+
--text-color: var(--text-color-black);
19+
--link-color: var(--color-blue);
20+
--button-color: var(--text-color-black);
21+
--button-primary-color: var(--color-blue);
22+
--button-primary-text-color: var(--color-white);
23+
--button-text-color: var(--text-color-white);
24+
--border-color: var(--text-color-black);
25+
background-color: rgb(var(--background-color));
26+
--background-image-blend-mode: difference;
27+
28+
@media (prefers-color-scheme: dark) {
29+
--background-color: var(--background-color-dark);
30+
--text-color: var(--text-color-white);
31+
--link-color: var(--color-blue);
32+
--button-color: var(--text-color-white);
33+
--button-primary-color: var(--color-blue);
34+
--button-primary-text-color: var(--color-white);
35+
--button-text-color: var(--text-color-black);
36+
--border-color: var(--text-color-white);
37+
background-color: rgb(var(--background-color));
38+
--background-image-blend-mode: normal;
39+
}
40+
}
41+
1642
.theme-dark {
1743
--background-color: var(--background-color-dark);
1844
--text-color: var(--text-color-white);
@@ -26,18 +52,6 @@
2652
--background-image-blend-mode: normal;
2753
}
2854

29-
.theme-light {
30-
--background-color: var(--background-color-light);
31-
--text-color: var(--text-color-black);
32-
--link-color: var(--color-blue);
33-
--button-color: var(--text-color-black);
34-
--button-primary-color: var(--color-blue);
35-
--button-primary-text-color: var(--color-white);
36-
--button-text-color: var(--text-color-white);
37-
--border-color: var(--text-color-black);
38-
background-color: rgb(var(--background-color));
39-
--background-image-blend-mode: difference;
40-
}
4155

4256
--font-size-s: 14px;
4357
--font-size-m: 20px;

0 commit comments

Comments
 (0)