ai-spector 0.4.0 → 0.4.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.
- package/README.md +10 -2
- package/assets/themes/airbnb/preview.html +281 -0
- package/assets/themes/airtable/preview.html +209 -0
- package/assets/themes/apple/preview.html +461 -0
- package/assets/themes/binance/preview.html +1013 -0
- package/assets/themes/bmw/preview.html +255 -0
- package/assets/themes/bugatti/preview.html +879 -0
- package/assets/themes/cal/preview.html +620 -0
- package/assets/themes/claude/preview.html +873 -0
- package/assets/themes/clay/preview.html +360 -0
- package/assets/themes/clickhouse/preview.html +833 -0
- package/assets/themes/cohere/preview.html +854 -0
- package/assets/themes/coinbase/preview.html +208 -0
- package/assets/themes/composio/preview.html +980 -0
- package/assets/themes/cursor/preview.html +428 -0
- package/assets/themes/elevenlabs/preview.html +296 -0
- package/assets/themes/expo/preview.html +580 -0
- package/assets/themes/ferrari/preview.html +1168 -0
- package/assets/themes/framer/preview.html +930 -0
- package/assets/themes/hashicorp/preview.html +1238 -0
- package/assets/themes/ibm/preview.html +473 -0
- package/assets/themes/intercom/preview.html +229 -0
- package/assets/themes/kraken/preview.html +213 -0
- package/assets/themes/lamborghini/preview.html +428 -0
- package/assets/themes/linear.app/preview.html +418 -0
- package/assets/themes/lovable/preview.html +393 -0
- package/assets/themes/meta/preview.html +656 -0
- package/assets/themes/minimax/preview.html +1293 -0
- package/assets/themes/mintlify/preview.html +443 -0
- package/assets/themes/miro/preview.html +218 -0
- package/assets/themes/mistral.ai/preview.html +850 -0
- package/assets/themes/mongodb/preview.html +304 -0
- package/assets/themes/nike/preview.html +1182 -0
- package/assets/themes/notion/preview.html +409 -0
- package/assets/themes/nvidia/preview.html +411 -0
- package/assets/themes/ollama/preview.html +725 -0
- package/assets/themes/opencode.ai/preview.html +402 -0
- package/assets/themes/pinterest/preview.html +277 -0
- package/assets/themes/playstation/preview.html +1125 -0
- package/assets/themes/posthog/preview.html +794 -0
- package/assets/themes/raycast/preview.html +735 -0
- package/assets/themes/renault/preview.html +652 -0
- package/assets/themes/replicate/preview.html +878 -0
- package/assets/themes/resend/preview.html +399 -0
- package/assets/themes/revolut/preview.html +278 -0
- package/assets/themes/runwayml/preview.html +712 -0
- package/assets/themes/sanity/preview.html +1180 -0
- package/assets/themes/sentry/preview.html +996 -0
- package/assets/themes/shopify/preview.html +611 -0
- package/assets/themes/spacex/preview.html +265 -0
- package/assets/themes/spotify/preview.html +275 -0
- package/assets/themes/stripe/preview.html +464 -0
- package/assets/themes/supabase/preview.html +1002 -0
- package/assets/themes/superhuman/preview.html +996 -0
- package/assets/themes/tesla/preview.html +971 -0
- package/assets/themes/theverge/preview.html +1143 -0
- package/assets/themes/together.ai/preview.html +944 -0
- package/assets/themes/uber/preview.html +1164 -0
- package/assets/themes/vercel/preview.html +412 -0
- package/assets/themes/voltagent/preview.html +813 -0
- package/assets/themes/warp/preview.html +580 -0
- package/assets/themes/webflow/preview.html +191 -0
- package/assets/themes/wired/preview.html +1049 -0
- package/assets/themes/wise/preview.html +274 -0
- package/assets/themes/x.ai/preview.html +452 -0
- package/assets/themes/zapier/preview.html +417 -0
- package/dist/cli.js +37 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/graph-visualize.d.ts.map +1 -1
- package/dist/commands/graph-visualize.js +1 -22
- package/dist/commands/graph-visualize.js.map +1 -1
- package/dist/commands/prototype.d.ts +19 -0
- package/dist/commands/prototype.d.ts.map +1 -1
- package/dist/commands/prototype.js +78 -3
- package/dist/commands/prototype.js.map +1 -1
- package/dist/prototype/config.d.ts +9 -1
- package/dist/prototype/config.d.ts.map +1 -1
- package/dist/prototype/config.js +29 -0
- package/dist/prototype/config.js.map +1 -1
- package/dist/prototype/htpasswd.d.ts +5 -0
- package/dist/prototype/htpasswd.d.ts.map +1 -0
- package/dist/prototype/htpasswd.js +33 -0
- package/dist/prototype/htpasswd.js.map +1 -0
- package/dist/prototype/theme-preview.d.ts +17 -0
- package/dist/prototype/theme-preview.d.ts.map +1 -0
- package/dist/prototype/theme-preview.js +73 -0
- package/dist/prototype/theme-preview.js.map +1 -0
- package/dist/prototype/types.d.ts +8 -0
- package/dist/prototype/types.d.ts.map +1 -1
- package/dist/prototype/validate.d.ts.map +1 -1
- package/dist/prototype/validate.js +19 -0
- package/dist/prototype/validate.js.map +1 -1
- package/dist/util/open-browser.d.ts +3 -0
- package/dist/util/open-browser.d.ts.map +1 -0
- package/dist/util/open-browser.js +24 -0
- package/dist/util/open-browser.js.map +1 -0
- package/package.json +4 -2
- package/scaffold/.ai-spector/.docflow/config/language.json +4 -0
- package/scaffold/cursor/WORKFLOW.md +2 -1
- package/scaffold/cursor/skills/_skill-router.md +1 -1
- package/scaffold/cursor/skills/ai-spector/references/generate-workflow.md +8 -0
- package/scaffold/cursor/skills/ai-spector/references/language-picker.md +70 -0
- package/scaffold/cursor/skills/ai-spector/references/project-conventions.md +13 -4
- package/scaffold/cursor/skills/ai-spector-generate-basic-design/SKILL.md +1 -0
- package/scaffold/cursor/skills/ai-spector-generate-detail-design/SKILL.md +1 -0
- package/scaffold/cursor/skills/ai-spector-generate-prototype/SKILL.md +13 -5
- package/scaffold/cursor/skills/ai-spector-generate-prototype/references/auth-picker.md +61 -0
- package/scaffold/cursor/skills/ai-spector-generate-prototype/references/runbook.md +32 -10
- package/scaffold/cursor/skills/ai-spector-generate-prototype/references/theme-picker.md +118 -0
- package/scaffold/cursor/skills/ai-spector-generate-srs/SKILL.md +1 -0
- package/scaffold/prototype/README.md +24 -3
|
@@ -0,0 +1,1182 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Design System Inspired by Nike</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Oswald:wght@500;600;700&display=swap" rel="stylesheet">
|
|
10
|
+
<style>
|
|
11
|
+
:root {
|
|
12
|
+
--nike-black: #111111;
|
|
13
|
+
--nike-white: #FFFFFF;
|
|
14
|
+
--snow: #FAFAFA;
|
|
15
|
+
--light-gray: #F5F5F5;
|
|
16
|
+
--hover-gray: #E5E5E5;
|
|
17
|
+
--border-secondary: #CACACB;
|
|
18
|
+
--secondary-text: #707072;
|
|
19
|
+
--disabled-text: #9E9EA0;
|
|
20
|
+
--dark-surface: #28282A;
|
|
21
|
+
--deep-charcoal: #1F1F21;
|
|
22
|
+
--nike-red: #D30005;
|
|
23
|
+
--success-green: #007D48;
|
|
24
|
+
--link-blue: #1151FF;
|
|
25
|
+
--warning-yellow: #FEDF35;
|
|
26
|
+
--orange-flash: #FF5000;
|
|
27
|
+
--focus-ring: rgba(39, 93, 197, 1);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
31
|
+
body {
|
|
32
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
33
|
+
background: var(--nike-white);
|
|
34
|
+
color: var(--nike-black);
|
|
35
|
+
line-height: 1.75;
|
|
36
|
+
font-weight: 400;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Nav */
|
|
40
|
+
.nav {
|
|
41
|
+
position: sticky;
|
|
42
|
+
top: 0;
|
|
43
|
+
z-index: 100;
|
|
44
|
+
background: var(--nike-white);
|
|
45
|
+
border-bottom: 1px solid var(--hover-gray);
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
justify-content: space-between;
|
|
49
|
+
padding: 0 48px;
|
|
50
|
+
height: 60px;
|
|
51
|
+
}
|
|
52
|
+
.nav-brand {
|
|
53
|
+
font-family: 'Oswald', Helvetica, Arial, sans-serif;
|
|
54
|
+
font-size: 18px;
|
|
55
|
+
font-weight: 700;
|
|
56
|
+
text-transform: uppercase;
|
|
57
|
+
letter-spacing: 0.02em;
|
|
58
|
+
color: var(--nike-black);
|
|
59
|
+
}
|
|
60
|
+
.nav-links {
|
|
61
|
+
display: flex;
|
|
62
|
+
gap: 32px;
|
|
63
|
+
list-style: none;
|
|
64
|
+
}
|
|
65
|
+
.nav-links a {
|
|
66
|
+
font-size: 16px;
|
|
67
|
+
font-weight: 500;
|
|
68
|
+
color: var(--nike-black);
|
|
69
|
+
text-decoration: none;
|
|
70
|
+
}
|
|
71
|
+
.nav-links a:hover { color: var(--secondary-text); }
|
|
72
|
+
.nav-cta {
|
|
73
|
+
background: var(--nike-black);
|
|
74
|
+
color: var(--nike-white);
|
|
75
|
+
border: none;
|
|
76
|
+
border-radius: 30px;
|
|
77
|
+
padding: 8px 24px;
|
|
78
|
+
font-size: 14px;
|
|
79
|
+
font-weight: 500;
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
82
|
+
}
|
|
83
|
+
.nav-cta:hover { background: var(--secondary-text); }
|
|
84
|
+
|
|
85
|
+
/* Hero */
|
|
86
|
+
.hero {
|
|
87
|
+
background: var(--nike-black);
|
|
88
|
+
color: var(--nike-white);
|
|
89
|
+
padding: 80px 48px 64px;
|
|
90
|
+
text-align: center;
|
|
91
|
+
position: relative;
|
|
92
|
+
overflow: hidden;
|
|
93
|
+
}
|
|
94
|
+
.hero::before {
|
|
95
|
+
content: '';
|
|
96
|
+
position: absolute;
|
|
97
|
+
top: 0; left: 0; right: 0; bottom: 0;
|
|
98
|
+
background: linear-gradient(135deg, #111111 0%, #28282A 50%, #111111 100%);
|
|
99
|
+
opacity: 0.95;
|
|
100
|
+
}
|
|
101
|
+
.hero-content { position: relative; z-index: 1; max-width: 960px; margin: 0 auto; }
|
|
102
|
+
.hero h1 {
|
|
103
|
+
font-family: 'Oswald', Helvetica, Arial, sans-serif;
|
|
104
|
+
font-size: 72px;
|
|
105
|
+
font-weight: 700;
|
|
106
|
+
text-transform: uppercase;
|
|
107
|
+
line-height: 0.90;
|
|
108
|
+
margin-bottom: 24px;
|
|
109
|
+
letter-spacing: -0.02em;
|
|
110
|
+
}
|
|
111
|
+
.hero-subtitle {
|
|
112
|
+
font-size: 16px;
|
|
113
|
+
font-weight: 400;
|
|
114
|
+
color: var(--border-secondary);
|
|
115
|
+
margin-bottom: 40px;
|
|
116
|
+
line-height: 1.75;
|
|
117
|
+
}
|
|
118
|
+
.hero-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
|
|
119
|
+
.btn-primary {
|
|
120
|
+
background: var(--nike-white);
|
|
121
|
+
color: var(--nike-black);
|
|
122
|
+
border: none;
|
|
123
|
+
border-radius: 30px;
|
|
124
|
+
padding: 12px 32px;
|
|
125
|
+
font-size: 16px;
|
|
126
|
+
font-weight: 500;
|
|
127
|
+
cursor: pointer;
|
|
128
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
129
|
+
transition: background 200ms ease;
|
|
130
|
+
}
|
|
131
|
+
.btn-primary:hover { background: var(--border-secondary); }
|
|
132
|
+
.btn-secondary {
|
|
133
|
+
background: transparent;
|
|
134
|
+
color: var(--nike-white);
|
|
135
|
+
border: 1.5px solid var(--secondary-text);
|
|
136
|
+
border-radius: 30px;
|
|
137
|
+
padding: 12px 32px;
|
|
138
|
+
font-size: 16px;
|
|
139
|
+
font-weight: 500;
|
|
140
|
+
cursor: pointer;
|
|
141
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
142
|
+
transition: border-color 200ms ease;
|
|
143
|
+
}
|
|
144
|
+
.btn-secondary:hover { border-color: var(--nike-white); }
|
|
145
|
+
|
|
146
|
+
/* Sections */
|
|
147
|
+
.section {
|
|
148
|
+
padding: 64px 48px;
|
|
149
|
+
max-width: 1440px;
|
|
150
|
+
margin: 0 auto;
|
|
151
|
+
}
|
|
152
|
+
.section-title {
|
|
153
|
+
font-family: 'Oswald', Helvetica, Arial, sans-serif;
|
|
154
|
+
font-size: 32px;
|
|
155
|
+
font-weight: 700;
|
|
156
|
+
text-transform: uppercase;
|
|
157
|
+
line-height: 1.2;
|
|
158
|
+
margin-bottom: 12px;
|
|
159
|
+
}
|
|
160
|
+
.section-desc {
|
|
161
|
+
font-size: 16px;
|
|
162
|
+
color: var(--secondary-text);
|
|
163
|
+
margin-bottom: 40px;
|
|
164
|
+
max-width: 600px;
|
|
165
|
+
}
|
|
166
|
+
.section-divider {
|
|
167
|
+
border: none;
|
|
168
|
+
border-top: 1px solid var(--hover-gray);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* Color Palette */
|
|
172
|
+
.color-category { margin-bottom: 40px; }
|
|
173
|
+
.color-category h3 {
|
|
174
|
+
font-size: 16px;
|
|
175
|
+
font-weight: 500;
|
|
176
|
+
margin-bottom: 16px;
|
|
177
|
+
color: var(--secondary-text);
|
|
178
|
+
text-transform: uppercase;
|
|
179
|
+
letter-spacing: 0.05em;
|
|
180
|
+
}
|
|
181
|
+
.color-grid {
|
|
182
|
+
display: grid;
|
|
183
|
+
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
|
|
184
|
+
gap: 12px;
|
|
185
|
+
}
|
|
186
|
+
.color-swatch {
|
|
187
|
+
background: var(--nike-white);
|
|
188
|
+
overflow: hidden;
|
|
189
|
+
}
|
|
190
|
+
.swatch-block {
|
|
191
|
+
height: 80px;
|
|
192
|
+
width: 100%;
|
|
193
|
+
}
|
|
194
|
+
.swatch-info {
|
|
195
|
+
padding: 10px 0;
|
|
196
|
+
}
|
|
197
|
+
.swatch-name {
|
|
198
|
+
font-size: 14px;
|
|
199
|
+
font-weight: 500;
|
|
200
|
+
color: var(--nike-black);
|
|
201
|
+
}
|
|
202
|
+
.swatch-hex {
|
|
203
|
+
font-size: 12px;
|
|
204
|
+
color: var(--secondary-text);
|
|
205
|
+
font-family: 'Inter', monospace;
|
|
206
|
+
}
|
|
207
|
+
.swatch-role {
|
|
208
|
+
font-size: 12px;
|
|
209
|
+
color: var(--secondary-text);
|
|
210
|
+
margin-top: 2px;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* Typography */
|
|
214
|
+
.type-sample { margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid var(--hover-gray); }
|
|
215
|
+
.type-sample:last-child { border-bottom: none; }
|
|
216
|
+
.type-label {
|
|
217
|
+
font-size: 12px;
|
|
218
|
+
font-weight: 500;
|
|
219
|
+
color: var(--secondary-text);
|
|
220
|
+
text-transform: uppercase;
|
|
221
|
+
letter-spacing: 0.05em;
|
|
222
|
+
margin-bottom: 8px;
|
|
223
|
+
}
|
|
224
|
+
.type-display {
|
|
225
|
+
font-family: 'Oswald', Helvetica, Arial, sans-serif;
|
|
226
|
+
font-size: 72px;
|
|
227
|
+
font-weight: 700;
|
|
228
|
+
text-transform: uppercase;
|
|
229
|
+
line-height: 0.90;
|
|
230
|
+
}
|
|
231
|
+
.type-h1 {
|
|
232
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
233
|
+
font-size: 32px;
|
|
234
|
+
font-weight: 600;
|
|
235
|
+
line-height: 1.2;
|
|
236
|
+
}
|
|
237
|
+
.type-h2 {
|
|
238
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
239
|
+
font-size: 24px;
|
|
240
|
+
font-weight: 600;
|
|
241
|
+
line-height: 1.2;
|
|
242
|
+
}
|
|
243
|
+
.type-h3 {
|
|
244
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
245
|
+
font-size: 16px;
|
|
246
|
+
font-weight: 500;
|
|
247
|
+
line-height: 1.5;
|
|
248
|
+
}
|
|
249
|
+
.type-body {
|
|
250
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
251
|
+
font-size: 16px;
|
|
252
|
+
font-weight: 400;
|
|
253
|
+
line-height: 1.75;
|
|
254
|
+
}
|
|
255
|
+
.type-link {
|
|
256
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
257
|
+
font-size: 16px;
|
|
258
|
+
font-weight: 500;
|
|
259
|
+
line-height: 1.75;
|
|
260
|
+
text-decoration: underline;
|
|
261
|
+
}
|
|
262
|
+
.type-button-text {
|
|
263
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
264
|
+
font-size: 16px;
|
|
265
|
+
font-weight: 500;
|
|
266
|
+
line-height: 1.5;
|
|
267
|
+
}
|
|
268
|
+
.type-caption {
|
|
269
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
270
|
+
font-size: 14px;
|
|
271
|
+
font-weight: 500;
|
|
272
|
+
line-height: 1.5;
|
|
273
|
+
color: var(--secondary-text);
|
|
274
|
+
}
|
|
275
|
+
.type-small {
|
|
276
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
277
|
+
font-size: 12px;
|
|
278
|
+
font-weight: 500;
|
|
279
|
+
line-height: 1.5;
|
|
280
|
+
color: var(--secondary-text);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* Buttons Section */
|
|
284
|
+
.button-row {
|
|
285
|
+
display: flex;
|
|
286
|
+
gap: 16px;
|
|
287
|
+
flex-wrap: wrap;
|
|
288
|
+
align-items: center;
|
|
289
|
+
margin-bottom: 24px;
|
|
290
|
+
}
|
|
291
|
+
.button-label {
|
|
292
|
+
font-size: 12px;
|
|
293
|
+
font-weight: 500;
|
|
294
|
+
color: var(--secondary-text);
|
|
295
|
+
text-transform: uppercase;
|
|
296
|
+
letter-spacing: 0.05em;
|
|
297
|
+
margin-bottom: 12px;
|
|
298
|
+
}
|
|
299
|
+
.btn-dark {
|
|
300
|
+
background: var(--nike-black);
|
|
301
|
+
color: var(--nike-white);
|
|
302
|
+
border: none;
|
|
303
|
+
border-radius: 30px;
|
|
304
|
+
padding: 12px 32px;
|
|
305
|
+
font-size: 16px;
|
|
306
|
+
font-weight: 500;
|
|
307
|
+
cursor: pointer;
|
|
308
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
309
|
+
transition: background 200ms ease;
|
|
310
|
+
}
|
|
311
|
+
.btn-dark:hover { background: var(--secondary-text); }
|
|
312
|
+
.btn-outlined {
|
|
313
|
+
background: transparent;
|
|
314
|
+
color: var(--nike-black);
|
|
315
|
+
border: 1.5px solid var(--border-secondary);
|
|
316
|
+
border-radius: 30px;
|
|
317
|
+
padding: 12px 32px;
|
|
318
|
+
font-size: 16px;
|
|
319
|
+
font-weight: 500;
|
|
320
|
+
cursor: pointer;
|
|
321
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
322
|
+
transition: border-color 200ms ease;
|
|
323
|
+
}
|
|
324
|
+
.btn-outlined:hover { border-color: var(--secondary-text); }
|
|
325
|
+
.btn-disabled {
|
|
326
|
+
background: var(--hover-gray);
|
|
327
|
+
color: var(--disabled-text);
|
|
328
|
+
border: none;
|
|
329
|
+
border-radius: 30px;
|
|
330
|
+
padding: 12px 32px;
|
|
331
|
+
font-size: 16px;
|
|
332
|
+
font-weight: 500;
|
|
333
|
+
cursor: not-allowed;
|
|
334
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
335
|
+
}
|
|
336
|
+
.btn-icon {
|
|
337
|
+
background: var(--light-gray);
|
|
338
|
+
color: var(--nike-black);
|
|
339
|
+
border: none;
|
|
340
|
+
border-radius: 50%;
|
|
341
|
+
width: 44px;
|
|
342
|
+
height: 44px;
|
|
343
|
+
display: flex;
|
|
344
|
+
align-items: center;
|
|
345
|
+
justify-content: center;
|
|
346
|
+
cursor: pointer;
|
|
347
|
+
font-size: 18px;
|
|
348
|
+
transition: background 200ms ease;
|
|
349
|
+
}
|
|
350
|
+
.btn-icon:hover { background: var(--hover-gray); }
|
|
351
|
+
.dark-btn-row {
|
|
352
|
+
background: var(--nike-black);
|
|
353
|
+
padding: 24px 32px;
|
|
354
|
+
border-radius: 12px;
|
|
355
|
+
display: flex;
|
|
356
|
+
gap: 16px;
|
|
357
|
+
flex-wrap: wrap;
|
|
358
|
+
align-items: center;
|
|
359
|
+
}
|
|
360
|
+
.btn-white {
|
|
361
|
+
background: var(--nike-white);
|
|
362
|
+
color: var(--nike-black);
|
|
363
|
+
border: none;
|
|
364
|
+
border-radius: 30px;
|
|
365
|
+
padding: 12px 32px;
|
|
366
|
+
font-size: 16px;
|
|
367
|
+
font-weight: 500;
|
|
368
|
+
cursor: pointer;
|
|
369
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
370
|
+
transition: background 200ms ease;
|
|
371
|
+
}
|
|
372
|
+
.btn-white:hover { background: var(--border-secondary); }
|
|
373
|
+
.btn-outlined-white {
|
|
374
|
+
background: transparent;
|
|
375
|
+
color: var(--nike-white);
|
|
376
|
+
border: 1.5px solid var(--secondary-text);
|
|
377
|
+
border-radius: 30px;
|
|
378
|
+
padding: 12px 32px;
|
|
379
|
+
font-size: 16px;
|
|
380
|
+
font-weight: 500;
|
|
381
|
+
cursor: pointer;
|
|
382
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
383
|
+
transition: border-color 200ms ease;
|
|
384
|
+
}
|
|
385
|
+
.btn-outlined-white:hover { border-color: var(--nike-white); }
|
|
386
|
+
|
|
387
|
+
/* Cards */
|
|
388
|
+
.card-grid {
|
|
389
|
+
display: grid;
|
|
390
|
+
grid-template-columns: repeat(3, 1fr);
|
|
391
|
+
gap: 12px;
|
|
392
|
+
}
|
|
393
|
+
.card {
|
|
394
|
+
overflow: hidden;
|
|
395
|
+
}
|
|
396
|
+
.card-image {
|
|
397
|
+
width: 100%;
|
|
398
|
+
height: 240px;
|
|
399
|
+
background: var(--light-gray);
|
|
400
|
+
display: flex;
|
|
401
|
+
align-items: center;
|
|
402
|
+
justify-content: center;
|
|
403
|
+
color: var(--secondary-text);
|
|
404
|
+
font-size: 14px;
|
|
405
|
+
font-weight: 500;
|
|
406
|
+
}
|
|
407
|
+
.card-body {
|
|
408
|
+
padding: 12px 0;
|
|
409
|
+
}
|
|
410
|
+
.card-title {
|
|
411
|
+
font-size: 16px;
|
|
412
|
+
font-weight: 500;
|
|
413
|
+
color: var(--nike-black);
|
|
414
|
+
margin-bottom: 4px;
|
|
415
|
+
}
|
|
416
|
+
.card-subtitle {
|
|
417
|
+
font-size: 14px;
|
|
418
|
+
color: var(--secondary-text);
|
|
419
|
+
}
|
|
420
|
+
.card-price {
|
|
421
|
+
font-size: 16px;
|
|
422
|
+
font-weight: 500;
|
|
423
|
+
color: var(--nike-black);
|
|
424
|
+
margin-top: 4px;
|
|
425
|
+
}
|
|
426
|
+
.card-container {
|
|
427
|
+
background: var(--nike-white);
|
|
428
|
+
border-radius: 20px;
|
|
429
|
+
border: 1px solid var(--hover-gray);
|
|
430
|
+
padding: 24px;
|
|
431
|
+
}
|
|
432
|
+
.card-container h4 {
|
|
433
|
+
font-size: 16px;
|
|
434
|
+
font-weight: 500;
|
|
435
|
+
margin-bottom: 8px;
|
|
436
|
+
}
|
|
437
|
+
.card-container p {
|
|
438
|
+
font-size: 14px;
|
|
439
|
+
color: var(--secondary-text);
|
|
440
|
+
}
|
|
441
|
+
.category-card {
|
|
442
|
+
position: relative;
|
|
443
|
+
height: 280px;
|
|
444
|
+
background: var(--deep-charcoal);
|
|
445
|
+
overflow: hidden;
|
|
446
|
+
display: flex;
|
|
447
|
+
align-items: flex-end;
|
|
448
|
+
padding: 24px;
|
|
449
|
+
}
|
|
450
|
+
.category-card-text {
|
|
451
|
+
color: var(--nike-white);
|
|
452
|
+
font-size: 24px;
|
|
453
|
+
font-weight: 600;
|
|
454
|
+
z-index: 1;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/* Forms */
|
|
458
|
+
.form-group { margin-bottom: 24px; max-width: 480px; }
|
|
459
|
+
.form-label {
|
|
460
|
+
display: block;
|
|
461
|
+
font-size: 14px;
|
|
462
|
+
font-weight: 500;
|
|
463
|
+
color: var(--nike-black);
|
|
464
|
+
margin-bottom: 8px;
|
|
465
|
+
}
|
|
466
|
+
.form-input {
|
|
467
|
+
width: 100%;
|
|
468
|
+
padding: 12px 16px;
|
|
469
|
+
font-size: 16px;
|
|
470
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
471
|
+
border: 1px solid var(--border-secondary);
|
|
472
|
+
border-radius: 8px;
|
|
473
|
+
background: var(--light-gray);
|
|
474
|
+
color: var(--nike-black);
|
|
475
|
+
outline: none;
|
|
476
|
+
transition: border-color 200ms ease;
|
|
477
|
+
}
|
|
478
|
+
.form-input::placeholder { color: var(--secondary-text); }
|
|
479
|
+
.form-input:focus { border-color: var(--nike-black); box-shadow: 0 0 0 2px var(--focus-ring); }
|
|
480
|
+
.form-input-error {
|
|
481
|
+
width: 100%;
|
|
482
|
+
padding: 12px 16px;
|
|
483
|
+
font-size: 16px;
|
|
484
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
485
|
+
border: 1.5px solid var(--nike-red);
|
|
486
|
+
border-radius: 8px;
|
|
487
|
+
background: var(--light-gray);
|
|
488
|
+
color: var(--nike-black);
|
|
489
|
+
outline: none;
|
|
490
|
+
}
|
|
491
|
+
.form-error-text {
|
|
492
|
+
font-size: 12px;
|
|
493
|
+
color: var(--nike-red);
|
|
494
|
+
margin-top: 4px;
|
|
495
|
+
}
|
|
496
|
+
.form-search {
|
|
497
|
+
width: 100%;
|
|
498
|
+
padding: 12px 16px 12px 40px;
|
|
499
|
+
font-size: 16px;
|
|
500
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
501
|
+
border: none;
|
|
502
|
+
border-radius: 24px;
|
|
503
|
+
background: var(--light-gray);
|
|
504
|
+
color: var(--nike-black);
|
|
505
|
+
outline: none;
|
|
506
|
+
transition: border-color 200ms ease;
|
|
507
|
+
}
|
|
508
|
+
.form-search:focus { box-shadow: 0 0 0 2px var(--focus-ring); }
|
|
509
|
+
.form-textarea {
|
|
510
|
+
width: 100%;
|
|
511
|
+
padding: 12px 16px;
|
|
512
|
+
font-size: 16px;
|
|
513
|
+
font-family: 'Inter', Helvetica, Arial, sans-serif;
|
|
514
|
+
border: 1px solid var(--border-secondary);
|
|
515
|
+
border-radius: 8px;
|
|
516
|
+
background: var(--light-gray);
|
|
517
|
+
color: var(--nike-black);
|
|
518
|
+
outline: none;
|
|
519
|
+
resize: vertical;
|
|
520
|
+
min-height: 100px;
|
|
521
|
+
transition: border-color 200ms ease;
|
|
522
|
+
}
|
|
523
|
+
.form-textarea:focus { border-color: var(--nike-black); box-shadow: 0 0 0 2px var(--focus-ring); }
|
|
524
|
+
|
|
525
|
+
/* Spacing */
|
|
526
|
+
.spacing-row { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 16px; }
|
|
527
|
+
.spacing-box {
|
|
528
|
+
background: var(--nike-black);
|
|
529
|
+
display: flex;
|
|
530
|
+
align-items: center;
|
|
531
|
+
justify-content: center;
|
|
532
|
+
font-size: 11px;
|
|
533
|
+
font-weight: 500;
|
|
534
|
+
color: var(--nike-white);
|
|
535
|
+
border-radius: 4px;
|
|
536
|
+
min-height: 40px;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
/* Radius */
|
|
540
|
+
.radius-row { display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-end; }
|
|
541
|
+
.radius-item { text-align: center; }
|
|
542
|
+
.radius-box {
|
|
543
|
+
width: 80px;
|
|
544
|
+
height: 80px;
|
|
545
|
+
background: var(--nike-black);
|
|
546
|
+
margin-bottom: 8px;
|
|
547
|
+
}
|
|
548
|
+
.radius-label {
|
|
549
|
+
font-size: 12px;
|
|
550
|
+
color: var(--secondary-text);
|
|
551
|
+
font-weight: 500;
|
|
552
|
+
}
|
|
553
|
+
.radius-context {
|
|
554
|
+
font-size: 11px;
|
|
555
|
+
color: var(--disabled-text);
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/* Elevation */
|
|
559
|
+
.elevation-grid {
|
|
560
|
+
display: grid;
|
|
561
|
+
grid-template-columns: repeat(4, 1fr);
|
|
562
|
+
gap: 24px;
|
|
563
|
+
}
|
|
564
|
+
.elevation-card {
|
|
565
|
+
padding: 24px;
|
|
566
|
+
background: var(--nike-white);
|
|
567
|
+
text-align: center;
|
|
568
|
+
}
|
|
569
|
+
.elevation-name {
|
|
570
|
+
font-size: 14px;
|
|
571
|
+
font-weight: 500;
|
|
572
|
+
margin-bottom: 4px;
|
|
573
|
+
}
|
|
574
|
+
.elevation-desc {
|
|
575
|
+
font-size: 12px;
|
|
576
|
+
color: var(--secondary-text);
|
|
577
|
+
}
|
|
578
|
+
.elevation-flat {
|
|
579
|
+
border: 1px solid var(--hover-gray);
|
|
580
|
+
}
|
|
581
|
+
.elevation-divider {
|
|
582
|
+
box-shadow: 0px -1px 0px 0px #E5E5E5 inset;
|
|
583
|
+
border: 1px solid var(--hover-gray);
|
|
584
|
+
}
|
|
585
|
+
.elevation-focus {
|
|
586
|
+
box-shadow: 0 0 0 2px rgba(39, 93, 197, 1);
|
|
587
|
+
}
|
|
588
|
+
.elevation-overlay {
|
|
589
|
+
background: var(--deep-charcoal);
|
|
590
|
+
color: var(--nike-white);
|
|
591
|
+
}
|
|
592
|
+
.elevation-overlay .elevation-desc { color: var(--border-secondary); }
|
|
593
|
+
|
|
594
|
+
/* Footer */
|
|
595
|
+
.footer {
|
|
596
|
+
text-align: center;
|
|
597
|
+
padding: 48px;
|
|
598
|
+
border-top: 1px solid var(--hover-gray);
|
|
599
|
+
font-size: 14px;
|
|
600
|
+
color: var(--secondary-text);
|
|
601
|
+
}
|
|
602
|
+
.footer a {
|
|
603
|
+
color: var(--nike-black);
|
|
604
|
+
text-decoration: none;
|
|
605
|
+
font-weight: 500;
|
|
606
|
+
}
|
|
607
|
+
.footer a:hover { color: var(--secondary-text); }
|
|
608
|
+
|
|
609
|
+
/* Responsive */
|
|
610
|
+
@media (max-width: 768px) {
|
|
611
|
+
.nav { padding: 0 16px; }
|
|
612
|
+
.nav-links { display: none; }
|
|
613
|
+
.hero { padding: 48px 16px 40px; }
|
|
614
|
+
.hero h1 { font-size: 48px; }
|
|
615
|
+
.section { padding: 40px 16px; }
|
|
616
|
+
.card-grid { grid-template-columns: 1fr; }
|
|
617
|
+
.elevation-grid { grid-template-columns: repeat(2, 1fr); }
|
|
618
|
+
.color-grid { grid-template-columns: repeat(2, 1fr); }
|
|
619
|
+
.type-display { font-size: 48px; }
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
/* getdesign.md nav additions */
|
|
623
|
+
.nav-left { display: flex; align-items: center; gap: 20px; }
|
|
624
|
+
.nav-brand-link,
|
|
625
|
+
.nav-brand-link:link,
|
|
626
|
+
.nav-brand-link:visited,
|
|
627
|
+
.nav-brand-link:hover,
|
|
628
|
+
.nav-brand-link:active { text-decoration: none; color: inherit; }
|
|
629
|
+
.nav-github,
|
|
630
|
+
.nav-github:link,
|
|
631
|
+
.nav-github:visited,
|
|
632
|
+
.nav-github:hover,
|
|
633
|
+
.nav-github:active {
|
|
634
|
+
display: inline-flex;
|
|
635
|
+
align-items: center;
|
|
636
|
+
gap: 6px;
|
|
637
|
+
font-size: 12px;
|
|
638
|
+
font-weight: 600;
|
|
639
|
+
color: inherit;
|
|
640
|
+
text-decoration: none;
|
|
641
|
+
padding: 5px 10px;
|
|
642
|
+
border: 1px solid rgba(128, 128, 128, 0.3);
|
|
643
|
+
border-radius: 6px;
|
|
644
|
+
opacity: 0.75;
|
|
645
|
+
transition: opacity 200ms ease, border-color 200ms ease;
|
|
646
|
+
font-family: inherit;
|
|
647
|
+
line-height: 1;
|
|
648
|
+
white-space: nowrap;
|
|
649
|
+
}
|
|
650
|
+
.nav-github:hover { opacity: 1; border-color: rgba(128, 128, 128, 0.55); }
|
|
651
|
+
.nav-github svg { display: block; flex-shrink: 0; }
|
|
652
|
+
|
|
653
|
+
/* getdesign.md nav centering */
|
|
654
|
+
.nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
|
|
655
|
+
.nav > .nav-left { justify-self: start; }
|
|
656
|
+
.nav > .nav-links { justify-self: center; }
|
|
657
|
+
.nav > :last-child { justify-self: end; }
|
|
658
|
+
</style>
|
|
659
|
+
</head>
|
|
660
|
+
<body>
|
|
661
|
+
|
|
662
|
+
<!-- Nav -->
|
|
663
|
+
<nav class="nav">
|
|
664
|
+
<div class="nav-left">
|
|
665
|
+
<a href="https://getdesign.md/" target="_blank" rel="noopener noreferrer" class="nav-brand-link">
|
|
666
|
+
<span class="nav-brand">getdesign.md</span>
|
|
667
|
+
</a>
|
|
668
|
+
<a class="nav-github" href="https://github.com/VoltAgent/awesome-design-md" target="_blank" rel="noopener noreferrer" aria-label="awesome-design-md on GitHub">
|
|
669
|
+
<svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2 .37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
|
|
670
|
+
awesome-design-md
|
|
671
|
+
</a>
|
|
672
|
+
</div>
|
|
673
|
+
<ul class="nav-links">
|
|
674
|
+
<a href="#colors">Colors</a>
|
|
675
|
+
<a href="#typography">Typography</a>
|
|
676
|
+
<a href="#buttons">Buttons</a>
|
|
677
|
+
<a href="#cards">Cards</a>
|
|
678
|
+
<a href="#forms">Forms</a>
|
|
679
|
+
<a href="#spacing">Spacing</a>
|
|
680
|
+
</ul>
|
|
681
|
+
<button class="nav-cta">Just Do It</button>
|
|
682
|
+
</nav>
|
|
683
|
+
|
|
684
|
+
<!-- Hero -->
|
|
685
|
+
<section class="hero">
|
|
686
|
+
<div class="hero-content">
|
|
687
|
+
<h1>Design System Inspired by Nike</h1>
|
|
688
|
+
<p class="hero-subtitle">A complete design token catalog extracted from Nike.com â Podium CDS typography, color palette, and component patterns.</p>
|
|
689
|
+
<div class="hero-buttons">
|
|
690
|
+
<button class="btn-primary">Explore Tokens</button>
|
|
691
|
+
<button class="btn-secondary">View Source</button>
|
|
692
|
+
</div>
|
|
693
|
+
</div>
|
|
694
|
+
</section>
|
|
695
|
+
|
|
696
|
+
<!-- Colors -->
|
|
697
|
+
<section class="section" id="colors">
|
|
698
|
+
<h2 class="section-title">Color Palette</h2>
|
|
699
|
+
<p class="section-desc">Nike's monochromatic foundation â the UI disappears into black, white, and grey so product photography provides all color.</p>
|
|
700
|
+
|
|
701
|
+
<div class="color-category">
|
|
702
|
+
<h3>Primary</h3>
|
|
703
|
+
<div class="color-grid">
|
|
704
|
+
<div class="color-swatch">
|
|
705
|
+
<div class="swatch-block" style="background:#111111;"></div>
|
|
706
|
+
<div class="swatch-info">
|
|
707
|
+
<div class="swatch-name">Nike Black</div>
|
|
708
|
+
<div class="swatch-hex">#111111</div>
|
|
709
|
+
<div class="swatch-role">Primary text, buttons, nav</div>
|
|
710
|
+
</div>
|
|
711
|
+
</div>
|
|
712
|
+
<div class="color-swatch">
|
|
713
|
+
<div class="swatch-block" style="background:#FFFFFF; border:1px solid #E5E5E5;"></div>
|
|
714
|
+
<div class="swatch-info">
|
|
715
|
+
<div class="swatch-name">Nike White</div>
|
|
716
|
+
<div class="swatch-hex">#FFFFFF</div>
|
|
717
|
+
<div class="swatch-role">Page canvas, button text</div>
|
|
718
|
+
</div>
|
|
719
|
+
</div>
|
|
720
|
+
</div>
|
|
721
|
+
</div>
|
|
722
|
+
|
|
723
|
+
<div class="color-category">
|
|
724
|
+
<h3>Surface & Background</h3>
|
|
725
|
+
<div class="color-grid">
|
|
726
|
+
<div class="color-swatch">
|
|
727
|
+
<div class="swatch-block" style="background:#FAFAFA; border:1px solid #E5E5E5;"></div>
|
|
728
|
+
<div class="swatch-info">
|
|
729
|
+
<div class="swatch-name">Snow</div>
|
|
730
|
+
<div class="swatch-hex">#FAFAFA</div>
|
|
731
|
+
<div class="swatch-role">Grey-50, lightest surface</div>
|
|
732
|
+
</div>
|
|
733
|
+
</div>
|
|
734
|
+
<div class="color-swatch">
|
|
735
|
+
<div class="swatch-block" style="background:#F5F5F5;"></div>
|
|
736
|
+
<div class="swatch-info">
|
|
737
|
+
<div class="swatch-name">Light Gray</div>
|
|
738
|
+
<div class="swatch-hex">#F5F5F5</div>
|
|
739
|
+
<div class="swatch-role">Grey-100, input bg, placeholders</div>
|
|
740
|
+
</div>
|
|
741
|
+
</div>
|
|
742
|
+
<div class="color-swatch">
|
|
743
|
+
<div class="swatch-block" style="background:#E5E5E5;"></div>
|
|
744
|
+
<div class="swatch-info">
|
|
745
|
+
<div class="swatch-name">Hover Gray</div>
|
|
746
|
+
<div class="swatch-hex">#E5E5E5</div>
|
|
747
|
+
<div class="swatch-role">Grey-200, hover states</div>
|
|
748
|
+
</div>
|
|
749
|
+
</div>
|
|
750
|
+
<div class="color-swatch">
|
|
751
|
+
<div class="swatch-block" style="background:#28282A;"></div>
|
|
752
|
+
<div class="swatch-info">
|
|
753
|
+
<div class="swatch-name">Dark Surface</div>
|
|
754
|
+
<div class="swatch-hex">#28282A</div>
|
|
755
|
+
<div class="swatch-role">Grey-800, dark sections</div>
|
|
756
|
+
</div>
|
|
757
|
+
</div>
|
|
758
|
+
<div class="color-swatch">
|
|
759
|
+
<div class="swatch-block" style="background:#1F1F21;"></div>
|
|
760
|
+
<div class="swatch-info">
|
|
761
|
+
<div class="swatch-name">Deep Charcoal</div>
|
|
762
|
+
<div class="swatch-hex">#1F1F21</div>
|
|
763
|
+
<div class="swatch-role">Grey-900, inverse primary bg</div>
|
|
764
|
+
</div>
|
|
765
|
+
</div>
|
|
766
|
+
</div>
|
|
767
|
+
</div>
|
|
768
|
+
|
|
769
|
+
<div class="color-category">
|
|
770
|
+
<h3>Neutrals & Text</h3>
|
|
771
|
+
<div class="color-grid">
|
|
772
|
+
<div class="color-swatch">
|
|
773
|
+
<div class="swatch-block" style="background:#111111;"></div>
|
|
774
|
+
<div class="swatch-info">
|
|
775
|
+
<div class="swatch-name">Primary Text</div>
|
|
776
|
+
<div class="swatch-hex">#111111</div>
|
|
777
|
+
<div class="swatch-role">Headings, body, nav</div>
|
|
778
|
+
</div>
|
|
779
|
+
</div>
|
|
780
|
+
<div class="color-swatch">
|
|
781
|
+
<div class="swatch-block" style="background:#707072;"></div>
|
|
782
|
+
<div class="swatch-info">
|
|
783
|
+
<div class="swatch-name">Secondary Text</div>
|
|
784
|
+
<div class="swatch-hex">#707072</div>
|
|
785
|
+
<div class="swatch-role">Descriptions, metadata</div>
|
|
786
|
+
</div>
|
|
787
|
+
</div>
|
|
788
|
+
<div class="color-swatch">
|
|
789
|
+
<div class="swatch-block" style="background:#9E9EA0;"></div>
|
|
790
|
+
<div class="swatch-info">
|
|
791
|
+
<div class="swatch-name">Disabled Text</div>
|
|
792
|
+
<div class="swatch-hex">#9E9EA0</div>
|
|
793
|
+
<div class="swatch-role">Inactive elements</div>
|
|
794
|
+
</div>
|
|
795
|
+
</div>
|
|
796
|
+
<div class="color-swatch">
|
|
797
|
+
<div class="swatch-block" style="background:#CACACB;"></div>
|
|
798
|
+
<div class="swatch-info">
|
|
799
|
+
<div class="swatch-name">Border Secondary</div>
|
|
800
|
+
<div class="swatch-hex">#CACACB</div>
|
|
801
|
+
<div class="swatch-role">Input borders, dividers</div>
|
|
802
|
+
</div>
|
|
803
|
+
</div>
|
|
804
|
+
</div>
|
|
805
|
+
</div>
|
|
806
|
+
|
|
807
|
+
<div class="color-category">
|
|
808
|
+
<h3>Semantic & Accent</h3>
|
|
809
|
+
<div class="color-grid">
|
|
810
|
+
<div class="color-swatch">
|
|
811
|
+
<div class="swatch-block" style="background:#D30005;"></div>
|
|
812
|
+
<div class="swatch-info">
|
|
813
|
+
<div class="swatch-name">Nike Red</div>
|
|
814
|
+
<div class="swatch-hex">#D30005</div>
|
|
815
|
+
<div class="swatch-role">Critical, errors, sale</div>
|
|
816
|
+
</div>
|
|
817
|
+
</div>
|
|
818
|
+
<div class="color-swatch">
|
|
819
|
+
<div class="swatch-block" style="background:#FF5000;"></div>
|
|
820
|
+
<div class="swatch-info">
|
|
821
|
+
<div class="swatch-name">Orange Flash</div>
|
|
822
|
+
<div class="swatch-hex">#FF5000</div>
|
|
823
|
+
<div class="swatch-role">Promotional accent</div>
|
|
824
|
+
</div>
|
|
825
|
+
</div>
|
|
826
|
+
<div class="color-swatch">
|
|
827
|
+
<div class="swatch-block" style="background:#007D48;"></div>
|
|
828
|
+
<div class="swatch-info">
|
|
829
|
+
<div class="swatch-name">Success Green</div>
|
|
830
|
+
<div class="swatch-hex">#007D48</div>
|
|
831
|
+
<div class="swatch-role">Confirmation, availability</div>
|
|
832
|
+
</div>
|
|
833
|
+
</div>
|
|
834
|
+
<div class="color-swatch">
|
|
835
|
+
<div class="swatch-block" style="background:#1151FF;"></div>
|
|
836
|
+
<div class="swatch-info">
|
|
837
|
+
<div class="swatch-name">Link Blue</div>
|
|
838
|
+
<div class="swatch-hex">#1151FF</div>
|
|
839
|
+
<div class="swatch-role">Text links, info</div>
|
|
840
|
+
</div>
|
|
841
|
+
</div>
|
|
842
|
+
<div class="color-swatch">
|
|
843
|
+
<div class="swatch-block" style="background:#FEDF35;"></div>
|
|
844
|
+
<div class="swatch-info">
|
|
845
|
+
<div class="swatch-name">Warning Yellow</div>
|
|
846
|
+
<div class="swatch-hex">#FEDF35</div>
|
|
847
|
+
<div class="swatch-role">Warning banners</div>
|
|
848
|
+
</div>
|
|
849
|
+
</div>
|
|
850
|
+
</div>
|
|
851
|
+
</div>
|
|
852
|
+
|
|
853
|
+
<div class="color-category">
|
|
854
|
+
<h3>Extended Spectrum (50 â 900)</h3>
|
|
855
|
+
<div class="color-grid">
|
|
856
|
+
<div class="color-swatch">
|
|
857
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #FFE5E5, #EE0005, #530300);"></div>
|
|
858
|
+
<div class="swatch-info">
|
|
859
|
+
<div class="swatch-name">Red Ramp</div>
|
|
860
|
+
<div class="swatch-hex">#FFE5E5 â #530300</div>
|
|
861
|
+
</div>
|
|
862
|
+
</div>
|
|
863
|
+
<div class="color-swatch">
|
|
864
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #FFE2D6, #FF5000, #3E1009);"></div>
|
|
865
|
+
<div class="swatch-info">
|
|
866
|
+
<div class="swatch-name">Orange Ramp</div>
|
|
867
|
+
<div class="swatch-hex">#FFE2D6 â #3E1009</div>
|
|
868
|
+
</div>
|
|
869
|
+
</div>
|
|
870
|
+
<div class="color-swatch">
|
|
871
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #FEF087, #FCA600, #99470A);"></div>
|
|
872
|
+
<div class="swatch-info">
|
|
873
|
+
<div class="swatch-name">Yellow Ramp</div>
|
|
874
|
+
<div class="swatch-hex">#FEF087 â #99470A</div>
|
|
875
|
+
</div>
|
|
876
|
+
</div>
|
|
877
|
+
<div class="color-swatch">
|
|
878
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #DFFFB9, #1EAA52, #003C2A);"></div>
|
|
879
|
+
<div class="swatch-info">
|
|
880
|
+
<div class="swatch-name">Green Ramp</div>
|
|
881
|
+
<div class="swatch-hex">#DFFFB9 â #003C2A</div>
|
|
882
|
+
</div>
|
|
883
|
+
</div>
|
|
884
|
+
<div class="color-swatch">
|
|
885
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #D4FFFB, #008E98, #043441);"></div>
|
|
886
|
+
<div class="swatch-info">
|
|
887
|
+
<div class="swatch-name">Teal Ramp</div>
|
|
888
|
+
<div class="swatch-hex">#D4FFFB â #043441</div>
|
|
889
|
+
</div>
|
|
890
|
+
</div>
|
|
891
|
+
<div class="color-swatch">
|
|
892
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #D6EEFF, #1151FF, #020664);"></div>
|
|
893
|
+
<div class="swatch-info">
|
|
894
|
+
<div class="swatch-name">Blue Ramp</div>
|
|
895
|
+
<div class="swatch-hex">#D6EEFF â #020664</div>
|
|
896
|
+
</div>
|
|
897
|
+
</div>
|
|
898
|
+
<div class="color-swatch">
|
|
899
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #E4E1FC, #6E0FF6, #1C0060);"></div>
|
|
900
|
+
<div class="swatch-info">
|
|
901
|
+
<div class="swatch-name">Purple Ramp</div>
|
|
902
|
+
<div class="swatch-hex">#E4E1FC â #1C0060</div>
|
|
903
|
+
</div>
|
|
904
|
+
</div>
|
|
905
|
+
<div class="color-swatch">
|
|
906
|
+
<div class="swatch-block" style="background: linear-gradient(90deg, #FFE1F3, #ED1AA0, #4C012D);"></div>
|
|
907
|
+
<div class="swatch-info">
|
|
908
|
+
<div class="swatch-name">Pink Ramp</div>
|
|
909
|
+
<div class="swatch-hex">#FFE1F3 â #4C012D</div>
|
|
910
|
+
</div>
|
|
911
|
+
</div>
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
</section>
|
|
915
|
+
|
|
916
|
+
<hr class="section-divider">
|
|
917
|
+
|
|
918
|
+
<!-- Typography -->
|
|
919
|
+
<section class="section" id="typography">
|
|
920
|
+
<h2 class="section-title">Typography Scale</h2>
|
|
921
|
+
<p class="section-desc">Nike Futura ND for display impact, Helvetica Now for precision body text. Oswald and Inter serve as web substitutes.</p>
|
|
922
|
+
|
|
923
|
+
<div class="type-sample">
|
|
924
|
+
<div class="type-label">Display â 96px / 500 / 0.90 / Uppercase</div>
|
|
925
|
+
<div class="type-display">JUST DO IT</div>
|
|
926
|
+
</div>
|
|
927
|
+
<div class="type-sample">
|
|
928
|
+
<div class="type-label">Heading 1 â 32px / 600 / 1.20</div>
|
|
929
|
+
<div class="type-h1">Section Title Heading</div>
|
|
930
|
+
</div>
|
|
931
|
+
<div class="type-sample">
|
|
932
|
+
<div class="type-label">Heading 2 â 24px / 600 / 1.20</div>
|
|
933
|
+
<div class="type-h2">Subsection Heading</div>
|
|
934
|
+
</div>
|
|
935
|
+
<div class="type-sample">
|
|
936
|
+
<div class="type-label">Heading 3 â 16px / 500 / 1.50</div>
|
|
937
|
+
<div class="type-h3">Card Title</div>
|
|
938
|
+
</div>
|
|
939
|
+
<div class="type-sample">
|
|
940
|
+
<div class="type-label">Body â 16px / 400 / 1.75</div>
|
|
941
|
+
<div class="type-body">The quick brown fox jumps over the lazy dog. Nike's body text uses Helvetica Now Text at weight 400 with generous 1.75 line-height for comfortable product browsing.</div>
|
|
942
|
+
</div>
|
|
943
|
+
<div class="type-sample">
|
|
944
|
+
<div class="type-label">Link â 16px / 500 / 1.75</div>
|
|
945
|
+
<div class="type-link">Shop All Running Shoes</div>
|
|
946
|
+
</div>
|
|
947
|
+
<div class="type-sample">
|
|
948
|
+
<div class="type-label">Button â 16px / 500 / 1.50</div>
|
|
949
|
+
<div class="type-button-text">Add to Cart</div>
|
|
950
|
+
</div>
|
|
951
|
+
<div class="type-sample">
|
|
952
|
+
<div class="type-label">Caption â 14px / 500 / 1.50</div>
|
|
953
|
+
<div class="type-caption">$129.99 â Available in 8 colors</div>
|
|
954
|
+
</div>
|
|
955
|
+
<div class="type-sample">
|
|
956
|
+
<div class="type-label">Small â 12px / 500 / 1.50</div>
|
|
957
|
+
<div class="type-small">Free shipping on orders over $50</div>
|
|
958
|
+
</div>
|
|
959
|
+
</section>
|
|
960
|
+
|
|
961
|
+
<hr class="section-divider">
|
|
962
|
+
|
|
963
|
+
<!-- Buttons -->
|
|
964
|
+
<section class="section" id="buttons">
|
|
965
|
+
<h2 class="section-title">Button Variants</h2>
|
|
966
|
+
<p class="section-desc">Pill-shaped (30px radius) buttons with aggressive simplicity â only primary, secondary, and disabled states.</p>
|
|
967
|
+
|
|
968
|
+
<div class="button-label">On Light Background</div>
|
|
969
|
+
<div class="button-row">
|
|
970
|
+
<button class="btn-dark">Primary</button>
|
|
971
|
+
<button class="btn-outlined">Secondary</button>
|
|
972
|
+
<button class="btn-disabled" disabled>Disabled</button>
|
|
973
|
+
<button class="btn-icon">+</button>
|
|
974
|
+
</div>
|
|
975
|
+
|
|
976
|
+
<div class="button-label" style="margin-top:32px;">On Dark Background</div>
|
|
977
|
+
<div class="dark-btn-row">
|
|
978
|
+
<button class="btn-white">Primary on Dark</button>
|
|
979
|
+
<button class="btn-outlined-white">Secondary on Dark</button>
|
|
980
|
+
</div>
|
|
981
|
+
</section>
|
|
982
|
+
|
|
983
|
+
<hr class="section-divider">
|
|
984
|
+
|
|
985
|
+
<!-- Cards -->
|
|
986
|
+
<section class="section" id="cards">
|
|
987
|
+
<h2 class="section-title">Cards & Containers</h2>
|
|
988
|
+
<p class="section-desc">Shadow-free, border-minimal cards â product images fill edge-to-edge with no radius. UI containers use 20px radius.</p>
|
|
989
|
+
|
|
990
|
+
<div style="margin-bottom:40px;">
|
|
991
|
+
<div class="button-label">Product Cards (no radius, no shadow)</div>
|
|
992
|
+
<div class="card-grid">
|
|
993
|
+
<div class="card">
|
|
994
|
+
<div class="card-image">Product Image</div>
|
|
995
|
+
<div class="card-body">
|
|
996
|
+
<div class="card-title">Nike Air Max 90</div>
|
|
997
|
+
<div class="card-subtitle">Men's Shoes</div>
|
|
998
|
+
<div class="card-price">$130</div>
|
|
999
|
+
</div>
|
|
1000
|
+
</div>
|
|
1001
|
+
<div class="card">
|
|
1002
|
+
<div class="card-image">Product Image</div>
|
|
1003
|
+
<div class="card-body">
|
|
1004
|
+
<div class="card-title">Nike Dunk Low Retro</div>
|
|
1005
|
+
<div class="card-subtitle">Men's Shoes</div>
|
|
1006
|
+
<div class="card-price">$115</div>
|
|
1007
|
+
</div>
|
|
1008
|
+
</div>
|
|
1009
|
+
<div class="card">
|
|
1010
|
+
<div class="card-image">Product Image</div>
|
|
1011
|
+
<div class="card-body">
|
|
1012
|
+
<div class="card-title">Nike Pegasus 41</div>
|
|
1013
|
+
<div class="card-subtitle">Women's Road Running</div>
|
|
1014
|
+
<div class="card-price">$140</div>
|
|
1015
|
+
</div>
|
|
1016
|
+
</div>
|
|
1017
|
+
</div>
|
|
1018
|
+
</div>
|
|
1019
|
+
|
|
1020
|
+
<div style="margin-bottom:40px;">
|
|
1021
|
+
<div class="button-label">Category Cards (full-bleed, text overlay)</div>
|
|
1022
|
+
<div class="card-grid">
|
|
1023
|
+
<div class="category-card">
|
|
1024
|
+
<span class="category-card-text">Running</span>
|
|
1025
|
+
</div>
|
|
1026
|
+
<div class="category-card" style="background:#28282A;">
|
|
1027
|
+
<span class="category-card-text">Basketball</span>
|
|
1028
|
+
</div>
|
|
1029
|
+
<div class="category-card" style="background:#1F1F21;">
|
|
1030
|
+
<span class="category-card-text">Training</span>
|
|
1031
|
+
</div>
|
|
1032
|
+
</div>
|
|
1033
|
+
</div>
|
|
1034
|
+
|
|
1035
|
+
<div>
|
|
1036
|
+
<div class="button-label">UI Containers (20px radius, subtle border)</div>
|
|
1037
|
+
<div style="display:grid; grid-template-columns: repeat(3, 1fr); gap: 12px;">
|
|
1038
|
+
<div class="card-container">
|
|
1039
|
+
<h4>Shipping Info</h4>
|
|
1040
|
+
<p>Free standard shipping on orders $50+. Members get free shipping on all orders.</p>
|
|
1041
|
+
</div>
|
|
1042
|
+
<div class="card-container">
|
|
1043
|
+
<h4>Size Guide</h4>
|
|
1044
|
+
<p>Not sure of your size? Use our fit guide to find the perfect match.</p>
|
|
1045
|
+
</div>
|
|
1046
|
+
<div class="card-container">
|
|
1047
|
+
<h4>Returns</h4>
|
|
1048
|
+
<p>Free returns within 60 days of purchase. Nike Members get extended returns.</p>
|
|
1049
|
+
</div>
|
|
1050
|
+
</div>
|
|
1051
|
+
</div>
|
|
1052
|
+
</section>
|
|
1053
|
+
|
|
1054
|
+
<hr class="section-divider">
|
|
1055
|
+
|
|
1056
|
+
<!-- Forms -->
|
|
1057
|
+
<section class="section" id="forms">
|
|
1058
|
+
<h2 class="section-title">Form Elements</h2>
|
|
1059
|
+
<p class="section-desc">Inputs use #F5F5F5 fill with 8px radius for forms and 24px radius for search.</p>
|
|
1060
|
+
|
|
1061
|
+
<div class="form-group">
|
|
1062
|
+
<label class="form-label">Search Input (24px radius)</label>
|
|
1063
|
+
<input type="text" class="form-search" placeholder="Search">
|
|
1064
|
+
</div>
|
|
1065
|
+
<div class="form-group">
|
|
1066
|
+
<label class="form-label">Default Input</label>
|
|
1067
|
+
<input type="text" class="form-input" placeholder="Enter your email">
|
|
1068
|
+
</div>
|
|
1069
|
+
<div class="form-group">
|
|
1070
|
+
<label class="form-label">Focus State</label>
|
|
1071
|
+
<input type="text" class="form-input" value="john@example.com" style="border-color:#111111; box-shadow: 0 0 0 2px rgba(39, 93, 197, 1);">
|
|
1072
|
+
</div>
|
|
1073
|
+
<div class="form-group">
|
|
1074
|
+
<label class="form-label">Error State</label>
|
|
1075
|
+
<input type="text" class="form-input-error" value="invalid-email">
|
|
1076
|
+
<div class="form-error-text">Please enter a valid email address</div>
|
|
1077
|
+
</div>
|
|
1078
|
+
<div class="form-group">
|
|
1079
|
+
<label class="form-label">Textarea</label>
|
|
1080
|
+
<textarea class="form-textarea" placeholder="Tell us about your experience"></textarea>
|
|
1081
|
+
</div>
|
|
1082
|
+
</section>
|
|
1083
|
+
|
|
1084
|
+
<hr class="section-divider">
|
|
1085
|
+
|
|
1086
|
+
<!-- Spacing -->
|
|
1087
|
+
<section class="section" id="spacing">
|
|
1088
|
+
<h2 class="section-title">Spacing Scale</h2>
|
|
1089
|
+
<p class="section-desc">4px base unit, scaling through 8px multiples for athletic grid precision.</p>
|
|
1090
|
+
|
|
1091
|
+
<div class="spacing-row">
|
|
1092
|
+
<div class="spacing-box" style="width:16px; height:40px;"><span style="font-size:10px;">4</span></div>
|
|
1093
|
+
<div class="spacing-box" style="width:32px; height:40px;">8</div>
|
|
1094
|
+
<div class="spacing-box" style="width:48px; height:40px;">12</div>
|
|
1095
|
+
<div class="spacing-box" style="width:64px; height:40px;">16</div>
|
|
1096
|
+
<div class="spacing-box" style="width:80px; height:40px;">20</div>
|
|
1097
|
+
<div class="spacing-box" style="width:96px; height:40px;">24</div>
|
|
1098
|
+
<div class="spacing-box" style="width:128px; height:40px;">32</div>
|
|
1099
|
+
<div class="spacing-box" style="width:192px; height:40px;">48</div>
|
|
1100
|
+
<div class="spacing-box" style="width:256px; height:40px;">64</div>
|
|
1101
|
+
<div class="spacing-box" style="width:320px; height:40px;">80</div>
|
|
1102
|
+
</div>
|
|
1103
|
+
</section>
|
|
1104
|
+
|
|
1105
|
+
<hr class="section-divider">
|
|
1106
|
+
|
|
1107
|
+
<!-- Border Radius -->
|
|
1108
|
+
<section class="section">
|
|
1109
|
+
<h2 class="section-title">Border Radius Scale</h2>
|
|
1110
|
+
<p class="section-desc">From sharp-edge photography to fully rounded pill buttons â radius communicates element type.</p>
|
|
1111
|
+
|
|
1112
|
+
<div class="radius-row">
|
|
1113
|
+
<div class="radius-item">
|
|
1114
|
+
<div class="radius-box" style="border-radius:0px;"></div>
|
|
1115
|
+
<div class="radius-label">0px</div>
|
|
1116
|
+
<div class="radius-context">Images</div>
|
|
1117
|
+
</div>
|
|
1118
|
+
<div class="radius-item">
|
|
1119
|
+
<div class="radius-box" style="border-radius:8px;"></div>
|
|
1120
|
+
<div class="radius-label">8px</div>
|
|
1121
|
+
<div class="radius-context">Inputs</div>
|
|
1122
|
+
</div>
|
|
1123
|
+
<div class="radius-item">
|
|
1124
|
+
<div class="radius-box" style="border-radius:18px;"></div>
|
|
1125
|
+
<div class="radius-label">18px</div>
|
|
1126
|
+
<div class="radius-context">Small elements</div>
|
|
1127
|
+
</div>
|
|
1128
|
+
<div class="radius-item">
|
|
1129
|
+
<div class="radius-box" style="border-radius:20px;"></div>
|
|
1130
|
+
<div class="radius-label">20px</div>
|
|
1131
|
+
<div class="radius-context">Containers</div>
|
|
1132
|
+
</div>
|
|
1133
|
+
<div class="radius-item">
|
|
1134
|
+
<div class="radius-box" style="border-radius:24px;"></div>
|
|
1135
|
+
<div class="radius-label">24px</div>
|
|
1136
|
+
<div class="radius-context">Search, pills</div>
|
|
1137
|
+
</div>
|
|
1138
|
+
<div class="radius-item">
|
|
1139
|
+
<div class="radius-box" style="border-radius:30px;"></div>
|
|
1140
|
+
<div class="radius-label">30px</div>
|
|
1141
|
+
<div class="radius-context">Buttons</div>
|
|
1142
|
+
</div>
|
|
1143
|
+
<div class="radius-item">
|
|
1144
|
+
<div class="radius-box" style="border-radius:50%;"></div>
|
|
1145
|
+
<div class="radius-label">50%</div>
|
|
1146
|
+
<div class="radius-context">Circles</div>
|
|
1147
|
+
</div>
|
|
1148
|
+
</div>
|
|
1149
|
+
</section>
|
|
1150
|
+
|
|
1151
|
+
<hr class="section-divider">
|
|
1152
|
+
|
|
1153
|
+
<!-- Elevation -->
|
|
1154
|
+
<section class="section">
|
|
1155
|
+
<h2 class="section-title">Depth & Elevation</h2>
|
|
1156
|
+
<p class="section-desc">Radically flat â no card shadows, no hover lifts. Depth through color shifts only.</p>
|
|
1157
|
+
|
|
1158
|
+
<div class="elevation-grid">
|
|
1159
|
+
<div class="elevation-card elevation-flat">
|
|
1160
|
+
<div class="elevation-name">Flat</div>
|
|
1161
|
+
<div class="elevation-desc">No shadow â default for everything</div>
|
|
1162
|
+
</div>
|
|
1163
|
+
<div class="elevation-card elevation-divider">
|
|
1164
|
+
<div class="elevation-name">Divider</div>
|
|
1165
|
+
<div class="elevation-desc">1px inset line between sections</div>
|
|
1166
|
+
</div>
|
|
1167
|
+
<div class="elevation-card elevation-focus">
|
|
1168
|
+
<div class="elevation-name">Focus</div>
|
|
1169
|
+
<div class="elevation-desc">2px keyboard focus ring</div>
|
|
1170
|
+
</div>
|
|
1171
|
+
<div class="elevation-card elevation-overlay">
|
|
1172
|
+
<div class="elevation-name">Overlay</div>
|
|
1173
|
+
<div class="elevation-desc">Dark scrim over photography</div>
|
|
1174
|
+
</div>
|
|
1175
|
+
</div>
|
|
1176
|
+
</section>
|
|
1177
|
+
|
|
1178
|
+
<!-- Footer -->
|
|
1179
|
+
<footer class="footer">Maintained by <a href="https://github.com/VoltAgent/voltagent" target="_blank" rel="noopener noreferrer" style="text-decoration:none;"><img src="https://github.com/VoltAgent.png?size=32" alt="VoltAgent" width="14" height="14" style="border-radius:3px;vertical-align:-2px;margin-right:3px;">VoltAgent</a> team</footer>
|
|
1180
|
+
|
|
1181
|
+
</body>
|
|
1182
|
+
</html>
|