@wertkit/tokens 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,355 @@
1
+ /* GENERATED by @wertkit/tokens - do not edit. Run `pnpm -F @wertkit/tokens build`. */
2
+ :root {
3
+ --wk-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
4
+ --wk-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
5
+ --wk-text-xs: 0.75rem;
6
+ --wk-leading-xs: 1rem;
7
+ --wk-text-sm: 0.8125rem;
8
+ --wk-leading-sm: 1.25rem;
9
+ --wk-text-md: 0.875rem;
10
+ --wk-leading-md: 1.5rem;
11
+ --wk-text-lg: 1rem;
12
+ --wk-leading-lg: 1.625rem;
13
+ --wk-text-xl: 1.25rem;
14
+ --wk-leading-xl: 1.875rem;
15
+ --wk-text-2xl: 1.5rem;
16
+ --wk-leading-2xl: 2.125rem;
17
+ --wk-weight-regular: 400;
18
+ --wk-weight-medium: 500;
19
+ --wk-weight-semibold: 600;
20
+ --wk-space-0: 0;
21
+ --wk-space-1: 4px;
22
+ --wk-space-2: 8px;
23
+ --wk-space-3: 12px;
24
+ --wk-space-4: 16px;
25
+ --wk-space-6: 24px;
26
+ --wk-space-8: 32px;
27
+ --wk-space-12: 48px;
28
+ --wk-space-16: 64px;
29
+ --wk-radius-sm: 6px;
30
+ --wk-radius-md: 8px;
31
+ --wk-radius-lg: 12px;
32
+ --wk-radius-full: 9999px;
33
+ --wk-border-thin: 1px;
34
+ --wk-border-thick: 2px;
35
+ --wk-shadow-sm: 0 1px 2px rgba(0,0,0,0.04);
36
+ --wk-shadow-md: 0 8px 24px -6px rgba(0,0,0,0.10), 0 2px 6px -2px rgba(0,0,0,0.05);
37
+ --wk-tracking-tight: -0.014em;
38
+ --wk-tracking-normal: 0;
39
+ --wk-tracking-wide: 0.02em;
40
+ --wk-motion-fast: 120ms;
41
+ --wk-motion-base: 200ms;
42
+ --wk-motion-ease: cubic-bezier(0.2, 0, 0.2, 1);
43
+ --wk-motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
44
+ --wk-z-base: 0;
45
+ --wk-z-sticky: 100;
46
+ --wk-z-overlay: 200;
47
+ --wk-z-modal: 300;
48
+ --wk-z-popover: 400;
49
+ --wk-z-toast: 500;
50
+ --wk-control-h-sm: 28px;
51
+ --wk-control-h-md: 36px;
52
+ --wk-control-h-lg: 44px;
53
+ --wk-control-px: var(--wk-space-3);
54
+ --wk-surface-p: var(--wk-space-6);
55
+ --wk-cell-py: var(--wk-space-3);
56
+ --wk-focus-width: 2px;
57
+ --wk-safe-t: env(safe-area-inset-top, 0px);
58
+ --wk-safe-b: env(safe-area-inset-bottom, 0px);
59
+ --wk-safe-l: env(safe-area-inset-left, 0px);
60
+ --wk-safe-r: env(safe-area-inset-right, 0px);
61
+ --wk-titlebar-h: 32px;
62
+ }
63
+
64
+ /* Touch devices get larger controls without any per-component change. */
65
+ @media (pointer: coarse) {
66
+ :root {
67
+ --wk-control-h-sm: 36px;
68
+ --wk-control-h-md: 44px;
69
+ --wk-control-h-lg: 52px;
70
+ --wk-control-px: var(--wk-space-4);
71
+ }
72
+ }
73
+
74
+ [data-density="compact"] {
75
+ --wk-control-h-sm: 24px;
76
+ --wk-control-h-md: 30px;
77
+ --wk-control-h-lg: 36px;
78
+ --wk-control-px: var(--wk-space-2);
79
+ --wk-surface-p: var(--wk-space-4);
80
+ --wk-cell-py: var(--wk-space-2);
81
+ }
82
+
83
+ /* Default: light, unless the OS asks for dark and no theme is pinned. */
84
+ :root {
85
+ color-scheme: light;
86
+ --wk-bg: #ffffff;
87
+ --wk-bg-subtle: #f7f9fa;
88
+ --wk-bg-raised: #ffffff;
89
+ --wk-bg-inset: #f7f9fa;
90
+ --wk-fg: #1a2127;
91
+ --wk-fg-muted: #52616e;
92
+ --wk-fg-subtle: #94a2ae;
93
+ --wk-border: #dde3e8;
94
+ --wk-border-strong: #c2cbd3;
95
+ --wk-focus-ring: #12958d;
96
+ --wk-accent: #0b7772;
97
+ --wk-accent-hover: #0c5f5c;
98
+ --wk-accent-fg: #ffffff;
99
+ --wk-accent-subtle: #eafaf8;
100
+ --wk-fg-on-solid: #ffffff;
101
+ --wk-danger: #dc3d33;
102
+ --wk-danger-fg: #a02620;
103
+ --wk-danger-subtle: #fdd9d7;
104
+ --wk-warn: #cf9310;
105
+ --wk-warn-fg: #94660a;
106
+ --wk-warn-subtle: #fcecc9;
107
+ --wk-success: #2ea45c;
108
+ --wk-success-fg: #1c6e3d;
109
+ --wk-success-subtle: #d3f2dc;
110
+ --wk-info: #3b7fd8;
111
+ --wk-info-fg: #255494;
112
+ --wk-info-subtle: #d6e6fd;
113
+ --wk-overlay: rgba(14, 19, 23, 0.45);
114
+ --wk-syntax-keyword: #6033c4;
115
+ --wk-syntax-string: #1c6e3d;
116
+ --wk-syntax-number: #94660a;
117
+ --wk-syntax-comment: #94a2ae;
118
+ --wk-syntax-function: #255494;
119
+ --wk-syntax-variable: #1a2127;
120
+ --wk-syntax-type: #0c5f5c;
121
+ --wk-syntax-operator: #6b7b89;
122
+ --wk-syntax-punctuation: #94a2ae;
123
+ --wk-syntax-tag: #a02620;
124
+ --wk-syntax-attribute: #94660a;
125
+ --wk-syntax-invalid: #dc3d33;
126
+ }
127
+
128
+ @media (prefers-color-scheme: dark) {
129
+ :root:not([data-theme]) {
130
+ color-scheme: dark;
131
+ --wk-bg: #0e1317;
132
+ --wk-bg-subtle: #1a2127;
133
+ --wk-bg-raised: #1a2127;
134
+ --wk-bg-inset: #0e1317;
135
+ --wk-fg: #f7f9fa;
136
+ --wk-fg-muted: #94a2ae;
137
+ --wk-fg-subtle: #6b7b89;
138
+ --wk-border: #2b343c;
139
+ --wk-border-strong: #414d58;
140
+ --wk-focus-ring: #2bb5ab;
141
+ --wk-accent: #2bb5ab;
142
+ --wk-accent-hover: #5bd1c8;
143
+ --wk-accent-fg: #0e1317;
144
+ --wk-accent-subtle: #042625;
145
+ --wk-fg-on-solid: #ffffff;
146
+ --wk-danger: #dc3d33;
147
+ --wk-danger-fg: #f59b96;
148
+ --wk-danger-subtle: #4a1512;
149
+ --wk-warn: #cf9310;
150
+ --wk-warn-fg: #f2c65c;
151
+ --wk-warn-subtle: #442f06;
152
+ --wk-success: #2ea45c;
153
+ --wk-success-fg: #84d9a1;
154
+ --wk-success-subtle: #0f321c;
155
+ --wk-info: #3b7fd8;
156
+ --wk-info-fg: #8fb8f4;
157
+ --wk-info-subtle: #122844;
158
+ --wk-overlay: rgba(0, 0, 0, 0.6);
159
+ --wk-syntax-keyword: #c4a5f2;
160
+ --wk-syntax-string: #84d9a1;
161
+ --wk-syntax-number: #f2c65c;
162
+ --wk-syntax-comment: #6b7b89;
163
+ --wk-syntax-function: #8fb8f4;
164
+ --wk-syntax-variable: #f7f9fa;
165
+ --wk-syntax-type: #5bd1c8;
166
+ --wk-syntax-operator: #94a2ae;
167
+ --wk-syntax-punctuation: #6b7b89;
168
+ --wk-syntax-tag: #f59b96;
169
+ --wk-syntax-attribute: #f2c65c;
170
+ --wk-syntax-invalid: #dc3d33;
171
+ }
172
+ }
173
+
174
+ [data-theme="dark"] {
175
+ color-scheme: dark;
176
+ --wk-bg: #0e1317;
177
+ --wk-bg-subtle: #1a2127;
178
+ --wk-bg-raised: #1a2127;
179
+ --wk-bg-inset: #0e1317;
180
+ --wk-fg: #f7f9fa;
181
+ --wk-fg-muted: #94a2ae;
182
+ --wk-fg-subtle: #6b7b89;
183
+ --wk-border: #2b343c;
184
+ --wk-border-strong: #414d58;
185
+ --wk-focus-ring: #2bb5ab;
186
+ --wk-accent: #2bb5ab;
187
+ --wk-accent-hover: #5bd1c8;
188
+ --wk-accent-fg: #0e1317;
189
+ --wk-accent-subtle: #042625;
190
+ --wk-fg-on-solid: #ffffff;
191
+ --wk-danger: #dc3d33;
192
+ --wk-danger-fg: #f59b96;
193
+ --wk-danger-subtle: #4a1512;
194
+ --wk-warn: #cf9310;
195
+ --wk-warn-fg: #f2c65c;
196
+ --wk-warn-subtle: #442f06;
197
+ --wk-success: #2ea45c;
198
+ --wk-success-fg: #84d9a1;
199
+ --wk-success-subtle: #0f321c;
200
+ --wk-info: #3b7fd8;
201
+ --wk-info-fg: #8fb8f4;
202
+ --wk-info-subtle: #122844;
203
+ --wk-overlay: rgba(0, 0, 0, 0.6);
204
+ --wk-syntax-keyword: #c4a5f2;
205
+ --wk-syntax-string: #84d9a1;
206
+ --wk-syntax-number: #f2c65c;
207
+ --wk-syntax-comment: #6b7b89;
208
+ --wk-syntax-function: #8fb8f4;
209
+ --wk-syntax-variable: #f7f9fa;
210
+ --wk-syntax-type: #5bd1c8;
211
+ --wk-syntax-operator: #94a2ae;
212
+ --wk-syntax-punctuation: #6b7b89;
213
+ --wk-syntax-tag: #f59b96;
214
+ --wk-syntax-attribute: #f2c65c;
215
+ --wk-syntax-invalid: #dc3d33;
216
+ }
217
+
218
+ [data-theme="light"] {
219
+ color-scheme: light;
220
+ --wk-bg: #ffffff;
221
+ --wk-bg-subtle: #f7f9fa;
222
+ --wk-bg-raised: #ffffff;
223
+ --wk-bg-inset: #f7f9fa;
224
+ --wk-fg: #1a2127;
225
+ --wk-fg-muted: #52616e;
226
+ --wk-fg-subtle: #94a2ae;
227
+ --wk-border: #dde3e8;
228
+ --wk-border-strong: #c2cbd3;
229
+ --wk-focus-ring: #12958d;
230
+ --wk-accent: #0b7772;
231
+ --wk-accent-hover: #0c5f5c;
232
+ --wk-accent-fg: #ffffff;
233
+ --wk-accent-subtle: #eafaf8;
234
+ --wk-fg-on-solid: #ffffff;
235
+ --wk-danger: #dc3d33;
236
+ --wk-danger-fg: #a02620;
237
+ --wk-danger-subtle: #fdd9d7;
238
+ --wk-warn: #cf9310;
239
+ --wk-warn-fg: #94660a;
240
+ --wk-warn-subtle: #fcecc9;
241
+ --wk-success: #2ea45c;
242
+ --wk-success-fg: #1c6e3d;
243
+ --wk-success-subtle: #d3f2dc;
244
+ --wk-info: #3b7fd8;
245
+ --wk-info-fg: #255494;
246
+ --wk-info-subtle: #d6e6fd;
247
+ --wk-overlay: rgba(14, 19, 23, 0.45);
248
+ --wk-syntax-keyword: #6033c4;
249
+ --wk-syntax-string: #1c6e3d;
250
+ --wk-syntax-number: #94660a;
251
+ --wk-syntax-comment: #94a2ae;
252
+ --wk-syntax-function: #255494;
253
+ --wk-syntax-variable: #1a2127;
254
+ --wk-syntax-type: #0c5f5c;
255
+ --wk-syntax-operator: #6b7b89;
256
+ --wk-syntax-punctuation: #94a2ae;
257
+ --wk-syntax-tag: #a02620;
258
+ --wk-syntax-attribute: #94660a;
259
+ --wk-syntax-invalid: #dc3d33;
260
+ }
261
+
262
+ [data-theme="night"] {
263
+ color-scheme: dark;
264
+ --wk-bg: #191410;
265
+ --wk-bg-subtle: #29231b;
266
+ --wk-bg-raised: #29231b;
267
+ --wk-bg-inset: #191410;
268
+ --wk-fg: #e8dcc8;
269
+ --wk-fg-muted: #b8a081;
270
+ --wk-fg-subtle: #96805f;
271
+ --wk-border: #40372a;
272
+ --wk-border-strong: #5d4f3a;
273
+ --wk-focus-ring: #2bb5ab;
274
+ --wk-accent: #5bd1c8;
275
+ --wk-accent-hover: #96e5de;
276
+ --wk-accent-fg: #191410;
277
+ --wk-accent-subtle: #042625;
278
+ --wk-fg-on-solid: #ffffff;
279
+ --wk-danger: #dc3d33;
280
+ --wk-danger-fg: #f59b96;
281
+ --wk-danger-subtle: #4a1512;
282
+ --wk-warn: #cf9310;
283
+ --wk-warn-fg: #f2c65c;
284
+ --wk-warn-subtle: #442f06;
285
+ --wk-success: #2ea45c;
286
+ --wk-success-fg: #84d9a1;
287
+ --wk-success-subtle: #0f321c;
288
+ --wk-info: #3b7fd8;
289
+ --wk-info-fg: #8fb8f4;
290
+ --wk-info-subtle: #122844;
291
+ --wk-overlay: rgba(0, 0, 0, 0.65);
292
+ --wk-syntax-keyword: #c4a5f2;
293
+ --wk-syntax-string: #84d9a1;
294
+ --wk-syntax-number: #f2c65c;
295
+ --wk-syntax-comment: #96805f;
296
+ --wk-syntax-function: #8fb8f4;
297
+ --wk-syntax-variable: #e8dcc8;
298
+ --wk-syntax-type: #5bd1c8;
299
+ --wk-syntax-operator: #b8a081;
300
+ --wk-syntax-punctuation: #96805f;
301
+ --wk-syntax-tag: #f59b96;
302
+ --wk-syntax-attribute: #f2c65c;
303
+ --wk-syntax-invalid: #dc3d33;
304
+ }
305
+
306
+ [data-theme="sepia"] {
307
+ color-scheme: light;
308
+ --wk-bg: #fbf8f3;
309
+ --wk-bg-subtle: #f4ede1;
310
+ --wk-bg-raised: #fbf8f3;
311
+ --wk-bg-inset: #f4ede1;
312
+ --wk-fg: #29231b;
313
+ --wk-fg-muted: #5d4f3a;
314
+ --wk-fg-subtle: #96805f;
315
+ --wk-border: #e8dcc8;
316
+ --wk-border-strong: #d6c4a6;
317
+ --wk-focus-ring: #0b7772;
318
+ --wk-accent: #0c5f5c;
319
+ --wk-accent-hover: #0e4c4a;
320
+ --wk-accent-fg: #fbf8f3;
321
+ --wk-accent-subtle: #dcebe4;
322
+ --wk-fg-on-solid: #fbf8f3;
323
+ --wk-danger: #a02620;
324
+ --wk-danger-fg: #a02620;
325
+ --wk-danger-subtle: #fdd9d7;
326
+ --wk-warn: #94660a;
327
+ --wk-warn-fg: #94660a;
328
+ --wk-warn-subtle: #fcecc9;
329
+ --wk-success: #1c6e3d;
330
+ --wk-success-fg: #1c6e3d;
331
+ --wk-success-subtle: #d3f2dc;
332
+ --wk-info: #255494;
333
+ --wk-info-fg: #255494;
334
+ --wk-info-subtle: #d6e6fd;
335
+ --wk-overlay: rgba(41, 35, 27, 0.45);
336
+ --wk-syntax-keyword: #6033c4;
337
+ --wk-syntax-string: #1c6e3d;
338
+ --wk-syntax-number: #94660a;
339
+ --wk-syntax-comment: #96805f;
340
+ --wk-syntax-function: #255494;
341
+ --wk-syntax-variable: #29231b;
342
+ --wk-syntax-type: #0c5f5c;
343
+ --wk-syntax-operator: #77654a;
344
+ --wk-syntax-punctuation: #96805f;
345
+ --wk-syntax-tag: #a02620;
346
+ --wk-syntax-attribute: #94660a;
347
+ --wk-syntax-invalid: #dc3d33;
348
+ }
349
+
350
+ @media (prefers-reduced-motion: reduce) {
351
+ :root {
352
+ --wk-motion-fast: 1ms;
353
+ --wk-motion-base: 1ms;
354
+ }
355
+ }
package/dist/tokens.rs ADDED
@@ -0,0 +1,284 @@
1
+ // GENERATED by @wertkit/tokens - do not edit.
2
+
3
+ #[derive(Debug, Clone, Copy)]
4
+ pub struct Theme {
5
+ pub bg: &'static str,
6
+ pub bg_subtle: &'static str,
7
+ pub bg_raised: &'static str,
8
+ pub bg_inset: &'static str,
9
+ pub fg: &'static str,
10
+ pub fg_muted: &'static str,
11
+ pub fg_subtle: &'static str,
12
+ pub border: &'static str,
13
+ pub border_strong: &'static str,
14
+ pub focus_ring: &'static str,
15
+ pub accent: &'static str,
16
+ pub accent_hover: &'static str,
17
+ pub accent_fg: &'static str,
18
+ pub accent_subtle: &'static str,
19
+ pub fg_on_solid: &'static str,
20
+ pub danger: &'static str,
21
+ pub danger_fg: &'static str,
22
+ pub danger_subtle: &'static str,
23
+ pub warn: &'static str,
24
+ pub warn_fg: &'static str,
25
+ pub warn_subtle: &'static str,
26
+ pub success: &'static str,
27
+ pub success_fg: &'static str,
28
+ pub success_subtle: &'static str,
29
+ pub info: &'static str,
30
+ pub info_fg: &'static str,
31
+ pub info_subtle: &'static str,
32
+ pub overlay: &'static str,
33
+ pub syntax_keyword: &'static str,
34
+ pub syntax_string: &'static str,
35
+ pub syntax_number: &'static str,
36
+ pub syntax_comment: &'static str,
37
+ pub syntax_function: &'static str,
38
+ pub syntax_variable: &'static str,
39
+ pub syntax_type: &'static str,
40
+ pub syntax_operator: &'static str,
41
+ pub syntax_punctuation: &'static str,
42
+ pub syntax_tag: &'static str,
43
+ pub syntax_attribute: &'static str,
44
+ pub syntax_invalid: &'static str,
45
+ }
46
+
47
+ pub const DARK: Theme = Theme {
48
+ bg: "#0e1317",
49
+ bg_subtle: "#1a2127",
50
+ bg_raised: "#1a2127",
51
+ bg_inset: "#0e1317",
52
+ fg: "#f7f9fa",
53
+ fg_muted: "#94a2ae",
54
+ fg_subtle: "#6b7b89",
55
+ border: "#2b343c",
56
+ border_strong: "#414d58",
57
+ focus_ring: "#2bb5ab",
58
+ accent: "#2bb5ab",
59
+ accent_hover: "#5bd1c8",
60
+ accent_fg: "#0e1317",
61
+ accent_subtle: "#042625",
62
+ fg_on_solid: "#ffffff",
63
+ danger: "#dc3d33",
64
+ danger_fg: "#f59b96",
65
+ danger_subtle: "#4a1512",
66
+ warn: "#cf9310",
67
+ warn_fg: "#f2c65c",
68
+ warn_subtle: "#442f06",
69
+ success: "#2ea45c",
70
+ success_fg: "#84d9a1",
71
+ success_subtle: "#0f321c",
72
+ info: "#3b7fd8",
73
+ info_fg: "#8fb8f4",
74
+ info_subtle: "#122844",
75
+ overlay: "rgba(0, 0, 0, 0.6)",
76
+ syntax_keyword: "#c4a5f2",
77
+ syntax_string: "#84d9a1",
78
+ syntax_number: "#f2c65c",
79
+ syntax_comment: "#6b7b89",
80
+ syntax_function: "#8fb8f4",
81
+ syntax_variable: "#f7f9fa",
82
+ syntax_type: "#5bd1c8",
83
+ syntax_operator: "#94a2ae",
84
+ syntax_punctuation: "#6b7b89",
85
+ syntax_tag: "#f59b96",
86
+ syntax_attribute: "#f2c65c",
87
+ syntax_invalid: "#dc3d33",
88
+ };
89
+
90
+ pub const LIGHT: Theme = Theme {
91
+ bg: "#ffffff",
92
+ bg_subtle: "#f7f9fa",
93
+ bg_raised: "#ffffff",
94
+ bg_inset: "#f7f9fa",
95
+ fg: "#1a2127",
96
+ fg_muted: "#52616e",
97
+ fg_subtle: "#94a2ae",
98
+ border: "#dde3e8",
99
+ border_strong: "#c2cbd3",
100
+ focus_ring: "#12958d",
101
+ accent: "#0b7772",
102
+ accent_hover: "#0c5f5c",
103
+ accent_fg: "#ffffff",
104
+ accent_subtle: "#eafaf8",
105
+ fg_on_solid: "#ffffff",
106
+ danger: "#dc3d33",
107
+ danger_fg: "#a02620",
108
+ danger_subtle: "#fdd9d7",
109
+ warn: "#cf9310",
110
+ warn_fg: "#94660a",
111
+ warn_subtle: "#fcecc9",
112
+ success: "#2ea45c",
113
+ success_fg: "#1c6e3d",
114
+ success_subtle: "#d3f2dc",
115
+ info: "#3b7fd8",
116
+ info_fg: "#255494",
117
+ info_subtle: "#d6e6fd",
118
+ overlay: "rgba(14, 19, 23, 0.45)",
119
+ syntax_keyword: "#6033c4",
120
+ syntax_string: "#1c6e3d",
121
+ syntax_number: "#94660a",
122
+ syntax_comment: "#94a2ae",
123
+ syntax_function: "#255494",
124
+ syntax_variable: "#1a2127",
125
+ syntax_type: "#0c5f5c",
126
+ syntax_operator: "#6b7b89",
127
+ syntax_punctuation: "#94a2ae",
128
+ syntax_tag: "#a02620",
129
+ syntax_attribute: "#94660a",
130
+ syntax_invalid: "#dc3d33",
131
+ };
132
+
133
+ pub const NIGHT: Theme = Theme {
134
+ bg: "#191410",
135
+ bg_subtle: "#29231b",
136
+ bg_raised: "#29231b",
137
+ bg_inset: "#191410",
138
+ fg: "#e8dcc8",
139
+ fg_muted: "#b8a081",
140
+ fg_subtle: "#96805f",
141
+ border: "#40372a",
142
+ border_strong: "#5d4f3a",
143
+ focus_ring: "#2bb5ab",
144
+ accent: "#5bd1c8",
145
+ accent_hover: "#96e5de",
146
+ accent_fg: "#191410",
147
+ accent_subtle: "#042625",
148
+ fg_on_solid: "#ffffff",
149
+ danger: "#dc3d33",
150
+ danger_fg: "#f59b96",
151
+ danger_subtle: "#4a1512",
152
+ warn: "#cf9310",
153
+ warn_fg: "#f2c65c",
154
+ warn_subtle: "#442f06",
155
+ success: "#2ea45c",
156
+ success_fg: "#84d9a1",
157
+ success_subtle: "#0f321c",
158
+ info: "#3b7fd8",
159
+ info_fg: "#8fb8f4",
160
+ info_subtle: "#122844",
161
+ overlay: "rgba(0, 0, 0, 0.65)",
162
+ syntax_keyword: "#c4a5f2",
163
+ syntax_string: "#84d9a1",
164
+ syntax_number: "#f2c65c",
165
+ syntax_comment: "#96805f",
166
+ syntax_function: "#8fb8f4",
167
+ syntax_variable: "#e8dcc8",
168
+ syntax_type: "#5bd1c8",
169
+ syntax_operator: "#b8a081",
170
+ syntax_punctuation: "#96805f",
171
+ syntax_tag: "#f59b96",
172
+ syntax_attribute: "#f2c65c",
173
+ syntax_invalid: "#dc3d33",
174
+ };
175
+
176
+ pub const SEPIA: Theme = Theme {
177
+ bg: "#fbf8f3",
178
+ bg_subtle: "#f4ede1",
179
+ bg_raised: "#fbf8f3",
180
+ bg_inset: "#f4ede1",
181
+ fg: "#29231b",
182
+ fg_muted: "#5d4f3a",
183
+ fg_subtle: "#96805f",
184
+ border: "#e8dcc8",
185
+ border_strong: "#d6c4a6",
186
+ focus_ring: "#0b7772",
187
+ accent: "#0c5f5c",
188
+ accent_hover: "#0e4c4a",
189
+ accent_fg: "#fbf8f3",
190
+ accent_subtle: "#dcebe4",
191
+ fg_on_solid: "#fbf8f3",
192
+ danger: "#a02620",
193
+ danger_fg: "#a02620",
194
+ danger_subtle: "#fdd9d7",
195
+ warn: "#94660a",
196
+ warn_fg: "#94660a",
197
+ warn_subtle: "#fcecc9",
198
+ success: "#1c6e3d",
199
+ success_fg: "#1c6e3d",
200
+ success_subtle: "#d3f2dc",
201
+ info: "#255494",
202
+ info_fg: "#255494",
203
+ info_subtle: "#d6e6fd",
204
+ overlay: "rgba(41, 35, 27, 0.45)",
205
+ syntax_keyword: "#6033c4",
206
+ syntax_string: "#1c6e3d",
207
+ syntax_number: "#94660a",
208
+ syntax_comment: "#96805f",
209
+ syntax_function: "#255494",
210
+ syntax_variable: "#29231b",
211
+ syntax_type: "#0c5f5c",
212
+ syntax_operator: "#77654a",
213
+ syntax_punctuation: "#96805f",
214
+ syntax_tag: "#a02620",
215
+ syntax_attribute: "#94660a",
216
+ syntax_invalid: "#dc3d33",
217
+ };
218
+
219
+ /// ANSI-16 fallback. Prefer this in a TUI: it respects whatever palette
220
+ /// the user configured in their terminal instead of overriding it.
221
+ #[derive(Debug, Clone, Copy)]
222
+ pub enum Ansi {
223
+ Reset, Black, Red, Green, Yellow, Blue, Magenta, Cyan, White,
224
+ BrightBlack, BrightRed, BrightGreen, BrightYellow, BrightBlue,
225
+ BrightMagenta, BrightCyan, BrightWhite,
226
+ }
227
+
228
+ pub const fn ansi(role: &str) -> Ansi {
229
+ match role.as_bytes() {
230
+ b"bg" => Ansi::Reset,
231
+ b"bg-subtle" => Ansi::Reset,
232
+ b"bg-raised" => Ansi::Reset,
233
+ b"bg-inset" => Ansi::Reset,
234
+ b"fg" => Ansi::Reset,
235
+ b"fg-muted" => Ansi::BrightBlack,
236
+ b"fg-subtle" => Ansi::BrightBlack,
237
+ b"border" => Ansi::BrightBlack,
238
+ b"border-strong" => Ansi::White,
239
+ b"focus-ring" => Ansi::Cyan,
240
+ b"accent" => Ansi::Cyan,
241
+ b"accent-hover" => Ansi::BrightCyan,
242
+ b"accent-fg" => Ansi::Black,
243
+ b"accent-subtle" => Ansi::Reset,
244
+ b"fg-on-solid" => Ansi::Reset,
245
+ b"danger" => Ansi::Red,
246
+ b"danger-fg" => Ansi::BrightRed,
247
+ b"danger-subtle" => Ansi::Reset,
248
+ b"warn" => Ansi::Yellow,
249
+ b"warn-fg" => Ansi::BrightYellow,
250
+ b"warn-subtle" => Ansi::Reset,
251
+ b"success" => Ansi::Green,
252
+ b"success-fg" => Ansi::BrightGreen,
253
+ b"success-subtle" => Ansi::Reset,
254
+ b"info" => Ansi::Blue,
255
+ b"info-fg" => Ansi::BrightBlue,
256
+ b"info-subtle" => Ansi::Reset,
257
+ b"overlay" => Ansi::Reset,
258
+ b"syntax-keyword" => Ansi::Reset,
259
+ b"syntax-string" => Ansi::Reset,
260
+ b"syntax-number" => Ansi::Reset,
261
+ b"syntax-comment" => Ansi::Reset,
262
+ b"syntax-function" => Ansi::Reset,
263
+ b"syntax-variable" => Ansi::Reset,
264
+ b"syntax-type" => Ansi::Reset,
265
+ b"syntax-operator" => Ansi::Reset,
266
+ b"syntax-punctuation" => Ansi::Reset,
267
+ b"syntax-tag" => Ansi::Reset,
268
+ b"syntax-attribute" => Ansi::Reset,
269
+ b"syntax-invalid" => Ansi::Reset,
270
+ _ => Ansi::Reset,
271
+ }
272
+ }
273
+
274
+ pub mod space {
275
+ pub const S0: u16 = 0;
276
+ pub const S1: u16 = 4;
277
+ pub const S2: u16 = 8;
278
+ pub const S3: u16 = 12;
279
+ pub const S4: u16 = 16;
280
+ pub const S6: u16 = 24;
281
+ pub const S8: u16 = 32;
282
+ pub const S12: u16 = 48;
283
+ pub const S16: u16 = 64;
284
+ }
package/dist/tokens.ts ADDED
@@ -0,0 +1,265 @@
1
+ // GENERATED by @wertkit/tokens - do not edit.
2
+ // Plain values, no CSS dependency, so a future React Native target can consume
3
+ // the same source of truth.
4
+
5
+ export const themeNames = ["dark","light","night","sepia"] as const;
6
+ export type ThemeName = (typeof themeNames)[number];
7
+
8
+ export const densities = ['normal', 'compact'] as const;
9
+ export type Density = (typeof densities)[number];
10
+
11
+ export const themes = {
12
+ "dark": {
13
+ "bg": "#0e1317",
14
+ "bg-subtle": "#1a2127",
15
+ "bg-raised": "#1a2127",
16
+ "bg-inset": "#0e1317",
17
+ "fg": "#f7f9fa",
18
+ "fg-muted": "#94a2ae",
19
+ "fg-subtle": "#6b7b89",
20
+ "border": "#2b343c",
21
+ "border-strong": "#414d58",
22
+ "focus-ring": "#2bb5ab",
23
+ "accent": "#2bb5ab",
24
+ "accent-hover": "#5bd1c8",
25
+ "accent-fg": "#0e1317",
26
+ "accent-subtle": "#042625",
27
+ "fg-on-solid": "#ffffff",
28
+ "danger": "#dc3d33",
29
+ "danger-fg": "#f59b96",
30
+ "danger-subtle": "#4a1512",
31
+ "warn": "#cf9310",
32
+ "warn-fg": "#f2c65c",
33
+ "warn-subtle": "#442f06",
34
+ "success": "#2ea45c",
35
+ "success-fg": "#84d9a1",
36
+ "success-subtle": "#0f321c",
37
+ "info": "#3b7fd8",
38
+ "info-fg": "#8fb8f4",
39
+ "info-subtle": "#122844",
40
+ "overlay": "rgba(0, 0, 0, 0.6)",
41
+ "syntax-keyword": "#c4a5f2",
42
+ "syntax-string": "#84d9a1",
43
+ "syntax-number": "#f2c65c",
44
+ "syntax-comment": "#6b7b89",
45
+ "syntax-function": "#8fb8f4",
46
+ "syntax-variable": "#f7f9fa",
47
+ "syntax-type": "#5bd1c8",
48
+ "syntax-operator": "#94a2ae",
49
+ "syntax-punctuation": "#6b7b89",
50
+ "syntax-tag": "#f59b96",
51
+ "syntax-attribute": "#f2c65c",
52
+ "syntax-invalid": "#dc3d33"
53
+ },
54
+ "light": {
55
+ "bg": "#ffffff",
56
+ "bg-subtle": "#f7f9fa",
57
+ "bg-raised": "#ffffff",
58
+ "bg-inset": "#f7f9fa",
59
+ "fg": "#1a2127",
60
+ "fg-muted": "#52616e",
61
+ "fg-subtle": "#94a2ae",
62
+ "border": "#dde3e8",
63
+ "border-strong": "#c2cbd3",
64
+ "focus-ring": "#12958d",
65
+ "accent": "#0b7772",
66
+ "accent-hover": "#0c5f5c",
67
+ "accent-fg": "#ffffff",
68
+ "accent-subtle": "#eafaf8",
69
+ "fg-on-solid": "#ffffff",
70
+ "danger": "#dc3d33",
71
+ "danger-fg": "#a02620",
72
+ "danger-subtle": "#fdd9d7",
73
+ "warn": "#cf9310",
74
+ "warn-fg": "#94660a",
75
+ "warn-subtle": "#fcecc9",
76
+ "success": "#2ea45c",
77
+ "success-fg": "#1c6e3d",
78
+ "success-subtle": "#d3f2dc",
79
+ "info": "#3b7fd8",
80
+ "info-fg": "#255494",
81
+ "info-subtle": "#d6e6fd",
82
+ "overlay": "rgba(14, 19, 23, 0.45)",
83
+ "syntax-keyword": "#6033c4",
84
+ "syntax-string": "#1c6e3d",
85
+ "syntax-number": "#94660a",
86
+ "syntax-comment": "#94a2ae",
87
+ "syntax-function": "#255494",
88
+ "syntax-variable": "#1a2127",
89
+ "syntax-type": "#0c5f5c",
90
+ "syntax-operator": "#6b7b89",
91
+ "syntax-punctuation": "#94a2ae",
92
+ "syntax-tag": "#a02620",
93
+ "syntax-attribute": "#94660a",
94
+ "syntax-invalid": "#dc3d33"
95
+ },
96
+ "night": {
97
+ "bg": "#191410",
98
+ "bg-subtle": "#29231b",
99
+ "bg-raised": "#29231b",
100
+ "bg-inset": "#191410",
101
+ "fg": "#e8dcc8",
102
+ "fg-muted": "#b8a081",
103
+ "fg-subtle": "#96805f",
104
+ "border": "#40372a",
105
+ "border-strong": "#5d4f3a",
106
+ "focus-ring": "#2bb5ab",
107
+ "accent": "#5bd1c8",
108
+ "accent-hover": "#96e5de",
109
+ "accent-fg": "#191410",
110
+ "accent-subtle": "#042625",
111
+ "fg-on-solid": "#ffffff",
112
+ "danger": "#dc3d33",
113
+ "danger-fg": "#f59b96",
114
+ "danger-subtle": "#4a1512",
115
+ "warn": "#cf9310",
116
+ "warn-fg": "#f2c65c",
117
+ "warn-subtle": "#442f06",
118
+ "success": "#2ea45c",
119
+ "success-fg": "#84d9a1",
120
+ "success-subtle": "#0f321c",
121
+ "info": "#3b7fd8",
122
+ "info-fg": "#8fb8f4",
123
+ "info-subtle": "#122844",
124
+ "overlay": "rgba(0, 0, 0, 0.65)",
125
+ "syntax-keyword": "#c4a5f2",
126
+ "syntax-string": "#84d9a1",
127
+ "syntax-number": "#f2c65c",
128
+ "syntax-comment": "#96805f",
129
+ "syntax-function": "#8fb8f4",
130
+ "syntax-variable": "#e8dcc8",
131
+ "syntax-type": "#5bd1c8",
132
+ "syntax-operator": "#b8a081",
133
+ "syntax-punctuation": "#96805f",
134
+ "syntax-tag": "#f59b96",
135
+ "syntax-attribute": "#f2c65c",
136
+ "syntax-invalid": "#dc3d33"
137
+ },
138
+ "sepia": {
139
+ "bg": "#fbf8f3",
140
+ "bg-subtle": "#f4ede1",
141
+ "bg-raised": "#fbf8f3",
142
+ "bg-inset": "#f4ede1",
143
+ "fg": "#29231b",
144
+ "fg-muted": "#5d4f3a",
145
+ "fg-subtle": "#96805f",
146
+ "border": "#e8dcc8",
147
+ "border-strong": "#d6c4a6",
148
+ "focus-ring": "#0b7772",
149
+ "accent": "#0c5f5c",
150
+ "accent-hover": "#0e4c4a",
151
+ "accent-fg": "#fbf8f3",
152
+ "accent-subtle": "#dcebe4",
153
+ "fg-on-solid": "#fbf8f3",
154
+ "danger": "#a02620",
155
+ "danger-fg": "#a02620",
156
+ "danger-subtle": "#fdd9d7",
157
+ "warn": "#94660a",
158
+ "warn-fg": "#94660a",
159
+ "warn-subtle": "#fcecc9",
160
+ "success": "#1c6e3d",
161
+ "success-fg": "#1c6e3d",
162
+ "success-subtle": "#d3f2dc",
163
+ "info": "#255494",
164
+ "info-fg": "#255494",
165
+ "info-subtle": "#d6e6fd",
166
+ "overlay": "rgba(41, 35, 27, 0.45)",
167
+ "syntax-keyword": "#6033c4",
168
+ "syntax-string": "#1c6e3d",
169
+ "syntax-number": "#94660a",
170
+ "syntax-comment": "#96805f",
171
+ "syntax-function": "#255494",
172
+ "syntax-variable": "#29231b",
173
+ "syntax-type": "#0c5f5c",
174
+ "syntax-operator": "#77654a",
175
+ "syntax-punctuation": "#96805f",
176
+ "syntax-tag": "#a02620",
177
+ "syntax-attribute": "#94660a",
178
+ "syntax-invalid": "#dc3d33"
179
+ }
180
+ } as const;
181
+ export type ColorRole = keyof (typeof themes)['light'];
182
+
183
+ export const space = {
184
+ "0": "0",
185
+ "1": "4px",
186
+ "2": "8px",
187
+ "3": "12px",
188
+ "4": "16px",
189
+ "6": "24px",
190
+ "8": "32px",
191
+ "12": "48px",
192
+ "16": "64px"
193
+ } as const;
194
+ export const radius = {
195
+ "sm": "6px",
196
+ "md": "8px",
197
+ "lg": "12px",
198
+ "full": "9999px"
199
+ } as const;
200
+ export const text = {
201
+ "xs": {
202
+ "size": "0.75rem",
203
+ "line": "1rem"
204
+ },
205
+ "sm": {
206
+ "size": "0.8125rem",
207
+ "line": "1.25rem"
208
+ },
209
+ "md": {
210
+ "size": "0.875rem",
211
+ "line": "1.5rem"
212
+ },
213
+ "lg": {
214
+ "size": "1rem",
215
+ "line": "1.625rem"
216
+ },
217
+ "xl": {
218
+ "size": "1.25rem",
219
+ "line": "1.875rem"
220
+ },
221
+ "2xl": {
222
+ "size": "1.5rem",
223
+ "line": "2.125rem"
224
+ }
225
+ } as const;
226
+ export const weight = {
227
+ "regular": "400",
228
+ "medium": "500",
229
+ "semibold": "600"
230
+ } as const;
231
+ export const font = {
232
+ "sans": "Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
233
+ "mono": "'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"
234
+ } as const;
235
+ export const motion = {
236
+ "fast": "120ms",
237
+ "base": "200ms",
238
+ "ease": "cubic-bezier(0.2, 0, 0.2, 1)",
239
+ "ease-out": "cubic-bezier(0, 0, 0.2, 1)"
240
+ } as const;
241
+ export const tracking = {
242
+ "tight": "-0.014em",
243
+ "normal": "0",
244
+ "wide": "0.02em"
245
+ } as const;
246
+ export const control = {
247
+ "normal": {
248
+ "sm": "28px",
249
+ "md": "36px",
250
+ "lg": "44px"
251
+ },
252
+ "compact": {
253
+ "sm": "24px",
254
+ "md": "30px",
255
+ "lg": "36px"
256
+ },
257
+ "coarse": {
258
+ "sm": "36px",
259
+ "md": "44px",
260
+ "lg": "52px"
261
+ }
262
+ } as const;
263
+
264
+ /** CSS custom-property name for a colour role, e.g. cssVar('fg-muted'). */
265
+ export const cssVar = (role: ColorRole | string) => `var(--wk-${role})`;
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@wertkit/tokens",
3
+ "version": "0.1.0",
4
+ "description": "Platform-neutral design tokens. Source of truth for every wertkit target.",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "files": [
8
+ "dist",
9
+ "src"
10
+ ],
11
+ "main": "./dist/tokens.ts",
12
+ "types": "./dist/tokens.ts",
13
+ "exports": {
14
+ ".": "./dist/tokens.ts",
15
+ "./css": "./dist/tokens.css",
16
+ "./rust": "./dist/tokens.rs",
17
+ "./src/*": "./src/*"
18
+ },
19
+ "scripts": {
20
+ "build": "node scripts/build.mjs",
21
+ "typecheck": "tsc --noEmit"
22
+ }
23
+ }
@@ -0,0 +1,160 @@
1
+ {
2
+ "$comment": "Raw values. Never consumed by apps directly - themes map roles onto these.",
3
+ "color": {
4
+ "white": "#ffffff",
5
+ "black": "#000000",
6
+ "slate": {
7
+ "50": "#f7f9fa",
8
+ "100": "#eef1f4",
9
+ "200": "#dde3e8",
10
+ "300": "#c2cbd3",
11
+ "400": "#94a2ae",
12
+ "500": "#6b7b89",
13
+ "600": "#52616e",
14
+ "700": "#414d58",
15
+ "800": "#2b343c",
16
+ "900": "#1a2127",
17
+ "950": "#0e1317"
18
+ },
19
+ "sand": {
20
+ "50": "#fbf8f3",
21
+ "100": "#f4ede1",
22
+ "200": "#e8dcc8",
23
+ "300": "#d6c4a6",
24
+ "400": "#b8a081",
25
+ "500": "#96805f",
26
+ "600": "#77654a",
27
+ "700": "#5d4f3a",
28
+ "800": "#40372a",
29
+ "900": "#29231b",
30
+ "950": "#191410"
31
+ },
32
+ "accent": {
33
+ "50": "#eafaf8",
34
+ "100": "#c9f2ee",
35
+ "200": "#96e5de",
36
+ "300": "#5bd1c8",
37
+ "400": "#2bb5ab",
38
+ "500": "#12958d",
39
+ "600": "#0b7772",
40
+ "700": "#0c5f5c",
41
+ "800": "#0e4c4a",
42
+ "900": "#0f3f3e",
43
+ "950": "#042625"
44
+ },
45
+ "red": {
46
+ "100": "#fdd9d7",
47
+ "300": "#f59b96",
48
+ "500": "#dc3d33",
49
+ "700": "#a02620",
50
+ "900": "#4a1512"
51
+ },
52
+ "amber": {
53
+ "100": "#fcecc9",
54
+ "300": "#f2c65c",
55
+ "500": "#cf9310",
56
+ "700": "#94660a",
57
+ "900": "#442f06"
58
+ },
59
+ "green": {
60
+ "100": "#d3f2dc",
61
+ "300": "#84d9a1",
62
+ "500": "#2ea45c",
63
+ "700": "#1c6e3d",
64
+ "900": "#0f321c"
65
+ },
66
+ "blue": {
67
+ "100": "#d6e6fd",
68
+ "300": "#8fb8f4",
69
+ "500": "#3b7fd8",
70
+ "700": "#255494",
71
+ "900": "#122844"
72
+ },
73
+ "violet": {
74
+ "100": "#e9ddfc",
75
+ "300": "#c4a5f2",
76
+ "500": "#8b5cf6",
77
+ "700": "#6033c4",
78
+ "900": "#2e1a5c"
79
+ }
80
+ },
81
+ "font": {
82
+ "sans": "Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
83
+ "mono": "'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"
84
+ },
85
+ "text": {
86
+ "xs": {
87
+ "size": "0.75rem",
88
+ "line": "1rem"
89
+ },
90
+ "sm": {
91
+ "size": "0.8125rem",
92
+ "line": "1.25rem"
93
+ },
94
+ "md": {
95
+ "size": "0.875rem",
96
+ "line": "1.5rem"
97
+ },
98
+ "lg": {
99
+ "size": "1rem",
100
+ "line": "1.625rem"
101
+ },
102
+ "xl": {
103
+ "size": "1.25rem",
104
+ "line": "1.875rem"
105
+ },
106
+ "2xl": {
107
+ "size": "1.5rem",
108
+ "line": "2.125rem"
109
+ }
110
+ },
111
+ "weight": {
112
+ "regular": "400",
113
+ "medium": "500",
114
+ "semibold": "600"
115
+ },
116
+ "space": {
117
+ "0": "0",
118
+ "1": "4px",
119
+ "2": "8px",
120
+ "3": "12px",
121
+ "4": "16px",
122
+ "6": "24px",
123
+ "8": "32px",
124
+ "12": "48px",
125
+ "16": "64px"
126
+ },
127
+ "radius": {
128
+ "sm": "6px",
129
+ "md": "8px",
130
+ "lg": "12px",
131
+ "full": "9999px"
132
+ },
133
+ "border": {
134
+ "thin": "1px",
135
+ "thick": "2px"
136
+ },
137
+ "shadow": {
138
+ "sm": "0 1px 2px rgba(0,0,0,0.04)",
139
+ "md": "0 8px 24px -6px rgba(0,0,0,0.10), 0 2px 6px -2px rgba(0,0,0,0.05)"
140
+ },
141
+ "motion": {
142
+ "fast": "120ms",
143
+ "base": "200ms",
144
+ "ease": "cubic-bezier(0.2, 0, 0.2, 1)",
145
+ "ease-out": "cubic-bezier(0, 0, 0.2, 1)"
146
+ },
147
+ "z": {
148
+ "base": "0",
149
+ "sticky": "100",
150
+ "overlay": "200",
151
+ "modal": "300",
152
+ "popover": "400",
153
+ "toast": "500"
154
+ },
155
+ "tracking": {
156
+ "tight": "-0.014em",
157
+ "normal": "0",
158
+ "wide": "0.02em"
159
+ }
160
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$name": "dark",
3
+ "$colorScheme": "dark",
4
+ "bg": "{color.slate.950}",
5
+ "bg-subtle": "{color.slate.900}",
6
+ "bg-raised": "{color.slate.900}",
7
+ "bg-inset": "{color.slate.950}",
8
+ "fg": "{color.slate.50}",
9
+ "fg-muted": "{color.slate.400}",
10
+ "fg-subtle": "{color.slate.500}",
11
+ "border": "{color.slate.800}",
12
+ "border-strong": "{color.slate.700}",
13
+ "focus-ring": "{color.accent.400}",
14
+ "accent": "{color.accent.400}",
15
+ "accent-hover": "{color.accent.300}",
16
+ "accent-fg": "{color.slate.950}",
17
+ "accent-subtle": "{color.accent.950}",
18
+ "fg-on-solid": "{color.white}",
19
+ "danger": "{color.red.500}",
20
+ "danger-fg": "{color.red.300}",
21
+ "danger-subtle": "{color.red.900}",
22
+ "warn": "{color.amber.500}",
23
+ "warn-fg": "{color.amber.300}",
24
+ "warn-subtle": "{color.amber.900}",
25
+ "success": "{color.green.500}",
26
+ "success-fg": "{color.green.300}",
27
+ "success-subtle": "{color.green.900}",
28
+ "info": "{color.blue.500}",
29
+ "info-fg": "{color.blue.300}",
30
+ "info-subtle": "{color.blue.900}",
31
+ "overlay": "rgba(0, 0, 0, 0.6)",
32
+ "syntax-keyword": "{color.violet.300}",
33
+ "syntax-string": "{color.green.300}",
34
+ "syntax-number": "{color.amber.300}",
35
+ "syntax-comment": "{color.slate.500}",
36
+ "syntax-function": "{color.blue.300}",
37
+ "syntax-variable": "{color.slate.50}",
38
+ "syntax-type": "{color.accent.300}",
39
+ "syntax-operator": "{color.slate.400}",
40
+ "syntax-punctuation": "{color.slate.500}",
41
+ "syntax-tag": "{color.red.300}",
42
+ "syntax-attribute": "{color.amber.300}",
43
+ "syntax-invalid": "{color.red.500}"
44
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$name": "light",
3
+ "$colorScheme": "light",
4
+ "bg": "{color.white}",
5
+ "bg-subtle": "{color.slate.50}",
6
+ "bg-raised": "{color.white}",
7
+ "bg-inset": "{color.slate.50}",
8
+ "fg": "{color.slate.900}",
9
+ "fg-muted": "{color.slate.600}",
10
+ "fg-subtle": "{color.slate.400}",
11
+ "border": "{color.slate.200}",
12
+ "border-strong": "{color.slate.300}",
13
+ "focus-ring": "{color.accent.500}",
14
+ "accent": "{color.accent.600}",
15
+ "accent-hover": "{color.accent.700}",
16
+ "accent-fg": "{color.white}",
17
+ "accent-subtle": "{color.accent.50}",
18
+ "fg-on-solid": "{color.white}",
19
+ "danger": "{color.red.500}",
20
+ "danger-fg": "{color.red.700}",
21
+ "danger-subtle": "{color.red.100}",
22
+ "warn": "{color.amber.500}",
23
+ "warn-fg": "{color.amber.700}",
24
+ "warn-subtle": "{color.amber.100}",
25
+ "success": "{color.green.500}",
26
+ "success-fg": "{color.green.700}",
27
+ "success-subtle": "{color.green.100}",
28
+ "info": "{color.blue.500}",
29
+ "info-fg": "{color.blue.700}",
30
+ "info-subtle": "{color.blue.100}",
31
+ "overlay": "rgba(14, 19, 23, 0.45)",
32
+ "syntax-keyword": "{color.violet.700}",
33
+ "syntax-string": "{color.green.700}",
34
+ "syntax-number": "{color.amber.700}",
35
+ "syntax-comment": "{color.slate.400}",
36
+ "syntax-function": "{color.blue.700}",
37
+ "syntax-variable": "{color.slate.900}",
38
+ "syntax-type": "{color.accent.700}",
39
+ "syntax-operator": "{color.slate.500}",
40
+ "syntax-punctuation": "{color.slate.400}",
41
+ "syntax-tag": "{color.red.700}",
42
+ "syntax-attribute": "{color.amber.700}",
43
+ "syntax-invalid": "{color.red.500}"
44
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$name": "night",
3
+ "$colorScheme": "dark",
4
+ "$comment": "Low-blue, warm dark. For long-form reading in the dark - dimmer than 'dark'.",
5
+ "bg": "{color.sand.950}",
6
+ "bg-subtle": "{color.sand.900}",
7
+ "bg-raised": "{color.sand.900}",
8
+ "bg-inset": "{color.sand.950}",
9
+ "fg": "{color.sand.200}",
10
+ "fg-muted": "{color.sand.400}",
11
+ "fg-subtle": "{color.sand.500}",
12
+ "border": "{color.sand.800}",
13
+ "border-strong": "{color.sand.700}",
14
+ "focus-ring": "{color.accent.400}",
15
+ "accent": "{color.accent.300}",
16
+ "accent-hover": "{color.accent.200}",
17
+ "accent-fg": "{color.sand.950}",
18
+ "accent-subtle": "{color.accent.950}",
19
+ "fg-on-solid": "{color.white}",
20
+ "danger": "{color.red.500}",
21
+ "danger-fg": "{color.red.300}",
22
+ "danger-subtle": "{color.red.900}",
23
+ "warn": "{color.amber.500}",
24
+ "warn-fg": "{color.amber.300}",
25
+ "warn-subtle": "{color.amber.900}",
26
+ "success": "{color.green.500}",
27
+ "success-fg": "{color.green.300}",
28
+ "success-subtle": "{color.green.900}",
29
+ "info": "{color.blue.500}",
30
+ "info-fg": "{color.blue.300}",
31
+ "info-subtle": "{color.blue.900}",
32
+ "overlay": "rgba(0, 0, 0, 0.65)",
33
+ "syntax-keyword": "{color.violet.300}",
34
+ "syntax-string": "{color.green.300}",
35
+ "syntax-number": "{color.amber.300}",
36
+ "syntax-comment": "{color.sand.500}",
37
+ "syntax-function": "{color.blue.300}",
38
+ "syntax-variable": "{color.sand.200}",
39
+ "syntax-type": "{color.accent.300}",
40
+ "syntax-operator": "{color.sand.400}",
41
+ "syntax-punctuation": "{color.sand.500}",
42
+ "syntax-tag": "{color.red.300}",
43
+ "syntax-attribute": "{color.amber.300}",
44
+ "syntax-invalid": "{color.red.500}"
45
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$name": "sepia",
3
+ "$colorScheme": "light",
4
+ "bg": "{color.sand.50}",
5
+ "bg-subtle": "{color.sand.100}",
6
+ "bg-raised": "{color.sand.50}",
7
+ "bg-inset": "{color.sand.100}",
8
+ "fg": "{color.sand.900}",
9
+ "fg-muted": "{color.sand.700}",
10
+ "fg-subtle": "{color.sand.500}",
11
+ "border": "{color.sand.200}",
12
+ "border-strong": "{color.sand.300}",
13
+ "focus-ring": "{color.accent.600}",
14
+ "accent": "{color.accent.700}",
15
+ "accent-hover": "{color.accent.800}",
16
+ "accent-fg": "{color.sand.50}",
17
+ "accent-subtle": "#dcebe4",
18
+ "fg-on-solid": "{color.sand.50}",
19
+ "danger": "{color.red.700}",
20
+ "danger-fg": "{color.red.700}",
21
+ "danger-subtle": "{color.red.100}",
22
+ "warn": "{color.amber.700}",
23
+ "warn-fg": "{color.amber.700}",
24
+ "warn-subtle": "{color.amber.100}",
25
+ "success": "{color.green.700}",
26
+ "success-fg": "{color.green.700}",
27
+ "success-subtle": "{color.green.100}",
28
+ "info": "{color.blue.700}",
29
+ "info-fg": "{color.blue.700}",
30
+ "info-subtle": "{color.blue.100}",
31
+ "overlay": "rgba(41, 35, 27, 0.45)",
32
+ "syntax-keyword": "{color.violet.700}",
33
+ "syntax-string": "{color.green.700}",
34
+ "syntax-number": "{color.amber.700}",
35
+ "syntax-comment": "{color.sand.500}",
36
+ "syntax-function": "{color.blue.700}",
37
+ "syntax-variable": "{color.sand.900}",
38
+ "syntax-type": "{color.accent.700}",
39
+ "syntax-operator": "{color.sand.600}",
40
+ "syntax-punctuation": "{color.sand.500}",
41
+ "syntax-tag": "{color.red.700}",
42
+ "syntax-attribute": "{color.amber.700}",
43
+ "syntax-invalid": "{color.red.500}"
44
+ }