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
|
@@ -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
|
+
}
|
package/scss/tokens.scss
ADDED
|
@@ -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
|
+
}
|