11/**
22 * CSS injected into the page as a single <style> tag.
33 * All class names use the `gce-` prefix to avoid collisions with host pages.
4+ *
5+ * Build-time constant __THEME__ selects the color palette.
6+ * Dead code elimination removes the unused palette from the bundle.
47 */
5- export const CSS = `
8+
9+ declare const __THEME__ : string ;
10+
11+ export const LIGHT_COLORS = `
612:root {
7- --gce-line-height: 1.5em;
8- --gce-font-size: 13px;
9- --gce-font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
10- --gce-ui-font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
1113 --gce-bg: #f6f8fa;
1214 --gce-border: #d0d7de;
1315 --gce-header-bg: #f6f8fa;
@@ -18,6 +20,90 @@ export const CSS = `
1820 --gce-code-bg: #ffffff;
1921}
2022
23+ .gce-container .hljs-keyword,
24+ .gce-container .hljs-selector-tag,
25+ .gce-container .hljs-built_in,
26+ .gce-container .hljs-name,
27+ .gce-container .hljs-tag { color: #cf222e; }
28+
29+ .gce-container .hljs-string,
30+ .gce-container .hljs-attr,
31+ .gce-container .hljs-symbol,
32+ .gce-container .hljs-bullet,
33+ .gce-container .hljs-addition { color: #0a3069; }
34+
35+ .gce-container .hljs-title,
36+ .gce-container .hljs-section,
37+ .gce-container .hljs-type,
38+ .gce-container .hljs-function { color: #8250df; }
39+
40+ .gce-container .hljs-variable,
41+ .gce-container .hljs-template-variable { color: #953800; }
42+
43+ .gce-container .hljs-comment,
44+ .gce-container .hljs-quote,
45+ .gce-container .hljs-deletion,
46+ .gce-container .hljs-meta { color: #6e7781; font-style: italic; }
47+
48+ .gce-container .hljs-number,
49+ .gce-container .hljs-regexp,
50+ .gce-container .hljs-literal,
51+ .gce-container .hljs-doctag { color: #0550ae; }
52+ ` ;
53+
54+ export const DARK_COLORS = `
55+ :root {
56+ --gce-bg: #161b22;
57+ --gce-border: #30363d;
58+ --gce-header-bg: #161b22;
59+ --gce-header-text: #e6edf3;
60+ --gce-header-link: #58a6ff;
61+ --gce-lineno-color: #8b949e;
62+ --gce-lineno-bg: #161b22;
63+ --gce-code-bg: #0d1117;
64+ }
65+
66+ .gce-container .hljs-keyword,
67+ .gce-container .hljs-selector-tag,
68+ .gce-container .hljs-built_in,
69+ .gce-container .hljs-name,
70+ .gce-container .hljs-tag { color: #ff7b72; }
71+
72+ .gce-container .hljs-string,
73+ .gce-container .hljs-attr,
74+ .gce-container .hljs-symbol,
75+ .gce-container .hljs-bullet,
76+ .gce-container .hljs-addition { color: #a5d6ff; }
77+
78+ .gce-container .hljs-title,
79+ .gce-container .hljs-section,
80+ .gce-container .hljs-type,
81+ .gce-container .hljs-function { color: #d2a8ff; }
82+
83+ .gce-container .hljs-variable,
84+ .gce-container .hljs-template-variable { color: #ffa657; }
85+
86+ .gce-container .hljs-comment,
87+ .gce-container .hljs-quote,
88+ .gce-container .hljs-deletion,
89+ .gce-container .hljs-meta { color: #8b949e; font-style: italic; }
90+
91+ .gce-container .hljs-number,
92+ .gce-container .hljs-regexp,
93+ .gce-container .hljs-literal,
94+ .gce-container .hljs-doctag { color: #79c0ff; }
95+ ` ;
96+
97+ const THEME_COLORS = __THEME__ === "dark" ? DARK_COLORS : LIGHT_COLORS ;
98+
99+ export const CSS = `
100+ :root {
101+ --gce-line-height: 1.5em;
102+ --gce-font-size: 13px;
103+ --gce-font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
104+ --gce-ui-font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
105+ }
106+ ${ THEME_COLORS }
21107.gce-container,
22108.gce-container *,
23109.gce-container *::before,
@@ -139,36 +225,6 @@ export const CSS = `
139225 text-decoration: none;
140226}
141227
142- .gce-container .hljs-keyword,
143- .gce-container .hljs-selector-tag,
144- .gce-container .hljs-built_in,
145- .gce-container .hljs-name,
146- .gce-container .hljs-tag { color: #cf222e; }
147-
148- .gce-container .hljs-string,
149- .gce-container .hljs-attr,
150- .gce-container .hljs-symbol,
151- .gce-container .hljs-bullet,
152- .gce-container .hljs-addition { color: #0a3069; }
153-
154- .gce-container .hljs-title,
155- .gce-container .hljs-section,
156- .gce-container .hljs-type,
157- .gce-container .hljs-function { color: #8250df; }
158-
159- .gce-container .hljs-variable,
160- .gce-container .hljs-template-variable { color: #953800; }
161-
162- .gce-container .hljs-comment,
163- .gce-container .hljs-quote,
164- .gce-container .hljs-deletion,
165- .gce-container .hljs-meta { color: #6e7781; font-style: italic; }
166-
167- .gce-container .hljs-number,
168- .gce-container .hljs-regexp,
169- .gce-container .hljs-literal,
170- .gce-container .hljs-doctag { color: #0550ae; }
171-
172228.gce-container .hljs-emphasis { font-style: italic; }
173229
174230.gce-container .hljs-strong { font-weight: bold; }
0 commit comments