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.
Files changed (198) hide show
  1. package/AGENTS.md +343 -0
  2. package/CHANGELOG.md +1036 -0
  3. package/CLAUDE.md +9 -0
  4. package/CONTRACT.md +580 -0
  5. package/GEMINI.md +9 -0
  6. package/LICENSE +21 -0
  7. package/LICENSE-third-party +88 -0
  8. package/MIGRATION.md +312 -0
  9. package/README.md +380 -0
  10. package/ROADMAP.md +714 -0
  11. package/THEMING.md +290 -0
  12. package/THREE-TIERS.md +158 -0
  13. package/VERSIONING.md +200 -0
  14. package/_index.scss +34 -0
  15. package/api.scss +16 -0
  16. package/bin/README.md +57 -0
  17. package/bin/cia.cjs +114 -0
  18. package/bin/migrate-bootstrap.cjs +427 -0
  19. package/bin/migrate-tailwind.cjs +832 -0
  20. package/css-is-awesome.instructions.md +533 -0
  21. package/dist/css-is-awesome.core.css +598 -0
  22. package/dist/css-is-awesome.core.min.css +1 -0
  23. package/dist/css-is-awesome.css +3733 -0
  24. package/dist/css-is-awesome.min.css +1 -0
  25. package/dist/css-is-awesome.utilities.css +2445 -0
  26. package/dist/css-is-awesome.utilities.min.css +1 -0
  27. package/dist/tokens.css +508 -0
  28. package/dist/tokens.d.ts +266 -0
  29. package/dist/tokens.min.css +1 -0
  30. package/figma-tokens/README.md +57 -0
  31. package/figma-tokens/primitives-brand.scss +121 -0
  32. package/figma-tokens/semantic-dark.scss +61 -0
  33. package/figma-tokens/semantic-light.scss +61 -0
  34. package/figma-tokens/tokens.json +144 -0
  35. package/llm.txt +183 -0
  36. package/mcp/server.cjs +1495 -0
  37. package/package.json +199 -0
  38. package/public/icons/README.md +278 -0
  39. package/public/icons/arrow-right.svg +4 -0
  40. package/public/icons/check.svg +4 -0
  41. package/public/icons/chevron-down.svg +4 -0
  42. package/public/icons/close.svg +4 -0
  43. package/public/icons/core/arrow-down.svg +13 -0
  44. package/public/icons/core/arrow-left.svg +13 -0
  45. package/public/icons/core/arrow-right.svg +13 -0
  46. package/public/icons/core/arrow-up.svg +13 -0
  47. package/public/icons/core/bell.svg +13 -0
  48. package/public/icons/core/calendar.svg +15 -0
  49. package/public/icons/core/check.svg +12 -0
  50. package/public/icons/core/chevron-down.svg +12 -0
  51. package/public/icons/core/chevron-left.svg +12 -0
  52. package/public/icons/core/chevron-right.svg +12 -0
  53. package/public/icons/core/chevron-up.svg +12 -0
  54. package/public/icons/core/clock.svg +13 -0
  55. package/public/icons/core/close.svg +13 -0
  56. package/public/icons/core/copy.svg +13 -0
  57. package/public/icons/core/download.svg +14 -0
  58. package/public/icons/core/edit.svg +13 -0
  59. package/public/icons/core/error.svg +14 -0
  60. package/public/icons/core/external-link.svg +14 -0
  61. package/public/icons/core/eye-off.svg +15 -0
  62. package/public/icons/core/eye.svg +13 -0
  63. package/public/icons/core/filter.svg +12 -0
  64. package/public/icons/core/heart.svg +12 -0
  65. package/public/icons/core/help.svg +14 -0
  66. package/public/icons/core/home.svg +13 -0
  67. package/public/icons/core/info.svg +14 -0
  68. package/public/icons/core/loading.svg +12 -0
  69. package/public/icons/core/lock.svg +13 -0
  70. package/public/icons/core/mail.svg +13 -0
  71. package/public/icons/core/menu.svg +14 -0
  72. package/public/icons/core/message.svg +12 -0
  73. package/public/icons/core/minus.svg +12 -0
  74. package/public/icons/core/more-horizontal.svg +14 -0
  75. package/public/icons/core/pause.svg +13 -0
  76. package/public/icons/core/play.svg +12 -0
  77. package/public/icons/core/plus.svg +13 -0
  78. package/public/icons/core/refresh.svg +15 -0
  79. package/public/icons/core/save.svg +14 -0
  80. package/public/icons/core/search.svg +13 -0
  81. package/public/icons/core/settings.svg +13 -0
  82. package/public/icons/core/share.svg +14 -0
  83. package/public/icons/core/sort.svg +15 -0
  84. package/public/icons/core/star.svg +12 -0
  85. package/public/icons/core/success.svg +13 -0
  86. package/public/icons/core/trash.svg +16 -0
  87. package/public/icons/core/unlock.svg +13 -0
  88. package/public/icons/core/upload.svg +14 -0
  89. package/public/icons/core/user.svg +13 -0
  90. package/public/icons/core/users.svg +15 -0
  91. package/public/icons/core/warning.svg +14 -0
  92. package/public/icons/download.svg +4 -0
  93. package/public/icons/edit.svg +4 -0
  94. package/public/icons/menu.svg +4 -0
  95. package/public/icons/search.svg +4 -0
  96. package/public/theme.css +4179 -0
  97. package/public/themes/README.md +102 -0
  98. package/public/themes/boilerplate/theme.css +154 -0
  99. package/public/themes/boilerplate-dark/theme.css +171 -0
  100. package/public/themes/boilerplate-light/theme.css +171 -0
  101. package/public/themes/cupertino/theme.css +165 -0
  102. package/public/themes/cupertino-dark/theme.css +200 -0
  103. package/public/themes/cupertino-light/theme.css +227 -0
  104. package/public/themes/glass/theme.css +190 -0
  105. package/public/themes/glass-dark/theme.css +201 -0
  106. package/public/themes/glass-light/theme.css +229 -0
  107. package/public/themes/graphite/theme.css +155 -0
  108. package/public/themes/graphite-dark/theme.css +223 -0
  109. package/public/themes/graphite-light/theme.css +191 -0
  110. package/public/themes/press/theme.css +189 -0
  111. package/public/themes/press-dark/theme.css +199 -0
  112. package/public/themes/press-light/theme.css +235 -0
  113. package/public/themes/prism/theme.css +159 -0
  114. package/public/themes/prism-dark/theme.css +185 -0
  115. package/public/themes/prism-light/theme.css +188 -0
  116. package/public/themes/sketchbook/theme.css +152 -0
  117. package/public/themes/sketchbook-dark/theme.css +194 -0
  118. package/public/themes/sketchbook-light/theme.css +188 -0
  119. package/public/themes/terminal/theme.css +159 -0
  120. package/public/themes/terminal-dark/theme.css +229 -0
  121. package/public/themes/terminal-light/theme.css +152 -0
  122. package/scripts/README.md +70 -0
  123. package/scripts/icon-contract.json +67 -0
  124. package/scripts/icon-validator.js +205 -0
  125. package/scripts/prepare-dist.mjs +65 -0
  126. package/scripts/theme-a11y.js +415 -0
  127. package/scripts/theme-contract.json +171 -0
  128. package/scripts/theme-validator.js +674 -0
  129. package/scss/README.md +55 -0
  130. package/scss/_animations-utilities.scss +107 -0
  131. package/scss/_animations.scss +248 -0
  132. package/scss/_app-styles.scss +15 -0
  133. package/scss/_generator.scss +174 -0
  134. package/scss/_icons.scss +475 -0
  135. package/scss/_index.scss +17 -0
  136. package/scss/_layout.scss +597 -0
  137. package/scss/_mixins.scss +1036 -0
  138. package/scss/_system.scss +291 -0
  139. package/scss/_utilities.scss +377 -0
  140. package/scss/api.scss +61 -0
  141. package/scss/components/_accordion.scss +72 -0
  142. package/scss/components/_buttons.scss +171 -0
  143. package/scss/components/_copy-button.scss +69 -0
  144. package/scss/components/_data.scss +190 -0
  145. package/scss/components/_feedback.scss +197 -0
  146. package/scss/components/_forms.scss +272 -0
  147. package/scss/components/_index.scss +17 -0
  148. package/scss/components/_navigation.scss +186 -0
  149. package/scss/components/_overlay.scss +259 -0
  150. package/scss/components/_stepper.scss +159 -0
  151. package/scss/components/_tabs.scss +72 -0
  152. package/scss/core.scss +54 -0
  153. package/scss/examples/_theming.scss +107 -0
  154. package/scss/examples/_usage.scss +317 -0
  155. package/scss/main.scss +64 -0
  156. package/scss/recipes/README.md +110 -0
  157. package/scss/recipes/_bare-tags.scss +232 -0
  158. package/scss/recipes/_recipe-template.md +119 -0
  159. package/scss/recipes/combobox.md +509 -0
  160. package/scss/recipes/dialog.md +265 -0
  161. package/scss/recipes/print-to-pdf.md +263 -0
  162. package/scss/theme/README.md +67 -0
  163. package/scss/theme/_brand.scss +18 -0
  164. package/scss/theme/_colors-dark.scss +68 -0
  165. package/scss/theme/_colors-light.scss +70 -0
  166. package/scss/theme/_components.scss +94 -0
  167. package/scss/theme/_icons.scss +104 -0
  168. package/scss/theme/_index.scss +62 -0
  169. package/scss/theme/_shadows.scss +65 -0
  170. package/scss/theme/_shape.scss +13 -0
  171. package/scss/theme/_typography.scss +9 -0
  172. package/scss/theme/registry.json +447 -0
  173. package/scss/themes/boilerplate-dark.scss +212 -0
  174. package/scss/themes/boilerplate-light.scss +209 -0
  175. package/scss/themes/boilerplate.scss +181 -0
  176. package/scss/themes/cupertino-dark.scss +238 -0
  177. package/scss/themes/cupertino-light.scss +266 -0
  178. package/scss/themes/cupertino.scss +194 -0
  179. package/scss/themes/glass-dark.scss +238 -0
  180. package/scss/themes/glass-light.scss +266 -0
  181. package/scss/themes/glass.scss +220 -0
  182. package/scss/themes/graphite-dark.scss +260 -0
  183. package/scss/themes/graphite-light.scss +228 -0
  184. package/scss/themes/graphite.scss +182 -0
  185. package/scss/themes/press-dark.scss +237 -0
  186. package/scss/themes/press-light.scss +273 -0
  187. package/scss/themes/press.scss +241 -0
  188. package/scss/themes/prism-dark.scss +217 -0
  189. package/scss/themes/prism-light.scss +220 -0
  190. package/scss/themes/prism.scss +190 -0
  191. package/scss/themes/sketchbook-dark.scss +231 -0
  192. package/scss/themes/sketchbook-light.scss +231 -0
  193. package/scss/themes/sketchbook.scss +178 -0
  194. package/scss/themes/terminal-dark.scss +267 -0
  195. package/scss/themes/terminal-light.scss +175 -0
  196. package/scss/themes/terminal.scss +185 -0
  197. package/scss/tokens.scss +23 -0
  198. package/scss/utilities-only.scss +4 -0
@@ -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