@sublimee/tokens 0.1.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.
@@ -0,0 +1,449 @@
1
+ /**
2
+ * @sublimee/tokens
3
+ * Semantic Design Token System
4
+ *
5
+ * Import this file once in your application's global CSS:
6
+ * @import "@sublimee/tokens/tokens.css";
7
+ *
8
+ * Then override specific tokens for your brand:
9
+ * :root {
10
+ * --sublime-color-interactive-accent: #ec4899;
11
+ * }
12
+ */
13
+
14
+ /* ============================================================================
15
+ LIGHT MODE (DEFAULT)
16
+ ============================================================================ */
17
+
18
+ :root {
19
+ /* ==========================================================================
20
+ COLOR TOKENS - SURFACES
21
+ Background colors for containers, cards, pages
22
+ ========================================================================== */
23
+
24
+ /* Base surface (page background) */
25
+ --sublime-color-surface-0: #ffffff;
26
+ --sublime-color-surface-0-hover: #fafafa;
27
+ --sublime-color-surface-0-active: #f5f5f5;
28
+
29
+ /* Elevated surface (cards, modals, popovers) */
30
+ --sublime-color-surface-1: #ffffff;
31
+ --sublime-color-surface-1-hover: #fafafa;
32
+ --sublime-color-surface-1-active: #f5f5f5;
33
+
34
+ /* Higher elevation (menus, tooltips) */
35
+ --sublime-color-surface-2: #f9fafb;
36
+ --sublime-color-surface-2-hover: #f3f4f6;
37
+ --sublime-color-surface-2-active: #e5e7eb;
38
+
39
+ /* Inset/depressed surface (inputs, wells) */
40
+ --sublime-color-surface-inset: #f3f4f6;
41
+ --sublime-color-surface-inset-hover: #e5e7eb;
42
+ --sublime-color-surface-inset-active: #d1d5db;
43
+
44
+ /* ==========================================================================
45
+ COLOR TOKENS - TEXT
46
+ Content colors by emphasis level
47
+ ========================================================================== */
48
+
49
+ /* Primary text (headings, important body) */
50
+ --sublime-color-text-primary: #111827;
51
+ --sublime-color-text-primary-inverse: #ffffff;
52
+
53
+ /* Secondary text (body, descriptions) */
54
+ --sublime-color-text-secondary: #4b5563;
55
+ --sublime-color-text-secondary-inverse: #e5e7eb;
56
+
57
+ /* Tertiary/muted text (captions, placeholders, helper text) */
58
+ --sublime-color-text-muted: #9ca3af;
59
+ --sublime-color-text-muted-inverse: #6b7280;
60
+
61
+ /* Disabled text (unavailable actions) */
62
+ --sublime-color-text-disabled: #d1d5db;
63
+ --sublime-color-text-disabled-inverse: #4b5563;
64
+
65
+ /* Accent text (links, highlights) */
66
+ --sublime-color-text-accent: #3b82f6;
67
+ --sublime-color-text-accent-hover: #2563eb;
68
+
69
+ /* ==========================================================================
70
+ COLOR TOKENS - BORDERS
71
+ Dividers, outlines, input borders
72
+ ========================================================================== */
73
+
74
+ --sublime-color-border-primary: #e5e7eb;
75
+ --sublime-color-border-primary-hover: #d1d5db;
76
+ --sublime-color-border-primary-active: #9ca3af;
77
+
78
+ --sublime-color-border-secondary: #f3f4f6;
79
+ --sublime-color-border-accent: #3b82f6;
80
+ --sublime-color-border-error: #ef4444;
81
+ --sublime-color-border-success: #22c55e;
82
+
83
+ /* ==========================================================================
84
+ COLOR TOKENS - INTERACTIVE
85
+ Buttons, links, controls
86
+ ========================================================================== */
87
+
88
+ /* Primary interactive (high emphasis) */
89
+ --sublime-color-interactive-primary: #111827;
90
+ --sublime-color-interactive-primary-hover: #374151;
91
+ --sublime-color-interactive-primary-active: #1f2937;
92
+ --sublime-color-interactive-primary-text: #ffffff;
93
+
94
+ /* Secondary interactive (medium emphasis) */
95
+ --sublime-color-interactive-secondary: #f3f4f6;
96
+ --sublime-color-interactive-secondary-hover: #e5e7eb;
97
+ --sublime-color-interactive-secondary-active: #d1d5db;
98
+ --sublime-color-interactive-secondary-text: #111827;
99
+
100
+ /* Tertiary/Ghost interactive (low emphasis) */
101
+ --sublime-color-interactive-ghost: transparent;
102
+ --sublime-color-interactive-ghost-hover: #f3f4f6;
103
+ --sublime-color-interactive-ghost-active: #e5e7eb;
104
+ --sublime-color-interactive-ghost-text: #4b5563;
105
+
106
+ /* Accent interactive (brand color) */
107
+ --sublime-color-interactive-accent: #3b82f6;
108
+ --sublime-color-interactive-accent-hover: #2563eb;
109
+ --sublime-color-interactive-accent-active: #1d4ed8;
110
+ --sublime-color-interactive-accent-text: #ffffff;
111
+
112
+ /* ==========================================================================
113
+ COLOR TOKENS - STATUS
114
+ Error, warning, success, info states
115
+ ========================================================================== */
116
+
117
+ /* Error (destructive actions, validation errors) */
118
+ --sublime-color-status-error: #ef4444;
119
+ --sublime-color-status-error-hover: #dc2626;
120
+ --sublime-color-status-error-bg: #fef2f2;
121
+
122
+ /* Warning (cautions, notices) */
123
+ --sublime-color-status-warning: #f59e0b;
124
+ --sublime-color-status-warning-hover: #d97706;
125
+ --sublime-color-status-warning-bg: #fffbeb;
126
+
127
+ /* Success (confirmations, completions) */
128
+ --sublime-color-status-success: #22c55e;
129
+ --sublime-color-status-success-hover: #16a34a;
130
+ --sublime-color-status-success-bg: #f0fdf4;
131
+
132
+ /* Info (tips, neutral alerts) */
133
+ --sublime-color-status-info: #3b82f6;
134
+ --sublime-color-status-info-hover: #2563eb;
135
+ --sublime-color-status-info-bg: #eff6ff;
136
+
137
+ /* ==========================================================================
138
+ COLOR TOKENS - FOCUS & SELECTION
139
+ Keyboard navigation, text selection
140
+ ========================================================================== */
141
+
142
+ --sublime-color-focus-ring: #3b82f6;
143
+ --sublime-color-focus-ring-offset: #ffffff;
144
+ --sublime-color-selection-bg: #dbeafe;
145
+ --sublime-color-selection-text: #1e40af;
146
+
147
+ /* ==========================================================================
148
+ COLOR TOKENS - OVERLAYS
149
+ Backdrops, scrims, loading states
150
+ ========================================================================== */
151
+
152
+ --sublime-color-overlay-light: rgb(255 255 255 / 0.8);
153
+ --sublime-color-overlay-dark: rgb(0 0 0 / 0.5);
154
+ --sublime-color-overlay-scrim: rgb(0 0 0 / 0.6);
155
+
156
+ /* ==========================================================================
157
+ SPACING TOKENS
158
+ Base-4 spacing scale
159
+ ========================================================================== */
160
+
161
+ --sublime-space-0: 0;
162
+ --sublime-space-1: 0.25rem; /* 4px */
163
+ --sublime-space-2: 0.5rem; /* 8px */
164
+ --sublime-space-3: 0.75rem; /* 12px */
165
+ --sublime-space-4: 1rem; /* 16px */
166
+ --sublime-space-5: 1.25rem; /* 20px */
167
+ --sublime-space-6: 1.5rem; /* 24px */
168
+ --sublime-space-8: 2rem; /* 32px */
169
+ --sublime-space-10: 2.5rem; /* 40px */
170
+ --sublime-space-12: 3rem; /* 48px */
171
+ --sublime-space-16: 4rem; /* 64px */
172
+ --sublime-space-20: 5rem; /* 80px */
173
+ --sublime-space-24: 6rem; /* 96px */
174
+
175
+ /* Component-specific spacing */
176
+ --sublime-space-button-x: var(--sublime-space-6);
177
+ --sublime-space-button-y: var(--sublime-space-3);
178
+ --sublime-space-input-x: var(--sublime-space-4);
179
+ --sublime-space-input-y: var(--sublime-space-3);
180
+ --sublime-space-card-padding: var(--sublime-space-6);
181
+
182
+ /* Sizing */
183
+ --sublime-size-icon-sm: 1rem; /* 16px */
184
+ --sublime-size-icon-md: 1.5rem; /* 24px */
185
+ --sublime-size-icon-lg: 2rem; /* 32px */
186
+
187
+ --sublime-size-button-height-sm: 2rem; /* 32px */
188
+ --sublime-size-button-height-md: 2.5rem; /* 40px */
189
+ --sublime-size-button-height-lg: 3rem; /* 48px */
190
+
191
+ --sublime-size-touch-target: 2.75rem; /* 44px - WCAG minimum */
192
+
193
+ /* ==========================================================================
194
+ SHADOW TOKENS (ELEVATION)
195
+ Depth and elevation system
196
+ ========================================================================== */
197
+
198
+ --sublime-shadow-none: 0 0 #0000;
199
+
200
+ --sublime-shadow-xs:
201
+ 0 1px 2px 0 rgb(0 0 0 / 0.05);
202
+
203
+ --sublime-shadow-sm:
204
+ 0 1px 3px 0 rgb(0 0 0 / 0.1),
205
+ 0 1px 2px -1px rgb(0 0 0 / 0.1);
206
+
207
+ --sublime-shadow-md:
208
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
209
+ 0 2px 4px -2px rgb(0 0 0 / 0.1);
210
+
211
+ --sublime-shadow-lg:
212
+ 0 10px 15px -3px rgb(0 0 0 / 0.1),
213
+ 0 4px 6px -4px rgb(0 0 0 / 0.1);
214
+
215
+ --sublime-shadow-xl:
216
+ 0 20px 25px -5px rgb(0 0 0 / 0.1),
217
+ 0 8px 10px -6px rgb(0 0 0 / 0.1);
218
+
219
+ /* Interactive element shadows */
220
+ --sublime-shadow-button: var(--sublime-shadow-sm);
221
+ --sublime-shadow-button-hover: var(--sublime-shadow-md);
222
+ --sublime-shadow-button-active: var(--sublime-shadow-xs);
223
+
224
+ --sublime-shadow-card: var(--sublime-shadow-sm);
225
+ --sublime-shadow-card-hover: var(--sublime-shadow-md);
226
+
227
+ /* Focus ring shadow */
228
+ --sublime-shadow-focus-ring:
229
+ 0 0 0 2px var(--sublime-color-surface-0),
230
+ 0 0 0 4px var(--sublime-color-focus-ring);
231
+
232
+ /* ==========================================================================
233
+ RADIUS TOKENS
234
+ Border radius scale
235
+ ========================================================================== */
236
+
237
+ --sublime-radius-none: 0;
238
+ --sublime-radius-sm: 0.25rem; /* 4px */
239
+ --sublime-radius-md: 0.375rem; /* 6px */
240
+ --sublime-radius-lg: 0.5rem; /* 8px */
241
+ --sublime-radius-xl: 0.75rem; /* 12px */
242
+ --sublime-radius-2xl: 1rem; /* 16px */
243
+ --sublime-radius-full: 9999px;
244
+
245
+ /* Component-specific radius */
246
+ --sublime-radius-button: var(--sublime-radius-lg);
247
+ --sublime-radius-input: var(--sublime-radius-md);
248
+ --sublime-radius-card: var(--sublime-radius-xl);
249
+
250
+ /* ==========================================================================
251
+ TYPOGRAPHY TOKENS
252
+ Font families, sizes, weights
253
+ ========================================================================== */
254
+
255
+ --sublime-font-family-sans:
256
+ system-ui, -apple-system, BlinkMacSystemFont,
257
+ "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
258
+
259
+ --sublime-font-family-mono:
260
+ ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
261
+
262
+ /* Font sizes */
263
+ --sublime-font-size-xs: 0.75rem; /* 12px */
264
+ --sublime-font-size-sm: 0.875rem; /* 14px */
265
+ --sublime-font-size-md: 1rem; /* 16px */
266
+ --sublime-font-size-lg: 1.125rem; /* 18px */
267
+ --sublime-font-size-xl: 1.25rem; /* 20px */
268
+
269
+ /* Font weights */
270
+ --sublime-font-weight-normal: 400;
271
+ --sublime-font-weight-medium: 500;
272
+ --sublime-font-weight-semibold: 600;
273
+ --sublime-font-weight-bold: 700;
274
+
275
+ /* Line heights */
276
+ --sublime-line-height-tight: 1.25;
277
+ --sublime-line-height-normal: 1.5;
278
+ --sublime-line-height-relaxed: 1.75;
279
+
280
+ /* ==========================================================================
281
+ ANIMATION TOKENS
282
+ Durations, easings, transitions
283
+ ========================================================================== */
284
+
285
+ /* Durations */
286
+ --sublime-duration-instant: 0ms;
287
+ --sublime-duration-fast: 100ms;
288
+ --sublime-duration-normal: 150ms;
289
+ --sublime-duration-slow: 200ms;
290
+ --sublime-duration-slower: 300ms;
291
+
292
+ /* Easings */
293
+ --sublime-ease-linear: linear;
294
+ --sublime-ease-in: cubic-bezier(0.4, 0, 1, 1);
295
+ --sublime-ease-out: cubic-bezier(0, 0, 0.2, 1);
296
+ --sublime-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
297
+ --sublime-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
298
+
299
+ /* Component transitions */
300
+ --sublime-transition-button:
301
+ all var(--sublime-duration-fast) var(--sublime-ease-out);
302
+
303
+ --sublime-transition-color:
304
+ color var(--sublime-duration-fast) var(--sublime-ease-out),
305
+ background-color var(--sublime-duration-fast) var(--sublime-ease-out),
306
+ border-color var(--sublime-duration-fast) var(--sublime-ease-out);
307
+
308
+ --sublime-transition-transform:
309
+ transform var(--sublime-duration-fast) var(--sublime-ease-spring);
310
+
311
+ --sublime-transition-shadow:
312
+ box-shadow var(--sublime-duration-fast) var(--sublime-ease-out);
313
+ }
314
+
315
+ /* ============================================================================
316
+ DARK MODE
317
+ Activated by .dark class, data-theme="dark", or prefers-color-scheme
318
+ ============================================================================ */
319
+
320
+ .dark,
321
+ [data-theme="dark"] {
322
+ /* Surfaces - inverted hierarchy for dark mode */
323
+ --sublime-color-surface-0: #0f0f0f;
324
+ --sublime-color-surface-0-hover: #1a1a1a;
325
+ --sublime-color-surface-0-active: #262626;
326
+
327
+ --sublime-color-surface-1: #171717;
328
+ --sublime-color-surface-1-hover: #262626;
329
+ --sublime-color-surface-1-active: #404040;
330
+
331
+ --sublime-color-surface-2: #262626;
332
+ --sublime-color-surface-2-hover: #404040;
333
+ --sublime-color-surface-2-active: #525252;
334
+
335
+ --sublime-color-surface-inset: #0a0a0a;
336
+ --sublime-color-surface-inset-hover: #171717;
337
+ --sublime-color-surface-inset-active: #262626;
338
+
339
+ /* Text colors - inverted for dark backgrounds */
340
+ --sublime-color-text-primary: #fafafa;
341
+ --sublime-color-text-primary-inverse: #0f0f0f;
342
+
343
+ --sublime-color-text-secondary: #a3a3a3;
344
+ --sublime-color-text-secondary-inverse: #404040;
345
+
346
+ --sublime-color-text-muted: #737373;
347
+ --sublime-color-text-muted-inverse: #525252;
348
+
349
+ --sublime-color-text-disabled: #525252;
350
+ --sublime-color-text-disabled-inverse: #a3a3a3;
351
+
352
+ /* Borders - lighter in dark mode for visibility */
353
+ --sublime-color-border-primary: #404040;
354
+ --sublime-color-border-primary-hover: #525252;
355
+ --sublime-color-border-primary-active: #737373;
356
+
357
+ --sublime-color-border-secondary: #262626;
358
+
359
+ /* Interactive elements */
360
+ --sublime-color-interactive-primary: #fafafa;
361
+ --sublime-color-interactive-primary-hover: #e5e5e5;
362
+ --sublime-color-interactive-primary-active: #d4d4d4;
363
+ --sublime-color-interactive-primary-text: #0f0f0f;
364
+
365
+ --sublime-color-interactive-secondary: #262626;
366
+ --sublime-color-interactive-secondary-hover: #404040;
367
+ --sublime-color-interactive-secondary-active: #525252;
368
+ --sublime-color-interactive-secondary-text: #fafafa;
369
+
370
+ --sublime-color-interactive-ghost-hover: #262626;
371
+ --sublime-color-interactive-ghost-active: #404040;
372
+ --sublime-color-interactive-ghost-text: #a3a3a3;
373
+
374
+ /* Focus ring offset adapts to dark background */
375
+ --sublime-color-focus-ring-offset: #0f0f0f;
376
+
377
+ /* Selection colors adjusted for dark */
378
+ --sublime-color-selection-bg: #1e3a8a;
379
+ --sublime-color-selection-text: #dbeafe;
380
+
381
+ /* Status backgrounds adjusted for dark */
382
+ --sublime-color-status-error-bg: #450a0a;
383
+ --sublime-color-status-warning-bg: #451a03;
384
+ --sublime-color-status-success-bg: #052e16;
385
+ --sublime-color-status-info-bg: #172554;
386
+ }
387
+
388
+ /* System preference fallback */
389
+ @media (prefers-color-scheme: dark) {
390
+ :root:not([data-theme="light"]):not(.light) {
391
+ /* Duplicate all dark mode values here */
392
+ --sublime-color-surface-0: #0f0f0f;
393
+ --sublime-color-surface-0-hover: #1a1a1a;
394
+ --sublime-color-surface-0-active: #262626;
395
+
396
+ --sublime-color-surface-1: #171717;
397
+ --sublime-color-surface-1-hover: #262626;
398
+ --sublime-color-surface-1-active: #404040;
399
+
400
+ --sublime-color-surface-2: #262626;
401
+ --sublime-color-surface-2-hover: #404040;
402
+ --sublime-color-surface-2-active: #525252;
403
+
404
+ --sublime-color-surface-inset: #0a0a0a;
405
+ --sublime-color-surface-inset-hover: #171717;
406
+ --sublime-color-surface-inset-active: #262626;
407
+
408
+ --sublime-color-text-primary: #fafafa;
409
+ --sublime-color-text-primary-inverse: #0f0f0f;
410
+
411
+ --sublime-color-text-secondary: #a3a3a3;
412
+ --sublime-color-text-secondary-inverse: #404040;
413
+
414
+ --sublime-color-text-muted: #737373;
415
+ --sublime-color-text-muted-inverse: #525252;
416
+
417
+ --sublime-color-text-disabled: #525252;
418
+ --sublime-color-text-disabled-inverse: #a3a3a3;
419
+
420
+ --sublime-color-border-primary: #404040;
421
+ --sublime-color-border-primary-hover: #525252;
422
+ --sublime-color-border-primary-active: #737373;
423
+
424
+ --sublime-color-border-secondary: #262626;
425
+
426
+ --sublime-color-interactive-primary: #fafafa;
427
+ --sublime-color-interactive-primary-hover: #e5e5e5;
428
+ --sublime-color-interactive-primary-active: #d4d4d4;
429
+ --sublime-color-interactive-primary-text: #0f0f0f;
430
+
431
+ --sublime-color-interactive-secondary: #262626;
432
+ --sublime-color-interactive-secondary-hover: #404040;
433
+ --sublime-color-interactive-secondary-active: #525252;
434
+ --sublime-color-interactive-secondary-text: #fafafa;
435
+
436
+ --sublime-color-interactive-ghost-hover: #262626;
437
+ --sublime-color-interactive-ghost-active: #404040;
438
+ --sublime-color-interactive-ghost-text: #a3a3a3;
439
+
440
+ --sublime-color-focus-ring-offset: #0f0f0f;
441
+ --sublime-color-selection-bg: #1e3a8a;
442
+ --sublime-color-selection-text: #dbeafe;
443
+
444
+ --sublime-color-status-error-bg: #450a0a;
445
+ --sublime-color-status-warning-bg: #451a03;
446
+ --sublime-color-status-success-bg: #052e16;
447
+ --sublime-color-status-info-bg: #172554;
448
+ }
449
+ }
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@sublimee/tokens",
3
+ "version": "0.1.1",
4
+ "description": "Semantic design tokens for Sublime",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "style": "./dist/tokens.css",
9
+ "files": [
10
+ "dist",
11
+ "src"
12
+ ],
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.mjs",
17
+ "require": "./dist/index.js"
18
+ },
19
+ "./tokens.css": "./dist/tokens.css",
20
+ "./package.json": "./package.json"
21
+ },
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/juancrfig/sublime.git",
28
+ "directory": "packages/tokens"
29
+ },
30
+ "keywords": [
31
+ "design-tokens",
32
+ "css-variables",
33
+ "theming",
34
+ "dark-mode",
35
+ "ui",
36
+ "sublime"
37
+ ],
38
+ "author": "Sublime Team",
39
+ "license": "MIT",
40
+ "devDependencies": {
41
+ "tsup": "^8",
42
+ "typescript": "^5"
43
+ },
44
+ "scripts": {
45
+ "build": "tsup src/index.ts --format cjs,esm --dts --clean && cp src/tokens.css dist/tokens.css",
46
+ "dev": "tsup src/index.ts --format cjs,esm --dts --watch",
47
+ "typecheck": "tsc --noEmit"
48
+ }
49
+ }
package/src/index.ts ADDED
@@ -0,0 +1,202 @@
1
+ /**
2
+ * @sublimee/tokens
3
+ * Semantic design tokens for the Sublime design system
4
+ *
5
+ * This file exports TypeScript types for token names.
6
+ * The actual CSS tokens are in tokens.css
7
+ */
8
+
9
+ // Color token names
10
+ export type SublimeSurfaceToken =
11
+ | '--sublime-color-surface-0'
12
+ | '--sublime-color-surface-0-hover'
13
+ | '--sublime-color-surface-0-active'
14
+ | '--sublime-color-surface-1'
15
+ | '--sublime-color-surface-1-hover'
16
+ | '--sublime-color-surface-1-active'
17
+ | '--sublime-color-surface-2'
18
+ | '--sublime-color-surface-2-hover'
19
+ | '--sublime-color-surface-2-active'
20
+ | '--sublime-color-surface-inset'
21
+ | '--sublime-color-surface-inset-hover'
22
+ | '--sublime-color-surface-inset-active';
23
+
24
+ export type SublimeTextToken =
25
+ | '--sublime-color-text-primary'
26
+ | '--sublime-color-text-primary-inverse'
27
+ | '--sublime-color-text-secondary'
28
+ | '--sublime-color-text-secondary-inverse'
29
+ | '--sublime-color-text-muted'
30
+ | '--sublime-color-text-muted-inverse'
31
+ | '--sublime-color-text-disabled'
32
+ | '--sublime-color-text-disabled-inverse'
33
+ | '--sublime-color-text-accent'
34
+ | '--sublime-color-text-accent-hover';
35
+
36
+ export type SublimeBorderToken =
37
+ | '--sublime-color-border-primary'
38
+ | '--sublime-color-border-primary-hover'
39
+ | '--sublime-color-border-primary-active'
40
+ | '--sublime-color-border-secondary'
41
+ | '--sublime-color-border-accent'
42
+ | '--sublime-color-border-error'
43
+ | '--sublime-color-border-success';
44
+
45
+ export type SublimeInteractiveToken =
46
+ | '--sublime-color-interactive-primary'
47
+ | '--sublime-color-interactive-primary-hover'
48
+ | '--sublime-color-interactive-primary-active'
49
+ | '--sublime-color-interactive-primary-text'
50
+ | '--sublime-color-interactive-secondary'
51
+ | '--sublime-color-interactive-secondary-hover'
52
+ | '--sublime-color-interactive-secondary-active'
53
+ | '--sublime-color-interactive-secondary-text'
54
+ | '--sublime-color-interactive-ghost'
55
+ | '--sublime-color-interactive-ghost-hover'
56
+ | '--sublime-color-interactive-ghost-active'
57
+ | '--sublime-color-interactive-ghost-text'
58
+ | '--sublime-color-interactive-accent'
59
+ | '--sublime-color-interactive-accent-hover'
60
+ | '--sublime-color-interactive-accent-active'
61
+ | '--sublime-color-interactive-accent-text';
62
+
63
+ export type SublimeStatusToken =
64
+ | '--sublime-color-status-error'
65
+ | '--sublime-color-status-error-hover'
66
+ | '--sublime-color-status-error-bg'
67
+ | '--sublime-color-status-warning'
68
+ | '--sublime-color-status-warning-hover'
69
+ | '--sublime-color-status-warning-bg'
70
+ | '--sublime-color-status-success'
71
+ | '--sublime-color-status-success-hover'
72
+ | '--sublime-color-status-success-bg'
73
+ | '--sublime-color-status-info'
74
+ | '--sublime-color-status-info-hover'
75
+ | '--sublime-color-status-info-bg';
76
+
77
+ export type SublimeFocusToken =
78
+ | '--sublime-color-focus-ring'
79
+ | '--sublime-color-focus-ring-offset'
80
+ | '--sublime-color-selection-bg'
81
+ | '--sublime-color-selection-text';
82
+
83
+ export type SublimeOverlayToken =
84
+ | '--sublime-color-overlay-light'
85
+ | '--sublime-color-overlay-dark'
86
+ | '--sublime-color-overlay-scrim';
87
+
88
+ export type SublimeColorToken =
89
+ | SublimeSurfaceToken
90
+ | SublimeTextToken
91
+ | SublimeBorderToken
92
+ | SublimeInteractiveToken
93
+ | SublimeStatusToken
94
+ | SublimeFocusToken
95
+ | SublimeOverlayToken;
96
+
97
+ // Spacing token names
98
+ export type SublimeSpaceToken =
99
+ | '--sublime-space-0'
100
+ | '--sublime-space-1'
101
+ | '--sublime-space-2'
102
+ | '--sublime-space-3'
103
+ | '--sublime-space-4'
104
+ | '--sublime-space-5'
105
+ | '--sublime-space-6'
106
+ | '--sublime-space-8'
107
+ | '--sublime-space-10'
108
+ | '--sublime-space-12'
109
+ | '--sublime-space-16'
110
+ | '--sublime-space-20'
111
+ | '--sublime-space-24'
112
+ | '--sublime-space-button-x'
113
+ | '--sublime-space-button-y'
114
+ | '--sublime-space-input-x'
115
+ | '--sublime-space-input-y'
116
+ | '--sublime-space-card-padding'
117
+ | '--sublime-size-icon-sm'
118
+ | '--sublime-size-icon-md'
119
+ | '--sublime-size-icon-lg'
120
+ | '--sublime-size-button-height-sm'
121
+ | '--sublime-size-button-height-md'
122
+ | '--sublime-size-button-height-lg'
123
+ | '--sublime-size-touch-target';
124
+
125
+ // Shadow token names
126
+ export type SublimeShadowToken =
127
+ | '--sublime-shadow-none'
128
+ | '--sublime-shadow-xs'
129
+ | '--sublime-shadow-sm'
130
+ | '--sublime-shadow-md'
131
+ | '--sublime-shadow-lg'
132
+ | '--sublime-shadow-xl'
133
+ | '--sublime-shadow-button'
134
+ | '--sublime-shadow-button-hover'
135
+ | '--sublime-shadow-button-active'
136
+ | '--sublime-shadow-card'
137
+ | '--sublime-shadow-card-hover'
138
+ | '--sublime-shadow-focus-ring';
139
+
140
+ // Radius token names
141
+ export type SublimeRadiusToken =
142
+ | '--sublime-radius-none'
143
+ | '--sublime-radius-sm'
144
+ | '--sublime-radius-md'
145
+ | '--sublime-radius-lg'
146
+ | '--sublime-radius-xl'
147
+ | '--sublime-radius-2xl'
148
+ | '--sublime-radius-full'
149
+ | '--sublime-radius-button'
150
+ | '--sublime-radius-input'
151
+ | '--sublime-radius-card';
152
+
153
+ // Font token names
154
+ export type SublimeFontToken =
155
+ | '--sublime-font-family-sans'
156
+ | '--sublime-font-family-mono'
157
+ | '--sublime-font-size-xs'
158
+ | '--sublime-font-size-sm'
159
+ | '--sublime-font-size-md'
160
+ | '--sublime-font-size-lg'
161
+ | '--sublime-font-size-xl'
162
+ | '--sublime-font-weight-normal'
163
+ | '--sublime-font-weight-medium'
164
+ | '--sublime-font-weight-semibold'
165
+ | '--sublime-font-weight-bold'
166
+ | '--sublime-line-height-tight'
167
+ | '--sublime-line-height-normal'
168
+ | '--sublime-line-height-relaxed';
169
+
170
+ // Duration token names
171
+ export type SublimeDurationToken =
172
+ | '--sublime-duration-instant'
173
+ | '--sublime-duration-fast'
174
+ | '--sublime-duration-normal'
175
+ | '--sublime-duration-slow'
176
+ | '--sublime-duration-slower';
177
+
178
+ // Easing token names
179
+ export type SublimeEaseToken =
180
+ | '--sublime-ease-linear'
181
+ | '--sublime-ease-in'
182
+ | '--sublime-ease-out'
183
+ | '--sublime-ease-in-out'
184
+ | '--sublime-ease-spring';
185
+
186
+ // Transition token names
187
+ export type SublimeTransitionToken =
188
+ | '--sublime-transition-button'
189
+ | '--sublime-transition-color'
190
+ | '--sublime-transition-transform'
191
+ | '--sublime-transition-shadow';
192
+
193
+ // All tokens
194
+ export type SublimeToken =
195
+ | SublimeColorToken
196
+ | SublimeSpaceToken
197
+ | SublimeShadowToken
198
+ | SublimeRadiusToken
199
+ | SublimeFontToken
200
+ | SublimeDurationToken
201
+ | SublimeEaseToken
202
+ | SublimeTransitionToken;