css-is-awesome 1.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.
- package/AGENTS.md +343 -0
- package/CHANGELOG.md +1036 -0
- package/CLAUDE.md +9 -0
- package/CONTRACT.md +580 -0
- package/GEMINI.md +9 -0
- package/LICENSE +21 -0
- package/LICENSE-third-party +88 -0
- package/MIGRATION.md +312 -0
- package/README.md +380 -0
- package/ROADMAP.md +714 -0
- package/THEMING.md +290 -0
- package/THREE-TIERS.md +158 -0
- package/VERSIONING.md +200 -0
- package/_index.scss +34 -0
- package/api.scss +16 -0
- package/bin/README.md +57 -0
- package/bin/cia.cjs +114 -0
- package/bin/migrate-bootstrap.cjs +427 -0
- package/bin/migrate-tailwind.cjs +832 -0
- package/css-is-awesome.instructions.md +533 -0
- package/dist/css-is-awesome.core.css +598 -0
- package/dist/css-is-awesome.core.min.css +1 -0
- package/dist/css-is-awesome.css +3733 -0
- package/dist/css-is-awesome.min.css +1 -0
- package/dist/css-is-awesome.utilities.css +2445 -0
- package/dist/css-is-awesome.utilities.min.css +1 -0
- package/dist/tokens.css +508 -0
- package/dist/tokens.d.ts +266 -0
- package/dist/tokens.min.css +1 -0
- package/figma-tokens/README.md +57 -0
- package/figma-tokens/primitives-brand.scss +121 -0
- package/figma-tokens/semantic-dark.scss +61 -0
- package/figma-tokens/semantic-light.scss +61 -0
- package/figma-tokens/tokens.json +144 -0
- package/llm.txt +183 -0
- package/mcp/server.cjs +1495 -0
- package/package.json +199 -0
- package/public/icons/README.md +278 -0
- package/public/icons/arrow-right.svg +4 -0
- package/public/icons/check.svg +4 -0
- package/public/icons/chevron-down.svg +4 -0
- package/public/icons/close.svg +4 -0
- package/public/icons/core/arrow-down.svg +13 -0
- package/public/icons/core/arrow-left.svg +13 -0
- package/public/icons/core/arrow-right.svg +13 -0
- package/public/icons/core/arrow-up.svg +13 -0
- package/public/icons/core/bell.svg +13 -0
- package/public/icons/core/calendar.svg +15 -0
- package/public/icons/core/check.svg +12 -0
- package/public/icons/core/chevron-down.svg +12 -0
- package/public/icons/core/chevron-left.svg +12 -0
- package/public/icons/core/chevron-right.svg +12 -0
- package/public/icons/core/chevron-up.svg +12 -0
- package/public/icons/core/clock.svg +13 -0
- package/public/icons/core/close.svg +13 -0
- package/public/icons/core/copy.svg +13 -0
- package/public/icons/core/download.svg +14 -0
- package/public/icons/core/edit.svg +13 -0
- package/public/icons/core/error.svg +14 -0
- package/public/icons/core/external-link.svg +14 -0
- package/public/icons/core/eye-off.svg +15 -0
- package/public/icons/core/eye.svg +13 -0
- package/public/icons/core/filter.svg +12 -0
- package/public/icons/core/heart.svg +12 -0
- package/public/icons/core/help.svg +14 -0
- package/public/icons/core/home.svg +13 -0
- package/public/icons/core/info.svg +14 -0
- package/public/icons/core/loading.svg +12 -0
- package/public/icons/core/lock.svg +13 -0
- package/public/icons/core/mail.svg +13 -0
- package/public/icons/core/menu.svg +14 -0
- package/public/icons/core/message.svg +12 -0
- package/public/icons/core/minus.svg +12 -0
- package/public/icons/core/more-horizontal.svg +14 -0
- package/public/icons/core/pause.svg +13 -0
- package/public/icons/core/play.svg +12 -0
- package/public/icons/core/plus.svg +13 -0
- package/public/icons/core/refresh.svg +15 -0
- package/public/icons/core/save.svg +14 -0
- package/public/icons/core/search.svg +13 -0
- package/public/icons/core/settings.svg +13 -0
- package/public/icons/core/share.svg +14 -0
- package/public/icons/core/sort.svg +15 -0
- package/public/icons/core/star.svg +12 -0
- package/public/icons/core/success.svg +13 -0
- package/public/icons/core/trash.svg +16 -0
- package/public/icons/core/unlock.svg +13 -0
- package/public/icons/core/upload.svg +14 -0
- package/public/icons/core/user.svg +13 -0
- package/public/icons/core/users.svg +15 -0
- package/public/icons/core/warning.svg +14 -0
- package/public/icons/download.svg +4 -0
- package/public/icons/edit.svg +4 -0
- package/public/icons/menu.svg +4 -0
- package/public/icons/search.svg +4 -0
- package/public/theme.css +4179 -0
- package/public/themes/README.md +102 -0
- package/public/themes/boilerplate/theme.css +154 -0
- package/public/themes/boilerplate-dark/theme.css +171 -0
- package/public/themes/boilerplate-light/theme.css +171 -0
- package/public/themes/cupertino/theme.css +165 -0
- package/public/themes/cupertino-dark/theme.css +200 -0
- package/public/themes/cupertino-light/theme.css +227 -0
- package/public/themes/glass/theme.css +190 -0
- package/public/themes/glass-dark/theme.css +201 -0
- package/public/themes/glass-light/theme.css +229 -0
- package/public/themes/graphite/theme.css +155 -0
- package/public/themes/graphite-dark/theme.css +223 -0
- package/public/themes/graphite-light/theme.css +191 -0
- package/public/themes/press/theme.css +189 -0
- package/public/themes/press-dark/theme.css +199 -0
- package/public/themes/press-light/theme.css +235 -0
- package/public/themes/prism/theme.css +159 -0
- package/public/themes/prism-dark/theme.css +185 -0
- package/public/themes/prism-light/theme.css +188 -0
- package/public/themes/sketchbook/theme.css +152 -0
- package/public/themes/sketchbook-dark/theme.css +194 -0
- package/public/themes/sketchbook-light/theme.css +188 -0
- package/public/themes/terminal/theme.css +159 -0
- package/public/themes/terminal-dark/theme.css +229 -0
- package/public/themes/terminal-light/theme.css +152 -0
- package/scripts/README.md +70 -0
- package/scripts/icon-contract.json +67 -0
- package/scripts/icon-validator.js +205 -0
- package/scripts/prepare-dist.mjs +65 -0
- package/scripts/theme-a11y.js +415 -0
- package/scripts/theme-contract.json +171 -0
- package/scripts/theme-validator.js +674 -0
- package/scss/README.md +55 -0
- package/scss/_animations-utilities.scss +107 -0
- package/scss/_animations.scss +248 -0
- package/scss/_app-styles.scss +15 -0
- package/scss/_generator.scss +174 -0
- package/scss/_icons.scss +475 -0
- package/scss/_index.scss +17 -0
- package/scss/_layout.scss +597 -0
- package/scss/_mixins.scss +1036 -0
- package/scss/_system.scss +291 -0
- package/scss/_utilities.scss +377 -0
- package/scss/api.scss +61 -0
- package/scss/components/_accordion.scss +72 -0
- package/scss/components/_buttons.scss +171 -0
- package/scss/components/_copy-button.scss +69 -0
- package/scss/components/_data.scss +190 -0
- package/scss/components/_feedback.scss +197 -0
- package/scss/components/_forms.scss +272 -0
- package/scss/components/_index.scss +17 -0
- package/scss/components/_navigation.scss +186 -0
- package/scss/components/_overlay.scss +259 -0
- package/scss/components/_stepper.scss +159 -0
- package/scss/components/_tabs.scss +72 -0
- package/scss/core.scss +54 -0
- package/scss/examples/_theming.scss +107 -0
- package/scss/examples/_usage.scss +317 -0
- package/scss/main.scss +64 -0
- package/scss/recipes/README.md +110 -0
- package/scss/recipes/_bare-tags.scss +232 -0
- package/scss/recipes/_recipe-template.md +119 -0
- package/scss/recipes/combobox.md +509 -0
- package/scss/recipes/dialog.md +265 -0
- package/scss/recipes/print-to-pdf.md +263 -0
- package/scss/theme/README.md +67 -0
- package/scss/theme/_brand.scss +18 -0
- package/scss/theme/_colors-dark.scss +68 -0
- package/scss/theme/_colors-light.scss +70 -0
- package/scss/theme/_components.scss +94 -0
- package/scss/theme/_icons.scss +104 -0
- package/scss/theme/_index.scss +62 -0
- package/scss/theme/_shadows.scss +65 -0
- package/scss/theme/_shape.scss +13 -0
- package/scss/theme/_typography.scss +9 -0
- package/scss/theme/registry.json +447 -0
- package/scss/themes/boilerplate-dark.scss +212 -0
- package/scss/themes/boilerplate-light.scss +209 -0
- package/scss/themes/boilerplate.scss +181 -0
- package/scss/themes/cupertino-dark.scss +238 -0
- package/scss/themes/cupertino-light.scss +266 -0
- package/scss/themes/cupertino.scss +194 -0
- package/scss/themes/glass-dark.scss +238 -0
- package/scss/themes/glass-light.scss +266 -0
- package/scss/themes/glass.scss +220 -0
- package/scss/themes/graphite-dark.scss +260 -0
- package/scss/themes/graphite-light.scss +228 -0
- package/scss/themes/graphite.scss +182 -0
- package/scss/themes/press-dark.scss +237 -0
- package/scss/themes/press-light.scss +273 -0
- package/scss/themes/press.scss +241 -0
- package/scss/themes/prism-dark.scss +217 -0
- package/scss/themes/prism-light.scss +220 -0
- package/scss/themes/prism.scss +190 -0
- package/scss/themes/sketchbook-dark.scss +231 -0
- package/scss/themes/sketchbook-light.scss +231 -0
- package/scss/themes/sketchbook.scss +178 -0
- package/scss/themes/terminal-dark.scss +267 -0
- package/scss/themes/terminal-light.scss +175 -0
- package/scss/themes/terminal.scss +185 -0
- package/scss/tokens.scss +23 -0
- package/scss/utilities-only.scss +4 -0
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
// Generated from scripts/theme-contract.json on 2026-09-01.
|
|
2
|
+
// Do not edit by hand. Run `npm run build:token-types` to regenerate.
|
|
3
|
+
|
|
4
|
+
/** Every CSS custom property cia themes are required to declare. */
|
|
5
|
+
export type CiaToken =
|
|
6
|
+
| "--action-primary-active"
|
|
7
|
+
| "--action-primary-default"
|
|
8
|
+
| "--action-primary-hover"
|
|
9
|
+
| "--action-primary-wash"
|
|
10
|
+
| "--action-secondary-active"
|
|
11
|
+
| "--action-secondary-default"
|
|
12
|
+
| "--action-secondary-hover"
|
|
13
|
+
| "--action-secondary-wash"
|
|
14
|
+
| "--action-tertiary-active"
|
|
15
|
+
| "--action-tertiary-default"
|
|
16
|
+
| "--action-tertiary-hover"
|
|
17
|
+
| "--action-tertiary-wash"
|
|
18
|
+
| "--ai"
|
|
19
|
+
| "--ai-ink"
|
|
20
|
+
| "--ai-wash"
|
|
21
|
+
| "--background-default"
|
|
22
|
+
| "--background-navbar"
|
|
23
|
+
| "--background-subtle"
|
|
24
|
+
| "--blur-lg"
|
|
25
|
+
| "--blur-md"
|
|
26
|
+
| "--blur-sm"
|
|
27
|
+
| "--border-default"
|
|
28
|
+
| "--border-emphasis"
|
|
29
|
+
| "--border-focus"
|
|
30
|
+
| "--border-subtle"
|
|
31
|
+
| "--brand-primary"
|
|
32
|
+
| "--brand-primary-hover"
|
|
33
|
+
| "--code-accent"
|
|
34
|
+
| "--code-bg"
|
|
35
|
+
| "--code-blue"
|
|
36
|
+
| "--code-green"
|
|
37
|
+
| "--code-ink"
|
|
38
|
+
| "--code-muted"
|
|
39
|
+
| "--duration-fast"
|
|
40
|
+
| "--duration-normal"
|
|
41
|
+
| "--duration-slow"
|
|
42
|
+
| "--ease"
|
|
43
|
+
| "--error-default"
|
|
44
|
+
| "--error-subtle"
|
|
45
|
+
| "--error-text"
|
|
46
|
+
| "--feedback-error"
|
|
47
|
+
| "--feedback-info"
|
|
48
|
+
| "--feedback-success"
|
|
49
|
+
| "--feedback-warning"
|
|
50
|
+
| "--font-display"
|
|
51
|
+
| "--font-mono"
|
|
52
|
+
| "--font-primary"
|
|
53
|
+
| "--font-sans"
|
|
54
|
+
| "--font-script"
|
|
55
|
+
| "--font-serif"
|
|
56
|
+
| "--font-size-base"
|
|
57
|
+
| "--font-weight-medium"
|
|
58
|
+
| "--glow-lg"
|
|
59
|
+
| "--glow-md"
|
|
60
|
+
| "--glow-sm"
|
|
61
|
+
| "--graphite"
|
|
62
|
+
| "--guide"
|
|
63
|
+
| "--guide-soft"
|
|
64
|
+
| "--hair"
|
|
65
|
+
| "--hair-soft"
|
|
66
|
+
| "--info-default"
|
|
67
|
+
| "--info-subtle"
|
|
68
|
+
| "--info-text"
|
|
69
|
+
| "--ink"
|
|
70
|
+
| "--ink-faint"
|
|
71
|
+
| "--ink-soft"
|
|
72
|
+
| "--interactive-active"
|
|
73
|
+
| "--interactive-hover"
|
|
74
|
+
| "--line-height-normal"
|
|
75
|
+
| "--muted"
|
|
76
|
+
| "--ochre"
|
|
77
|
+
| "--ochre-wash"
|
|
78
|
+
| "--paper"
|
|
79
|
+
| "--paper-glass"
|
|
80
|
+
| "--paper-raised"
|
|
81
|
+
| "--paper-sunk"
|
|
82
|
+
| "--r-lg"
|
|
83
|
+
| "--r-md"
|
|
84
|
+
| "--r-sm"
|
|
85
|
+
| "--radius-full"
|
|
86
|
+
| "--radius-lg"
|
|
87
|
+
| "--radius-md"
|
|
88
|
+
| "--radius-sm"
|
|
89
|
+
| "--radius-xl"
|
|
90
|
+
| "--shadow-2xl"
|
|
91
|
+
| "--shadow-lg"
|
|
92
|
+
| "--shadow-md"
|
|
93
|
+
| "--shadow-sm"
|
|
94
|
+
| "--shadow-xl"
|
|
95
|
+
| "--shu"
|
|
96
|
+
| "--shu-wash"
|
|
97
|
+
| "--space-0"
|
|
98
|
+
| "--space-1"
|
|
99
|
+
| "--space-2"
|
|
100
|
+
| "--space-3"
|
|
101
|
+
| "--space-4"
|
|
102
|
+
| "--space-5"
|
|
103
|
+
| "--space-6"
|
|
104
|
+
| "--space-7"
|
|
105
|
+
| "--space-8"
|
|
106
|
+
| "--space-9"
|
|
107
|
+
| "--success-default"
|
|
108
|
+
| "--success-subtle"
|
|
109
|
+
| "--success-text"
|
|
110
|
+
| "--surface-default"
|
|
111
|
+
| "--surface-emphasis"
|
|
112
|
+
| "--surface-glass"
|
|
113
|
+
| "--surface-muted"
|
|
114
|
+
| "--surface-raised"
|
|
115
|
+
| "--surface-subtle"
|
|
116
|
+
| "--surface-sunk"
|
|
117
|
+
| "--text-inverse"
|
|
118
|
+
| "--text-link"
|
|
119
|
+
| "--text-link-hover"
|
|
120
|
+
| "--text-muted"
|
|
121
|
+
| "--text-primary"
|
|
122
|
+
| "--text-secondary"
|
|
123
|
+
| "--text-tertiary"
|
|
124
|
+
| "--warning-default"
|
|
125
|
+
| "--warning-subtle"
|
|
126
|
+
| "--warning-text"
|
|
127
|
+
| "--z-backdrop"
|
|
128
|
+
| "--z-dropdown"
|
|
129
|
+
| "--z-modal"
|
|
130
|
+
| "--z-popover"
|
|
131
|
+
| "--z-sticky"
|
|
132
|
+
| "--z-tooltip";
|
|
133
|
+
|
|
134
|
+
/** Map of token name to its CSS value. */
|
|
135
|
+
export interface CiaTokenMap {
|
|
136
|
+
"--action-primary-active": string;
|
|
137
|
+
"--action-primary-default": string;
|
|
138
|
+
"--action-primary-hover": string;
|
|
139
|
+
"--action-primary-wash": string;
|
|
140
|
+
"--action-secondary-active": string;
|
|
141
|
+
"--action-secondary-default": string;
|
|
142
|
+
"--action-secondary-hover": string;
|
|
143
|
+
"--action-secondary-wash": string;
|
|
144
|
+
"--action-tertiary-active": string;
|
|
145
|
+
"--action-tertiary-default": string;
|
|
146
|
+
"--action-tertiary-hover": string;
|
|
147
|
+
"--action-tertiary-wash": string;
|
|
148
|
+
"--ai": string;
|
|
149
|
+
"--ai-ink": string;
|
|
150
|
+
"--ai-wash": string;
|
|
151
|
+
"--background-default": string;
|
|
152
|
+
"--background-navbar": string;
|
|
153
|
+
"--background-subtle": string;
|
|
154
|
+
"--blur-lg": string;
|
|
155
|
+
"--blur-md": string;
|
|
156
|
+
"--blur-sm": string;
|
|
157
|
+
"--border-default": string;
|
|
158
|
+
"--border-emphasis": string;
|
|
159
|
+
"--border-focus": string;
|
|
160
|
+
"--border-subtle": string;
|
|
161
|
+
"--brand-primary": string;
|
|
162
|
+
"--brand-primary-hover": string;
|
|
163
|
+
"--code-accent": string;
|
|
164
|
+
"--code-bg": string;
|
|
165
|
+
"--code-blue": string;
|
|
166
|
+
"--code-green": string;
|
|
167
|
+
"--code-ink": string;
|
|
168
|
+
"--code-muted": string;
|
|
169
|
+
"--duration-fast": string;
|
|
170
|
+
"--duration-normal": string;
|
|
171
|
+
"--duration-slow": string;
|
|
172
|
+
"--ease": string;
|
|
173
|
+
"--error-default": string;
|
|
174
|
+
"--error-subtle": string;
|
|
175
|
+
"--error-text": string;
|
|
176
|
+
"--feedback-error": string;
|
|
177
|
+
"--feedback-info": string;
|
|
178
|
+
"--feedback-success": string;
|
|
179
|
+
"--feedback-warning": string;
|
|
180
|
+
"--font-display": string;
|
|
181
|
+
"--font-mono": string;
|
|
182
|
+
"--font-primary": string;
|
|
183
|
+
"--font-sans": string;
|
|
184
|
+
"--font-script": string;
|
|
185
|
+
"--font-serif": string;
|
|
186
|
+
"--font-size-base": string;
|
|
187
|
+
"--font-weight-medium": string;
|
|
188
|
+
"--glow-lg": string;
|
|
189
|
+
"--glow-md": string;
|
|
190
|
+
"--glow-sm": string;
|
|
191
|
+
"--graphite": string;
|
|
192
|
+
"--guide": string;
|
|
193
|
+
"--guide-soft": string;
|
|
194
|
+
"--hair": string;
|
|
195
|
+
"--hair-soft": string;
|
|
196
|
+
"--info-default": string;
|
|
197
|
+
"--info-subtle": string;
|
|
198
|
+
"--info-text": string;
|
|
199
|
+
"--ink": string;
|
|
200
|
+
"--ink-faint": string;
|
|
201
|
+
"--ink-soft": string;
|
|
202
|
+
"--interactive-active": string;
|
|
203
|
+
"--interactive-hover": string;
|
|
204
|
+
"--line-height-normal": string;
|
|
205
|
+
"--muted": string;
|
|
206
|
+
"--ochre": string;
|
|
207
|
+
"--ochre-wash": string;
|
|
208
|
+
"--paper": string;
|
|
209
|
+
"--paper-glass": string;
|
|
210
|
+
"--paper-raised": string;
|
|
211
|
+
"--paper-sunk": string;
|
|
212
|
+
"--r-lg": string;
|
|
213
|
+
"--r-md": string;
|
|
214
|
+
"--r-sm": string;
|
|
215
|
+
"--radius-full": string;
|
|
216
|
+
"--radius-lg": string;
|
|
217
|
+
"--radius-md": string;
|
|
218
|
+
"--radius-sm": string;
|
|
219
|
+
"--radius-xl": string;
|
|
220
|
+
"--shadow-2xl": string;
|
|
221
|
+
"--shadow-lg": string;
|
|
222
|
+
"--shadow-md": string;
|
|
223
|
+
"--shadow-sm": string;
|
|
224
|
+
"--shadow-xl": string;
|
|
225
|
+
"--shu": string;
|
|
226
|
+
"--shu-wash": string;
|
|
227
|
+
"--space-0": string;
|
|
228
|
+
"--space-1": string;
|
|
229
|
+
"--space-2": string;
|
|
230
|
+
"--space-3": string;
|
|
231
|
+
"--space-4": string;
|
|
232
|
+
"--space-5": string;
|
|
233
|
+
"--space-6": string;
|
|
234
|
+
"--space-7": string;
|
|
235
|
+
"--space-8": string;
|
|
236
|
+
"--space-9": string;
|
|
237
|
+
"--success-default": string;
|
|
238
|
+
"--success-subtle": string;
|
|
239
|
+
"--success-text": string;
|
|
240
|
+
"--surface-default": string;
|
|
241
|
+
"--surface-emphasis": string;
|
|
242
|
+
"--surface-glass": string;
|
|
243
|
+
"--surface-muted": string;
|
|
244
|
+
"--surface-raised": string;
|
|
245
|
+
"--surface-subtle": string;
|
|
246
|
+
"--surface-sunk": string;
|
|
247
|
+
"--text-inverse": string;
|
|
248
|
+
"--text-link": string;
|
|
249
|
+
"--text-link-hover": string;
|
|
250
|
+
"--text-muted": string;
|
|
251
|
+
"--text-primary": string;
|
|
252
|
+
"--text-secondary": string;
|
|
253
|
+
"--text-tertiary": string;
|
|
254
|
+
"--warning-default": string;
|
|
255
|
+
"--warning-subtle": string;
|
|
256
|
+
"--warning-text": string;
|
|
257
|
+
"--z-backdrop": string;
|
|
258
|
+
"--z-dropdown": string;
|
|
259
|
+
"--z-modal": string;
|
|
260
|
+
"--z-popover": string;
|
|
261
|
+
"--z-sticky": string;
|
|
262
|
+
"--z-tooltip": string;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/** Count of required tokens in the current contract. */
|
|
266
|
+
export declare const CIA_TOKEN_COUNT: 127;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:where(:root){--brand-primary: #3A5FCD;--brand-primary-hover: #2E4A99;--brand-primary-active: #1E3A8A;--brand-secondary: #FF6B6B;--brand-secondary-hover: #E85555;--brand-secondary-active: #C55;--brand-accent: #09F;--brand-accent-hover: #0088E6;--background-default: #FFF;--background-subtle: #F8F6F0;--background-navbar: #FAFAFA;--surface-default: #FFF;--surface-subtle: #F8F6F0;--surface-muted: #F5F5F5;--surface-emphasis: #E5E5E5;--text-primary: #0f0f0f;--text-secondary: #525252;--text-muted: #6b6b6b;--text-inverse: #fff;--text-link: #384fff;--text-link-hover: #2a3acc;--border-default: #e5e5e5;--border-subtle: #f5f5f5;--border-emphasis: #d4d4d4;--border-focus: #384fff;--interactive-hover: rgba(0, 0, 0, 0.03);--interactive-active: rgba(0, 0, 0, 0.06);--action-primary-default: #3A5FCD;--action-primary-hover: #2E4A99;--action-primary-active: #1E3A8A;--action-secondary-default: #FF6B6B;--action-secondary-hover: #E85555;--action-secondary-active: #C55;--success-default: #10b981;--success-hover: #059669;--success-subtle: #ecfdf5;--success-text: #065f46;--warning-default: #f59e0b;--warning-hover: #d97706;--warning-subtle: #fffbeb;--warning-text: #92400e;--error-default: #DC2626;--error-hover: #B91C1C;--error-subtle: #FEF2F2;--error-text: #991B1B;--info-default: #3A5FCD;--info-hover: #2E4A99;--info-subtle: #EFF6FF;--info-text: #1E3A8A;--radius-none: 0;--radius-sm: 0.25rem;--radius-md: 0.375rem;--radius-lg: 0.5rem;--radius-xl: 0.75rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-1: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);--shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);--shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);--shadow-5: 0 25px 50px -12px rgba(0, 0, 0, 0.25);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);--shadow-none: none;--font-primary: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;--font-secondary: Georgia, Times New Roman, serif;--font-mono: Fira Code, Consolas, Monaco, monospace;--space-1: 0.5rem;--space-2: 0.75rem;--space-3: 0.875rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--space-0: 0;--space-none: 0;--space-2xs: 0.25rem;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-4);--space-lg: var(--space-5);--space-xl: var(--space-6);--space-2xl: var(--space-7);--space-3xl: var(--space-8);--space-4xl: var(--space-9);--z-hide: -1;--z-base: 0;--z-dropdown: 1000;--z-sticky: 1100;--z-fixed: 1200;--z-backdrop: 1300;--z-modal: 1400;--z-popover: 1500;--z-tooltip: 1600;--z-toast: 1700;--font-size-1: 0.75rem;--font-size-2: 0.875rem;--font-size-3: 1rem;--font-size-4: 1.125rem;--font-size-5: 1.25rem;--font-size-6: 1.5rem;--font-size-7: 1.875rem;--font-size-8: 2.25rem;--font-size-9: 3rem;--font-size-10: 3.75rem;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--line-height-1: 1;--line-height-2: 1.25;--line-height-3: 1.375;--line-height-4: 1.5;--line-height-5: 1.625;--line-height-6: 2;--line-height-none: 1;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--duration-instant: 0ms;--duration-fast: 150ms;--duration-normal: 250ms;--duration-slow: 400ms;--duration-slower: 600ms;--opacity-0: 0;--opacity-5: 0.05;--opacity-10: 0.1;--opacity-20: 0.2;--opacity-25: 0.25;--opacity-30: 0.3;--opacity-40: 0.4;--opacity-50: 0.5;--opacity-60: 0.6;--opacity-70: 0.7;--opacity-75: 0.75;--opacity-80: 0.8;--opacity-90: 0.9;--opacity-95: 0.95;--opacity-100: 1;--btn-padding-y: var(--space-1, 0.5rem);--btn-padding-x: var(--space-4, 1rem);--btn-radius: var(--radius-md, 0.25rem);--btn-font-weight: var(--font-weight-medium, 500);--btn-font-size: var(--font-size-base, 1rem);--btn-border-width: 1px;--card-padding: var(--space-4, 1rem);--card-radius: var(--radius-lg, 0.5rem);--card-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));--card-border: 1px solid var(--border-default);--input-padding-y: var(--space-1, 0.5rem);--input-padding-x: var(--space-2, 0.75rem);--input-radius: var(--radius-md, 0.25rem);--input-border-width: 1px;--alert-padding-y: var(--space-2, 0.75rem);--alert-padding-x: var(--space-4, 1rem);--alert-radius: var(--radius-md, 0.25rem);--badge-padding-y: var(--space-1, 0.5rem);--badge-padding-x: var(--space-1, 0.5rem);--badge-radius: var(--radius-full, 9999px);--tag-padding-y: var(--space-2xs, 0.25rem);--tag-padding-x: var(--space-2, 0.75rem);--tag-radius: var(--radius-md, 0.25rem);--modal-padding: var(--space-5, 1.5rem);--modal-radius: var(--radius-xl, 0.75rem);--modal-shadow: var(--shadow-2xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25));--popover-padding: var(--space-4, 1rem);--popover-radius: var(--radius-lg, 0.5rem);--popover-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));--tooltip-padding-y: var(--space-1, 0.5rem);--tooltip-padding-x: var(--space-1, 0.5rem);--tooltip-radius: var(--radius-md, 0.25rem);--dropdown-radius: var(--radius-md, 0.25rem);--dropdown-shadow: var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1))}[data-theme=light]{--brand-primary: #3A5FCD;--brand-primary-hover: #2E4A99;--brand-primary-active: #1E3A8A;--brand-secondary: #FF6B6B;--brand-secondary-hover: #E85555;--brand-secondary-active: #C55;--brand-accent: #09F;--brand-accent-hover: #0088E6;--background-default: #FFF;--background-subtle: #F8F6F0;--background-navbar: #FAFAFA;--surface-default: #FFF;--surface-subtle: #F8F6F0;--surface-muted: #F5F5F5;--surface-emphasis: #E5E5E5;--text-primary: #0f0f0f;--text-secondary: #525252;--text-muted: #6b6b6b;--text-inverse: #fff;--text-link: #384fff;--text-link-hover: #2a3acc;--border-default: #e5e5e5;--border-subtle: #f5f5f5;--border-emphasis: #d4d4d4;--border-focus: #384fff;--interactive-hover: rgba(0, 0, 0, 0.03);--interactive-active: rgba(0, 0, 0, 0.06);--action-primary-default: #3A5FCD;--action-primary-hover: #2E4A99;--action-primary-active: #1E3A8A;--action-secondary-default: #FF6B6B;--action-secondary-hover: #E85555;--action-secondary-active: #C55;--success-default: #10b981;--success-hover: #059669;--success-subtle: #ecfdf5;--success-text: #065f46;--warning-default: #f59e0b;--warning-hover: #d97706;--warning-subtle: #fffbeb;--warning-text: #92400e;--error-default: #DC2626;--error-hover: #B91C1C;--error-subtle: #FEF2F2;--error-text: #991B1B;--info-default: #3A5FCD;--info-hover: #2E4A99;--info-subtle: #EFF6FF;--info-text: #1E3A8A;--radius-none: 0;--radius-sm: 0.25rem;--radius-md: 0.375rem;--radius-lg: 0.5rem;--radius-xl: 0.75rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-1: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);--shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);--shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);--shadow-5: 0 25px 50px -12px rgba(0, 0, 0, 0.25);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);--shadow-none: none;--font-primary: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;--font-secondary: Georgia, Times New Roman, serif;--font-mono: Fira Code, Consolas, Monaco, monospace;--space-1: 0.5rem;--space-2: 0.75rem;--space-3: 0.875rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--space-0: 0;--space-none: 0;--space-2xs: 0.25rem;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-4);--space-lg: var(--space-5);--space-xl: var(--space-6);--space-2xl: var(--space-7);--space-3xl: var(--space-8);--space-4xl: var(--space-9);--z-hide: -1;--z-base: 0;--z-dropdown: 1000;--z-sticky: 1100;--z-fixed: 1200;--z-backdrop: 1300;--z-modal: 1400;--z-popover: 1500;--z-tooltip: 1600;--z-toast: 1700;--font-size-1: 0.75rem;--font-size-2: 0.875rem;--font-size-3: 1rem;--font-size-4: 1.125rem;--font-size-5: 1.25rem;--font-size-6: 1.5rem;--font-size-7: 1.875rem;--font-size-8: 2.25rem;--font-size-9: 3rem;--font-size-10: 3.75rem;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--line-height-1: 1;--line-height-2: 1.25;--line-height-3: 1.375;--line-height-4: 1.5;--line-height-5: 1.625;--line-height-6: 2;--line-height-none: 1;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--duration-instant: 0ms;--duration-fast: 150ms;--duration-normal: 250ms;--duration-slow: 400ms;--duration-slower: 600ms;--opacity-0: 0;--opacity-5: 0.05;--opacity-10: 0.1;--opacity-20: 0.2;--opacity-25: 0.25;--opacity-30: 0.3;--opacity-40: 0.4;--opacity-50: 0.5;--opacity-60: 0.6;--opacity-70: 0.7;--opacity-75: 0.75;--opacity-80: 0.8;--opacity-90: 0.9;--opacity-95: 0.95;--opacity-100: 1;--btn-padding-y: var(--space-1, 0.5rem);--btn-padding-x: var(--space-4, 1rem);--btn-radius: var(--radius-md, 0.25rem);--btn-font-weight: var(--font-weight-medium, 500);--btn-font-size: var(--font-size-base, 1rem);--btn-border-width: 1px;--card-padding: var(--space-4, 1rem);--card-radius: var(--radius-lg, 0.5rem);--card-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));--card-border: 1px solid var(--border-default);--input-padding-y: var(--space-1, 0.5rem);--input-padding-x: var(--space-2, 0.75rem);--input-radius: var(--radius-md, 0.25rem);--input-border-width: 1px;--alert-padding-y: var(--space-2, 0.75rem);--alert-padding-x: var(--space-4, 1rem);--alert-radius: var(--radius-md, 0.25rem);--badge-padding-y: var(--space-1, 0.5rem);--badge-padding-x: var(--space-1, 0.5rem);--badge-radius: var(--radius-full, 9999px);--tag-padding-y: var(--space-2xs, 0.25rem);--tag-padding-x: var(--space-2, 0.75rem);--tag-radius: var(--radius-md, 0.25rem);--modal-padding: var(--space-5, 1.5rem);--modal-radius: var(--radius-xl, 0.75rem);--modal-shadow: var(--shadow-2xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25));--popover-padding: var(--space-4, 1rem);--popover-radius: var(--radius-lg, 0.5rem);--popover-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));--tooltip-padding-y: var(--space-1, 0.5rem);--tooltip-padding-x: var(--space-1, 0.5rem);--tooltip-radius: var(--radius-md, 0.25rem);--dropdown-radius: var(--radius-md, 0.25rem);--dropdown-shadow: var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1))}[data-theme=dark]{--background-default: #0a0a0a;--background-subtle: #151515;--background-navbar: #1a1a1a;--surface-default: #151515;--surface-subtle: #1f1f1f;--surface-muted: #2a2a2a;--surface-emphasis: #353535;--text-primary: #FFF;--text-secondary: #b8b8b8;--text-muted: #768194;--text-inverse: #0a0a0a;--text-link: #09f;--text-link-hover: #5ebbff;--border-default: #2a2a2a;--border-subtle: #1f1f1f;--border-emphasis: #404040;--border-focus: #09f;--interactive-hover: rgba(255, 255, 255, 0.05);--interactive-active: rgba(255, 255, 255, 0.1);--action-primary-default: #6B8FE8;--action-primary-hover: #8BABF5;--action-primary-active: #3A5FCD;--action-secondary-default: #FF8A8A;--action-secondary-hover: #FFACAC;--action-secondary-active: #FF6B6B;--success-default: #34d399;--success-hover: #10b981;--success-subtle: #064e3b;--success-text: #6ee7b7;--warning-default: #fbbf24;--warning-hover: #f59e0b;--warning-subtle: #451a03;--warning-text: #fcd34d;--error-default: #f87171;--error-hover: #ef4444;--error-subtle: #450a0a;--error-text: #fca5a5;--info-default: #60a5fa;--info-hover: #3b82f6;--info-subtle: #172554;--info-text: #93c5fd;--shadow-1: 0 1px 2px 0 rgba(0, 0, 0, 0.3);--shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);--shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -4px rgba(0, 0, 0, 0.4);--shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.4);--shadow-5: 0 25px 50px -12px rgba(0, 0, 0, 0.6);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -4px rgba(0, 0, 0, 0.4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.4);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.6);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.3);--shadow-none: none}@media(prefers-color-scheme: dark){:root:not([data-theme=light]){--background-default: #0a0a0a;--background-subtle: #151515;--background-navbar: #1a1a1a;--surface-default: #151515;--surface-subtle: #1f1f1f;--surface-muted: #2a2a2a;--surface-emphasis: #353535;--text-primary: #FFF;--text-secondary: #b8b8b8;--text-muted: #768194;--text-inverse: #0a0a0a;--text-link: #09f;--text-link-hover: #5ebbff;--border-default: #2a2a2a;--border-subtle: #1f1f1f;--border-emphasis: #404040;--border-focus: #09f;--interactive-hover: rgba(255, 255, 255, 0.05);--interactive-active: rgba(255, 255, 255, 0.1);--action-primary-default: #6B8FE8;--action-primary-hover: #8BABF5;--action-primary-active: #3A5FCD;--action-secondary-default: #FF8A8A;--action-secondary-hover: #FFACAC;--action-secondary-active: #FF6B6B;--success-default: #34d399;--success-hover: #10b981;--success-subtle: #064e3b;--success-text: #6ee7b7;--warning-default: #fbbf24;--warning-hover: #f59e0b;--warning-subtle: #451a03;--warning-text: #fcd34d;--error-default: #f87171;--error-hover: #ef4444;--error-subtle: #450a0a;--error-text: #fca5a5;--info-default: #60a5fa;--info-hover: #3b82f6;--info-subtle: #172554;--info-text: #93c5fd;--shadow-1: 0 1px 2px 0 rgba(0, 0, 0, 0.3);--shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);--shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -4px rgba(0, 0, 0, 0.4);--shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.4);--shadow-5: 0 25px 50px -12px rgba(0, 0, 0, 0.6);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -4px rgba(0, 0, 0, 0.4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.4);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.6);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.3);--shadow-none: none}}:root{--touch-target-min: 24px}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# figma-tokens
|
|
2
|
+
|
|
3
|
+
Design-token exports for design-tool sync. Ships in the npm package (whitelisted
|
|
4
|
+
under `files` in `package.json`), so consumers can read it at
|
|
5
|
+
`node_modules/css-is-awesome/figma-tokens/`.
|
|
6
|
+
|
|
7
|
+
This folder is the deliverable from **Phase 3** of the roadmap — *"Export Figma
|
|
8
|
+
Tokens JSON alongside SCSS (for design-tool sync)"*. The canonical token source
|
|
9
|
+
for code remains `scss/theme/` (see `CONTRACT.md`); this folder mirrors that
|
|
10
|
+
source in a format design tools can consume.
|
|
11
|
+
|
|
12
|
+
## Files
|
|
13
|
+
|
|
14
|
+
| File | What it owns |
|
|
15
|
+
| ------------------------ | -------------------------------------------------------------------------------------------- |
|
|
16
|
+
| `tokens.json` | Full token set in [Tokens Studio for Figma](https://github.com/tokens-studio/figma-plugin) format (`{ value, type }` per token). Groups: `brand`, `color-light`, `color-dark`, `spacing`, `font-size`, `font-weight`, `line-height`, `border-radius`, `shadow`. |
|
|
17
|
+
| `primitives-brand.scss` | Brand primitives + global primitives — space, font-size/weight/family, line-height, letter-spacing, border-radius, duration, easing, opacity, breakpoint, container, brand color ramp. |
|
|
18
|
+
| `semantic-light.scss` | Semantic light-mode color tokens — backgrounds, surfaces, text, borders, action-primary/secondary, status (success/warning/error/info). |
|
|
19
|
+
| `semantic-dark.scss` | Semantic dark-mode color tokens — same shape as `semantic-light.scss`, with dark-mode values. |
|
|
20
|
+
|
|
21
|
+
The `.scss` siblings exist for consumers who want to `@import` Figma-exported
|
|
22
|
+
tokens directly without going through `tokens.json`. They are not consumed by
|
|
23
|
+
the main `scss/` build — `scss/main.scss` pulls from `scss/theme/`.
|
|
24
|
+
|
|
25
|
+
## Direction of truth
|
|
26
|
+
|
|
27
|
+
**Hand-maintained.** Keep in sync with `scss/theme/` when tokens change.
|
|
28
|
+
|
|
29
|
+
The `.scss` files carry a header that reads *"DO NOT EDIT — run `npm run
|
|
30
|
+
tokens:convert`"*. That script no longer exists (no entry in `package.json`,
|
|
31
|
+
no source under `scripts/`) — the header is a stale artifact from an earlier
|
|
32
|
+
tooling iteration. Drift between this folder and `scss/theme/` is therefore
|
|
33
|
+
real and possible; treat both halves as hand-edited until the auto-generator
|
|
34
|
+
lands.
|
|
35
|
+
|
|
36
|
+
Roadmap item `roadmap/epics/06-ai-integration.md` **Feature 6.3 — JSON token
|
|
37
|
+
export** (P1, not yet done) tracks the work to auto-regenerate `tokens.json`
|
|
38
|
+
from the SCSS source maps on every build, with stale output failing CI. Once
|
|
39
|
+
that ships, this folder becomes generated and the README will be updated.
|
|
40
|
+
|
|
41
|
+
## Importing into Figma
|
|
42
|
+
|
|
43
|
+
1. Install [Tokens Studio for Figma](https://tokens.studio/).
|
|
44
|
+
2. In the plugin, **Tools → Import → JSON file** and select
|
|
45
|
+
`node_modules/css-is-awesome/figma-tokens/tokens.json`.
|
|
46
|
+
3. Map `color-light` / `color-dark` to Tokens Studio *themes* so dark mode
|
|
47
|
+
swaps cleanly inside Figma.
|
|
48
|
+
|
|
49
|
+
## When you change a token
|
|
50
|
+
|
|
51
|
+
Until Feature 6.3 lands, every token change is a two-step edit:
|
|
52
|
+
|
|
53
|
+
1. Update the SCSS source under `scss/theme/` (the canonical contract).
|
|
54
|
+
2. Mirror the same change in this folder — `tokens.json` plus the matching
|
|
55
|
+
`.scss` file (primitives vs semantic light vs semantic dark).
|
|
56
|
+
3. Run `npm run validate-themes` to confirm the SCSS contract still holds.
|
|
57
|
+
(The validator does not currently diff `figma-tokens/` against `scss/theme/`.)
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
//
|
|
2
|
+
// primitives-brand - Converted to rem
|
|
3
|
+
// Generated: 2026-02-09T21:59:43.888Z
|
|
4
|
+
// Base font size: 16px
|
|
5
|
+
//
|
|
6
|
+
// DO NOT EDIT THIS FILE DIRECTLY
|
|
7
|
+
// Edit the JSON files and run: npm run tokens:convert
|
|
8
|
+
//
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
// space
|
|
12
|
+
$space-xs: 0.5rem; // Original: 8px
|
|
13
|
+
$space-sm: 0.75rem; // Original: 12px
|
|
14
|
+
$space-md: 1rem; // Original: 16px
|
|
15
|
+
$space-lg: 1.5rem; // Original: 24px
|
|
16
|
+
$space-xl: 2rem; // Original: 32px
|
|
17
|
+
$space-2xl: 3rem; // Original: 48px
|
|
18
|
+
$space-3xl: 4rem; // Original: 64px
|
|
19
|
+
$space-4xl: 6rem; // Original: 96px
|
|
20
|
+
|
|
21
|
+
// font-size
|
|
22
|
+
$font-size-xs: 0.75rem; // Original: 12px
|
|
23
|
+
$font-size-sm: 0.875rem; // Original: 14px
|
|
24
|
+
$font-size-base: 1rem; // Original: 16px
|
|
25
|
+
$font-size-lg: 1.125rem; // Original: 18px
|
|
26
|
+
$font-size-xl: 1.25rem; // Original: 20px
|
|
27
|
+
$font-size-2xl: 1.5rem; // Original: 24px
|
|
28
|
+
$font-size-3xl: 1.875rem; // Original: 30px
|
|
29
|
+
$font-size-4xl: 2.25rem; // Original: 36px
|
|
30
|
+
$font-size-5xl: 3rem; // Original: 48px
|
|
31
|
+
$font-size-6xl: 3.75rem; // Original: 60px
|
|
32
|
+
|
|
33
|
+
// font-weight
|
|
34
|
+
$font-weight-light: 300; // Original: N/A
|
|
35
|
+
$font-weight-normal: 400; // Original: N/A
|
|
36
|
+
$font-weight-medium: 500; // Original: N/A
|
|
37
|
+
$font-weight-semibold: 600; // Original: N/A
|
|
38
|
+
$font-weight-bold: 700; // Original: N/A
|
|
39
|
+
|
|
40
|
+
// line-height
|
|
41
|
+
$line-height-tight: 1.25; // Original: N/A
|
|
42
|
+
$line-height-snug: 1.375; // Original: N/A
|
|
43
|
+
$line-height-normal: 1.5; // Original: N/A
|
|
44
|
+
$line-height-relaxed: 1.625; // Original: N/A
|
|
45
|
+
|
|
46
|
+
// font-family
|
|
47
|
+
$font-family-sans: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; // Original: N/A
|
|
48
|
+
$font-family-serif: Georgia, 'Times New Roman', Times, serif; // Original: N/A
|
|
49
|
+
$font-family-mono: 'Fira Code', 'Courier New', Courier, monospace; // Original: N/A
|
|
50
|
+
|
|
51
|
+
// letter-spacing
|
|
52
|
+
$letter-spacing-tighter: -0.05em; // Original: -0.05em
|
|
53
|
+
$letter-spacing-tight: -0.025em; // Original: -0.025em
|
|
54
|
+
$letter-spacing-normal: 0em; // Original: N/Aem
|
|
55
|
+
$letter-spacing-wide: 0.025em; // Original: 0.025em
|
|
56
|
+
$letter-spacing-wider: 0.05em; // Original: 0.05em
|
|
57
|
+
$letter-spacing-widest: 0.1em; // Original: 0.1em
|
|
58
|
+
|
|
59
|
+
// border-radius
|
|
60
|
+
$border-radius-sm: 0.25rem; // Original: 4px
|
|
61
|
+
$border-radius-md: 0.375rem; // Original: 6px
|
|
62
|
+
$border-radius-lg: 0.5rem; // Original: 8px
|
|
63
|
+
$border-radius-xl: 0.75rem; // Original: 12px
|
|
64
|
+
$border-radius-2xl: 1rem; // Original: 16px
|
|
65
|
+
$border-radius-full: 624.9375rem; // Original: 9999px
|
|
66
|
+
|
|
67
|
+
// duration
|
|
68
|
+
$duration-instant: 0ms; // Original: N/A
|
|
69
|
+
$duration-fast: 150ms; // Original: 150
|
|
70
|
+
$duration-normal: 250ms; // Original: 250
|
|
71
|
+
$duration-slow: 400ms; // Original: 400
|
|
72
|
+
$duration-slower: 600ms; // Original: 600
|
|
73
|
+
|
|
74
|
+
// easing
|
|
75
|
+
$easing-linear: cubic-bezier(0, 0, 1, 1); // Original: N/A
|
|
76
|
+
$easing-ease: cubic-bezier(0.25, 0.1, 0.25, 1); // Original: N/A
|
|
77
|
+
$easing-ease-in: cubic-bezier(0.42, 0, 1, 1); // Original: N/A
|
|
78
|
+
$easing-ease-out: cubic-bezier(0, 0, 0.58, 1); // Original: N/A
|
|
79
|
+
$easing-ease-in-out: cubic-bezier(0.42, 0, 0.58, 1); // Original: N/A
|
|
80
|
+
$easing-spring: cubic-bezier(0.68, -0.55, 0.265, 1.55); // Original: N/A
|
|
81
|
+
|
|
82
|
+
// opacity
|
|
83
|
+
$opacity-0: 0; // Original: N/A
|
|
84
|
+
$opacity-10: 0.1; // Original: N/A
|
|
85
|
+
$opacity-20: 0.2; // Original: N/A
|
|
86
|
+
$opacity-30: 0.3; // Original: N/A
|
|
87
|
+
$opacity-40: 0.4; // Original: N/A
|
|
88
|
+
$opacity-50: 0.5; // Original: N/A
|
|
89
|
+
$opacity-60: 0.6; // Original: N/A
|
|
90
|
+
$opacity-70: 0.7; // Original: N/A
|
|
91
|
+
$opacity-80: 0.8; // Original: N/A
|
|
92
|
+
$opacity-90: 0.9; // Original: N/A
|
|
93
|
+
$opacity-100: 1; // Original: N/A
|
|
94
|
+
$opacity-disabled: 0.38; // Original: N/A
|
|
95
|
+
|
|
96
|
+
// breakpoint
|
|
97
|
+
$breakpoint-xs: 20rem; // Original: 320px
|
|
98
|
+
$breakpoint-sm: 40rem; // Original: 640px
|
|
99
|
+
$breakpoint-md: 48rem; // Original: 768px
|
|
100
|
+
$breakpoint-lg: 64rem; // Original: 1024px
|
|
101
|
+
$breakpoint-xl: 80rem; // Original: 1280px
|
|
102
|
+
$breakpoint-2xl: 96rem; // Original: 1536px
|
|
103
|
+
|
|
104
|
+
// container
|
|
105
|
+
$container-sm: 40rem; // Original: 640px
|
|
106
|
+
$container-md: 48rem; // Original: 768px
|
|
107
|
+
$container-lg: 64rem; // Original: 1024px
|
|
108
|
+
$container-xl: 80rem; // Original: 1280px
|
|
109
|
+
$container-2xl: 96rem; // Original: 1536px
|
|
110
|
+
|
|
111
|
+
// color
|
|
112
|
+
|
|
113
|
+
// brand
|
|
114
|
+
$color-brand-primary: #3A5FCD; // Original: N/A
|
|
115
|
+
$color-brand-primary-hover: #2E4A99; // Original: N/A
|
|
116
|
+
$color-brand-primary-active: #1E3A8A; // Original: N/A
|
|
117
|
+
$color-brand-secondary: #FF6B6B; // Original: N/A
|
|
118
|
+
$color-brand-secondary-hover: #E85555; // Original: N/A
|
|
119
|
+
$color-brand-secondary-active: #CC5555; // Original: N/A
|
|
120
|
+
$color-brand-accent: #0099FF; // Original: N/A
|
|
121
|
+
$color-brand-accent-hover: #0088E6; // Original: N/A
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//
|
|
2
|
+
// semantic-dark - Converted to rem
|
|
3
|
+
// Generated: 2026-02-09T21:59:43.891Z
|
|
4
|
+
// Base font size: 16px
|
|
5
|
+
//
|
|
6
|
+
// DO NOT EDIT THIS FILE DIRECTLY
|
|
7
|
+
// Edit the JSON files and run: npm run tokens:convert
|
|
8
|
+
//
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
// color
|
|
12
|
+
|
|
13
|
+
// background
|
|
14
|
+
$color-background-default: #0A0A0A; // Original: N/A
|
|
15
|
+
$color-background-subtle: #151515; // Original: N/A
|
|
16
|
+
$color-background-navbar: #1A1A1A; // Original: N/A
|
|
17
|
+
|
|
18
|
+
// surface
|
|
19
|
+
$color-surface-default: #151515; // Original: N/A
|
|
20
|
+
$color-surface-subtle: #1F1F1F; // Original: N/A
|
|
21
|
+
$color-surface-muted: #2A2A2A; // Original: N/A
|
|
22
|
+
|
|
23
|
+
// text
|
|
24
|
+
$color-text-primary: #FFFFFF; // Original: N/A
|
|
25
|
+
$color-text-secondary: #B8B8B8; // Original: N/A
|
|
26
|
+
$color-text-muted: #768194; // Original: N/A
|
|
27
|
+
$color-text-inverse: #0A0A0A; // Original: N/A
|
|
28
|
+
$color-text-link: #0099FF; // Original: N/A
|
|
29
|
+
$color-text-link-hover: #5EBBFF; // Original: N/A
|
|
30
|
+
|
|
31
|
+
// border
|
|
32
|
+
$color-border-default: #2A2A2A; // Original: N/A
|
|
33
|
+
$color-border-subtle: #1F1F1F; // Original: N/A
|
|
34
|
+
$color-border-emphasis: #404040; // Original: N/A
|
|
35
|
+
$color-border-focus: #0099FF; // Original: N/A
|
|
36
|
+
|
|
37
|
+
// action-primary
|
|
38
|
+
$color-action-primary-default: #60A5FA; // Original: N/A
|
|
39
|
+
$color-action-primary-hover: #3B82F6; // Original: N/A
|
|
40
|
+
$color-action-primary-active: #2563EB; // Original: N/A
|
|
41
|
+
|
|
42
|
+
// action-secondary
|
|
43
|
+
$color-action-secondary-default: #F87171; // Original: N/A
|
|
44
|
+
$color-action-secondary-hover: #EF4444; // Original: N/A
|
|
45
|
+
$color-action-secondary-active: #DC2626; // Original: N/A
|
|
46
|
+
|
|
47
|
+
// status-success
|
|
48
|
+
$color-status-success-default: #34D399; // Original: N/A
|
|
49
|
+
$color-status-success-hover: #10B981; // Original: N/A
|
|
50
|
+
|
|
51
|
+
// status-warning
|
|
52
|
+
$color-status-warning-default: #FBBF24; // Original: N/A
|
|
53
|
+
$color-status-warning-hover: #F59E0B; // Original: N/A
|
|
54
|
+
|
|
55
|
+
// status-error
|
|
56
|
+
$color-status-error-default: #F87171; // Original: N/A
|
|
57
|
+
$color-status-error-hover: #EF4444; // Original: N/A
|
|
58
|
+
|
|
59
|
+
// status-info
|
|
60
|
+
$color-status-info-default: #60A5FA; // Original: N/A
|
|
61
|
+
$color-status-info-hover: #3B82F6; // Original: N/A
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//
|
|
2
|
+
// semantic-light - Converted to rem
|
|
3
|
+
// Generated: 2026-02-09T21:59:43.890Z
|
|
4
|
+
// Base font size: 16px
|
|
5
|
+
//
|
|
6
|
+
// DO NOT EDIT THIS FILE DIRECTLY
|
|
7
|
+
// Edit the JSON files and run: npm run tokens:convert
|
|
8
|
+
//
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
// color
|
|
12
|
+
|
|
13
|
+
// background
|
|
14
|
+
$color-background-default: #FFFFFF; // Original: N/A
|
|
15
|
+
$color-background-subtle: #F8F6F0; // Original: N/A
|
|
16
|
+
$color-background-navbar: #FAFAFA; // Original: N/A
|
|
17
|
+
|
|
18
|
+
// surface
|
|
19
|
+
$color-surface-default: #FFFFFF; // Original: N/A
|
|
20
|
+
$color-surface-subtle: #F8F6F0; // Original: N/A
|
|
21
|
+
$color-surface-muted: #F5F5F5; // Original: N/A
|
|
22
|
+
|
|
23
|
+
// text
|
|
24
|
+
$color-text-primary: #0F0F0F; // Original: N/A
|
|
25
|
+
$color-text-secondary: #525252; // Original: N/A
|
|
26
|
+
$color-text-muted: #8A8A8A; // Original: N/A
|
|
27
|
+
$color-text-inverse: #FFFFFF; // Original: N/A
|
|
28
|
+
$color-text-link: #3A5FCD; // Original: N/A
|
|
29
|
+
$color-text-link-hover: #2E4A99; // Original: N/A
|
|
30
|
+
|
|
31
|
+
// border
|
|
32
|
+
$color-border-default: #E5E5E5; // Original: N/A
|
|
33
|
+
$color-border-subtle: #F5F5F5; // Original: N/A
|
|
34
|
+
$color-border-emphasis: #D4D4D4; // Original: N/A
|
|
35
|
+
$color-border-focus: #3A5FCD; // Original: N/A
|
|
36
|
+
|
|
37
|
+
// action-primary
|
|
38
|
+
$color-action-primary-default: #3A5FCD; // Original: N/A
|
|
39
|
+
$color-action-primary-hover: #2E4A99; // Original: N/A
|
|
40
|
+
$color-action-primary-active: #1E3A8A; // Original: N/A
|
|
41
|
+
|
|
42
|
+
// action-secondary
|
|
43
|
+
$color-action-secondary-default: #FF6B6B; // Original: N/A
|
|
44
|
+
$color-action-secondary-hover: #E85555; // Original: N/A
|
|
45
|
+
$color-action-secondary-active: #CC5555; // Original: N/A
|
|
46
|
+
|
|
47
|
+
// status-success
|
|
48
|
+
$color-status-success-default: #10B981; // Original: N/A
|
|
49
|
+
$color-status-success-hover: #059669; // Original: N/A
|
|
50
|
+
|
|
51
|
+
// status-warning
|
|
52
|
+
$color-status-warning-default: #F59E0B; // Original: N/A
|
|
53
|
+
$color-status-warning-hover: #D97706; // Original: N/A
|
|
54
|
+
|
|
55
|
+
// status-error
|
|
56
|
+
$color-status-error-default: #DC2626; // Original: N/A
|
|
57
|
+
$color-status-error-hover: #B91C1C; // Original: N/A
|
|
58
|
+
|
|
59
|
+
// status-info
|
|
60
|
+
$color-status-info-default: #3A5FCD; // Original: N/A
|
|
61
|
+
$color-status-info-hover: #2E4A99; // Original: N/A
|