@skra/tokens 0.2.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.
Files changed (55) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +7 -0
  3. package/README.md +64 -0
  4. package/brutal/_baseline.scss +22 -0
  5. package/brutal/_comp.scss +985 -0
  6. package/brutal/_density.comfortable.scoped.scss +166 -0
  7. package/brutal/_density.comfortable.scss +166 -0
  8. package/brutal/_density.compact.scoped.scss +166 -0
  9. package/brutal/_density.compact.scss +166 -0
  10. package/brutal/_theme.dark.scoped.scss +707 -0
  11. package/brutal/_theme.dark.scss +708 -0
  12. package/brutal/_theme.scoped.scss +1289 -0
  13. package/brutal/_theme.scss +451 -0
  14. package/brutal/skin.config.json +40 -0
  15. package/manifests/accordion.json +52 -0
  16. package/manifests/alert.json +107 -0
  17. package/manifests/avatar.json +78 -0
  18. package/manifests/badge.json +63 -0
  19. package/manifests/box.json +34 -0
  20. package/manifests/button.json +133 -0
  21. package/manifests/chip.json +116 -0
  22. package/manifests/combobox.json +141 -0
  23. package/manifests/datepicker.json +159 -0
  24. package/manifests/dialog.json +104 -0
  25. package/manifests/field.json +267 -0
  26. package/manifests/grid.json +61 -0
  27. package/manifests/icon.json +43 -0
  28. package/manifests/kbd.json +68 -0
  29. package/manifests/link.json +107 -0
  30. package/manifests/menu.json +122 -0
  31. package/manifests/popover.json +104 -0
  32. package/manifests/progress.json +69 -0
  33. package/manifests/select.json +177 -0
  34. package/manifests/skeleton.json +43 -0
  35. package/manifests/stack.json +34 -0
  36. package/manifests/star-rating.json +96 -0
  37. package/manifests/status-dot.json +69 -0
  38. package/manifests/tabs.json +52 -0
  39. package/manifests/toast.json +133 -0
  40. package/manifests/tooltip.json +113 -0
  41. package/manifests/typography.json +169 -0
  42. package/overlays/brand-jade.scss +9 -0
  43. package/overlays/round-corners.scss +8 -0
  44. package/overlays/square-corners.scss +8 -0
  45. package/package.json +19 -0
  46. package/skra/_baseline.scss +22 -0
  47. package/skra/_comp.scss +981 -0
  48. package/skra/_density.comfortable.scss +166 -0
  49. package/skra/_density.compact.scss +166 -0
  50. package/skra/_form-controls.scss +74 -0
  51. package/skra/_overlay.scss +42 -0
  52. package/skra/_theme.dark.scss +698 -0
  53. package/skra/_theme.scss +448 -0
  54. package/skra/skin.config.json +37 -0
  55. package/skra/utilities.scss +38 -0
@@ -0,0 +1,448 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ :root {
6
+ --skra-sys-color-neutral-base-hover: oklch(57.0% 0 0);
7
+ --skra-sys-color-neutral-base-active: oklch(60.5% 0 0);
8
+ --skra-sys-color-neutral-contrast-hover: oklch(91.0% 0 0);
9
+ --skra-sys-color-neutral-contrast-active: oklch(87.5% 0 0);
10
+ --skra-sys-color-neutral-border-hover: oklch(47.0% 0 0);
11
+ --skra-sys-color-neutral-border-active: oklch(50.5% 0 0);
12
+ --skra-sys-color-neutral-soft-hover: oklch(88.0% 0 0);
13
+ --skra-sys-color-neutral-soft-active: oklch(84.5% 0 0);
14
+ --skra-sys-color-neutral-strong-hover: oklch(32.0% 0 0);
15
+ --skra-sys-color-neutral-strong-active: oklch(35.5% 0 0);
16
+ --skra-sys-color-neutral-ink-hover: oklch(42.0% 0 0);
17
+ --skra-sys-color-neutral-ink-active: oklch(45.5% 0 0);
18
+ --skra-sys-color-primary-base-hover: oklch(45.0% 0.15 250);
19
+ --skra-sys-color-primary-base-active: oklch(41.5% 0.15 250);
20
+ --skra-sys-color-primary-contrast-hover: oklch(93.0% 0 0);
21
+ --skra-sys-color-primary-contrast-active: oklch(89.5% 0 0);
22
+ --skra-sys-color-primary-border-hover: oklch(45.0% 0.15 250);
23
+ --skra-sys-color-primary-border-active: oklch(41.5% 0.15 250);
24
+ --skra-sys-color-primary-soft-hover: oklch(88.0% 0.04 250);
25
+ --skra-sys-color-primary-soft-active: oklch(84.5% 0.04 250);
26
+ --skra-sys-color-primary-strong-hover: oklch(42.0% 0.15 250);
27
+ --skra-sys-color-primary-strong-active: oklch(45.5% 0.15 250);
28
+ --skra-sys-color-primary-ink-hover: oklch(45.0% 0.15 250);
29
+ --skra-sys-color-primary-ink-active: oklch(41.5% 0.15 250);
30
+ --skra-sys-color-secondary-base-hover: oklch(46.0% 0.04 250);
31
+ --skra-sys-color-secondary-base-active: oklch(42.5% 0.04 250);
32
+ --skra-sys-color-secondary-contrast-hover: oklch(93.0% 0 0);
33
+ --skra-sys-color-secondary-contrast-active: oklch(89.5% 0 0);
34
+ --skra-sys-color-secondary-border-hover: oklch(52.0% 0.04 250);
35
+ --skra-sys-color-secondary-border-active: oklch(55.5% 0.04 250);
36
+ --skra-sys-color-secondary-soft-hover: oklch(87.0% 0.02 250);
37
+ --skra-sys-color-secondary-soft-active: oklch(83.5% 0.02 250);
38
+ --skra-sys-color-secondary-strong-hover: oklch(37.0% 0.04 250);
39
+ --skra-sys-color-secondary-strong-active: oklch(40.5% 0.04 250);
40
+ --skra-sys-color-secondary-ink-hover: oklch(46.0% 0.04 250);
41
+ --skra-sys-color-secondary-ink-active: oklch(42.5% 0.04 250);
42
+ --skra-sys-color-info-base-hover: oklch(57.0% 0.12 220);
43
+ --skra-sys-color-info-base-active: oklch(60.5% 0.12 220);
44
+ --skra-sys-color-info-contrast-hover: oklch(93.0% 0 0);
45
+ --skra-sys-color-info-contrast-active: oklch(89.5% 0 0);
46
+ --skra-sys-color-info-border-hover: oklch(57.0% 0.12 220);
47
+ --skra-sys-color-info-border-active: oklch(60.5% 0.12 220);
48
+ --skra-sys-color-info-soft-hover: oklch(87.0% 0.04 220);
49
+ --skra-sys-color-info-soft-active: oklch(83.5% 0.04 220);
50
+ --skra-sys-color-info-strong-hover: oklch(42.0% 0.12 220);
51
+ --skra-sys-color-info-strong-active: oklch(45.5% 0.12 220);
52
+ --skra-sys-color-info-ink-hover: oklch(57.0% 0.12 220);
53
+ --skra-sys-color-info-ink-active: oklch(60.5% 0.12 220);
54
+ --skra-sys-color-success-base-hover: oklch(45.0% 0.15 145);
55
+ --skra-sys-color-success-base-active: oklch(41.5% 0.15 145);
56
+ --skra-sys-color-success-contrast-hover: oklch(93.0% 0 0);
57
+ --skra-sys-color-success-contrast-active: oklch(89.5% 0 0);
58
+ --skra-sys-color-success-border-hover: oklch(55.0% 0.15 145);
59
+ --skra-sys-color-success-border-active: oklch(58.5% 0.15 145);
60
+ --skra-sys-color-success-soft-hover: oklch(87.0% 0.05 145);
61
+ --skra-sys-color-success-soft-active: oklch(83.5% 0.05 145);
62
+ --skra-sys-color-success-strong-hover: oklch(39.0% 0.13 145);
63
+ --skra-sys-color-success-strong-active: oklch(42.5% 0.13 145);
64
+ --skra-sys-color-success-ink-hover: oklch(45.0% 0.15 145);
65
+ --skra-sys-color-success-ink-active: oklch(41.5% 0.15 145);
66
+ --skra-sys-color-warning-base-hover: oklch(63.0% 0.15 80);
67
+ --skra-sys-color-warning-base-active: oklch(59.5% 0.15 80);
68
+ --skra-sys-color-warning-contrast-hover: oklch(25.0% 0.05 80);
69
+ --skra-sys-color-warning-contrast-active: oklch(28.5% 0.05 80);
70
+ --skra-sys-color-warning-border-hover: oklch(53.0% 0.15 80);
71
+ --skra-sys-color-warning-border-active: oklch(49.5% 0.15 80);
72
+ --skra-sys-color-warning-soft-hover: oklch(88.0% 0.05 80);
73
+ --skra-sys-color-warning-soft-active: oklch(84.5% 0.05 80);
74
+ --skra-sys-color-warning-strong-hover: oklch(45.0% 0.12 80);
75
+ --skra-sys-color-warning-strong-active: oklch(48.5% 0.12 80);
76
+ --skra-sys-color-warning-ink-hover: oklch(45.0% 0.12 80);
77
+ --skra-sys-color-warning-ink-active: oklch(48.5% 0.12 80);
78
+ --skra-sys-color-danger-base-hover: oklch(48.0% 0.2 25);
79
+ --skra-sys-color-danger-base-active: oklch(44.5% 0.2 25);
80
+ --skra-sys-color-danger-contrast-hover: oklch(93.0% 0 0);
81
+ --skra-sys-color-danger-contrast-active: oklch(89.5% 0 0);
82
+ --skra-sys-color-danger-border-hover: oklch(55.0% 0.2 25);
83
+ --skra-sys-color-danger-border-active: oklch(58.5% 0.2 25);
84
+ --skra-sys-color-danger-soft-hover: oklch(87.0% 0.04 25);
85
+ --skra-sys-color-danger-soft-active: oklch(83.5% 0.04 25);
86
+ --skra-sys-color-danger-strong-hover: oklch(39.0% 0.16 25);
87
+ --skra-sys-color-danger-strong-active: oklch(42.5% 0.16 25);
88
+ --skra-sys-color-danger-ink-hover: oklch(48.0% 0.2 25);
89
+ --skra-sys-color-danger-ink-active: oklch(44.5% 0.2 25);
90
+ --skra-sys-color-surface-active: oklch(89.5% 0 0);
91
+ --skra-sys-color-surface-raised-hover: oklch(88.0% 0 0);
92
+ --skra-sys-color-surface-raised-active: oklch(84.5% 0 0);
93
+ --skra-sys-color-surface-muted-hover: oklch(79.0% 0 0);
94
+ --skra-sys-color-surface-muted-active: oklch(75.5% 0 0);
95
+ --skra-sys-color-on-surface-hover: oklch(7.0% 0 0);
96
+ --skra-sys-color-on-surface-active: oklch(10.5% 0 0);
97
+ --skra-sys-color-on-surface-strong-hover: oklch(7.0% 0 0);
98
+ --skra-sys-color-on-surface-strong-active: oklch(10.5% 0 0);
99
+ --skra-sys-color-on-surface-subtle-hover: oklch(42.0% 0 0);
100
+ --skra-sys-color-on-surface-subtle-active: oklch(45.5% 0 0);
101
+ --skra-sys-color-inverse-surface-hover: oklch(32.0% 0 0);
102
+ --skra-sys-color-inverse-surface-active: oklch(35.5% 0 0);
103
+ --skra-sys-color-on-inverse-surface-hover: oklch(93.0% 0 0);
104
+ --skra-sys-color-on-inverse-surface-active: oklch(89.5% 0 0);
105
+ --skra-sys-color-border-hover: oklch(7.0% 0 0);
106
+ --skra-sys-color-border-active: oklch(10.5% 0 0);
107
+ --skra-sys-color-border-subtle-hover: oklch(47.0% 0 0);
108
+ --skra-sys-color-border-subtle-active: oklch(50.5% 0 0);
109
+ --skra-sys-color-hint-hover: oklch(47.0% 0 0);
110
+ --skra-sys-color-hint-active: oklch(50.5% 0 0);
111
+ --skra-sys-color-focus-ring-hover: oklch(53.0% 0.15 250);
112
+ --skra-sys-color-focus-ring-active: oklch(49.5% 0.15 250);
113
+ --skra-sys-color-link-active: oklch(41.5% 0.15 250);
114
+ --skra-sys-icon-size-sm: 1em;
115
+ --skra-sys-icon-size-md: 1.25em;
116
+ --skra-sys-icon-size-lg: 1.5em;
117
+ --skra-sys-radius-none: 0;
118
+ --skra-sys-shadow-none: none;
119
+ --skra-sys-shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.10);
120
+ --skra-sys-shadow-md: 0 2px 8px oklch(0% 0 0 / 0.12);
121
+ --skra-sys-shadow-lg: 0 4px 16px oklch(0% 0 0 / 0.15);
122
+ --skra-sys-shadow-xl: 0 8px 32px oklch(0% 0 0 / 0.20);
123
+ --skra-sys-size-interactive-sm: 2rem;
124
+ --skra-sys-size-interactive-md: 2.5rem;
125
+ --skra-sys-size-interactive-lg: 3rem;
126
+ --skra-sys-typography-role-display-large-letter-spacing: -0.025em;
127
+ --skra-sys-typography-role-display-medium-letter-spacing: -0.025em;
128
+ --skra-sys-typography-role-display-small-letter-spacing: -0.025em;
129
+ --skra-sys-typography-role-headline-large-letter-spacing: -0.0125em;
130
+ --skra-sys-typography-role-headline-medium-letter-spacing: -0.0125em;
131
+ --skra-sys-typography-role-headline-small-letter-spacing: -0.0125em;
132
+ --skra-sys-typography-role-title-large-letter-spacing: 0;
133
+ --skra-sys-typography-role-title-medium-letter-spacing: 0;
134
+ --skra-sys-typography-role-title-small-letter-spacing: 0;
135
+ --skra-sys-typography-role-body-large-letter-spacing: 0;
136
+ --skra-sys-typography-role-body-medium-letter-spacing: 0;
137
+ --skra-sys-typography-role-body-small-letter-spacing: 0;
138
+ --skra-sys-typography-role-label-large-letter-spacing: 0.025em;
139
+ --skra-sys-typography-role-label-medium-letter-spacing: 0.025em;
140
+ --skra-sys-typography-role-label-small-letter-spacing: 0.025em;
141
+ --skra-ref-color-neutral-0: oklch(100% 0 0);
142
+ --skra-ref-color-neutral-50: oklch(98% 0 0);
143
+ --skra-ref-color-neutral-100: oklch(95% 0 0);
144
+ --skra-ref-color-neutral-200: oklch(90% 0 0);
145
+ --skra-ref-color-neutral-300: oklch(86% 0 0);
146
+ --skra-ref-color-neutral-400: oklch(65% 0 0);
147
+ --skra-ref-color-neutral-500: oklch(50% 0 0);
148
+ --skra-ref-color-neutral-600: oklch(40% 0 0);
149
+ --skra-ref-color-neutral-700: oklch(35% 0 0);
150
+ --skra-ref-color-neutral-800: oklch(25% 0 0);
151
+ --skra-ref-color-neutral-1000: oklch(0% 0 0);
152
+ --skra-ref-color-primary-50: oklch(95% 0.04 250);
153
+ --skra-ref-color-primary-400: oklch(65% 0.15 250);
154
+ --skra-ref-color-primary-500: oklch(60% 0.15 250);
155
+ --skra-ref-color-primary-600: oklch(52% 0.15 250);
156
+ --skra-ref-color-primary-700: oklch(35% 0.15 250);
157
+ --skra-ref-color-secondary-50: oklch(94% 0.02 250);
158
+ --skra-ref-color-secondary-400: oklch(60% 0.04 250);
159
+ --skra-ref-color-secondary-500: oklch(53% 0.04 250);
160
+ --skra-ref-color-secondary-600: oklch(45% 0.04 250);
161
+ --skra-ref-color-secondary-700: oklch(30% 0.04 250);
162
+ --skra-ref-color-info-50: oklch(94% 0.04 220);
163
+ --skra-ref-color-info-400: oklch(65% 0.12 220);
164
+ --skra-ref-color-info-500: oklch(60% 0.12 220);
165
+ --skra-ref-color-info-600: oklch(50% 0.12 220);
166
+ --skra-ref-color-info-700: oklch(35% 0.12 220);
167
+ --skra-ref-color-success-50: oklch(94% 0.05 145);
168
+ --skra-ref-color-success-400: oklch(60% 0.15 145);
169
+ --skra-ref-color-success-500: oklch(52% 0.15 145);
170
+ --skra-ref-color-success-600: oklch(48% 0.15 145);
171
+ --skra-ref-color-success-700: oklch(32% 0.13 145);
172
+ --skra-ref-color-warning-50: oklch(95% 0.05 80);
173
+ --skra-ref-color-warning-400: oklch(72% 0.15 80);
174
+ --skra-ref-color-warning-500: oklch(70% 0.15 80);
175
+ --skra-ref-color-warning-600: oklch(60% 0.15 80);
176
+ --skra-ref-color-warning-700: oklch(38% 0.12 80);
177
+ --skra-ref-color-warning-ink: oklch(18% 0.05 80);
178
+ --skra-ref-color-danger-50: oklch(94% 0.04 25);
179
+ --skra-ref-color-danger-400: oklch(60% 0.2 25);
180
+ --skra-ref-color-danger-500: oklch(55% 0.2 25);
181
+ --skra-ref-color-danger-600: oklch(48% 0.2 25);
182
+ --skra-ref-color-danger-700: oklch(32% 0.16 25);
183
+ --skra-ref-color-violet-500: oklch(45% 0.18 295);
184
+ --skra-ref-color-cobalt-50: oklch(95% 0.03 262);
185
+ --skra-ref-color-cobalt-500: oklch(56% 0.19 262);
186
+ --skra-ref-color-cobalt-600: oklch(50% 0.19 262);
187
+ --skra-ref-color-cobalt-700: oklch(42% 0.16 262);
188
+ --skra-ref-color-navy-800: oklch(30% 0.08 262);
189
+ --skra-ref-color-navy-900: oklch(22% 0.06 262);
190
+ --skra-ref-color-ice-100: oklch(96.5% 0.012 255);
191
+ --skra-ref-color-cream-50: oklch(97% 0.015 95);
192
+ --skra-ref-color-cream-100: oklch(93% 0.025 95);
193
+ --skra-ref-color-acid-50: oklch(96% 0.06 100);
194
+ --skra-ref-color-acid-400: oklch(88% 0.16 98);
195
+ --skra-ref-color-acid-500: oklch(85% 0.17 98);
196
+ --skra-ref-color-acid-600: oklch(75% 0.16 98);
197
+ --skra-ref-color-acid-700: oklch(50% 0.11 98);
198
+ --skra-ref-color-scrim: oklch(0% 0 0 / 0.5);
199
+ --skra-ref-color-slate-50: oklch(97.5% 0.005 260);
200
+ --skra-ref-color-slate-100: oklch(95.7% 0.006 256);
201
+ --skra-ref-color-slate-200: oklch(90% 0.008 260);
202
+ --skra-ref-color-slate-300: oklch(79.6% 0.017 259);
203
+ --skra-ref-color-slate-400: oklch(61.5% 0.023 262);
204
+ --skra-ref-color-slate-500: oklch(46.9% 0.021 261);
205
+ --skra-ref-color-slate-600: oklch(37.3% 0.021 259);
206
+ --skra-ref-color-slate-700: oklch(33.4% 0.022 256);
207
+ --skra-ref-color-slate-750: oklch(29.2% 0.02 261);
208
+ --skra-ref-color-slate-800: oklch(25.9% 0.017 260);
209
+ --skra-ref-color-slate-825: oklch(23.4% 0.013 258);
210
+ --skra-ref-color-slate-850: oklch(20.4% 0.011 261);
211
+ --skra-ref-color-slate-900: oklch(17.7% 0.009 264);
212
+ --skra-ref-color-slate-950: oklch(13.9% 0.005 263);
213
+ --skra-ref-color-cyan-50: oklch(96% 0.03 215);
214
+ --skra-ref-color-cyan-300: oklch(86.7% 0.113 212);
215
+ --skra-ref-color-cyan-400: oklch(76.4% 0.124 217);
216
+ --skra-ref-color-cyan-500: oklch(67.2% 0.118 220);
217
+ --skra-ref-color-cyan-700: oklch(50% 0.105 222);
218
+ --skra-ref-color-cyan-800: oklch(42% 0.09 224);
219
+ --skra-ref-color-cyan-soft-dark: oklch(26% 0.045 220);
220
+ --skra-ref-color-green-bright: oklch(80% 0.182 152);
221
+ --skra-ref-color-amber-bright: oklch(83.7% 0.164 84);
222
+ --skra-ref-color-red-bright: oklch(71.1% 0.166 22);
223
+ --skra-ref-font-size-2xs: 0.6875rem;
224
+ --skra-ref-font-size-xs: 0.75rem;
225
+ --skra-ref-font-size-sm: 0.875rem;
226
+ --skra-ref-font-size-md: 1rem;
227
+ --skra-ref-font-size-lg: 1.125rem;
228
+ --skra-ref-font-size-xl: 1.25rem;
229
+ --skra-ref-font-size-2xl: 1.5rem;
230
+ --skra-ref-font-size-3xl: 1.75rem;
231
+ --skra-ref-font-size-4xl: 2.25rem;
232
+ --skra-ref-font-size-5xl: 2.75rem;
233
+ --skra-ref-font-size-6xl: 3.5rem;
234
+ --skra-ref-motion-duration-100: 100ms;
235
+ --skra-ref-motion-duration-200: 200ms;
236
+ --skra-ref-motion-duration-300: 300ms;
237
+ --skra-ref-motion-delay-short: 150ms;
238
+ --skra-ref-motion-delay-long: 500ms;
239
+ --skra-ref-motion-easing-linear: cubic-bezier(0, 0, 1, 1);
240
+ --skra-ref-motion-easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
241
+ --skra-ref-motion-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
242
+ --skra-ref-opacity-disabled: 0.38;
243
+ --skra-ref-opacity-hover: 0.08;
244
+ --skra-ref-radius-1: 0.25rem;
245
+ --skra-ref-radius-2: 0.5rem;
246
+ --skra-ref-radius-4: 1rem;
247
+ --skra-ref-radius-8: 2rem;
248
+ --skra-ref-size-sm: 16rem;
249
+ --skra-ref-size-md: 20rem;
250
+ --skra-ref-size-lg: 24rem;
251
+ --skra-ref-size-container-sm: 20rem;
252
+ --skra-ref-size-container-md: 32rem;
253
+ --skra-ref-size-container-lg: 48rem;
254
+ --skra-ref-size-avatar-sm: 2rem;
255
+ --skra-ref-size-avatar-md: 2.5rem;
256
+ --skra-ref-size-avatar-lg: 3rem;
257
+ --skra-ref-size-status-dot-sm: 0.5rem;
258
+ --skra-ref-size-status-dot-md: 0.625rem;
259
+ --skra-ref-size-status-dot-lg: 0.75rem;
260
+ --skra-ref-spacing-1: 0.25rem;
261
+ --skra-ref-spacing-2: 0.5rem;
262
+ --skra-ref-spacing-3: 0.75rem;
263
+ --skra-ref-spacing-4: 1rem;
264
+ --skra-ref-spacing-5: 1.25rem;
265
+ --skra-ref-spacing-6: 1.5rem;
266
+ --skra-ref-spacing-8: 2rem;
267
+ --skra-ref-font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
268
+ --skra-ref-font-family-mono: ui-monospace, 'Cascadia Code', 'Fira Code', monospace;
269
+ --skra-ref-font-family-grotesk: 'Space Grotesk', system-ui, sans-serif;
270
+ --skra-ref-font-family-inter: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
271
+ --skra-ref-font-family-inter-tight: 'Inter Tight', 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
272
+ --skra-ref-font-family-plex-mono: 'IBM Plex Mono', ui-monospace, 'JetBrains Mono', 'SF Mono', 'Cascadia Code', monospace;
273
+ --skra-ref-font-weight-regular: 400;
274
+ --skra-ref-font-weight-medium: 500;
275
+ --skra-ref-font-weight-semibold: 600;
276
+ --skra-ref-font-weight-bold: 700;
277
+ --skra-ref-line-height-tight: 1.1;
278
+ --skra-ref-line-height-snug: 1.2;
279
+ --skra-ref-line-height-normal: 1.35;
280
+ --skra-ref-line-height-relaxed: 1.5;
281
+ --skra-ref-line-height-loose: 1.6;
282
+ --skra-sys-color-neutral-base: var(--skra-ref-color-neutral-500);
283
+ --skra-sys-color-neutral-contrast: var(--skra-ref-color-neutral-50);
284
+ --skra-sys-color-neutral-border: var(--skra-ref-color-neutral-600);
285
+ --skra-sys-color-neutral-soft: var(--skra-ref-color-neutral-100);
286
+ --skra-sys-color-neutral-strong: var(--skra-ref-color-neutral-800);
287
+ --skra-sys-color-neutral-ink: var(--skra-ref-color-neutral-700);
288
+ --skra-sys-color-primary-base: var(--skra-ref-color-primary-600);
289
+ --skra-sys-color-primary-contrast: var(--skra-ref-color-neutral-0);
290
+ --skra-sys-color-primary-border: var(--skra-ref-color-primary-600);
291
+ --skra-sys-color-primary-soft: var(--skra-ref-color-primary-50);
292
+ --skra-sys-color-primary-strong: var(--skra-ref-color-primary-700);
293
+ --skra-sys-color-primary-ink: var(--skra-ref-color-primary-600);
294
+ --skra-sys-color-secondary-base: var(--skra-ref-color-secondary-500);
295
+ --skra-sys-color-secondary-contrast: var(--skra-ref-color-neutral-0);
296
+ --skra-sys-color-secondary-border: var(--skra-ref-color-secondary-600);
297
+ --skra-sys-color-secondary-soft: var(--skra-ref-color-secondary-50);
298
+ --skra-sys-color-secondary-strong: var(--skra-ref-color-secondary-700);
299
+ --skra-sys-color-secondary-ink: var(--skra-ref-color-secondary-500);
300
+ --skra-sys-color-info-base: var(--skra-ref-color-info-600);
301
+ --skra-sys-color-info-contrast: var(--skra-ref-color-neutral-0);
302
+ --skra-sys-color-info-border: var(--skra-ref-color-info-600);
303
+ --skra-sys-color-info-soft: var(--skra-ref-color-info-50);
304
+ --skra-sys-color-info-strong: var(--skra-ref-color-info-700);
305
+ --skra-sys-color-info-ink: var(--skra-ref-color-info-600);
306
+ --skra-sys-color-success-base: var(--skra-ref-color-success-500);
307
+ --skra-sys-color-success-contrast: var(--skra-ref-color-neutral-0);
308
+ --skra-sys-color-success-border: var(--skra-ref-color-success-600);
309
+ --skra-sys-color-success-soft: var(--skra-ref-color-success-50);
310
+ --skra-sys-color-success-strong: var(--skra-ref-color-success-700);
311
+ --skra-sys-color-success-ink: var(--skra-ref-color-success-500);
312
+ --skra-sys-color-warning-base: var(--skra-ref-color-warning-500);
313
+ --skra-sys-color-warning-contrast: var(--skra-ref-color-warning-ink);
314
+ --skra-sys-color-warning-border: var(--skra-ref-color-warning-600);
315
+ --skra-sys-color-warning-soft: var(--skra-ref-color-warning-50);
316
+ --skra-sys-color-warning-strong: var(--skra-ref-color-warning-700);
317
+ --skra-sys-color-warning-ink: var(--skra-ref-color-warning-700);
318
+ --skra-sys-color-danger-base: var(--skra-ref-color-danger-500);
319
+ --skra-sys-color-danger-contrast: var(--skra-ref-color-neutral-0);
320
+ --skra-sys-color-danger-border: var(--skra-ref-color-danger-600);
321
+ --skra-sys-color-danger-soft: var(--skra-ref-color-danger-50);
322
+ --skra-sys-color-danger-strong: var(--skra-ref-color-danger-700);
323
+ --skra-sys-color-danger-ink: var(--skra-ref-color-danger-500);
324
+ --skra-sys-color-surface: var(--skra-ref-color-neutral-0);
325
+ --skra-sys-color-surface-raised: var(--skra-ref-color-neutral-100);
326
+ --skra-sys-color-surface-hover: var(--skra-ref-color-neutral-100);
327
+ --skra-sys-color-surface-disabled: var(--skra-ref-color-neutral-100);
328
+ --skra-sys-color-surface-muted: var(--skra-ref-color-neutral-300);
329
+ --skra-sys-color-on-surface: var(--skra-ref-color-neutral-1000);
330
+ --skra-sys-color-on-surface-strong: var(--skra-ref-color-neutral-1000);
331
+ --skra-sys-color-on-surface-subtle: var(--skra-ref-color-neutral-700);
332
+ --skra-sys-color-on-surface-disabled: var(--skra-ref-color-neutral-600);
333
+ --skra-sys-color-inverse-surface: var(--skra-ref-color-neutral-800);
334
+ --skra-sys-color-on-inverse-surface: var(--skra-ref-color-neutral-0);
335
+ --skra-sys-color-border: var(--skra-ref-color-neutral-1000);
336
+ --skra-sys-color-border-subtle: var(--skra-ref-color-neutral-600);
337
+ --skra-sys-color-hint: var(--skra-ref-color-neutral-600);
338
+ --skra-sys-color-focus-ring: var(--skra-ref-color-primary-500);
339
+ --skra-sys-color-link: var(--skra-ref-color-primary-600);
340
+ --skra-sys-color-link-hover: var(--skra-ref-color-primary-700);
341
+ --skra-sys-color-link-visited: var(--skra-ref-color-violet-500);
342
+ --skra-sys-color-scrim: var(--skra-ref-color-scrim);
343
+ --skra-sys-motion-duration-fast: var(--skra-ref-motion-duration-100);
344
+ --skra-sys-motion-duration-normal: var(--skra-ref-motion-duration-200);
345
+ --skra-sys-motion-duration-slow: var(--skra-ref-motion-duration-300);
346
+ --skra-sys-motion-delay-short: var(--skra-ref-motion-delay-short);
347
+ --skra-sys-motion-delay-long: var(--skra-ref-motion-delay-long);
348
+ --skra-sys-motion-easing-linear: var(--skra-ref-motion-easing-linear);
349
+ --skra-sys-motion-easing-standard: var(--skra-ref-motion-easing-standard);
350
+ --skra-sys-motion-easing-emphasized: var(--skra-ref-motion-easing-emphasized);
351
+ --skra-sys-radius-sm: var(--skra-ref-radius-1);
352
+ --skra-sys-radius-md: var(--skra-ref-radius-2);
353
+ --skra-sys-radius-lg: var(--skra-ref-radius-4);
354
+ --skra-sys-radius-full: var(--skra-ref-radius-8);
355
+ --skra-sys-size-container-sm: var(--skra-ref-size-container-sm);
356
+ --skra-sys-size-container-md: var(--skra-ref-size-container-md);
357
+ --skra-sys-size-container-lg: var(--skra-ref-size-container-lg);
358
+ --skra-sys-size-tooltip-max: var(--skra-ref-size-sm);
359
+ --skra-sys-size-avatar-sm: var(--skra-ref-size-avatar-sm);
360
+ --skra-sys-size-avatar-md: var(--skra-ref-size-avatar-md);
361
+ --skra-sys-size-avatar-lg: var(--skra-ref-size-avatar-lg);
362
+ --skra-sys-size-status-dot-sm: var(--skra-ref-size-status-dot-sm);
363
+ --skra-sys-size-status-dot-md: var(--skra-ref-size-status-dot-md);
364
+ --skra-sys-size-status-dot-lg: var(--skra-ref-size-status-dot-lg);
365
+ --skra-sys-size-icon-sm: var(--skra-ref-spacing-4);
366
+ --skra-sys-size-icon-md: var(--skra-ref-spacing-6);
367
+ --skra-sys-size-icon-lg: var(--skra-ref-spacing-8);
368
+ --skra-sys-size-grid-track-sm: var(--skra-ref-size-sm);
369
+ --skra-sys-size-grid-track-md: var(--skra-ref-size-md);
370
+ --skra-sys-size-grid-track-lg: var(--skra-ref-size-lg);
371
+ --skra-sys-font-family-display: var(--skra-ref-font-family-sans);
372
+ --skra-sys-font-family-body: var(--skra-ref-font-family-sans);
373
+ --skra-sys-font-family-code: var(--skra-ref-font-family-mono);
374
+ --skra-sys-typography-role-display-large-font-family: var(--skra-ref-font-family-sans);
375
+ --skra-sys-typography-role-display-large-font-size: var(--skra-ref-font-size-6xl);
376
+ --skra-sys-typography-role-display-large-font-weight: var(--skra-ref-font-weight-bold);
377
+ --skra-sys-typography-role-display-large-line-height: var(--skra-ref-line-height-tight);
378
+ --skra-sys-typography-role-display-medium-font-family: var(--skra-ref-font-family-sans);
379
+ --skra-sys-typography-role-display-medium-font-size: var(--skra-ref-font-size-5xl);
380
+ --skra-sys-typography-role-display-medium-font-weight: var(--skra-ref-font-weight-bold);
381
+ --skra-sys-typography-role-display-medium-line-height: var(--skra-ref-line-height-tight);
382
+ --skra-sys-typography-role-display-small-font-family: var(--skra-ref-font-family-sans);
383
+ --skra-sys-typography-role-display-small-font-size: var(--skra-ref-font-size-4xl);
384
+ --skra-sys-typography-role-display-small-font-weight: var(--skra-ref-font-weight-bold);
385
+ --skra-sys-typography-role-display-small-line-height: var(--skra-ref-line-height-tight);
386
+ --skra-sys-typography-role-headline-large-font-family: var(--skra-ref-font-family-sans);
387
+ --skra-sys-typography-role-headline-large-font-size: var(--skra-ref-font-size-3xl);
388
+ --skra-sys-typography-role-headline-large-font-weight: var(--skra-ref-font-weight-semibold);
389
+ --skra-sys-typography-role-headline-large-line-height: var(--skra-ref-line-height-snug);
390
+ --skra-sys-typography-role-headline-medium-font-family: var(--skra-ref-font-family-sans);
391
+ --skra-sys-typography-role-headline-medium-font-size: var(--skra-ref-font-size-2xl);
392
+ --skra-sys-typography-role-headline-medium-font-weight: var(--skra-ref-font-weight-semibold);
393
+ --skra-sys-typography-role-headline-medium-line-height: var(--skra-ref-line-height-snug);
394
+ --skra-sys-typography-role-headline-small-font-family: var(--skra-ref-font-family-sans);
395
+ --skra-sys-typography-role-headline-small-font-size: var(--skra-ref-font-size-xl);
396
+ --skra-sys-typography-role-headline-small-font-weight: var(--skra-ref-font-weight-semibold);
397
+ --skra-sys-typography-role-headline-small-line-height: var(--skra-ref-line-height-snug);
398
+ --skra-sys-typography-role-title-large-font-family: var(--skra-ref-font-family-sans);
399
+ --skra-sys-typography-role-title-large-font-size: var(--skra-ref-font-size-lg);
400
+ --skra-sys-typography-role-title-large-font-weight: var(--skra-ref-font-weight-semibold);
401
+ --skra-sys-typography-role-title-large-line-height: var(--skra-ref-line-height-normal);
402
+ --skra-sys-typography-role-title-medium-font-family: var(--skra-ref-font-family-sans);
403
+ --skra-sys-typography-role-title-medium-font-size: var(--skra-ref-font-size-md);
404
+ --skra-sys-typography-role-title-medium-font-weight: var(--skra-ref-font-weight-semibold);
405
+ --skra-sys-typography-role-title-medium-line-height: var(--skra-ref-line-height-normal);
406
+ --skra-sys-typography-role-title-small-font-family: var(--skra-ref-font-family-sans);
407
+ --skra-sys-typography-role-title-small-font-size: var(--skra-ref-font-size-sm);
408
+ --skra-sys-typography-role-title-small-font-weight: var(--skra-ref-font-weight-semibold);
409
+ --skra-sys-typography-role-title-small-line-height: var(--skra-ref-line-height-normal);
410
+ --skra-sys-typography-role-body-large-font-family: var(--skra-ref-font-family-sans);
411
+ --skra-sys-typography-role-body-large-font-size: var(--skra-ref-font-size-lg);
412
+ --skra-sys-typography-role-body-large-font-weight: var(--skra-ref-font-weight-regular);
413
+ --skra-sys-typography-role-body-large-line-height: var(--skra-ref-line-height-relaxed);
414
+ --skra-sys-typography-role-body-medium-font-family: var(--skra-ref-font-family-sans);
415
+ --skra-sys-typography-role-body-medium-font-size: var(--skra-ref-font-size-md);
416
+ --skra-sys-typography-role-body-medium-font-weight: var(--skra-ref-font-weight-regular);
417
+ --skra-sys-typography-role-body-medium-line-height: var(--skra-ref-line-height-relaxed);
418
+ --skra-sys-typography-role-body-small-font-family: var(--skra-ref-font-family-sans);
419
+ --skra-sys-typography-role-body-small-font-size: var(--skra-ref-font-size-sm);
420
+ --skra-sys-typography-role-body-small-font-weight: var(--skra-ref-font-weight-regular);
421
+ --skra-sys-typography-role-body-small-line-height: var(--skra-ref-line-height-relaxed);
422
+ --skra-sys-typography-role-label-large-font-family: var(--skra-ref-font-family-sans);
423
+ --skra-sys-typography-role-label-large-font-size: var(--skra-ref-font-size-md);
424
+ --skra-sys-typography-role-label-large-font-weight: var(--skra-ref-font-weight-medium);
425
+ --skra-sys-typography-role-label-large-line-height: var(--skra-ref-line-height-snug);
426
+ --skra-sys-typography-role-label-medium-font-family: var(--skra-ref-font-family-sans);
427
+ --skra-sys-typography-role-label-medium-font-size: var(--skra-ref-font-size-sm);
428
+ --skra-sys-typography-role-label-medium-font-weight: var(--skra-ref-font-weight-medium);
429
+ --skra-sys-typography-role-label-medium-line-height: var(--skra-ref-line-height-snug);
430
+ --skra-sys-typography-role-label-small-font-family: var(--skra-ref-font-family-sans);
431
+ --skra-sys-typography-role-label-small-font-size: var(--skra-ref-font-size-xs);
432
+ --skra-sys-typography-role-label-small-font-weight: var(--skra-ref-font-weight-medium);
433
+ --skra-sys-typography-role-label-small-line-height: var(--skra-ref-line-height-snug);
434
+ --skra-sys-spacing-1: var(--skra-ref-spacing-1);
435
+ --skra-sys-spacing-2: var(--skra-ref-spacing-2);
436
+ --skra-sys-spacing-3: var(--skra-ref-spacing-3);
437
+ --skra-sys-spacing-4: var(--skra-ref-spacing-4);
438
+ --skra-sys-spacing-5: var(--skra-ref-spacing-5);
439
+ --skra-sys-spacing-6: var(--skra-ref-spacing-6);
440
+ --skra-sys-spacing-8: var(--skra-ref-spacing-8);
441
+ --skra-sys-font-size-hint: var(--skra-ref-font-size-xs);
442
+ --skra-sys-font-size-small: var(--skra-ref-font-size-sm);
443
+ --skra-sys-font-size-body: var(--skra-ref-font-size-md);
444
+ --skra-sys-font-size-lg: var(--skra-ref-font-size-lg);
445
+ --skra-sys-font-size-label: var(--skra-ref-font-size-sm);
446
+ --skra-sys-opacity-disabled: var(--skra-ref-opacity-disabled);
447
+ --skra-sys-opacity-hover: var(--skra-ref-opacity-hover);
448
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "skra",
3
+ "displayName": "Skra Default",
4
+ "version": "1.0.0",
5
+ "publishable": true,
6
+ "defaultDensity": "normal",
7
+ "defaultColorScheme": "light",
8
+ "darkSchemeStrategy": "auto-oklch-with-overrides",
9
+ "visualProfile": {
10
+ "globalProfile": "normal",
11
+ "interactionStrength": "normal"
12
+ },
13
+ "fonts": [
14
+ {
15
+ "family": "body",
16
+ "name": "system",
17
+ "stack": "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
18
+ "weights": [400, 500, 600, 700],
19
+ "requiresLoading": false
20
+ },
21
+ {
22
+ "family": "display",
23
+ "name": "system",
24
+ "stack": "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
25
+ "weights": [600, 700],
26
+ "requiresLoading": false
27
+ },
28
+ {
29
+ "family": "code",
30
+ "name": "system",
31
+ "stack": "ui-monospace, 'Cascadia Code', 'Fira Code', monospace",
32
+ "weights": [400],
33
+ "requiresLoading": false
34
+ }
35
+ ],
36
+ "extends": null
37
+ }
@@ -0,0 +1,38 @@
1
+ // Forge Design System — global utilities layer (per ADR 033 §3.2)
2
+ //
3
+ // This file is the skin's static CSS surface — utilities that have no token
4
+ // dependency and ship identically across skins. Style Dictionary does not
5
+ // process it; `tools/build-tokens.mjs` copies it verbatim into the per-skin
6
+ // `dist/tokens/[skin]/utilities.scss`.
7
+ //
8
+ // Add only utilities that:
9
+ // - are inherently static (no token references), AND
10
+ // - are mandated by a Forge ADR.
11
+
12
+ // ─── Accessible Name Contract (ADR 033) ──────────────────────────────────────
13
+ // Visually-hidden utility for Path 2 (visible text + hidden extension).
14
+ // Canonical clip-path-based technique: kept in DOM, included in textContent,
15
+ // reachable by screen readers, invisible to sighted users. Both forms are
16
+ // equivalent — use whichever is ergonomic in the call site.
17
+ .skra-sr-only,
18
+ [skra-sr-only] {
19
+ position: absolute;
20
+ width: 1px;
21
+ height: 1px;
22
+ padding: 0;
23
+ margin: -1px;
24
+ overflow: hidden;
25
+ clip: rect(0, 0, 0, 0);
26
+ white-space: nowrap;
27
+ border-width: 0;
28
+ }
29
+
30
+ // ─── Content-driven sizing for form controls (SkraAutoResizeDirective) ──────
31
+ // Native CSS `field-sizing: content` lets <textarea> grow in block-size with
32
+ // row count and <input> grow in inline-size with text width. The Angular
33
+ // directive is a marker only — its compiled attribute selector is what these
34
+ // rules hook into. Skin-agnostic, no token dependency.
35
+ textarea[skraAutoResize],
36
+ input[skraAutoResize] {
37
+ field-sizing: content;
38
+ }