@elvora/tokens 1.0.0-rc.1
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.
- package/LICENSE +21 -0
- package/README.md +30 -0
- package/dist/index.cjs +274 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +406 -0
- package/dist/index.d.ts +406 -0
- package/dist/index.js +251 -0
- package/dist/index.js.map +1 -0
- package/dist/tokens.css +170 -0
- package/package.json +59 -0
- package/src/tokens/breakpoints.ts +10 -0
- package/src/tokens/colors.ts +112 -0
- package/src/tokens/index.ts +30 -0
- package/src/tokens/motion.ts +19 -0
- package/src/tokens/radii.ts +13 -0
- package/src/tokens/shadows.ts +13 -0
- package/src/tokens/spacing.ts +33 -0
- package/src/tokens/typography.ts +64 -0
- package/src/tokens/zIndex.ts +20 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color tokens — a 10-step ramp per hue (50 → 900), inspired by Tailwind / AntD.
|
|
3
|
+
* Semantic tokens (background, foreground, border, brand, status) consume these.
|
|
4
|
+
*
|
|
5
|
+
* Each ramp is hand-tuned for WCAG 2.2 AA contrast at step 600 against white
|
|
6
|
+
* and step 300 against black. Do not edit step values without re-checking contrast.
|
|
7
|
+
*/
|
|
8
|
+
type ColorRamp = {
|
|
9
|
+
50: string;
|
|
10
|
+
100: string;
|
|
11
|
+
200: string;
|
|
12
|
+
300: string;
|
|
13
|
+
400: string;
|
|
14
|
+
500: string;
|
|
15
|
+
600: string;
|
|
16
|
+
700: string;
|
|
17
|
+
800: string;
|
|
18
|
+
900: string;
|
|
19
|
+
};
|
|
20
|
+
declare const slate: ColorRamp;
|
|
21
|
+
declare const blue: ColorRamp;
|
|
22
|
+
declare const green: ColorRamp;
|
|
23
|
+
declare const amber: ColorRamp;
|
|
24
|
+
declare const red: ColorRamp;
|
|
25
|
+
declare const violet: ColorRamp;
|
|
26
|
+
declare const colors: {
|
|
27
|
+
readonly slate: ColorRamp;
|
|
28
|
+
readonly blue: ColorRamp;
|
|
29
|
+
readonly green: ColorRamp;
|
|
30
|
+
readonly amber: ColorRamp;
|
|
31
|
+
readonly red: ColorRamp;
|
|
32
|
+
readonly violet: ColorRamp;
|
|
33
|
+
readonly white: "#ffffff";
|
|
34
|
+
readonly black: "#000000";
|
|
35
|
+
readonly transparent: "transparent";
|
|
36
|
+
};
|
|
37
|
+
type Colors = typeof colors;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Spacing scale based on a 4px base unit. Used for padding, margin, gap.
|
|
41
|
+
* Numeric keys (0, 1, 2…) map to multiples of the base; named keys are aliases.
|
|
42
|
+
*/
|
|
43
|
+
declare const spacing: {
|
|
44
|
+
readonly 0: "0px";
|
|
45
|
+
readonly px: "1px";
|
|
46
|
+
readonly 0.5: "2px";
|
|
47
|
+
readonly 1: "4px";
|
|
48
|
+
readonly 1.5: "6px";
|
|
49
|
+
readonly 2: "8px";
|
|
50
|
+
readonly 2.5: "10px";
|
|
51
|
+
readonly 3: "12px";
|
|
52
|
+
readonly 3.5: "14px";
|
|
53
|
+
readonly 4: "16px";
|
|
54
|
+
readonly 5: "20px";
|
|
55
|
+
readonly 6: "24px";
|
|
56
|
+
readonly 7: "28px";
|
|
57
|
+
readonly 8: "32px";
|
|
58
|
+
readonly 9: "36px";
|
|
59
|
+
readonly 10: "40px";
|
|
60
|
+
readonly 11: "44px";
|
|
61
|
+
readonly 12: "48px";
|
|
62
|
+
readonly 14: "56px";
|
|
63
|
+
readonly 16: "64px";
|
|
64
|
+
readonly 20: "80px";
|
|
65
|
+
readonly 24: "96px";
|
|
66
|
+
readonly 28: "112px";
|
|
67
|
+
readonly 32: "128px";
|
|
68
|
+
};
|
|
69
|
+
type Spacing = typeof spacing;
|
|
70
|
+
type SpacingKey = keyof Spacing;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Typography tokens — font families, sizes, weights, line heights, letter spacing.
|
|
74
|
+
* Sizes follow a 1.125 (major second) modular scale.
|
|
75
|
+
*/
|
|
76
|
+
declare const fontFamilies: {
|
|
77
|
+
readonly sans: "\"Inter\", \"Segoe UI\", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif";
|
|
78
|
+
readonly serif: "Georgia, \"Times New Roman\", Times, serif";
|
|
79
|
+
readonly mono: "\"JetBrains Mono\", \"Fira Code\", \"SF Mono\", Menlo, Consolas, monospace";
|
|
80
|
+
};
|
|
81
|
+
declare const fontSizes: {
|
|
82
|
+
readonly xs: "12px";
|
|
83
|
+
readonly sm: "14px";
|
|
84
|
+
readonly base: "16px";
|
|
85
|
+
readonly md: "16px";
|
|
86
|
+
readonly lg: "18px";
|
|
87
|
+
readonly xl: "20px";
|
|
88
|
+
readonly '2xl': "24px";
|
|
89
|
+
readonly '3xl': "30px";
|
|
90
|
+
readonly '4xl': "36px";
|
|
91
|
+
readonly '5xl': "48px";
|
|
92
|
+
readonly '6xl': "60px";
|
|
93
|
+
};
|
|
94
|
+
declare const fontWeights: {
|
|
95
|
+
readonly thin: 100;
|
|
96
|
+
readonly extralight: 200;
|
|
97
|
+
readonly light: 300;
|
|
98
|
+
readonly regular: 400;
|
|
99
|
+
readonly medium: 500;
|
|
100
|
+
readonly semibold: 600;
|
|
101
|
+
readonly bold: 700;
|
|
102
|
+
readonly extrabold: 800;
|
|
103
|
+
readonly black: 900;
|
|
104
|
+
};
|
|
105
|
+
declare const lineHeights: {
|
|
106
|
+
readonly none: 1;
|
|
107
|
+
readonly tight: 1.2;
|
|
108
|
+
readonly snug: 1.35;
|
|
109
|
+
readonly normal: 1.5;
|
|
110
|
+
readonly relaxed: 1.625;
|
|
111
|
+
readonly loose: 2;
|
|
112
|
+
};
|
|
113
|
+
declare const letterSpacings: {
|
|
114
|
+
readonly tighter: "-0.04em";
|
|
115
|
+
readonly tight: "-0.02em";
|
|
116
|
+
readonly normal: "0em";
|
|
117
|
+
readonly wide: "0.02em";
|
|
118
|
+
readonly wider: "0.04em";
|
|
119
|
+
readonly widest: "0.08em";
|
|
120
|
+
};
|
|
121
|
+
declare const typography: {
|
|
122
|
+
readonly fontFamilies: {
|
|
123
|
+
readonly sans: "\"Inter\", \"Segoe UI\", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif";
|
|
124
|
+
readonly serif: "Georgia, \"Times New Roman\", Times, serif";
|
|
125
|
+
readonly mono: "\"JetBrains Mono\", \"Fira Code\", \"SF Mono\", Menlo, Consolas, monospace";
|
|
126
|
+
};
|
|
127
|
+
readonly fontSizes: {
|
|
128
|
+
readonly xs: "12px";
|
|
129
|
+
readonly sm: "14px";
|
|
130
|
+
readonly base: "16px";
|
|
131
|
+
readonly md: "16px";
|
|
132
|
+
readonly lg: "18px";
|
|
133
|
+
readonly xl: "20px";
|
|
134
|
+
readonly '2xl': "24px";
|
|
135
|
+
readonly '3xl': "30px";
|
|
136
|
+
readonly '4xl': "36px";
|
|
137
|
+
readonly '5xl': "48px";
|
|
138
|
+
readonly '6xl': "60px";
|
|
139
|
+
};
|
|
140
|
+
readonly fontWeights: {
|
|
141
|
+
readonly thin: 100;
|
|
142
|
+
readonly extralight: 200;
|
|
143
|
+
readonly light: 300;
|
|
144
|
+
readonly regular: 400;
|
|
145
|
+
readonly medium: 500;
|
|
146
|
+
readonly semibold: 600;
|
|
147
|
+
readonly bold: 700;
|
|
148
|
+
readonly extrabold: 800;
|
|
149
|
+
readonly black: 900;
|
|
150
|
+
};
|
|
151
|
+
readonly lineHeights: {
|
|
152
|
+
readonly none: 1;
|
|
153
|
+
readonly tight: 1.2;
|
|
154
|
+
readonly snug: 1.35;
|
|
155
|
+
readonly normal: 1.5;
|
|
156
|
+
readonly relaxed: 1.625;
|
|
157
|
+
readonly loose: 2;
|
|
158
|
+
};
|
|
159
|
+
readonly letterSpacings: {
|
|
160
|
+
readonly tighter: "-0.04em";
|
|
161
|
+
readonly tight: "-0.02em";
|
|
162
|
+
readonly normal: "0em";
|
|
163
|
+
readonly wide: "0.02em";
|
|
164
|
+
readonly wider: "0.04em";
|
|
165
|
+
readonly widest: "0.08em";
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
type Typography = typeof typography;
|
|
169
|
+
|
|
170
|
+
declare const radii: {
|
|
171
|
+
readonly none: "0";
|
|
172
|
+
readonly xs: "2px";
|
|
173
|
+
readonly sm: "4px";
|
|
174
|
+
readonly md: "6px";
|
|
175
|
+
readonly lg: "8px";
|
|
176
|
+
readonly xl: "12px";
|
|
177
|
+
readonly '2xl': "16px";
|
|
178
|
+
readonly '3xl': "24px";
|
|
179
|
+
readonly full: "9999px";
|
|
180
|
+
};
|
|
181
|
+
type Radii = typeof radii;
|
|
182
|
+
|
|
183
|
+
declare const shadows: {
|
|
184
|
+
readonly none: "none";
|
|
185
|
+
readonly xs: "0 1px 2px 0 rgba(15, 23, 42, 0.05)";
|
|
186
|
+
readonly sm: "0 1px 3px 0 rgba(15, 23, 42, 0.10), 0 1px 2px -1px rgba(15, 23, 42, 0.10)";
|
|
187
|
+
readonly md: "0 4px 6px -1px rgba(15, 23, 42, 0.10), 0 2px 4px -2px rgba(15, 23, 42, 0.10)";
|
|
188
|
+
readonly lg: "0 10px 15px -3px rgba(15, 23, 42, 0.10), 0 4px 6px -4px rgba(15, 23, 42, 0.10)";
|
|
189
|
+
readonly xl: "0 20px 25px -5px rgba(15, 23, 42, 0.10), 0 8px 10px -6px rgba(15, 23, 42, 0.10)";
|
|
190
|
+
readonly '2xl': "0 25px 50px -12px rgba(15, 23, 42, 0.25)";
|
|
191
|
+
readonly inner: "inset 0 2px 4px 0 rgba(15, 23, 42, 0.06)";
|
|
192
|
+
readonly focus: "0 0 0 3px rgba(59, 130, 246, 0.45)";
|
|
193
|
+
};
|
|
194
|
+
type Shadows = typeof shadows;
|
|
195
|
+
|
|
196
|
+
declare const durations: {
|
|
197
|
+
readonly instant: "0ms";
|
|
198
|
+
readonly fast: "120ms";
|
|
199
|
+
readonly normal: "200ms";
|
|
200
|
+
readonly slow: "320ms";
|
|
201
|
+
readonly slower: "500ms";
|
|
202
|
+
};
|
|
203
|
+
declare const easings: {
|
|
204
|
+
readonly linear: "linear";
|
|
205
|
+
readonly standard: "cubic-bezier(0.2, 0, 0, 1)";
|
|
206
|
+
readonly emphasized: "cubic-bezier(0.3, 0, 0, 1)";
|
|
207
|
+
readonly decelerate: "cubic-bezier(0, 0, 0, 1)";
|
|
208
|
+
readonly accelerate: "cubic-bezier(0.3, 0, 1, 1)";
|
|
209
|
+
};
|
|
210
|
+
declare const motion: {
|
|
211
|
+
readonly durations: {
|
|
212
|
+
readonly instant: "0ms";
|
|
213
|
+
readonly fast: "120ms";
|
|
214
|
+
readonly normal: "200ms";
|
|
215
|
+
readonly slow: "320ms";
|
|
216
|
+
readonly slower: "500ms";
|
|
217
|
+
};
|
|
218
|
+
readonly easings: {
|
|
219
|
+
readonly linear: "linear";
|
|
220
|
+
readonly standard: "cubic-bezier(0.2, 0, 0, 1)";
|
|
221
|
+
readonly emphasized: "cubic-bezier(0.3, 0, 0, 1)";
|
|
222
|
+
readonly decelerate: "cubic-bezier(0, 0, 0, 1)";
|
|
223
|
+
readonly accelerate: "cubic-bezier(0.3, 0, 1, 1)";
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
type Motion = typeof motion;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Z-index layering — keep these few and explicit. Components reach for tokens,
|
|
230
|
+
* never magic numbers, to keep stacking predictable.
|
|
231
|
+
*/
|
|
232
|
+
declare const zIndex: {
|
|
233
|
+
readonly hide: -1;
|
|
234
|
+
readonly base: 0;
|
|
235
|
+
readonly raised: 1;
|
|
236
|
+
readonly dropdown: 1000;
|
|
237
|
+
readonly sticky: 1100;
|
|
238
|
+
readonly banner: 1200;
|
|
239
|
+
readonly overlay: 1300;
|
|
240
|
+
readonly modal: 1400;
|
|
241
|
+
readonly popover: 1500;
|
|
242
|
+
readonly toast: 1600;
|
|
243
|
+
readonly tooltip: 1700;
|
|
244
|
+
readonly max: 2147483647;
|
|
245
|
+
};
|
|
246
|
+
type ZIndex = typeof zIndex;
|
|
247
|
+
|
|
248
|
+
declare const breakpoints: {
|
|
249
|
+
readonly xs: "0px";
|
|
250
|
+
readonly sm: "640px";
|
|
251
|
+
readonly md: "768px";
|
|
252
|
+
readonly lg: "1024px";
|
|
253
|
+
readonly xl: "1280px";
|
|
254
|
+
readonly '2xl': "1536px";
|
|
255
|
+
};
|
|
256
|
+
type Breakpoints = typeof breakpoints;
|
|
257
|
+
|
|
258
|
+
declare const tokens: {
|
|
259
|
+
readonly colors: {
|
|
260
|
+
readonly slate: ColorRamp;
|
|
261
|
+
readonly blue: ColorRamp;
|
|
262
|
+
readonly green: ColorRamp;
|
|
263
|
+
readonly amber: ColorRamp;
|
|
264
|
+
readonly red: ColorRamp;
|
|
265
|
+
readonly violet: ColorRamp;
|
|
266
|
+
readonly white: "#ffffff";
|
|
267
|
+
readonly black: "#000000";
|
|
268
|
+
readonly transparent: "transparent";
|
|
269
|
+
};
|
|
270
|
+
readonly spacing: {
|
|
271
|
+
readonly 0: "0px";
|
|
272
|
+
readonly px: "1px";
|
|
273
|
+
readonly 0.5: "2px";
|
|
274
|
+
readonly 1: "4px";
|
|
275
|
+
readonly 1.5: "6px";
|
|
276
|
+
readonly 2: "8px";
|
|
277
|
+
readonly 2.5: "10px";
|
|
278
|
+
readonly 3: "12px";
|
|
279
|
+
readonly 3.5: "14px";
|
|
280
|
+
readonly 4: "16px";
|
|
281
|
+
readonly 5: "20px";
|
|
282
|
+
readonly 6: "24px";
|
|
283
|
+
readonly 7: "28px";
|
|
284
|
+
readonly 8: "32px";
|
|
285
|
+
readonly 9: "36px";
|
|
286
|
+
readonly 10: "40px";
|
|
287
|
+
readonly 11: "44px";
|
|
288
|
+
readonly 12: "48px";
|
|
289
|
+
readonly 14: "56px";
|
|
290
|
+
readonly 16: "64px";
|
|
291
|
+
readonly 20: "80px";
|
|
292
|
+
readonly 24: "96px";
|
|
293
|
+
readonly 28: "112px";
|
|
294
|
+
readonly 32: "128px";
|
|
295
|
+
};
|
|
296
|
+
readonly typography: {
|
|
297
|
+
readonly fontFamilies: {
|
|
298
|
+
readonly sans: "\"Inter\", \"Segoe UI\", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif";
|
|
299
|
+
readonly serif: "Georgia, \"Times New Roman\", Times, serif";
|
|
300
|
+
readonly mono: "\"JetBrains Mono\", \"Fira Code\", \"SF Mono\", Menlo, Consolas, monospace";
|
|
301
|
+
};
|
|
302
|
+
readonly fontSizes: {
|
|
303
|
+
readonly xs: "12px";
|
|
304
|
+
readonly sm: "14px";
|
|
305
|
+
readonly base: "16px";
|
|
306
|
+
readonly md: "16px";
|
|
307
|
+
readonly lg: "18px";
|
|
308
|
+
readonly xl: "20px";
|
|
309
|
+
readonly '2xl': "24px";
|
|
310
|
+
readonly '3xl': "30px";
|
|
311
|
+
readonly '4xl': "36px";
|
|
312
|
+
readonly '5xl': "48px";
|
|
313
|
+
readonly '6xl': "60px";
|
|
314
|
+
};
|
|
315
|
+
readonly fontWeights: {
|
|
316
|
+
readonly thin: 100;
|
|
317
|
+
readonly extralight: 200;
|
|
318
|
+
readonly light: 300;
|
|
319
|
+
readonly regular: 400;
|
|
320
|
+
readonly medium: 500;
|
|
321
|
+
readonly semibold: 600;
|
|
322
|
+
readonly bold: 700;
|
|
323
|
+
readonly extrabold: 800;
|
|
324
|
+
readonly black: 900;
|
|
325
|
+
};
|
|
326
|
+
readonly lineHeights: {
|
|
327
|
+
readonly none: 1;
|
|
328
|
+
readonly tight: 1.2;
|
|
329
|
+
readonly snug: 1.35;
|
|
330
|
+
readonly normal: 1.5;
|
|
331
|
+
readonly relaxed: 1.625;
|
|
332
|
+
readonly loose: 2;
|
|
333
|
+
};
|
|
334
|
+
readonly letterSpacings: {
|
|
335
|
+
readonly tighter: "-0.04em";
|
|
336
|
+
readonly tight: "-0.02em";
|
|
337
|
+
readonly normal: "0em";
|
|
338
|
+
readonly wide: "0.02em";
|
|
339
|
+
readonly wider: "0.04em";
|
|
340
|
+
readonly widest: "0.08em";
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
readonly radii: {
|
|
344
|
+
readonly none: "0";
|
|
345
|
+
readonly xs: "2px";
|
|
346
|
+
readonly sm: "4px";
|
|
347
|
+
readonly md: "6px";
|
|
348
|
+
readonly lg: "8px";
|
|
349
|
+
readonly xl: "12px";
|
|
350
|
+
readonly '2xl': "16px";
|
|
351
|
+
readonly '3xl': "24px";
|
|
352
|
+
readonly full: "9999px";
|
|
353
|
+
};
|
|
354
|
+
readonly shadows: {
|
|
355
|
+
readonly none: "none";
|
|
356
|
+
readonly xs: "0 1px 2px 0 rgba(15, 23, 42, 0.05)";
|
|
357
|
+
readonly sm: "0 1px 3px 0 rgba(15, 23, 42, 0.10), 0 1px 2px -1px rgba(15, 23, 42, 0.10)";
|
|
358
|
+
readonly md: "0 4px 6px -1px rgba(15, 23, 42, 0.10), 0 2px 4px -2px rgba(15, 23, 42, 0.10)";
|
|
359
|
+
readonly lg: "0 10px 15px -3px rgba(15, 23, 42, 0.10), 0 4px 6px -4px rgba(15, 23, 42, 0.10)";
|
|
360
|
+
readonly xl: "0 20px 25px -5px rgba(15, 23, 42, 0.10), 0 8px 10px -6px rgba(15, 23, 42, 0.10)";
|
|
361
|
+
readonly '2xl': "0 25px 50px -12px rgba(15, 23, 42, 0.25)";
|
|
362
|
+
readonly inner: "inset 0 2px 4px 0 rgba(15, 23, 42, 0.06)";
|
|
363
|
+
readonly focus: "0 0 0 3px rgba(59, 130, 246, 0.45)";
|
|
364
|
+
};
|
|
365
|
+
readonly motion: {
|
|
366
|
+
readonly durations: {
|
|
367
|
+
readonly instant: "0ms";
|
|
368
|
+
readonly fast: "120ms";
|
|
369
|
+
readonly normal: "200ms";
|
|
370
|
+
readonly slow: "320ms";
|
|
371
|
+
readonly slower: "500ms";
|
|
372
|
+
};
|
|
373
|
+
readonly easings: {
|
|
374
|
+
readonly linear: "linear";
|
|
375
|
+
readonly standard: "cubic-bezier(0.2, 0, 0, 1)";
|
|
376
|
+
readonly emphasized: "cubic-bezier(0.3, 0, 0, 1)";
|
|
377
|
+
readonly decelerate: "cubic-bezier(0, 0, 0, 1)";
|
|
378
|
+
readonly accelerate: "cubic-bezier(0.3, 0, 1, 1)";
|
|
379
|
+
};
|
|
380
|
+
};
|
|
381
|
+
readonly zIndex: {
|
|
382
|
+
readonly hide: -1;
|
|
383
|
+
readonly base: 0;
|
|
384
|
+
readonly raised: 1;
|
|
385
|
+
readonly dropdown: 1000;
|
|
386
|
+
readonly sticky: 1100;
|
|
387
|
+
readonly banner: 1200;
|
|
388
|
+
readonly overlay: 1300;
|
|
389
|
+
readonly modal: 1400;
|
|
390
|
+
readonly popover: 1500;
|
|
391
|
+
readonly toast: 1600;
|
|
392
|
+
readonly tooltip: 1700;
|
|
393
|
+
readonly max: 2147483647;
|
|
394
|
+
};
|
|
395
|
+
readonly breakpoints: {
|
|
396
|
+
readonly xs: "0px";
|
|
397
|
+
readonly sm: "640px";
|
|
398
|
+
readonly md: "768px";
|
|
399
|
+
readonly lg: "1024px";
|
|
400
|
+
readonly xl: "1280px";
|
|
401
|
+
readonly '2xl': "1536px";
|
|
402
|
+
};
|
|
403
|
+
};
|
|
404
|
+
type Tokens = typeof tokens;
|
|
405
|
+
|
|
406
|
+
export { type Breakpoints, type ColorRamp, type Colors, type Motion, type Radii, type Shadows, type Spacing, type SpacingKey, type Tokens, type Typography, type ZIndex, amber, blue, breakpoints, colors, durations, easings, fontFamilies, fontSizes, fontWeights, green, letterSpacings, lineHeights, motion, radii, red, shadows, slate, spacing, tokens, typography, violet, zIndex };
|