@jaimevalasek/aioson 1.30.0 → 1.30.2

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 (93) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
  3. package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
  4. package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
  5. package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
  6. package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
  7. package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
  8. package/docs/design-previews/cognitive-core-ui.html +281 -463
  9. package/docs/design-previews/index.html +83 -31
  10. package/package.json +1 -1
  11. package/src/constants.js +578 -514
  12. package/template/.aioson/docs/integrations/dashboard-app-form-publish-mapping.md +183 -0
  13. package/template/.aioson/docs/play/README.md +74 -0
  14. package/template/.aioson/docs/play/agent-usage-guide.md +112 -0
  15. package/template/.aioson/docs/play/app-compatibility-guide.md +117 -0
  16. package/template/.aioson/docs/play/auth-services-and-testing.md +235 -0
  17. package/template/.aioson/docs/play/llm-data-and-bindings.md +238 -0
  18. package/template/.aioson/docs/play/manifest-and-runtime.md +267 -0
  19. package/template/.aioson/docs/play/source-map.md +104 -0
  20. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
  21. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
  22. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
  23. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
  24. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
  25. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
  26. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
  27. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
  28. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
  29. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
  30. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
  31. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
  32. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
  33. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
  34. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
  35. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
  36. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
  37. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
  38. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
  39. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
  40. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
  41. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
  42. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
  43. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
  44. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
  45. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
  46. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
  47. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
  48. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
  49. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
  50. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
  51. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
  52. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
  53. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
  54. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
  55. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
  56. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
  57. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
  58. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
  59. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
  60. package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
  61. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
  62. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
  63. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
  64. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
  65. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
  66. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
  67. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
  68. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
  69. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
  70. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
  71. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
  72. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
  73. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
  74. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
  75. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
  76. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
  77. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
  78. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
  79. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
  80. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
  81. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
  82. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
  83. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
  84. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
  85. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
  86. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
  87. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
  88. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
  89. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
  90. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
  91. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
  92. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
  93. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
@@ -1,368 +1,368 @@
1
- # Components — pt.squarespace.com
2
-
3
- ## Button
4
-
5
- ### Variants
6
-
7
- | Variant | Description | Token Usage |
8
- |---------|-------------|-------------|
9
- | `primary` | Solid white bg, dark text | `bg: white`, `color: black` |
10
- | `secondary` | Ghost/outline style | `border: 1px solid var(--border)` |
11
- | `inline` | Text with arrow suffix | `color: var(--text-primary)` |
12
- | `cta--light` | For dark backgrounds | `bg: white`, `color: black` |
13
- | `cta--dark` | For light backgrounds | `bg: black`, `color: white` |
14
-
15
- ### States
16
-
17
- - **default:** Base colors per variant
18
- - **hover (primary/secondary):** `mix-blend-mode: difference` pseudo-element scales in — NOT a color transition. The white pseudo-element with blend mode creates a color inversion effect.
19
- - **active:** Slight scale (0.98) if any
20
- - **disabled:** `opacity: 0.5`, `pointer-events: none`
21
- - **loading:** Spinner or text change
22
-
23
- ### CTA Hover Mechanic — mix-blend-mode: difference
24
-
25
- **This is Squarespace's real CTA effect.** Do NOT implement as a simple `background-color` transition:
26
-
27
- ```css
28
- .cta--primary,
29
- .cta--secondary {
30
- position: relative;
31
- overflow: hidden;
32
- }
33
-
34
- .cta--primary::after,
35
- .cta--secondary::after {
36
- content: '';
37
- mix-blend-mode: difference;
38
- background-color: white;
39
- transform-origin: 0;
40
- width: 100%;
41
- height: 100%;
42
- position: absolute;
43
- top: 0;
44
- left: 0;
45
- transform: scaleX(0);
46
- transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
47
- }
48
-
49
- .cta--primary:hover::after,
50
- .cta--secondary:hover::after {
51
- transform: scaleX(1);
52
- }
53
- ```
54
-
55
- **Effect:** The white fill + `difference` blend mode inverts the button colors — a black button with white text becomes white with black text without any `color:` change.
56
-
57
- ### DOM Structure
58
- ```html
59
- <a class="cta cta--primary cta--light">Button Text</a>
60
- <!-- or -->
61
- <button class="cta cta--primary">Button Text</button>
62
- ```
63
-
64
- ### Tokens Applied
65
- - `font-family: var(--font-display)`
66
- - `font-size: var(--text-sm)`
67
- - `font-weight: var(--font-medium)`
68
- - `padding: var(--space-3) var(--space-4)`
69
- - `border-radius: var(--radius-none)` (0px)
70
- - `transition: var(--transition-all)`
71
- - `cursor: pointer`
72
-
73
- ### Tertiary CTA — Sliding Underline (.cta--tertiary)
74
-
75
- Text links with an animated dual-gradient underline. The underline slides in from left on hover and out to right on mouse-leave:
76
-
77
- ```css
78
- .cta--tertiary {
79
- background-image:
80
- linear-gradient(currentColor, currentColor),
81
- linear-gradient(currentColor, currentColor);
82
- background-size: 100% 1px, 0% 1px;
83
- background-repeat: no-repeat;
84
- background-position: -200% 100%, -100% 100%;
85
- animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideOut;
86
- }
87
-
88
- .cta--tertiary:hover {
89
- animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideIn;
90
- }
91
- ```
92
-
93
- Requires `@keyframes ctaUnderlineSlideIn / ctaUnderlineSlideOut` from `motion.md`.
94
-
95
- ---
96
-
97
- ## Navigation
98
-
99
- ### Variants
100
-
101
- | Variant | Description |
102
- |---------|-------------|
103
- | `desktop` | Horizontal links, logo left, CTAs right |
104
- | `mobile` | Hamburger + slide-out drawer |
105
-
106
- ### States
107
-
108
- - **default:** Transparent background initially
109
- - **scrolled:** Solid background (e.g. `bg: white`) kicks in after ~50px scroll
110
- - **mobile-open:** Hamburger becomes X, drawer wipes in from right via `clip-path` animation (NOT `translateX`)
111
-
112
- ### Mobile Menu — clip-path Swipe
113
-
114
- The mobile drawer does NOT use `transform: translateX`. It uses `clip-path: polygon()` animation:
115
-
116
- ```css
117
- /* Open */
118
- .global-navigation__mobile-menu--open {
119
- animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeIn;
120
- }
121
-
122
- /* Close */
123
- .global-navigation__mobile-menu--close {
124
- animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeOut;
125
- }
126
- ```
127
-
128
- Requires `@keyframes swipeIn / swipeOut` from `motion.md`. The menu covers full viewport, background `rgb(0, 0, 0)` with white links.
129
-
130
- ### Accordion (Mobile Nav)
131
-
132
- Sub-menus use CSS grid transition — no JS height calculation:
133
-
134
- ```css
135
- .global-navigation__accordion-content {
136
- display: grid;
137
- grid-template-rows: 0fr;
138
- transition: grid-template-rows 0.7s cubic-bezier(0.165, 0.84, 0.44, 1),
139
- padding 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
140
- }
141
- .global-navigation__accordion-content--open {
142
- grid-template-rows: 1fr;
143
- }
144
- ```
145
-
146
- ### DOM Structure
147
- ```html
148
- <header class="global-navigation">
149
- <a class="global-navigation__logo-link">Logo</a>
150
- <nav class="global-navigation__links">
151
- <a class="cta cta--inline">Products</a>
152
- <a class="cta cta--inline">Solutions</a>
153
- <button class="cta cta--inline">Resources</button>
154
- </nav>
155
- <div class="global-navigation__cta">
156
- <a class="cta cta--inline">Login</a>
157
- <a class="cta cta--primary cta--light">Get Started</a>
158
- </div>
159
- <button class="global-navigation__hamb">☰</button>
160
- </header>
161
- ```
162
-
163
- ### Tokens Applied
164
- - `font-family: var(--font-body)`
165
- - `font-size: var(--text-base)`
166
- - `font-weight: var(--font-normal)`
167
- - `padding: var(--space-4) var(--space-4)`
168
- - `gap: var(--space-4)`
169
- - `transition: top var(--transition-medium) var(--ease-sqsp-cta)`
170
-
171
- ---
172
-
173
- ## Link
174
-
175
- ### Variants
176
-
177
- | Variant | Description | Context |
178
- |---------|-------------|---------|
179
- | `nav-link` | Navigation links | Header |
180
- | `footer-link` | Footer links | Footer |
181
- | `cta--inline` | Inline CTA with arrow | Various |
182
-
183
- ### States
184
-
185
- - **default:** `color: var(--text-primary)` or `var(--text-inverse)`
186
- - **hover:** `color: var(--text-muted)`, optional underline
187
-
188
- ### Tokens Applied
189
- - `font-family: var(--font-body)`
190
- - `font-size: var(--text-base)`
191
- - `font-weight: var(--font-normal)`
192
- - `transition: var(--transition-colors)`
193
-
194
- ---
195
-
196
- ## Input
197
-
198
- ### Variants
199
-
200
- | Variant | Description |
201
- |---------|-------------|
202
- | `text` | Standard text input |
203
- | `domain` | Domain search input with search button |
204
-
205
- ### States
206
-
207
- - **default:** `border: 1px solid var(--border)`
208
- - **focus:** Border color changes to accent
209
- - **error:** Border color `var(--error)`
210
- - **disabled:** `opacity: 0.5`
211
-
212
- ### DOM Structure
213
- ```html
214
- <div class="input-wrapper">
1
+ # Components — pt.squarespace.com
2
+
3
+ ## Button
4
+
5
+ ### Variants
6
+
7
+ | Variant | Description | Token Usage |
8
+ |---------|-------------|-------------|
9
+ | `primary` | Solid white bg, dark text | `bg: white`, `color: black` |
10
+ | `secondary` | Ghost/outline style | `border: 1px solid var(--border)` |
11
+ | `inline` | Text with arrow suffix | `color: var(--text-primary)` |
12
+ | `cta--light` | For dark backgrounds | `bg: white`, `color: black` |
13
+ | `cta--dark` | For light backgrounds | `bg: black`, `color: white` |
14
+
15
+ ### States
16
+
17
+ - **default:** Base colors per variant
18
+ - **hover (primary/secondary):** `mix-blend-mode: difference` pseudo-element scales in — NOT a color transition. The white pseudo-element with blend mode creates a color inversion effect.
19
+ - **active:** Slight scale (0.98) if any
20
+ - **disabled:** `opacity: 0.5`, `pointer-events: none`
21
+ - **loading:** Spinner or text change
22
+
23
+ ### CTA Hover Mechanic — mix-blend-mode: difference
24
+
25
+ **This is Squarespace's real CTA effect.** Do NOT implement as a simple `background-color` transition:
26
+
27
+ ```css
28
+ .cta--primary,
29
+ .cta--secondary {
30
+ position: relative;
31
+ overflow: hidden;
32
+ }
33
+
34
+ .cta--primary::after,
35
+ .cta--secondary::after {
36
+ content: '';
37
+ mix-blend-mode: difference;
38
+ background-color: white;
39
+ transform-origin: 0;
40
+ width: 100%;
41
+ height: 100%;
42
+ position: absolute;
43
+ top: 0;
44
+ left: 0;
45
+ transform: scaleX(0);
46
+ transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
47
+ }
48
+
49
+ .cta--primary:hover::after,
50
+ .cta--secondary:hover::after {
51
+ transform: scaleX(1);
52
+ }
53
+ ```
54
+
55
+ **Effect:** The white fill + `difference` blend mode inverts the button colors — a black button with white text becomes white with black text without any `color:` change.
56
+
57
+ ### DOM Structure
58
+ ```html
59
+ <a class="cta cta--primary cta--light">Button Text</a>
60
+ <!-- or -->
61
+ <button class="cta cta--primary">Button Text</button>
62
+ ```
63
+
64
+ ### Tokens Applied
65
+ - `font-family: var(--font-display)`
66
+ - `font-size: var(--text-sm)`
67
+ - `font-weight: var(--font-medium)`
68
+ - `padding: var(--space-3) var(--space-4)`
69
+ - `border-radius: var(--radius-none)` (0px)
70
+ - `transition: var(--transition-all)`
71
+ - `cursor: pointer`
72
+
73
+ ### Tertiary CTA — Sliding Underline (.cta--tertiary)
74
+
75
+ Text links with an animated dual-gradient underline. The underline slides in from left on hover and out to right on mouse-leave:
76
+
77
+ ```css
78
+ .cta--tertiary {
79
+ background-image:
80
+ linear-gradient(currentColor, currentColor),
81
+ linear-gradient(currentColor, currentColor);
82
+ background-size: 100% 1px, 0% 1px;
83
+ background-repeat: no-repeat;
84
+ background-position: -200% 100%, -100% 100%;
85
+ animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideOut;
86
+ }
87
+
88
+ .cta--tertiary:hover {
89
+ animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideIn;
90
+ }
91
+ ```
92
+
93
+ Requires `@keyframes ctaUnderlineSlideIn / ctaUnderlineSlideOut` from `motion.md`.
94
+
95
+ ---
96
+
97
+ ## Navigation
98
+
99
+ ### Variants
100
+
101
+ | Variant | Description |
102
+ |---------|-------------|
103
+ | `desktop` | Horizontal links, logo left, CTAs right |
104
+ | `mobile` | Hamburger + slide-out drawer |
105
+
106
+ ### States
107
+
108
+ - **default:** Transparent background initially
109
+ - **scrolled:** Solid background (e.g. `bg: white`) kicks in after ~50px scroll
110
+ - **mobile-open:** Hamburger becomes X, drawer wipes in from right via `clip-path` animation (NOT `translateX`)
111
+
112
+ ### Mobile Menu — clip-path Swipe
113
+
114
+ The mobile drawer does NOT use `transform: translateX`. It uses `clip-path: polygon()` animation:
115
+
116
+ ```css
117
+ /* Open */
118
+ .global-navigation__mobile-menu--open {
119
+ animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeIn;
120
+ }
121
+
122
+ /* Close */
123
+ .global-navigation__mobile-menu--close {
124
+ animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeOut;
125
+ }
126
+ ```
127
+
128
+ Requires `@keyframes swipeIn / swipeOut` from `motion.md`. The menu covers full viewport, background `rgb(0, 0, 0)` with white links.
129
+
130
+ ### Accordion (Mobile Nav)
131
+
132
+ Sub-menus use CSS grid transition — no JS height calculation:
133
+
134
+ ```css
135
+ .global-navigation__accordion-content {
136
+ display: grid;
137
+ grid-template-rows: 0fr;
138
+ transition: grid-template-rows 0.7s cubic-bezier(0.165, 0.84, 0.44, 1),
139
+ padding 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
140
+ }
141
+ .global-navigation__accordion-content--open {
142
+ grid-template-rows: 1fr;
143
+ }
144
+ ```
145
+
146
+ ### DOM Structure
147
+ ```html
148
+ <header class="global-navigation">
149
+ <a class="global-navigation__logo-link">Logo</a>
150
+ <nav class="global-navigation__links">
151
+ <a class="cta cta--inline">Products</a>
152
+ <a class="cta cta--inline">Solutions</a>
153
+ <button class="cta cta--inline">Resources</button>
154
+ </nav>
155
+ <div class="global-navigation__cta">
156
+ <a class="cta cta--inline">Login</a>
157
+ <a class="cta cta--primary cta--light">Get Started</a>
158
+ </div>
159
+ <button class="global-navigation__hamb">☰</button>
160
+ </header>
161
+ ```
162
+
163
+ ### Tokens Applied
164
+ - `font-family: var(--font-body)`
165
+ - `font-size: var(--text-base)`
166
+ - `font-weight: var(--font-normal)`
167
+ - `padding: var(--space-4) var(--space-4)`
168
+ - `gap: var(--space-4)`
169
+ - `transition: top var(--transition-medium) var(--ease-sqsp-cta)`
170
+
171
+ ---
172
+
173
+ ## Link
174
+
175
+ ### Variants
176
+
177
+ | Variant | Description | Context |
178
+ |---------|-------------|---------|
179
+ | `nav-link` | Navigation links | Header |
180
+ | `footer-link` | Footer links | Footer |
181
+ | `cta--inline` | Inline CTA with arrow | Various |
182
+
183
+ ### States
184
+
185
+ - **default:** `color: var(--text-primary)` or `var(--text-inverse)`
186
+ - **hover:** `color: var(--text-muted)`, optional underline
187
+
188
+ ### Tokens Applied
189
+ - `font-family: var(--font-body)`
190
+ - `font-size: var(--text-base)`
191
+ - `font-weight: var(--font-normal)`
192
+ - `transition: var(--transition-colors)`
193
+
194
+ ---
195
+
196
+ ## Input
197
+
198
+ ### Variants
199
+
200
+ | Variant | Description |
201
+ |---------|-------------|
202
+ | `text` | Standard text input |
203
+ | `domain` | Domain search input with search button |
204
+
205
+ ### States
206
+
207
+ - **default:** `border: 1px solid var(--border)`
208
+ - **focus:** Border color changes to accent
209
+ - **error:** Border color `var(--error)`
210
+ - **disabled:** `opacity: 0.5`
211
+
212
+ ### DOM Structure
213
+ ```html
214
+ <div class="input-wrapper">
215
215
  <input type="text" class="input input--domain" placeholder="Enter your domain">
216
- </div>
217
- ```
218
-
219
- ### Tokens Applied
220
- - `background: var(--bg-base)`
221
- - `border: 1px solid var(--border)`
222
- - `border-radius: var(--radius-none)`
223
- - `padding: var(--space-3)`
224
- - `font-family: var(--font-body)`
225
- - `font-size: var(--text-base)`
226
-
227
- ---
228
-
229
- ## Card
230
-
231
- ### Variants
232
-
233
- | Variant | Description |
234
- |---------|-------------|
235
- | `feature-card` | Icon + title + description |
236
- | `stat-card` | Large number + label |
237
- | `pricing-card` | Price + features + CTA |
238
-
239
- ### States
240
-
241
- - **default:** No shadow, flat design
242
- - **hover:** May have subtle color shift
243
-
244
- ### Tokens Applied
245
- - `background: var(--bg-surface)` or transparent
246
- - `border-radius: var(--radius-none)`
247
- - `box-shadow: var(--shadow-sm)` (none typically)
248
- - `padding: var(--space-5)`
249
-
250
- ---
251
-
252
- ## Card Carousel (Platform / One Platform section)
253
-
254
- A horizontally scrollable row of cards that loop. Each card holds a `<video>` or `<img>` with an absolute text label.
255
-
256
- ### DOM Structure
257
- ```html
258
- <div class="card-carousel">
259
- <div class="card-carousel__track">
260
- <div class="card-carousel__card">
261
- <video autoplay muted loop playsinline preload="none">
262
- <source src="/videos/website-editing.webm" type="video/webm">
263
- </video>
216
+ </div>
217
+ ```
218
+
219
+ ### Tokens Applied
220
+ - `background: var(--bg-base)`
221
+ - `border: 1px solid var(--border)`
222
+ - `border-radius: var(--radius-none)`
223
+ - `padding: var(--space-3)`
224
+ - `font-family: var(--font-body)`
225
+ - `font-size: var(--text-base)`
226
+
227
+ ---
228
+
229
+ ## Card
230
+
231
+ ### Variants
232
+
233
+ | Variant | Description |
234
+ |---------|-------------|
235
+ | `feature-card` | Icon + title + description |
236
+ | `stat-card` | Large number + label |
237
+ | `pricing-card` | Price + features + CTA |
238
+
239
+ ### States
240
+
241
+ - **default:** No shadow, flat design
242
+ - **hover:** May have subtle color shift
243
+
244
+ ### Tokens Applied
245
+ - `background: var(--bg-surface)` or transparent
246
+ - `border-radius: var(--radius-none)`
247
+ - `box-shadow: var(--shadow-sm)` (none typically)
248
+ - `padding: var(--space-5)`
249
+
250
+ ---
251
+
252
+ ## Card Carousel (Platform / One Platform section)
253
+
254
+ A horizontally scrollable row of cards that loop. Each card holds a `<video>` or `<img>` with an absolute text label.
255
+
256
+ ### DOM Structure
257
+ ```html
258
+ <div class="card-carousel">
259
+ <div class="card-carousel__track">
260
+ <div class="card-carousel__card">
261
+ <video autoplay muted loop playsinline preload="none">
262
+ <source src="/videos/website-editing.webm" type="video/webm">
263
+ </video>
264
264
  <span class="card-carousel__label">Website editing</span>
265
- </div>
266
- <!-- repeat cards -->
267
- </div>
268
- </div>
269
- ```
270
-
271
- ### Key CSS
272
- ```css
273
- .card-carousel__card {
274
- position: relative;
275
- flex-shrink: 0;
276
- border-radius: var(--radius-none);
277
- overflow: hidden;
278
- }
279
-
280
- .card-carousel__label {
281
- position: absolute;
282
- bottom: var(--space-4);
283
- left: var(--space-4);
284
- font-family: var(--font-display);
285
- font-size: var(--text-sm);
286
- color: var(--text-inverse);
287
- background: rgba(0, 0, 0, 0.55);
288
- padding: var(--space-2) var(--space-3);
289
- }
290
- ```
291
-
292
- Cards use `preload="none"` — only hero video is eager-loaded.
293
-
294
- ---
295
-
296
- ## Section
297
-
298
- ### Hero Section
299
- - Full viewport dark background (`background: var(--bg-inverse)`)
300
- - Video background: `<video autoPlay muted loop playsInline preload="auto">` with WebM + MP4 sources
301
- - Dark overlay: `rgba(0, 0, 0, 0.52)` absolute layer over video
302
- - Centered content
303
- - Large headline: `font-family: var(--font-display)`, `font-size: var(--text-3xl)`, `font-weight: var(--font-light)`
304
- - Single CTA button (`.cta--primary.cta--light`)
305
-
306
- ### Content Section
307
- - Max-width container
308
- - Light background
309
- - H2 headline
310
- - Grid or flex content layout
311
-
312
- ### CTA Section
313
- - Colored background (teal or dark)
314
- - Centered headline + CTA
315
- - White text
316
-
317
- ### Footer
318
- - Dark background (`bg: var(--bg-inverse)`)
319
- - 4-column grid of links
320
- - Bottom row with legal text
321
- - `padding: var(--space-16) var(--space-8)`
322
-
323
- ---
324
-
325
- ## Typography Components
326
-
327
- ### Display Heading (H1)
328
- ```css
329
- font-family: var(--font-display);
330
- font-size: var(--text-3xl);
331
- font-weight: var(--font-light);
332
- color: var(--text-inverse);
333
- line-height: var(--leading-tight);
334
- ```
335
-
336
- ### Section Heading (H2)
337
- ```css
338
- font-family: var(--font-display);
339
- font-size: var(--text-xl);
340
- font-weight: var(--font-normal);
341
- color: var(--text-primary);
342
- line-height: var(--leading-normal);
343
- ```
344
-
345
- ### Serif Heading (H3)
346
- ```css
347
- font-family: var(--font-serif);
348
- font-size: var(--text-lg);
349
- font-weight: var(--font-normal);
350
- color: var(--text-inverse);
351
- ```
352
-
353
- ### Body Text
354
- ```css
355
- font-family: var(--font-body);
356
- font-size: var(--text-base);
357
- font-weight: var(--font-normal);
358
- color: var(--text-primary);
359
- line-height: var(--leading-relaxed);
360
- ```
361
-
362
- ### Caption/Muted
363
- ```css
364
- font-family: var(--font-body);
365
- font-size: var(--text-sm);
366
- font-weight: var(--font-normal);
367
- color: var(--text-muted);
368
- ```
265
+ </div>
266
+ <!-- repeat cards -->
267
+ </div>
268
+ </div>
269
+ ```
270
+
271
+ ### Key CSS
272
+ ```css
273
+ .card-carousel__card {
274
+ position: relative;
275
+ flex-shrink: 0;
276
+ border-radius: var(--radius-none);
277
+ overflow: hidden;
278
+ }
279
+
280
+ .card-carousel__label {
281
+ position: absolute;
282
+ bottom: var(--space-4);
283
+ left: var(--space-4);
284
+ font-family: var(--font-display);
285
+ font-size: var(--text-sm);
286
+ color: var(--text-inverse);
287
+ background: rgba(0, 0, 0, 0.55);
288
+ padding: var(--space-2) var(--space-3);
289
+ }
290
+ ```
291
+
292
+ Cards use `preload="none"` — only hero video is eager-loaded.
293
+
294
+ ---
295
+
296
+ ## Section
297
+
298
+ ### Hero Section
299
+ - Full viewport dark background (`background: var(--bg-inverse)`)
300
+ - Video background: `<video autoPlay muted loop playsInline preload="auto">` with WebM + MP4 sources
301
+ - Dark overlay: `rgba(0, 0, 0, 0.52)` absolute layer over video
302
+ - Centered content
303
+ - Large headline: `font-family: var(--font-display)`, `font-size: var(--text-3xl)`, `font-weight: var(--font-light)`
304
+ - Single CTA button (`.cta--primary.cta--light`)
305
+
306
+ ### Content Section
307
+ - Max-width container
308
+ - Light background
309
+ - H2 headline
310
+ - Grid or flex content layout
311
+
312
+ ### CTA Section
313
+ - Colored background (teal or dark)
314
+ - Centered headline + CTA
315
+ - White text
316
+
317
+ ### Footer
318
+ - Dark background (`bg: var(--bg-inverse)`)
319
+ - 4-column grid of links
320
+ - Bottom row with legal text
321
+ - `padding: var(--space-16) var(--space-8)`
322
+
323
+ ---
324
+
325
+ ## Typography Components
326
+
327
+ ### Display Heading (H1)
328
+ ```css
329
+ font-family: var(--font-display);
330
+ font-size: var(--text-3xl);
331
+ font-weight: var(--font-light);
332
+ color: var(--text-inverse);
333
+ line-height: var(--leading-tight);
334
+ ```
335
+
336
+ ### Section Heading (H2)
337
+ ```css
338
+ font-family: var(--font-display);
339
+ font-size: var(--text-xl);
340
+ font-weight: var(--font-normal);
341
+ color: var(--text-primary);
342
+ line-height: var(--leading-normal);
343
+ ```
344
+
345
+ ### Serif Heading (H3)
346
+ ```css
347
+ font-family: var(--font-serif);
348
+ font-size: var(--text-lg);
349
+ font-weight: var(--font-normal);
350
+ color: var(--text-inverse);
351
+ ```
352
+
353
+ ### Body Text
354
+ ```css
355
+ font-family: var(--font-body);
356
+ font-size: var(--text-base);
357
+ font-weight: var(--font-normal);
358
+ color: var(--text-primary);
359
+ line-height: var(--leading-relaxed);
360
+ ```
361
+
362
+ ### Caption/Muted
363
+ ```css
364
+ font-family: var(--font-body);
365
+ font-size: var(--text-sm);
366
+ font-weight: var(--font-normal);
367
+ color: var(--text-muted);
368
+ ```