Skip to content

Commit a6354e3

Browse files
feat: use css media query for default theming (#1631)
1 parent a471518 commit a6354e3

File tree

11 files changed

+140
-0
lines changed

11 files changed

+140
-0
lines changed

apps/svelte.dev/src/routes/(authed)/playground/[id]/AppControls.svelte

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,12 @@
294294
.icon:disabled {
295295
color: #ccc;
296296
297+
:root:not(.light) & {
298+
@media (prefers-color-scheme: dark) {
299+
color: #555;
300+
}
301+
}
302+
297303
:root.dark & {
298304
color: #555;
299305
}

apps/svelte.dev/src/routes/_home/Hero.svelte

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,23 @@
6363
radial-gradient(circle at 40% 30%, rgb(235, 243, 249), rgb(214, 222, 228));
6464
}
6565
66+
:root:not(.light) &::before {
67+
@media (prefers-color-scheme: dark) {
68+
background: linear-gradient(to bottom, transparent, var(--sk-bg-1)),
69+
radial-gradient(
70+
64.14% 72.25% at 47.58% 31.75%,
71+
hsl(209deg 6% 47% / 52%) 0%,
72+
hsla(0, 0%, 100%, 0) 100%
73+
),
74+
linear-gradient(
75+
92.4deg,
76+
hsl(210, 7%, 16%) 14.67%,
77+
hsl(0deg 0% 0% / 48%) 54.37%,
78+
hsla(207, 22%, 13%, 0.62) 92.49%
79+
),
80+
linear-gradient(0deg, hsl(204, 38%, 20%), hsl(204, 10%, 90%));
81+
}
82+
}
6683
:root.dark &::before {
6784
background: linear-gradient(to bottom, transparent, var(--sk-bg-1)),
6885
radial-gradient(

apps/svelte.dev/src/routes/docs/[topic]/[...path]/+layout.svelte

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@
4242
.toc-container {
4343
background: var(--sk-bg-2);
4444
display: none;
45+
:root:not(.light) & {
46+
@media (prefers-color-scheme: dark) {
47+
background: var(--sk-bg-0);
48+
}
49+
}
4550
4651
:root.dark & {
4752
background: var(--sk-bg-0);

apps/svelte.dev/src/routes/packages/PackageCard.svelte

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@
146146
147147
min-height: 16em;
148148
149+
:root:not(.light) & {
150+
@media (prefers-color-scheme: dark) {
151+
background-color: var(--sk-bg-3);
152+
}
153+
}
154+
149155
:root.dark & {
150156
background-color: var(--sk-bg-3);
151157
}
@@ -233,6 +239,13 @@
233239
width: 3rem;
234240
height: 3rem;
235241
242+
:root:not(.light) &[alt='drizzle logo'],
243+
:root:not(.light) &[alt='paraglide logo'] {
244+
@media (prefers-color-scheme: dark) {
245+
filter: invert(1);
246+
}
247+
}
248+
236249
:root.dark &[alt='drizzle logo'],
237250
:root.dark &[alt='paraglide logo'] {
238251
filter: invert(1);

apps/svelte.dev/src/routes/tutorial/[...slug]/Loading.svelte

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,14 @@
181181
height: 10rem;
182182
}
183183
184+
@media (prefers-color-scheme: dark) {
185+
.loading {
186+
--faded: #444;
187+
--progress: #555;
188+
--cutout: var(--sk-bg-2);
189+
}
190+
}
191+
184192
:global(.dark) .loading {
185193
--faded: #444;
186194
--progress: #555;

packages/site-kit/src/lib/components/Text.svelte

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,11 @@
299299
&.remove {
300300
--color: rgba(255, 0, 0, 0.1);
301301
302+
:root:not(.light) & {
303+
@media (prefers-color-scheme: dark) {
304+
--color: rgba(255, 0, 0, 0.27);
305+
}
306+
}
302307
:root.dark & {
303308
--color: rgba(255, 0, 0, 0.27);
304309
}

packages/site-kit/src/lib/components/ThemeToggle.svelte

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@
4141
.icon {
4242
mask-image: url(icons/theme-dark);
4343
mask-size: 2rem;
44+
:root:not(.light) & {
45+
@media (prefers-color-scheme: dark) {
46+
mask-image: url(icons/theme-light);
47+
}
48+
}
4449
4550
:root.dark & {
4651
mask-image: url(icons/theme-light);

packages/site-kit/src/lib/nav/Nav.svelte

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ Top navigation bar for the application. It provides a slot for the left side, th
211211
background: linear-gradient(to top, rgba(0, 0, 0, 0.05), transparent);
212212
}
213213
214+
:root:not(.light) & {
215+
@media (prefers-color-scheme: dark) {
216+
background-color: var(--sk-bg-3);
217+
}
218+
}
214219
:root.dark & {
215220
background-color: var(--sk-bg-3);
216221
}
@@ -342,6 +347,12 @@ Top navigation bar for the application. It provides a slot for the left side, th
342347
auto;
343348
padding: 0 var(--padding-right) 0 calc(var(--sk-page-padding-side) + 0rem);
344349
350+
:root:not(.light) & {
351+
@media (prefers-color-scheme: dark) {
352+
background-image: url(../branding/svelte-dark.svg);
353+
}
354+
}
355+
345356
:root.dark & {
346357
background-image: url(../branding/svelte-dark.svg);
347358
}

packages/site-kit/src/lib/styles/tokens/colours.css

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,44 @@
4343
/* Misc */
4444
--sk-scrollbar: rgba(0, 0, 0, 0.3);
4545
--sk-shadow: drop-shadow(0px 0px 14px rgba(0, 0, 0, 0.1));
46+
47+
&:not(.light) {
48+
@media (prefers-color-scheme: dark) {
49+
color-scheme: dark;
50+
51+
--sk-bg-hue: 220;
52+
53+
/* Foreground colours */
54+
--sk-fg-1: hsl(var(--sk-bg-hue), 2%, 90%);
55+
--sk-fg-2: hsl(var(--sk-bg-hue), 3%, 80%);
56+
--sk-fg-3: hsl(var(--sk-bg-hue), 5%, 65%);
57+
--sk-fg-4: hsl(var(--sk-bg-hue), 5%, 55%);
58+
--sk-fg-accent: hsl(12, 94%, 62%);
59+
60+
/* Background colours */
61+
--sk-bg-0: hsl(var(--sk-bg-hue), 8%, 10%); /* docs sidebar (dark mode only) */
62+
--sk-bg-1: hsl(var(--sk-bg-hue), 10%, 12%);
63+
--sk-bg-2: hsl(var(--sk-bg-hue), 12%, 14%);
64+
--sk-bg-3: hsl(var(--sk-bg-hue), 14%, 16%);
65+
--sk-bg-4: hsl(var(--sk-bg-hue), 15%, 21%);
66+
--sk-bg-accent: hsl(15, 100%, 35%);
67+
--sk-bg-highlight: hsl(60, 100%, 15%);
68+
69+
/* Border colour */
70+
--sk-border: hsl(var(--sk-bg-hue), 15%, 22%);
71+
72+
/* Syntax highlighting */
73+
--shiki-color-text: hsl(45, 7%, 75%);
74+
--shiki-token-comment: hsl(0, 0%, 55%);
75+
--shiki-token-keyword: hsl(204, 88%, 65%);
76+
--shiki-token-function: hsl(19, 67%, 75%);
77+
--shiki-token-string: hsl(41, 37%, 68%);
78+
79+
/* Misc */
80+
--sk-scrollbar: rgba(255, 255, 255, 0.3);
81+
--sk-shadow: drop-shadow(1px 2px 16px rgba(0, 0, 0, 0.5));
82+
}
83+
}
4684
}
4785

4886
:root.dark {

packages/site-kit/src/lib/styles/tokens/typography.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@
4949
}
5050
}
5151

52+
&:not(.light) {
53+
@media (prefers-color-scheme: dark) {
54+
-webkit-font-smoothing: antialiased;
55+
}
56+
}
57+
5258
&.dark {
5359
-webkit-font-smoothing: antialiased;
5460
}

0 commit comments

Comments
 (0)