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,185 @@
1
+ // ============================================================================
2
+ // THEME — Terminal (VT100 CRT Phosphor)
3
+ // ============================================================================
4
+ // Sacred dark-only theme. Green phosphor on warm-black chassis. Mono
5
+ // everywhere, zero radii, phosphor glow halo, instant motion.
6
+ //
7
+ // Pattern A: explicit color-scheme: dark (no light variant exists for this
8
+ // theme — pair with `terminal-light` if you want a daylight companion).
9
+ //
10
+ // Selector: :root, :root[data-theme="terminal"]
11
+ // ============================================================================
12
+ @use '../mixins' as m;
13
+
14
+ @import 'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500;700&display=swap';
15
+
16
+ @include m.theme('terminal', dark) {
17
+ /* Surfaces — deep warm black + phosphor haze */
18
+ --paper: #0A0E0A;
19
+ --paper-raised: #0F140F;
20
+ --paper-sunk: #070A07;
21
+ --paper-glass: rgba(79, 224, 120, 0.06);
22
+
23
+ /* Ink — phosphor green on the tube */
24
+ --ink: #4FE078;
25
+ --ink-soft: #2A8B42;
26
+ --ink-faint: #3DAF4F;
27
+ --graphite: #1A3D22;
28
+ --muted: #2A8B42;
29
+
30
+ /* Scanlines / rule lines */
31
+ --guide: #1E5E2F;
32
+ --guide-soft: #143618;
33
+ --hair: #2A8B42;
34
+ --hair-soft: #1E5E2F;
35
+
36
+ /* Primary accent — cyan (terminal links) */
37
+ --ai: #7FDBFF;
38
+ --ai-ink: #5AB3D4;
39
+ --ai-wash: rgba(127, 219, 255, 0.10);
40
+
41
+ /* Seal — error red */
42
+ --shu: #FF5A5A;
43
+ --shu-wash: rgba(255, 90, 90, 0.10);
44
+
45
+ /* Accent — warning amber */
46
+ --ochre: #F0A030;
47
+ --ochre-wash: rgba(240, 160, 48, 0.10);
48
+
49
+ /* Code surface */
50
+ --code-bg: #070A07;
51
+ --code-ink: #4FE078;
52
+ --code-muted: #2C9245;
53
+ --code-accent: #F0A030;
54
+ --code-green: #8FFCA8;
55
+ --code-blue: #7FDBFF;
56
+
57
+ /* Typography — mono everywhere */
58
+ --font-mono: 'JetBrains Mono', 'IBM Plex Mono', 'Fira Code', ui-monospace, Consolas, Menlo, 'Courier New', monospace;
59
+ --font-sans: var(--font-mono);
60
+ --font-serif: var(--font-mono);
61
+ --font-display: var(--font-mono);
62
+ --font-script: var(--font-mono);
63
+
64
+ /* Radius — CRT pixel corners */
65
+ --r-sm: 0; --r-md: 0; --r-lg: 0;
66
+
67
+ /* Shadows — phosphor rings */
68
+ --shadow-sm: 0 0 0 1px rgba(79, 224, 120, 0.20);
69
+ --shadow-md: 0 0 0 1px rgba(79, 224, 120, 0.30), 0 0 12px rgba(79, 224, 120, 0.15);
70
+ --shadow-lg: 0 0 0 1px rgba(79, 224, 120, 0.40), 0 0 24px rgba(79, 224, 120, 0.25);
71
+ --shadow-xl: 0 0 0 1px rgba(79, 224, 120, 0.50), 0 0 36px rgba(79, 224, 120, 0.30);
72
+ --shadow-2xl: 0 0 0 1px rgba(79, 224, 120, 0.60), 0 0 56px rgba(79, 224, 120, 0.40);
73
+
74
+ /* Blur — terminal has no frosted glass */
75
+ --blur-sm: none; --blur-md: none; --blur-lg: none;
76
+
77
+ /* Glow — phosphor halo */
78
+ --glow-sm: 0 0 4px rgba(79, 224, 120, 0.25);
79
+ --glow-md: 0 0 8px rgba(79, 224, 120, 0.35);
80
+ --glow-lg: 0 0 16px rgba(79, 224, 120, 0.45);
81
+
82
+ /* Motion — instant */
83
+ --duration-fast: 100ms;
84
+ --duration-normal: 140ms;
85
+ --duration-slow: 220ms;
86
+ --ease: cubic-bezier(0.2, 0.0, 0.2, 1);
87
+
88
+ /* Semantic aliases */
89
+ --background-default: var(--paper);
90
+ --background-subtle: var(--paper-sunk);
91
+ --background-navbar: var(--paper-raised);
92
+ --surface-default: var(--paper);
93
+ --surface-raised: var(--paper-raised);
94
+ --surface-sunk: var(--paper-sunk);
95
+ --surface-muted: var(--paper-sunk);
96
+ --surface-subtle: var(--paper-raised);
97
+ --surface-emphasis: var(--ink);
98
+ --surface-glass: var(--paper-glass);
99
+
100
+ --text-primary: var(--ink);
101
+ --text-secondary: var(--ink-soft);
102
+ --text-muted: var(--ink-faint);
103
+ --text-tertiary: var(--muted);
104
+ --text-inverse: var(--paper);
105
+ --text-link: var(--ai);
106
+ --text-link-hover: var(--ai-ink);
107
+
108
+ --border-default: var(--hair);
109
+ --border-subtle: var(--hair-soft);
110
+ --border-emphasis: var(--ink);
111
+ --border-focus: var(--ai);
112
+
113
+ --interactive-hover: rgba(79, 224, 120, 0.08);
114
+ --interactive-active: rgba(79, 224, 120, 0.15);
115
+
116
+ --brand-primary: var(--ai);
117
+ --brand-primary-hover: var(--ai-ink);
118
+
119
+ --action-primary-default: var(--ai);
120
+ --action-primary-hover: var(--ai-ink);
121
+ --action-primary-active: var(--ai-ink);
122
+ --action-primary-wash: var(--ai-wash);
123
+ --action-secondary-default: var(--shu);
124
+ --action-secondary-hover: var(--shu);
125
+ --action-secondary-active: var(--shu);
126
+ --action-secondary-wash: var(--shu-wash);
127
+ --action-tertiary-default: var(--ochre);
128
+ --action-tertiary-hover: var(--ochre);
129
+ --action-tertiary-active: var(--ochre);
130
+ --action-tertiary-wash: var(--ochre-wash);
131
+
132
+ --feedback-info: var(--ai);
133
+ --feedback-success: var(--code-green);
134
+ --feedback-warning: var(--ochre);
135
+ --feedback-error: var(--shu);
136
+
137
+ --info-default: var(--ai);
138
+ --info-subtle: rgba(127, 219, 255, 0.12);
139
+ --info-text: #7FDBFF;
140
+
141
+ --success-default: #8FFCA8;
142
+ --success-subtle: rgba(143, 252, 168, 0.12);
143
+ --success-text: #8FFCA8;
144
+
145
+ --warning-default: var(--ochre);
146
+ --warning-subtle: rgba(240, 160, 48, 0.12);
147
+ --warning-text: var(--ochre);
148
+
149
+ --error-default: var(--shu);
150
+ --error-subtle: rgba(255, 90, 90, 0.12);
151
+ --error-text: #FF7A7A;
152
+
153
+ /* Library scales */
154
+
155
+ /* Spacing rhythm — THE knob for how dense or airy this theme feels.
156
+ The numbered scale is the source of truth: every component reads
157
+ var(--space-N), and the t-shirt aliases (--space-md, --space-lg …)
158
+ are emitted by the library as references to these, so they follow
159
+ automatically. Change a value here and the whole page re-proportions.
160
+ Halve them for a compact UI; raise 4/5/6 for an airy editorial feel. */
161
+ --space-0: 0; /* flush */
162
+ --space-1: 0.5rem; /* tight inner gap */
163
+ --space-2: 0.75rem; /* control padding */
164
+ --space-3: 0.875rem; /* (no t-shirt) */
165
+ --space-4: 1rem; /* default rhythm */
166
+ --space-5: 1.5rem; /* section gap */
167
+ --space-6: 2rem; /* block gap */
168
+ --space-7: 3rem; /* major gap */
169
+ --space-8: 4rem; /* page section */
170
+ --space-9: 6rem; /* hero rhythm */
171
+
172
+ --radius-sm: 0; --radius-md: 0; --radius-lg: 0;
173
+ --radius-xl: 0; --radius-full: 0;
174
+ --font-primary: var(--font-mono);
175
+ --font-size-base: 15px; --line-height-normal: 1.5; --font-weight-medium: 500;
176
+ --z-sticky: 1020; --z-dropdown: 1030; --z-backdrop: 1040;
177
+ --z-modal: 1050; --z-popover: 1060; --z-tooltip: 1070;
178
+
179
+ /* Component overrides */
180
+ --btn-radius: 0;
181
+ --card-radius: 0;
182
+ --input-radius: 0;
183
+ --card-shadow: var(--glow-sm);
184
+ --card-border: 1px solid var(--ink-faint);
185
+ }
@@ -0,0 +1,23 @@
1
+ // ============================================================================
2
+ // TOKENS — :root CSS variables only, no rules, no utilities, no resets.
3
+ // ============================================================================
4
+ // The purest mixin-first emit: import this if all you want is cia's tokens.
5
+ // Consumers who bring their own everything else, theme our way.
6
+ //
7
+ // Usage in HTML (pre-built):
8
+ // <link rel="stylesheet" href="css-is-awesome/dist/tokens.css">
9
+ //
10
+ // Usage in SCSS:
11
+ // @use 'css-is-awesome/scss/tokens';
12
+ //
13
+ // Output: only `:root { --foo: ...; --bar: ...; }` declarations.
14
+ // ~1 KB gzipped. The pure-token path.
15
+ // ============================================================================
16
+ @use './generator';
17
+
18
+ @include generator.generate-theme;
19
+
20
+ // WCAG 2.2 SC 2.5.8 — minimum touch-target size. Themes can override.
21
+ :root {
22
+ --touch-target-min: 24px;
23
+ }
@@ -0,0 +1,4 @@
1
+ // ============================================================================
2
+ // UTILITIES ONLY - No core/tokens (pair with your own base styles)
3
+ // ============================================================================
4
+ @use './utilities';