Skip to content

Commit e2d8327

Browse files
committed
Merge pr/1706 into beta
2 parents a429a02 + 56a5b3c commit e2d8327

File tree

4 files changed

+17
-24
lines changed

4 files changed

+17
-24
lines changed

src/lib/output/themes/default/assets/typedoc/Theme.ts

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,5 @@ export function initTheme(choices: HTMLOptionElement) {
1616
// - src/lib/output/themes/defaults/layouts/default.tsx
1717
// - src/lib/utils/highlighter.tsx
1818
function setTheme(theme: ThemeChoice) {
19-
switch (theme) {
20-
case "os":
21-
document.body.classList.remove("light", "dark");
22-
break;
23-
case "light":
24-
document.body.classList.remove("dark");
25-
document.body.classList.add("light");
26-
break;
27-
case "dark":
28-
document.body.classList.remove("light");
29-
document.body.classList.add("dark");
30-
break;
31-
}
19+
document.documentElement.dataset.theme = theme;
3220
}

src/lib/output/themes/default/layouts/default.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export const defaultLayout = (context: DefaultThemeRenderContext, props: PageEve
2828
<body>
2929
{context.hook("body.begin")}
3030
<script>
31-
<Raw html='document.body.classList.add(localStorage.getItem("tsd-theme") || "os")' />
31+
<Raw html='document.documentElement.dataset.theme =localStorage.getItem("tsd-theme") || "os"' />
3232
</script>
3333
{context.toolbar(props)}
3434

src/lib/utils/highlighter.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ class DoubleHighlighter {
9797
style.push(...darkRules);
9898
style.push("} }", "");
9999

100-
style.push("body.light {");
100+
style.push(":root[data-theme='light'] {");
101101
style.push(...lightRules);
102102
style.push("}", "");
103103

104-
style.push("body.dark {");
104+
style.push(":root[data-theme='dark'] {");
105105
style.push(...darkRules);
106106
style.push("}", "");
107107

static/style.css

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
--light-color-ts-private: #707070;
1717
--light-color-ts-variable: #4d68ff;
1818
--light-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
19+
--light-color-scheme: light;
1920

2021
/* Dark */
2122
--dark-color-background: #1a1c1e;
@@ -34,8 +35,7 @@
3435
--dark-color-ts-private: #e2e2e2;
3536
--dark-color-ts-variable: #4d68ff;
3637
--dark-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23fff' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
37-
38-
color-scheme: light dark;
38+
--dark-color-scheme: dark;
3939
}
4040

4141
@media (prefers-color-scheme: light) {
@@ -56,6 +56,7 @@
5656
--color-ts-private: var(--light-color-ts-private);
5757
--color-ts-variable: var(--light-color-ts-variable);
5858
--external-icon: var(--light-external-icon);
59+
--color-scheme: var(--light-color-scheme);
5960
}
6061
}
6162

@@ -77,14 +78,19 @@
7778
--color-ts-private: var(--dark-color-ts-private);
7879
--color-ts-variable: var(--dark-color-ts-variable);
7980
--external-icon: var(--dark-external-icon);
81+
--color-scheme: var(--dark-color-scheme);
8082
}
8183
}
8284

85+
html {
86+
color-scheme: var(--color-scheme);
87+
}
88+
8389
body {
8490
margin: 0;
8591
}
8692

87-
body.light {
93+
:root[data-theme="light"] {
8894
--color-background: var(--light-color-background);
8995
--color-background-secondary: var(--light-color-background-secondary);
9096
--color-icon-background: var(--light-color-icon-background);
@@ -101,11 +107,10 @@ body.light {
101107
--color-ts-private: var(--light-color-ts-private);
102108
--color-ts-variable: var(--light-color-ts-variable);
103109
--external-icon: var(--light-external-icon);
104-
105-
color-scheme: light;
110+
--color-scheme: var(--light-color-scheme);
106111
}
107112

108-
body.dark {
113+
:root[data-theme="dark"] {
109114
--color-background: var(--dark-color-background);
110115
--color-background-secondary: var(--dark-color-background-secondary);
111116
--color-icon-background: var(--dark-color-icon-background);
@@ -122,8 +127,7 @@ body.dark {
122127
--color-ts-private: var(--dark-color-ts-private);
123128
--color-ts-variable: var(--dark-color-ts-variable);
124129
--external-icon: var(--dark-external-icon);
125-
126-
color-scheme: dark;
130+
--color-scheme: var(--dark-color-scheme);
127131
}
128132

129133
h1,
@@ -133,6 +137,7 @@ h4,
133137
h5,
134138
h6 {
135139
line-height: 1.2;
140+
136141
}
137142

138143
h1 {

0 commit comments

Comments
 (0)