@eluan/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,101 @@
1
+ /* ============================================
2
+ * Spacing Scales
3
+ * Semantic spacing tokens that adapt to Compact, Standard, and Wide
4
+ * These reference primitive spacing tokens from Layer 1
5
+ * ============================================ */
6
+
7
+ [data-spacing="compact"] {
8
+ --spacing-xxs: var(--spacing-space-0);
9
+ --spacing-xs: var(--spacing-space-2);
10
+ --spacing-sm: var(--spacing-space-4);
11
+ --spacing-md: var(--spacing-space-8);
12
+ --spacing-lg: var(--spacing-space-12);
13
+ --spacing-xl: var(--spacing-space-16);
14
+ --spacing-2xl: var(--spacing-space-20);
15
+ --spacing-3xl: var(--spacing-space-24);
16
+ --spacing-4xl: var(--spacing-space-32);
17
+
18
+ --size-xxs: var(--spacing-space-12);
19
+ --size-xs: var(--spacing-space-16);
20
+ --size-sm: var(--spacing-space-20);
21
+ --size-md: var(--spacing-space-24);
22
+ --size-lg: var(--spacing-space-32);
23
+ --size-xl: var(--spacing-space-40);
24
+ --size-2xl: var(--spacing-space-48);
25
+ --size-3xl: var(--spacing-space-64);
26
+ --size-4xl: var(--spacing-space-96);
27
+
28
+ --font-size-xs: var(--font-size-12);
29
+ --font-size-sm: var(--font-size-12);
30
+ --font-size-base: var(--font-size-14);
31
+ --font-size-lg: var(--font-size-16);
32
+ --font-size-xl: var(--font-size-18);
33
+ --font-size-2xl: var(--font-size-20);
34
+ --font-size-3xl: var(--font-size-24);
35
+ --font-size-4xl: var(--font-size-30);
36
+ --font-size-5xl: var(--font-size-36);
37
+ }
38
+
39
+ [data-spacing="standard"] {
40
+ --spacing-xxs: var(--spacing-space-2);
41
+ --spacing-xs: var(--spacing-space-4);
42
+ --spacing-sm: var(--spacing-space-8);
43
+ --spacing-md: var(--spacing-space-12);
44
+ --spacing-lg: var(--spacing-space-16);
45
+ --spacing-xl: var(--spacing-space-20);
46
+ --spacing-2xl: var(--spacing-space-24);
47
+ --spacing-3xl: var(--spacing-space-40);
48
+ --spacing-4xl: var(--spacing-space-80);
49
+
50
+ --size-xxs: var(--spacing-space-16);
51
+ --size-xs: var(--spacing-space-20);
52
+ --size-sm: var(--spacing-space-24);
53
+ --size-md: var(--spacing-space-32);
54
+ --size-lg: var(--spacing-space-40);
55
+ --size-xl: var(--spacing-space-48);
56
+ --size-2xl: var(--spacing-space-64);
57
+ --size-3xl: var(--spacing-space-96);
58
+ --size-4xl: var(--spacing-space-160);
59
+
60
+ --font-size-xs: var(--font-size-12);
61
+ --font-size-sm: var(--font-size-14);
62
+ --font-size-base: var(--font-size-16);
63
+ --font-size-lg: var(--font-size-18);
64
+ --font-size-xl: var(--font-size-20);
65
+ --font-size-2xl: var(--font-size-24);
66
+ --font-size-3xl: var(--font-size-30);
67
+ --font-size-4xl: var(--font-size-36);
68
+ --font-size-5xl: var(--font-size-48);
69
+ }
70
+
71
+ [data-spacing="wide"] {
72
+ --spacing-xxs: var(--spacing-space-4);
73
+ --spacing-xs: var(--spacing-space-8);
74
+ --spacing-sm: var(--spacing-space-12);
75
+ --spacing-md: var(--spacing-space-16);
76
+ --spacing-lg: var(--spacing-space-20);
77
+ --spacing-xl: var(--spacing-space-24);
78
+ --spacing-2xl: var(--spacing-space-32);
79
+ --spacing-3xl: var(--spacing-space-80);
80
+ --spacing-4xl: var(--spacing-space-160);
81
+
82
+ --size-xxs: var(--spacing-space-20);
83
+ --size-xs: var(--spacing-space-24);
84
+ --size-sm: var(--spacing-space-32);
85
+ --size-md: var(--spacing-space-40);
86
+ --size-lg: var(--spacing-space-48);
87
+ --size-xl: var(--spacing-space-56);
88
+ --size-2xl: var(--spacing-space-80);
89
+ --size-3xl: var(--spacing-space-120);
90
+ --size-4xl: var(--spacing-space-240);
91
+
92
+ --font-size-xs: var(--font-size-14);
93
+ --font-size-sm: var(--font-size-16);
94
+ --font-size-base: var(--font-size-18);
95
+ --font-size-lg: var(--font-size-20);
96
+ --font-size-xl: var(--font-size-24);
97
+ --font-size-2xl: var(--font-size-30);
98
+ --font-size-3xl: var(--font-size-36);
99
+ --font-size-4xl: var(--font-size-48);
100
+ --font-size-5xl: var(--font-size-60);
101
+ }
@@ -0,0 +1,316 @@
1
+ /* ============================================
2
+ * LAYER 3: Themes
3
+ * Component-level tokens that define the visual identity
4
+ * Each theme uses different accent colors from the primitive palette
5
+ * Categories: action, container, interactive, destructive,
6
+ * cautionary, important, informative, positive, dataviz
7
+ * ============================================ */
8
+ @import "./modes.css";
9
+ /* ----------------------------------------
10
+ * Theme: Classic Retro
11
+ * Based on Blaze Orange
12
+ * ---------------------------------------- */
13
+ [data-theme="industrial-retro"] {
14
+ --font-heading: "Geist", ui-sans-serif, system-ui, sans-serif;
15
+ --font-body: "Geist", ui-sans-serif, system-ui, sans-serif;
16
+ --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
17
+
18
+ --container-bg: var(--backgrounds-primary);
19
+ --container-bg-alt: var(--backgrounds-secondary);
20
+ --container-bg-inverse: var(--foregrounds-secondary);
21
+ --container-border: var(--backgrounds-tertiary);
22
+ --container-border-alt: var(--backgrounds-quaternary);
23
+ --container-border-inverse: var(--foregrounds-tertiary);
24
+ --container-fg: var(--foregrounds-primary);
25
+ --container-fg-alt: var(--foregrounds-secondary);
26
+ --container-fg-inverse: var(--backgrounds-primary);
27
+ --interactive-bg: var(--backgrounds-primary);
28
+ --interactive-bg-alt: var(--backgrounds-secondary);
29
+ --interactive-bg-alt2: var(--blazeorange-background);
30
+ --interactive-bg-disabled: var(--backgrounds-tertiary);
31
+ --interactive-bg-hover: var(--backgrounds-tertiary);
32
+ --interactive-bg-active: var(--blazeorange-shade);
33
+ --interactive-bg-selected: var(--blazeorange-shade);
34
+ --interactive-bg-inverse: var(--foregrounds-primary);
35
+ --interactive-border: var(--backgrounds-tertiary);
36
+ --interactive-border-alt: var(--backgrounds-quaternary);
37
+ --interactive-border-disabled: var(--backgrounds-quaternary);
38
+ --interactive-fg: var(--foregrounds-primary);
39
+ --interactive-fg-alt: var(--foregrounds-tertiary);
40
+ --interactive-fg-readonly: var(--foregrounds-secondary);
41
+ --interactive-fg-disabled: var(--foregrounds-quinary);
42
+ --interactive-fg-active: var(--blazeorange-tint);
43
+ --interactive-fg-selected: var(--blazeorange-tint);
44
+ --interactive-fg-inverse: var(--backgrounds-primary);
45
+ --action-primary-bg: var(--blazeorange-main);
46
+ --action-primary-bg-hover: var(--blazeorange-shade);
47
+ --action-primary-bg-active: var(--blazeorange-shade);
48
+ --action-primary-bg-selected: var(--blazeorange-shade);
49
+ --action-primary-bg-disabled: var(--blazeorange-tint);
50
+ --action-primary-bg-inverse: var(--blazeorange-background);
51
+ --action-primary-fg: var(--backgrounds-primary);
52
+ --action-primary-fg-disabled: var(--foregrounds-quinary);
53
+ --action-primary-fg-active: var(--backgrounds-primary);
54
+ --action-primary-fg-selected: var(--backgrounds-primary);
55
+ --action-primary-fg-inverse: var(--blazeorange-foreground);
56
+ --action-secondary-bg-hover: var(--blazeorange-tint);
57
+ --action-secondary-bg-active: var(--blazeorange-main);
58
+ --action-secondary-bg-selected: var(--blazeorange-main);
59
+ --action-secondary-bg-disabled: var(--backgrounds-tertiary);
60
+ --action-secondary-border: var(--blazeorange-main);
61
+ --action-secondary-border-alt: var(--blazeorange-shade);
62
+ --action-secondary-border-disabled: var(--blazeorange-tint);
63
+ --action-secondary-border-inverse: var(--blazeorange-background);
64
+ --action-secondary-fg: var(--blazeorange-main);
65
+ --action-secondary-fg-alt: var(--foregrounds-primary);
66
+ --action-secondary-fg-disabled: var(--foregrounds-quinary);
67
+ --action-secondary-fg-active: var(--backgrounds-primary);
68
+ --action-secondary-fg-selected: var(--backgrounds-primary);
69
+ --action-secondary-fg-inverse: var(--foregrounds-primary);
70
+ --action-tertiary-bg: var(--backgrounds-primary);
71
+ --action-tertiary-bg-alt: var(--backgrounds-secondary);
72
+ --action-tertiary-bg-hover: var(--blazeorange-background);
73
+ --action-tertiary-bg-active: var(--blazeorange-tint);
74
+ --action-tertiary-bg-selected: var(--blazeorange-tint);
75
+ --action-tertiary-bg-disabled: var(--backgrounds-primary);
76
+ --action-tertiary-bg-inverse: var(--backgrounds-primary);
77
+ --action-tertiary-border: var(--blazeorange-main);
78
+ --action-tertiary-border-alt: var(--blazeorange-shade);
79
+ --action-tertiary-border-disabled: var(--backgrounds-quaternary);
80
+ --action-tertiary-border-inverse: var(--blazeorange-tint);
81
+ --action-tertiary-fg: var(--blazeorange-main);
82
+ --action-tertiary-fg-alt: var(--foregrounds-primary);
83
+ --action-tertiary-fg-disabled: var(--foregrounds-quinary);
84
+ --action-tertiary-fg-active: var(--blazeorange-foreground);
85
+ --action-tertiary-fg-selected: var(--blazeorange-foreground);
86
+ --action-tertiary-fg-inverse: var(--backgrounds-primary);
87
+ --destructive-bg: var(--torchred-background);
88
+ --destructive-bg-alt: var(--torchred-tint);
89
+ --destructive-bg-hover: var(--torchred-tint);
90
+ --destructive-bg-active: var(--torchred-shade);
91
+ --destructive-bg-selected: var(--torchred-shade);
92
+ --destructive-bg-disabled: var(--backgrounds-tertiary);
93
+ --destructive-bg-inverse: var(--torchred-shade);
94
+ --destructive-border: var(--torchred-main);
95
+ --destructive-border-alt: var(--torchred-shade);
96
+ --destructive-border-disabled: var(--torchred-tint);
97
+ --destructive-border-inverse: var(--torchred-background);
98
+ --destructive-fg: var(--torchred-foreground);
99
+ --destructive-fg-alt: var(--foregrounds-primary);
100
+ --destructive-fg-disabled: var(--foregrounds-quinary);
101
+ --destructive-fg-active: var(--backgrounds-primary);
102
+ --destructive-fg-selected: var(--backgrounds-primary);
103
+ --destructive-fg-inverse: var(--torchred-background);
104
+ --positive-bg: var(--seagreen-background);
105
+ --positive-bg-alt: var(--seagreen-tint);
106
+ --positive-bg-inverse: var(--seagreen-shade);
107
+ --positive-border: var(--seagreen-main);
108
+ --positive-border-alt: var(--seagreen-shade);
109
+ --positive-border-inverse: var(--seagreen-background);
110
+ --positive-fg: var(--seagreen-foreground);
111
+ --positive-fg-alt: var(--foregrounds-primary);
112
+ --positive-fg-inverse: var(--seagreen-background);
113
+ --cautionary-bg: var(--maitai-background);
114
+ --cautionary-bg-alt: var(--maitai-tint);
115
+ --cautionary-bg-inverse: var(--maitai-shade);
116
+ --cautionary-border: var(--maitai-main);
117
+ --cautionary-border-alt: var(--maitai-shade);
118
+ --cautionary-border-inverse: var(--maitai-background);
119
+ --cautionary-fg: var(--maitai-foreground);
120
+ --cautionary-fg-alt: var(--foregrounds-primary);
121
+ --cautionary-fg-inverse: var(--maitai-background);
122
+ --informative-bg: var(--blueribbon-background);
123
+ --informative-bg-alt: var(--blueribbon-tint);
124
+ --informative-bg-inverse: var(--blueribbon-shade);
125
+ --informative-border: var(--blueribbon-main);
126
+ --informative-border-alt: var(--blueribbon-shade);
127
+ --informative-border-inverse: var(--blueribbon-background);
128
+ --informative-fg: var(--blueribbon-foreground);
129
+ --informative-fg-alt: var(--foregrounds-primary);
130
+ --informative-fg-inverse: var(--blueribbon-background);
131
+ --important-bg: var(--electricviolet-background);
132
+ --important-bg-alt: var(--electricviolet-tint);
133
+ --important-bg-inverse: var(--electricviolet-shade);
134
+ --important-border: var(--electricviolet-main);
135
+ --important-border-alt: var(--electricviolet-shade);
136
+ --important-border-inverse: var(--electricviolet-background);
137
+ --important-fg: var(--electricviolet-foreground);
138
+ --important-fg-alt: var(--foregrounds-primary);
139
+ --important-fg-inverse: var(--electricviolet-background);
140
+ --dataviz-1-main: var(--blazeorange-main);
141
+ --dataviz-1-tint: var(--blazeorange-tint);
142
+ --dataviz-1-shade: var(--blazeorange-shade);
143
+ --dataviz-2-main: var(--blueribbon-main);
144
+ --dataviz-2-tint: var(--blueribbon-tint);
145
+ --dataviz-2-shade: var(--blueribbon-shade);
146
+ --dataviz-3-main: var(--seagreen-main);
147
+ --dataviz-3-tint: var(--seagreen-tint);
148
+ --dataviz-3-shade: var(--seagreen-shade);
149
+ --dataviz-4-main: var(--electricviolet-main);
150
+ --dataviz-4-tint: var(--electricviolet-tint);
151
+ --dataviz-4-shade: var(--electricviolet-shade);
152
+ --dataviz-5-main: var(--maitai-main);
153
+ --dataviz-5-tint: var(--maitai-tint);
154
+ --dataviz-5-shade: var(--maitai-shade);
155
+ --dataviz-6-main: var(--cerise-main);
156
+ --dataviz-6-tint: var(--cerise-tint);
157
+ --dataviz-6-shade: var(--cerise-shade);
158
+ --dataviz-7-main: var(--electriclime-main);
159
+ --dataviz-7-tint: var(--electriclime-tint);
160
+ --dataviz-7-shade: var(--electriclime-shade);
161
+ --dataviz-8-main: var(--lochmara-main);
162
+ --dataviz-8-tint: var(--lochmara-tint);
163
+ --dataviz-8-shade: var(--lochmara-shade);
164
+ }
165
+
166
+ [data-theme="minimal"] {
167
+ --font-heading: "Inter", ui-sans-serif, system-ui, sans-serif;
168
+ --font-body: "Inter", ui-sans-serif, system-ui, sans-serif;
169
+ --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
170
+ --container-bg: var(--backgrounds-primary);
171
+ --container-bg-alt: var(--backgrounds-secondary);
172
+ --container-bg-inverse: var(--foregrounds-secondary);
173
+ --container-border: var(--backgrounds-tertiary);
174
+ --container-border-alt: var(--backgrounds-quaternary);
175
+ --container-border-inverse: var(--foregrounds-tertiary);
176
+ --container-fg: var(--foregrounds-primary);
177
+ --container-fg-alt: var(--foregrounds-secondary);
178
+ --container-fg-inverse: var(--backgrounds-primary);
179
+ --interactive-bg: var(--backgrounds-primary);
180
+ --interactive-bg-alt: var(--backgrounds-secondary);
181
+ --interactive-bg-alt2: var(--backgrounds-secondary);
182
+ --interactive-bg-disabled: var(--backgrounds-tertiary);
183
+ --interactive-bg-hover: var(--backgrounds-tertiary);
184
+ --interactive-bg-active: var(--foregrounds-primary);
185
+ --interactive-bg-selected: var(--foregrounds-primary);
186
+ --interactive-bg-inverse: var(--foregrounds-primary);
187
+ --interactive-border: var(--backgrounds-tertiary);
188
+ --interactive-border-alt: var(--backgrounds-quaternary);
189
+ --interactive-border-disabled: var(--backgrounds-quaternary);
190
+ --interactive-fg: var(--foregrounds-primary);
191
+ --interactive-fg-alt: var(--foregrounds-tertiary);
192
+ --interactive-fg-readonly: var(--foregrounds-secondary);
193
+ --interactive-fg-disabled: var(--foregrounds-quinary);
194
+ --interactive-fg-active: var(--backgrounds-primary);
195
+ --interactive-fg-selected: var(--backgrounds-primary);
196
+ --interactive-fg-inverse: var(--backgrounds-primary);
197
+ --action-primary-bg: var(--foregrounds-primary);
198
+ --action-primary-bg-hover: var(--foregrounds-tertiary);
199
+ --action-primary-bg-active: var(--foregrounds-secondary);
200
+ --action-primary-bg-selected: var(--foregrounds-secondary);
201
+ --action-primary-bg-disabled: var(--foregrounds-quinary);
202
+ --action-primary-bg-inverse: var(--backgrounds-primary);
203
+ --action-primary-fg: var(--backgrounds-primary);
204
+ --action-primary-fg-disabled: var(--backgrounds-quaternary);
205
+ --action-primary-fg-active: var(--backgrounds-primary);
206
+ --action-primary-fg-selected: var(--backgrounds-primary);
207
+ --action-primary-fg-inverse: var(--foregrounds-primary);
208
+ --action-secondary-bg-hover: var(--mono-tint);
209
+ --action-secondary-bg-active: var(--mono-background);
210
+ --action-secondary-bg-selected: var(--mono-background);
211
+ --action-secondary-bg-disabled: var(--backgrounds-tertiary);
212
+ --action-secondary-border: var(--mono-background);
213
+ --action-secondary-border-alt: var(--mono-shade);
214
+ --action-secondary-border-disabled: var(--mono-tint);
215
+ --action-secondary-border-inverse: var(--backgrounds-secondary);
216
+ --action-secondary-fg: var(--mono-background);
217
+ --action-secondary-fg-alt: var(--foregrounds-primary);
218
+ --action-secondary-fg-disabled: var(--foregrounds-quinary);
219
+ --action-secondary-fg-active: var(--backgrounds-primary);
220
+ --action-secondary-fg-selected: var(--backgrounds-primary);
221
+ --action-secondary-fg-inverse: var(--foregrounds-primary);
222
+ --action-tertiary-bg: var(--backgrounds-primary);
223
+ --action-tertiary-bg-alt: var(--backgrounds-secondary);
224
+ --action-tertiary-bg-hover: var(--backgrounds-secondary);
225
+ --action-tertiary-bg-active: var(--mono-tint);
226
+ --action-tertiary-bg-selected: var(--mono-tint);
227
+ --action-tertiary-bg-disabled: var(--backgrounds-primary);
228
+ --action-tertiary-bg-inverse: var(--backgrounds-primary);
229
+ --action-tertiary-border: var(--backgrounds-quaternary);
230
+ --action-tertiary-border-alt: var(--mono-tint);
231
+ --action-tertiary-border-disabled: var(--backgrounds-quaternary);
232
+ --action-tertiary-border-inverse: var(--backgrounds-secondary);
233
+ --action-tertiary-fg: var(--mono-background);
234
+ --action-tertiary-fg-alt: var(--foregrounds-primary);
235
+ --action-tertiary-fg-disabled: var(--foregrounds-quinary);
236
+ --action-tertiary-fg-active: var(--mono-shade);
237
+ --action-tertiary-fg-selected: var(--mono-shade);
238
+ --action-tertiary-fg-inverse: var(--backgrounds-primary);
239
+ --destructive-bg: var(--torchred-background);
240
+ --destructive-bg-alt: var(--torchred-tint);
241
+ --destructive-bg-hover: var(--torchred-tint);
242
+ --destructive-bg-active: var(--torchred-shade);
243
+ --destructive-bg-selected: var(--torchred-shade);
244
+ --destructive-bg-disabled: var(--backgrounds-tertiary);
245
+ --destructive-bg-inverse: var(--torchred-shade);
246
+ --destructive-border: var(--torchred-main);
247
+ --destructive-border-alt: var(--torchred-shade);
248
+ --destructive-border-disabled: var(--torchred-tint);
249
+ --destructive-border-inverse: var(--torchred-background);
250
+ --destructive-fg: var(--torchred-foreground);
251
+ --destructive-fg-alt: var(--foregrounds-primary);
252
+ --destructive-fg-disabled: var(--foregrounds-quinary);
253
+ --destructive-fg-active: var(--backgrounds-primary);
254
+ --destructive-fg-selected: var(--backgrounds-primary);
255
+ --destructive-fg-inverse: var(--torchred-background);
256
+ --positive-bg: var(--seagreen-background);
257
+ --positive-bg-alt: var(--seagreen-tint);
258
+ --positive-bg-inverse: var(--seagreen-shade);
259
+ --positive-border: var(--seagreen-main);
260
+ --positive-border-alt: var(--seagreen-shade);
261
+ --positive-border-inverse: var(--seagreen-background);
262
+ --positive-fg: var(--seagreen-foreground);
263
+ --positive-fg-alt: var(--foregrounds-primary);
264
+ --positive-fg-inverse: var(--seagreen-background);
265
+ --cautionary-bg: var(--maitai-background);
266
+ --cautionary-bg-alt: var(--maitai-tint);
267
+ --cautionary-bg-inverse: var(--maitai-shade);
268
+ --cautionary-border: var(--maitai-main);
269
+ --cautionary-border-alt: var(--maitai-shade);
270
+ --cautionary-border-inverse: var(--maitai-background);
271
+ --cautionary-fg: var(--maitai-foreground);
272
+ --cautionary-fg-alt: var(--foregrounds-primary);
273
+ --cautionary-fg-inverse: var(--maitai-background);
274
+ --informative-bg: var(--blueribbon-background);
275
+ --informative-bg-alt: var(--blueribbon-tint);
276
+ --informative-bg-inverse: var(--blueribbon-shade);
277
+ --informative-border: var(--blueribbon-main);
278
+ --informative-border-alt: var(--blueribbon-shade);
279
+ --informative-border-inverse: var(--blueribbon-background);
280
+ --informative-fg: var(--blueribbon-foreground);
281
+ --informative-fg-alt: var(--foregrounds-primary);
282
+ --informative-fg-inverse: var(--blueribbon-background);
283
+ --important-bg: var(--electricviolet-background);
284
+ --important-bg-alt: var(--electricviolet-tint);
285
+ --important-bg-inverse: var(--electricviolet-shade);
286
+ --important-border: var(--electricviolet-main);
287
+ --important-border-alt: var(--electricviolet-shade);
288
+ --important-border-inverse: var(--electricviolet-background);
289
+ --important-fg: var(--electricviolet-foreground);
290
+ --important-fg-alt: var(--foregrounds-primary);
291
+ --important-fg-inverse: var(--electricviolet-background);
292
+ --dataviz-1-main: var(--blazeorange-main);
293
+ --dataviz-1-tint: var(--blazeorange-tint);
294
+ --dataviz-1-shade: var(--blazeorange-shade);
295
+ --dataviz-2-main: var(--blueribbon-main);
296
+ --dataviz-2-tint: var(--blueribbon-tint);
297
+ --dataviz-2-shade: var(--blueribbon-shade);
298
+ --dataviz-3-main: var(--seagreen-main);
299
+ --dataviz-3-tint: var(--seagreen-tint);
300
+ --dataviz-3-shade: var(--seagreen-shade);
301
+ --dataviz-4-main: var(--electricviolet-main);
302
+ --dataviz-4-tint: var(--electricviolet-tint);
303
+ --dataviz-4-shade: var(--electricviolet-shade);
304
+ --dataviz-5-main: var(--maitai-main);
305
+ --dataviz-5-tint: var(--maitai-tint);
306
+ --dataviz-5-shade: var(--maitai-shade);
307
+ --dataviz-6-main: var(--cerise-main);
308
+ --dataviz-6-tint: var(--cerise-tint);
309
+ --dataviz-6-shade: var(--cerise-shade);
310
+ --dataviz-7-main: var(--electriclime-main);
311
+ --dataviz-7-tint: var(--electriclime-tint);
312
+ --dataviz-7-shade: var(--electriclime-shade);
313
+ --dataviz-8-main: var(--lochmara-main);
314
+ --dataviz-8-tint: var(--lochmara-tint);
315
+ --dataviz-8-shade: var(--lochmara-shade);
316
+ }
@@ -0,0 +1,155 @@
1
+ /*
2
+ * Eluan Design System - Token Architecture
3
+ *
4
+ * Three-layer token system:
5
+ * Layer 1: Primitives → Raw values (colors, spacing, radius, sizing, viewports)
6
+ * Layer 2: Modes → Semantic aliases that adapt to Light, Dim, Dark
7
+ * Layer 3: Themes → Component-level tokens for different visual identities
8
+ *
9
+ * Usage:
10
+ * <html data-mode="light" data-theme="industrial-retro">
11
+ * Primitives are always available via :root
12
+ * Mode sets semantic colors (backgrounds, foregrounds, palette tints)
13
+ * Theme sets component tokens (action, container, interactive, etc.)
14
+ *
15
+ * Import order matters - each layer can reference the previous one.
16
+ */
17
+
18
+ /* Only load shared base font (Geist Mono) — theme fonts loaded on demand */
19
+ @import "./fonts-base.css";
20
+ @import "./primitives.css";
21
+ @import "./modes.css";
22
+ @import "./themes.css";
23
+ @import "./spacing.css";
24
+ @import "./curves.css";
25
+
26
+ /* ============================================
27
+ * Base Styles
28
+ * ============================================ */
29
+
30
+ @layer base {
31
+ *,
32
+ *::before,
33
+ *::after {
34
+ box-sizing: border-box;
35
+ border: 0 solid;
36
+ margin: 0;
37
+ padding: 0;
38
+ }
39
+ html,
40
+ :host {
41
+ -webkit-text-size-adjust: 100%;
42
+ tab-size: 4;
43
+ line-height: 1.5;
44
+ font-family: var(--font-body);
45
+ -webkit-tap-highlight-color: transparent;
46
+ }
47
+ body {
48
+ min-height: 100%;
49
+ background-color: var(--backgrounds-primary);
50
+ color: var(--foregrounds-primary);
51
+ font-family: var(--font-body);
52
+ }
53
+ * {
54
+ border-color: var(--backgrounds-quaternary);
55
+ }
56
+ button,
57
+ input,
58
+ select,
59
+ textarea,
60
+ optgroup {
61
+ border-radius: 0;
62
+ background-color: transparent;
63
+ color: inherit;
64
+ font: inherit;
65
+ letter-spacing: inherit;
66
+ }
67
+ button,
68
+ input:where([type="button"], [type="reset"], [type="submit"]) {
69
+ appearance: button;
70
+ }
71
+ button,
72
+ [role="button"] {
73
+ cursor: pointer;
74
+ }
75
+ button:disabled,
76
+ input:disabled,
77
+ select:disabled,
78
+ textarea:disabled {
79
+ cursor: default;
80
+ }
81
+ textarea {
82
+ resize: vertical;
83
+ }
84
+ img,
85
+ svg,
86
+ video,
87
+ canvas,
88
+ audio,
89
+ iframe,
90
+ embed,
91
+ object {
92
+ display: block;
93
+ vertical-align: middle;
94
+ }
95
+ img,
96
+ video {
97
+ max-width: 100%;
98
+ height: auto;
99
+ }
100
+ table {
101
+ border-color: inherit;
102
+ border-collapse: collapse;
103
+ text-indent: 0;
104
+ }
105
+ a {
106
+ color: inherit;
107
+ text-decoration: inherit;
108
+ }
109
+ ol,
110
+ ul,
111
+ menu {
112
+ list-style: none;
113
+ }
114
+ code,
115
+ kbd,
116
+ samp,
117
+ pre {
118
+ font-family: var(--font-mono);
119
+ font-size: 1em;
120
+ }
121
+ small {
122
+ font-size: 80%;
123
+ }
124
+ sub,
125
+ sup {
126
+ position: relative;
127
+ vertical-align: baseline;
128
+ font-size: 75%;
129
+ line-height: 0;
130
+ }
131
+ sub {
132
+ bottom: -0.25em;
133
+ }
134
+ sup {
135
+ top: -0.5em;
136
+ }
137
+ hr {
138
+ height: 0;
139
+ color: inherit;
140
+ border-top-width: 1px;
141
+ }
142
+ progress {
143
+ vertical-align: baseline;
144
+ }
145
+ summary {
146
+ display: list-item;
147
+ }
148
+ ::placeholder {
149
+ opacity: 1;
150
+ color: color-mix(in srgb, currentColor 50%, transparent);
151
+ }
152
+ [hidden] {
153
+ display: none !important;
154
+ }
155
+ }
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@eluan/tokens",
3
+ "description": "Design tokens, CSS variables, themes, and fonts for the Eluan design system",
4
+ "version": "0.1.0",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/vasfio/eluan#readme",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/vasfio/eluan.git",
10
+ "directory": "packages/tokens"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/vasfio/eluan/issues"
14
+ },
15
+ "keywords": [
16
+ "design-tokens",
17
+ "css-variables",
18
+ "theme",
19
+ "eluan"
20
+ ],
21
+ "sideEffects": [
22
+ "**/*.css"
23
+ ],
24
+ "type": "module",
25
+ "main": "./dist/index.js",
26
+ "module": "./dist/index.js",
27
+ "types": "./dist/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.ts",
31
+ "import": "./dist/index.js"
32
+ },
33
+ "./css": "./dist/tokens.css",
34
+ "./fonts/all": "./dist/fonts.css",
35
+ "./fonts/base": "./dist/fonts-base.css",
36
+ "./fonts/industrial-retro": "./dist/fonts-industrial-retro.css",
37
+ "./fonts/minimal": "./dist/fonts-minimal.css"
38
+ },
39
+ "files": [
40
+ "dist"
41
+ ],
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "devDependencies": {
46
+ "typescript": "^5.4.5"
47
+ },
48
+ "dependencies": {
49
+ "@fontsource/geist": "^5.2.8",
50
+ "@fontsource/geist-mono": "^5.2.7",
51
+ "@fontsource/inter": "^5.2.8"
52
+ },
53
+ "scripts": {
54
+ "build": "rm -rf dist && tsc -p tsconfig.build.json && cp src/tokens.css src/primitives.css src/modes.css src/themes.css src/spacing.css src/curves.css src/fonts.css src/fonts-base.css src/fonts-industrial-retro.css src/fonts-minimal.css dist/",
55
+ "dev": "tsc --watch"
56
+ }
57
+ }