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,1013 @@
|
|
|
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 Binance</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=IBM+Plex+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
10
|
+
<style>
|
|
11
|
+
:root {
|
|
12
|
+
--binance-yellow: #F0B90B;
|
|
13
|
+
--binance-gold: #FFD000;
|
|
14
|
+
--light-gold: #F8D12F;
|
|
15
|
+
--active-yellow: #D0980B;
|
|
16
|
+
--focus-blue: #1EAEDB;
|
|
17
|
+
--white: #FFFFFF;
|
|
18
|
+
--snow: #F5F5F5;
|
|
19
|
+
--binance-dark: #222126;
|
|
20
|
+
--dark-card: #2B2F36;
|
|
21
|
+
--ink: #1E2026;
|
|
22
|
+
--secondary-text: #32313A;
|
|
23
|
+
--slate: #848E9C;
|
|
24
|
+
--steel: #686A6C;
|
|
25
|
+
--muted: #777E90;
|
|
26
|
+
--hover-dark: #1A1A1A;
|
|
27
|
+
--crypto-green: #0ECB81;
|
|
28
|
+
--crypto-red: #F6465D;
|
|
29
|
+
--border-light: #E6E8EA;
|
|
30
|
+
--shadow-subtle: rgba(32, 32, 37, 0.05);
|
|
31
|
+
--shadow-pill: rgb(153, 153, 153);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
35
|
+
body {
|
|
36
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
37
|
+
background: var(--white);
|
|
38
|
+
color: var(--ink);
|
|
39
|
+
line-height: 1.5;
|
|
40
|
+
font-weight: 400;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Nav */
|
|
44
|
+
.nav {
|
|
45
|
+
position: sticky;
|
|
46
|
+
top: 0;
|
|
47
|
+
z-index: 100;
|
|
48
|
+
background: var(--white);
|
|
49
|
+
border-bottom: 1px solid var(--border-light);
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
justify-content: space-between;
|
|
53
|
+
padding: 0 48px;
|
|
54
|
+
height: 64px;
|
|
55
|
+
}
|
|
56
|
+
.nav-left {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
gap: 24px;
|
|
60
|
+
}
|
|
61
|
+
.nav-brand {
|
|
62
|
+
font-size: 18px;
|
|
63
|
+
font-weight: 700;
|
|
64
|
+
color: var(--ink);
|
|
65
|
+
text-decoration: none;
|
|
66
|
+
}
|
|
67
|
+
.nav-brand:link,
|
|
68
|
+
.nav-brand:visited,
|
|
69
|
+
.nav-brand:hover,
|
|
70
|
+
.nav-brand:active { color: var(--ink); }
|
|
71
|
+
.nav-github {
|
|
72
|
+
display: inline-flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
gap: 6px;
|
|
75
|
+
font-size: 13px;
|
|
76
|
+
font-weight: 600;
|
|
77
|
+
color: var(--secondary-text);
|
|
78
|
+
text-decoration: none;
|
|
79
|
+
padding: 6px 10px;
|
|
80
|
+
border: 1px solid var(--border-light);
|
|
81
|
+
border-radius: 6px;
|
|
82
|
+
transition: background 200ms ease;
|
|
83
|
+
}
|
|
84
|
+
.nav-github:hover { background: var(--snow); }
|
|
85
|
+
.nav-github svg { display: block; }
|
|
86
|
+
.nav-links {
|
|
87
|
+
display: flex;
|
|
88
|
+
gap: 32px;
|
|
89
|
+
list-style: none;
|
|
90
|
+
}
|
|
91
|
+
.nav-links a {
|
|
92
|
+
font-size: 14px;
|
|
93
|
+
font-weight: 600;
|
|
94
|
+
color: var(--secondary-text);
|
|
95
|
+
text-decoration: none;
|
|
96
|
+
}
|
|
97
|
+
.nav-links a:hover { color: var(--hover-dark); }
|
|
98
|
+
.nav-cta {
|
|
99
|
+
background: var(--binance-yellow);
|
|
100
|
+
color: var(--ink);
|
|
101
|
+
border: none;
|
|
102
|
+
border-radius: 6px;
|
|
103
|
+
padding: 8px 24px;
|
|
104
|
+
font-size: 14px;
|
|
105
|
+
font-weight: 600;
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
108
|
+
transition: background 200ms ease;
|
|
109
|
+
}
|
|
110
|
+
.nav-cta:hover { background: var(--active-yellow); }
|
|
111
|
+
|
|
112
|
+
/* Hero */
|
|
113
|
+
.hero {
|
|
114
|
+
background: var(--white);
|
|
115
|
+
padding: 80px 48px 64px;
|
|
116
|
+
text-align: center;
|
|
117
|
+
position: relative;
|
|
118
|
+
overflow: hidden;
|
|
119
|
+
}
|
|
120
|
+
.hero::after {
|
|
121
|
+
content: '';
|
|
122
|
+
position: absolute;
|
|
123
|
+
bottom: 0; left: 50%;
|
|
124
|
+
transform: translateX(-50%);
|
|
125
|
+
width: 600px;
|
|
126
|
+
height: 300px;
|
|
127
|
+
background: radial-gradient(ellipse at center, rgba(240,185,11,0.12) 0%, transparent 70%);
|
|
128
|
+
pointer-events: none;
|
|
129
|
+
}
|
|
130
|
+
.hero-content { position: relative; z-index: 1; max-width: 800px; margin: 0 auto; }
|
|
131
|
+
.hero h1 {
|
|
132
|
+
font-size: 60px;
|
|
133
|
+
font-weight: 700;
|
|
134
|
+
line-height: 1.08;
|
|
135
|
+
margin-bottom: 20px;
|
|
136
|
+
color: var(--ink);
|
|
137
|
+
}
|
|
138
|
+
.hero h1 span { color: var(--binance-yellow); }
|
|
139
|
+
.hero-subtitle {
|
|
140
|
+
font-size: 20px;
|
|
141
|
+
font-weight: 500;
|
|
142
|
+
color: var(--slate);
|
|
143
|
+
margin-bottom: 40px;
|
|
144
|
+
line-height: 1.5;
|
|
145
|
+
}
|
|
146
|
+
.hero-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
|
|
147
|
+
.btn-primary-pill {
|
|
148
|
+
background: var(--binance-yellow);
|
|
149
|
+
color: var(--ink);
|
|
150
|
+
border: none;
|
|
151
|
+
border-radius: 50px;
|
|
152
|
+
padding: 14px 40px;
|
|
153
|
+
font-size: 16px;
|
|
154
|
+
font-weight: 600;
|
|
155
|
+
cursor: pointer;
|
|
156
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
157
|
+
box-shadow: 0px 2px 10px -3px var(--shadow-pill);
|
|
158
|
+
transition: background 200ms ease;
|
|
159
|
+
}
|
|
160
|
+
.btn-primary-pill:hover { background: var(--active-yellow); }
|
|
161
|
+
.btn-outline-pill {
|
|
162
|
+
background: var(--white);
|
|
163
|
+
color: var(--binance-yellow);
|
|
164
|
+
border: 1px solid var(--binance-yellow);
|
|
165
|
+
border-radius: 50px;
|
|
166
|
+
padding: 14px 40px;
|
|
167
|
+
font-size: 16px;
|
|
168
|
+
font-weight: 600;
|
|
169
|
+
cursor: pointer;
|
|
170
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
171
|
+
box-shadow: 0px 2px 10px -3px var(--shadow-pill);
|
|
172
|
+
transition: all 200ms ease;
|
|
173
|
+
}
|
|
174
|
+
.btn-outline-pill:hover { background: var(--binance-yellow); color: var(--ink); }
|
|
175
|
+
|
|
176
|
+
/* Sections */
|
|
177
|
+
.section {
|
|
178
|
+
padding: 64px 48px;
|
|
179
|
+
max-width: 1200px;
|
|
180
|
+
margin: 0 auto;
|
|
181
|
+
}
|
|
182
|
+
.section-dark {
|
|
183
|
+
background: var(--binance-dark);
|
|
184
|
+
color: var(--white);
|
|
185
|
+
max-width: none;
|
|
186
|
+
}
|
|
187
|
+
.section-dark .section-inner {
|
|
188
|
+
max-width: 1200px;
|
|
189
|
+
margin: 0 auto;
|
|
190
|
+
}
|
|
191
|
+
.section-title {
|
|
192
|
+
font-size: 32px;
|
|
193
|
+
font-weight: 700;
|
|
194
|
+
line-height: 1.2;
|
|
195
|
+
margin-bottom: 12px;
|
|
196
|
+
}
|
|
197
|
+
.section-desc {
|
|
198
|
+
font-size: 16px;
|
|
199
|
+
color: var(--slate);
|
|
200
|
+
margin-bottom: 40px;
|
|
201
|
+
max-width: 600px;
|
|
202
|
+
}
|
|
203
|
+
.section-dark .section-desc { color: var(--slate); }
|
|
204
|
+
.section-divider {
|
|
205
|
+
border: none;
|
|
206
|
+
border-top: 1px solid var(--border-light);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* Color Palette */
|
|
210
|
+
.color-category { margin-bottom: 40px; }
|
|
211
|
+
.color-category h3 {
|
|
212
|
+
font-size: 14px;
|
|
213
|
+
font-weight: 600;
|
|
214
|
+
margin-bottom: 16px;
|
|
215
|
+
color: var(--slate);
|
|
216
|
+
text-transform: uppercase;
|
|
217
|
+
letter-spacing: 0.5px;
|
|
218
|
+
}
|
|
219
|
+
.color-grid {
|
|
220
|
+
display: grid;
|
|
221
|
+
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
|
222
|
+
gap: 12px;
|
|
223
|
+
}
|
|
224
|
+
.color-swatch { overflow: hidden; }
|
|
225
|
+
.swatch-block {
|
|
226
|
+
height: 72px;
|
|
227
|
+
width: 100%;
|
|
228
|
+
border-radius: 8px;
|
|
229
|
+
}
|
|
230
|
+
.swatch-info { padding: 8px 0; }
|
|
231
|
+
.swatch-name { font-size: 13px; font-weight: 600; color: var(--ink); }
|
|
232
|
+
.swatch-hex { font-size: 12px; color: var(--slate); font-family: 'IBM Plex Sans', monospace; }
|
|
233
|
+
.swatch-role { font-size: 11px; color: var(--steel); margin-top: 2px; }
|
|
234
|
+
|
|
235
|
+
/* Typography */
|
|
236
|
+
.type-sample { margin-bottom: 28px; padding-bottom: 28px; border-bottom: 1px solid var(--border-light); }
|
|
237
|
+
.type-sample:last-child { border-bottom: none; }
|
|
238
|
+
.type-label {
|
|
239
|
+
font-size: 11px;
|
|
240
|
+
font-weight: 600;
|
|
241
|
+
color: var(--slate);
|
|
242
|
+
text-transform: uppercase;
|
|
243
|
+
letter-spacing: 0.5px;
|
|
244
|
+
margin-bottom: 8px;
|
|
245
|
+
}
|
|
246
|
+
.type-display { font-size: 60px; font-weight: 700; line-height: 1.08; }
|
|
247
|
+
.type-h1 { font-size: 34px; font-weight: 700; line-height: 1.0; }
|
|
248
|
+
.type-h2 { font-size: 28px; font-weight: 500; line-height: 1.0; }
|
|
249
|
+
.type-h3 { font-size: 24px; font-weight: 700; line-height: 1.0; }
|
|
250
|
+
.type-h4 { font-size: 20px; font-weight: 600; line-height: 1.25; }
|
|
251
|
+
.type-body-lg { font-size: 20px; font-weight: 500; line-height: 1.5; color: var(--slate); }
|
|
252
|
+
.type-body { font-size: 16px; font-weight: 500; line-height: 1.5; }
|
|
253
|
+
.type-body-semi { font-size: 16px; font-weight: 600; line-height: 1.3; }
|
|
254
|
+
.type-caption { font-size: 14px; font-weight: 500; line-height: 1.43; color: var(--slate); }
|
|
255
|
+
.type-small { font-size: 12px; font-weight: 600; line-height: 1.0; color: var(--slate); }
|
|
256
|
+
.type-tiny { font-size: 11px; font-weight: 500; line-height: 1.0; color: var(--steel); }
|
|
257
|
+
|
|
258
|
+
/* Buttons Section */
|
|
259
|
+
.button-row {
|
|
260
|
+
display: flex;
|
|
261
|
+
gap: 16px;
|
|
262
|
+
flex-wrap: wrap;
|
|
263
|
+
align-items: center;
|
|
264
|
+
margin-bottom: 24px;
|
|
265
|
+
}
|
|
266
|
+
.button-label {
|
|
267
|
+
font-size: 11px;
|
|
268
|
+
font-weight: 600;
|
|
269
|
+
color: var(--slate);
|
|
270
|
+
text-transform: uppercase;
|
|
271
|
+
letter-spacing: 0.5px;
|
|
272
|
+
margin-bottom: 12px;
|
|
273
|
+
}
|
|
274
|
+
.btn-yellow {
|
|
275
|
+
background: var(--binance-yellow);
|
|
276
|
+
color: var(--ink);
|
|
277
|
+
border: none;
|
|
278
|
+
border-radius: 6px;
|
|
279
|
+
padding: 10px 32px;
|
|
280
|
+
font-size: 16px;
|
|
281
|
+
font-weight: 600;
|
|
282
|
+
cursor: pointer;
|
|
283
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
284
|
+
transition: background 200ms ease;
|
|
285
|
+
}
|
|
286
|
+
.btn-yellow:hover { background: var(--active-yellow); }
|
|
287
|
+
.btn-gold-pill {
|
|
288
|
+
background: var(--binance-gold);
|
|
289
|
+
color: var(--white);
|
|
290
|
+
border: 1px solid var(--binance-gold);
|
|
291
|
+
border-radius: 50px;
|
|
292
|
+
padding: 10px 32px;
|
|
293
|
+
font-size: 16px;
|
|
294
|
+
font-weight: 600;
|
|
295
|
+
cursor: pointer;
|
|
296
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
297
|
+
box-shadow: 0px 2px 10px -3px var(--shadow-pill);
|
|
298
|
+
transition: background 200ms ease;
|
|
299
|
+
}
|
|
300
|
+
.btn-gold-pill:hover { background: var(--active-yellow); }
|
|
301
|
+
.btn-white-pill {
|
|
302
|
+
background: var(--white);
|
|
303
|
+
color: var(--binance-yellow);
|
|
304
|
+
border: 1px solid var(--binance-yellow);
|
|
305
|
+
border-radius: 50px;
|
|
306
|
+
padding: 10px 32px;
|
|
307
|
+
font-size: 16px;
|
|
308
|
+
font-weight: 600;
|
|
309
|
+
cursor: pointer;
|
|
310
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
311
|
+
box-shadow: 0px 2px 10px -3px var(--shadow-pill);
|
|
312
|
+
transition: all 200ms ease;
|
|
313
|
+
}
|
|
314
|
+
.btn-white-pill:hover { background: var(--binance-yellow); color: var(--ink); }
|
|
315
|
+
.btn-disabled {
|
|
316
|
+
background: var(--border-light);
|
|
317
|
+
color: var(--slate);
|
|
318
|
+
border: none;
|
|
319
|
+
border-radius: 6px;
|
|
320
|
+
padding: 10px 32px;
|
|
321
|
+
font-size: 16px;
|
|
322
|
+
font-weight: 600;
|
|
323
|
+
cursor: not-allowed;
|
|
324
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
325
|
+
}
|
|
326
|
+
.dark-btn-row {
|
|
327
|
+
background: var(--binance-dark);
|
|
328
|
+
padding: 24px 32px;
|
|
329
|
+
border-radius: 12px;
|
|
330
|
+
display: flex;
|
|
331
|
+
gap: 16px;
|
|
332
|
+
flex-wrap: wrap;
|
|
333
|
+
align-items: center;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/* Cards */
|
|
337
|
+
.card-grid {
|
|
338
|
+
display: grid;
|
|
339
|
+
grid-template-columns: repeat(3, 1fr);
|
|
340
|
+
gap: 24px;
|
|
341
|
+
}
|
|
342
|
+
.card {
|
|
343
|
+
background: var(--white);
|
|
344
|
+
border: 1px solid var(--border-light);
|
|
345
|
+
border-radius: 12px;
|
|
346
|
+
padding: 24px;
|
|
347
|
+
box-shadow: 0px 3px 5px 0px var(--shadow-subtle);
|
|
348
|
+
transition: box-shadow 200ms ease;
|
|
349
|
+
}
|
|
350
|
+
.card:hover { box-shadow: 0px 3px 5px 5px rgba(8, 8, 8, 0.05); }
|
|
351
|
+
.card-icon {
|
|
352
|
+
width: 48px;
|
|
353
|
+
height: 48px;
|
|
354
|
+
border-radius: 50%;
|
|
355
|
+
background: rgba(240, 185, 11, 0.12);
|
|
356
|
+
display: flex;
|
|
357
|
+
align-items: center;
|
|
358
|
+
justify-content: center;
|
|
359
|
+
margin-bottom: 16px;
|
|
360
|
+
font-size: 20px;
|
|
361
|
+
color: var(--binance-yellow);
|
|
362
|
+
font-weight: 700;
|
|
363
|
+
}
|
|
364
|
+
.card h4 { font-size: 20px; font-weight: 600; margin-bottom: 8px; color: var(--ink); }
|
|
365
|
+
.card p { font-size: 14px; color: var(--slate); line-height: 1.5; }
|
|
366
|
+
.card-dark {
|
|
367
|
+
background: var(--dark-card);
|
|
368
|
+
border: 1px solid rgba(255,255,255,0.06);
|
|
369
|
+
border-radius: 12px;
|
|
370
|
+
padding: 24px;
|
|
371
|
+
}
|
|
372
|
+
.card-dark h4 { font-size: 20px; font-weight: 600; margin-bottom: 8px; color: var(--white); }
|
|
373
|
+
.card-dark p { font-size: 14px; color: var(--slate); line-height: 1.5; }
|
|
374
|
+
|
|
375
|
+
/* Ticker */
|
|
376
|
+
.ticker-row {
|
|
377
|
+
display: flex;
|
|
378
|
+
gap: 32px;
|
|
379
|
+
flex-wrap: wrap;
|
|
380
|
+
padding: 16px 0;
|
|
381
|
+
border-bottom: 1px solid var(--border-light);
|
|
382
|
+
margin-bottom: 40px;
|
|
383
|
+
}
|
|
384
|
+
.ticker-item { display: flex; align-items: center; gap: 8px; }
|
|
385
|
+
.ticker-symbol { font-size: 14px; font-weight: 600; color: var(--ink); }
|
|
386
|
+
.ticker-price { font-size: 14px; font-weight: 500; color: var(--ink); }
|
|
387
|
+
.ticker-change { font-size: 14px; font-weight: 600; }
|
|
388
|
+
.ticker-up { color: var(--crypto-green); }
|
|
389
|
+
.ticker-down { color: var(--crypto-red); }
|
|
390
|
+
|
|
391
|
+
/* Forms */
|
|
392
|
+
.form-group { margin-bottom: 24px; max-width: 480px; }
|
|
393
|
+
.form-label {
|
|
394
|
+
display: block;
|
|
395
|
+
font-size: 14px;
|
|
396
|
+
font-weight: 600;
|
|
397
|
+
color: var(--ink);
|
|
398
|
+
margin-bottom: 8px;
|
|
399
|
+
}
|
|
400
|
+
.form-input {
|
|
401
|
+
width: 100%;
|
|
402
|
+
padding: 12px 16px;
|
|
403
|
+
font-size: 16px;
|
|
404
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
405
|
+
border: 1px solid var(--border-light);
|
|
406
|
+
border-radius: 8px;
|
|
407
|
+
background: var(--white);
|
|
408
|
+
color: var(--ink);
|
|
409
|
+
outline: none;
|
|
410
|
+
transition: border-color 200ms ease;
|
|
411
|
+
}
|
|
412
|
+
.form-input::placeholder { color: var(--slate); }
|
|
413
|
+
.form-input:focus { border-color: var(--binance-yellow); box-shadow: 0 0 0 2px rgba(240, 185, 11, 0.2); }
|
|
414
|
+
.form-input-error {
|
|
415
|
+
width: 100%;
|
|
416
|
+
padding: 12px 16px;
|
|
417
|
+
font-size: 16px;
|
|
418
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
419
|
+
border: 1.5px solid var(--crypto-red);
|
|
420
|
+
border-radius: 8px;
|
|
421
|
+
background: var(--white);
|
|
422
|
+
color: var(--ink);
|
|
423
|
+
outline: none;
|
|
424
|
+
}
|
|
425
|
+
.form-error-text { font-size: 12px; color: var(--crypto-red); margin-top: 4px; }
|
|
426
|
+
.form-search {
|
|
427
|
+
width: 100%;
|
|
428
|
+
padding: 12px 16px 12px 40px;
|
|
429
|
+
font-size: 16px;
|
|
430
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
431
|
+
border: 1px solid var(--border-light);
|
|
432
|
+
border-radius: 50px;
|
|
433
|
+
background: var(--snow);
|
|
434
|
+
color: var(--ink);
|
|
435
|
+
outline: none;
|
|
436
|
+
transition: border-color 200ms ease;
|
|
437
|
+
}
|
|
438
|
+
.form-search::placeholder { color: var(--slate); }
|
|
439
|
+
.form-search:focus { border-color: var(--binance-yellow); }
|
|
440
|
+
.form-textarea {
|
|
441
|
+
width: 100%;
|
|
442
|
+
padding: 12px 16px;
|
|
443
|
+
font-size: 16px;
|
|
444
|
+
font-family: 'IBM Plex Sans', Arial, sans-serif;
|
|
445
|
+
border: 1px solid var(--border-light);
|
|
446
|
+
border-radius: 8px;
|
|
447
|
+
background: var(--white);
|
|
448
|
+
color: var(--ink);
|
|
449
|
+
outline: none;
|
|
450
|
+
resize: vertical;
|
|
451
|
+
min-height: 100px;
|
|
452
|
+
transition: border-color 200ms ease;
|
|
453
|
+
}
|
|
454
|
+
.form-textarea:focus { border-color: var(--binance-yellow); box-shadow: 0 0 0 2px rgba(240, 185, 11, 0.2); }
|
|
455
|
+
|
|
456
|
+
/* Spacing */
|
|
457
|
+
.spacing-row { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 16px; }
|
|
458
|
+
.spacing-box {
|
|
459
|
+
background: var(--binance-yellow);
|
|
460
|
+
display: flex;
|
|
461
|
+
align-items: center;
|
|
462
|
+
justify-content: center;
|
|
463
|
+
font-size: 11px;
|
|
464
|
+
font-weight: 600;
|
|
465
|
+
color: var(--ink);
|
|
466
|
+
border-radius: 4px;
|
|
467
|
+
min-height: 40px;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/* Radius */
|
|
471
|
+
.radius-row { display: flex; gap: 20px; flex-wrap: wrap; align-items: flex-end; }
|
|
472
|
+
.radius-item { text-align: center; }
|
|
473
|
+
.radius-box {
|
|
474
|
+
width: 72px;
|
|
475
|
+
height: 72px;
|
|
476
|
+
background: var(--binance-yellow);
|
|
477
|
+
margin-bottom: 8px;
|
|
478
|
+
}
|
|
479
|
+
.radius-label { font-size: 12px; color: var(--slate); font-weight: 600; }
|
|
480
|
+
.radius-context { font-size: 11px; color: var(--steel); }
|
|
481
|
+
|
|
482
|
+
/* Elevation */
|
|
483
|
+
.elevation-grid {
|
|
484
|
+
display: grid;
|
|
485
|
+
grid-template-columns: repeat(4, 1fr);
|
|
486
|
+
gap: 24px;
|
|
487
|
+
}
|
|
488
|
+
.elevation-card {
|
|
489
|
+
padding: 24px;
|
|
490
|
+
background: var(--white);
|
|
491
|
+
border-radius: 12px;
|
|
492
|
+
text-align: center;
|
|
493
|
+
}
|
|
494
|
+
.elevation-name { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
|
|
495
|
+
.elevation-desc { font-size: 12px; color: var(--slate); }
|
|
496
|
+
.elevation-flat { border: 1px solid var(--border-light); }
|
|
497
|
+
.elevation-subtle { box-shadow: 0px 3px 5px 0px rgba(32, 32, 37, 0.05); border: 1px solid var(--border-light); }
|
|
498
|
+
.elevation-medium { box-shadow: 0px 3px 5px 5px rgba(8, 8, 8, 0.05); }
|
|
499
|
+
.elevation-pill { box-shadow: 0px 2px 10px -3px rgb(153, 153, 153); }
|
|
500
|
+
|
|
501
|
+
/* Footer */
|
|
502
|
+
.footer {
|
|
503
|
+
text-align: center;
|
|
504
|
+
padding: 48px;
|
|
505
|
+
border-top: 1px solid var(--border-light);
|
|
506
|
+
font-size: 14px;
|
|
507
|
+
color: var(--slate);
|
|
508
|
+
}
|
|
509
|
+
.footer a { color: var(--ink); text-decoration: none; font-weight: 600; }
|
|
510
|
+
.footer a:hover { color: var(--binance-yellow); }
|
|
511
|
+
|
|
512
|
+
@media (max-width: 768px) {
|
|
513
|
+
.nav { padding: 0 16px; }
|
|
514
|
+
.nav-links { display: none; }
|
|
515
|
+
.hero { padding: 48px 16px 40px; }
|
|
516
|
+
.hero h1 { font-size: 36px; }
|
|
517
|
+
.hero-subtitle { font-size: 16px; }
|
|
518
|
+
.section { padding: 40px 16px; }
|
|
519
|
+
.section-dark { padding: 40px 16px; }
|
|
520
|
+
.card-grid { grid-template-columns: 1fr; }
|
|
521
|
+
.elevation-grid { grid-template-columns: repeat(2, 1fr); }
|
|
522
|
+
.color-grid { grid-template-columns: repeat(2, 1fr); }
|
|
523
|
+
.type-display { font-size: 36px; }
|
|
524
|
+
.ticker-row { gap: 16px; }
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/* getdesign.md nav centering */
|
|
528
|
+
.nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
|
|
529
|
+
.nav > .nav-left { justify-self: start; }
|
|
530
|
+
.nav > .nav-links { justify-self: center; }
|
|
531
|
+
.nav > :last-child { justify-self: end; }
|
|
532
|
+
</style>
|
|
533
|
+
</head>
|
|
534
|
+
<body>
|
|
535
|
+
|
|
536
|
+
<!-- Nav -->
|
|
537
|
+
<nav class="nav">
|
|
538
|
+
<div class="nav-left">
|
|
539
|
+
<a class="nav-brand" href="https://getdesign.md/" target="_blank" rel="noopener noreferrer">getdesign.md</a>
|
|
540
|
+
<a class="nav-github" href="https://github.com/VoltAgent/awesome-design-md" target="_blank" rel="noopener noreferrer" aria-label="awesome-design-md on GitHub">
|
|
541
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
|
|
542
|
+
<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"/>
|
|
543
|
+
</svg>
|
|
544
|
+
awesome-design-md
|
|
545
|
+
</a>
|
|
546
|
+
</div>
|
|
547
|
+
<ul class="nav-links">
|
|
548
|
+
<a href="#colors">Colors</a>
|
|
549
|
+
<a href="#typography">Typography</a>
|
|
550
|
+
<a href="#buttons">Buttons</a>
|
|
551
|
+
<a href="#cards">Cards</a>
|
|
552
|
+
<a href="#forms">Forms</a>
|
|
553
|
+
<a href="#spacing">Spacing</a>
|
|
554
|
+
</ul>
|
|
555
|
+
<button class="nav-cta">Get Started</button>
|
|
556
|
+
</nav>
|
|
557
|
+
|
|
558
|
+
<!-- Hero -->
|
|
559
|
+
<section class="hero">
|
|
560
|
+
<div class="hero-content">
|
|
561
|
+
<h1>Design System Inspired by <span>Binance</span></h1>
|
|
562
|
+
<p class="hero-subtitle">A complete design token catalog extracted from Binance.US â BinancePlex typography, golden accent palette, and fintech component patterns.</p>
|
|
563
|
+
<div class="hero-buttons">
|
|
564
|
+
<button class="btn-primary-pill">Explore Tokens</button>
|
|
565
|
+
<button class="btn-outline-pill">View Source</button>
|
|
566
|
+
</div>
|
|
567
|
+
</div>
|
|
568
|
+
</section>
|
|
569
|
+
|
|
570
|
+
<!-- Ticker -->
|
|
571
|
+
<section class="section">
|
|
572
|
+
<div class="ticker-row">
|
|
573
|
+
<div class="ticker-item">
|
|
574
|
+
<span class="ticker-symbol">BTC</span>
|
|
575
|
+
<span class="ticker-price">$71,234.21</span>
|
|
576
|
+
<span class="ticker-change ticker-up">+2.34%</span>
|
|
577
|
+
</div>
|
|
578
|
+
<div class="ticker-item">
|
|
579
|
+
<span class="ticker-symbol">ETH</span>
|
|
580
|
+
<span class="ticker-price">$3,891.45</span>
|
|
581
|
+
<span class="ticker-change ticker-up">+1.12%</span>
|
|
582
|
+
</div>
|
|
583
|
+
<div class="ticker-item">
|
|
584
|
+
<span class="ticker-symbol">BNB</span>
|
|
585
|
+
<span class="ticker-price">$642.80</span>
|
|
586
|
+
<span class="ticker-change ticker-down">-0.87%</span>
|
|
587
|
+
</div>
|
|
588
|
+
<div class="ticker-item">
|
|
589
|
+
<span class="ticker-symbol">SOL</span>
|
|
590
|
+
<span class="ticker-price">$182.33</span>
|
|
591
|
+
<span class="ticker-change ticker-up">+5.61%</span>
|
|
592
|
+
</div>
|
|
593
|
+
</div>
|
|
594
|
+
</section>
|
|
595
|
+
|
|
596
|
+
<!-- Colors -->
|
|
597
|
+
<section class="section" id="colors">
|
|
598
|
+
<h2 class="section-title">Color Palette</h2>
|
|
599
|
+
<p class="section-desc">Binance Yellow is the singular accent in a monochrome system â gold for action, grey for data, dark for depth.</p>
|
|
600
|
+
|
|
601
|
+
<div class="color-category">
|
|
602
|
+
<h3>Primary & Brand</h3>
|
|
603
|
+
<div class="color-grid">
|
|
604
|
+
<div class="color-swatch">
|
|
605
|
+
<div class="swatch-block" style="background:#F0B90B;"></div>
|
|
606
|
+
<div class="swatch-info">
|
|
607
|
+
<div class="swatch-name">Binance Yellow</div>
|
|
608
|
+
<div class="swatch-hex">#F0B90B</div>
|
|
609
|
+
<div class="swatch-role">Primary CTA, brand accent</div>
|
|
610
|
+
</div>
|
|
611
|
+
</div>
|
|
612
|
+
<div class="color-swatch">
|
|
613
|
+
<div class="swatch-block" style="background:#FFD000;"></div>
|
|
614
|
+
<div class="swatch-info">
|
|
615
|
+
<div class="swatch-name">Binance Gold</div>
|
|
616
|
+
<div class="swatch-hex">#FFD000</div>
|
|
617
|
+
<div class="swatch-role">Pill buttons, secondary CTA</div>
|
|
618
|
+
</div>
|
|
619
|
+
</div>
|
|
620
|
+
<div class="color-swatch">
|
|
621
|
+
<div class="swatch-block" style="background:#F8D12F;"></div>
|
|
622
|
+
<div class="swatch-info">
|
|
623
|
+
<div class="swatch-name">Light Gold</div>
|
|
624
|
+
<div class="swatch-hex">#F8D12F</div>
|
|
625
|
+
<div class="swatch-role">Gradient endpoint, hover</div>
|
|
626
|
+
</div>
|
|
627
|
+
</div>
|
|
628
|
+
<div class="color-swatch">
|
|
629
|
+
<div class="swatch-block" style="background:#D0980B;"></div>
|
|
630
|
+
<div class="swatch-info">
|
|
631
|
+
<div class="swatch-name">Active Yellow</div>
|
|
632
|
+
<div class="swatch-hex">#D0980B</div>
|
|
633
|
+
<div class="swatch-role">Pressed/active state</div>
|
|
634
|
+
</div>
|
|
635
|
+
</div>
|
|
636
|
+
</div>
|
|
637
|
+
</div>
|
|
638
|
+
|
|
639
|
+
<div class="color-category">
|
|
640
|
+
<h3>Surface & Background</h3>
|
|
641
|
+
<div class="color-grid">
|
|
642
|
+
<div class="color-swatch">
|
|
643
|
+
<div class="swatch-block" style="background:#FFFFFF; border:1px solid #E6E8EA;"></div>
|
|
644
|
+
<div class="swatch-info">
|
|
645
|
+
<div class="swatch-name">Pure White</div>
|
|
646
|
+
<div class="swatch-hex">#FFFFFF</div>
|
|
647
|
+
<div class="swatch-role">Primary canvas, cards</div>
|
|
648
|
+
</div>
|
|
649
|
+
</div>
|
|
650
|
+
<div class="color-swatch">
|
|
651
|
+
<div class="swatch-block" style="background:#F5F5F5;"></div>
|
|
652
|
+
<div class="swatch-info">
|
|
653
|
+
<div class="swatch-name">Snow</div>
|
|
654
|
+
<div class="swatch-hex">#F5F5F5</div>
|
|
655
|
+
<div class="swatch-role">Input bg, alternating rows</div>
|
|
656
|
+
</div>
|
|
657
|
+
</div>
|
|
658
|
+
<div class="color-swatch">
|
|
659
|
+
<div class="swatch-block" style="background:#222126;"></div>
|
|
660
|
+
<div class="swatch-info">
|
|
661
|
+
<div class="swatch-name">Binance Dark</div>
|
|
662
|
+
<div class="swatch-hex">#222126</div>
|
|
663
|
+
<div class="swatch-role">Dark sections, footer</div>
|
|
664
|
+
</div>
|
|
665
|
+
</div>
|
|
666
|
+
<div class="color-swatch">
|
|
667
|
+
<div class="swatch-block" style="background:#2B2F36;"></div>
|
|
668
|
+
<div class="swatch-info">
|
|
669
|
+
<div class="swatch-name">Dark Card</div>
|
|
670
|
+
<div class="swatch-hex">#2B2F36</div>
|
|
671
|
+
<div class="swatch-role">Cards on dark bg</div>
|
|
672
|
+
</div>
|
|
673
|
+
</div>
|
|
674
|
+
</div>
|
|
675
|
+
</div>
|
|
676
|
+
|
|
677
|
+
<div class="color-category">
|
|
678
|
+
<h3>Neutrals & Text</h3>
|
|
679
|
+
<div class="color-grid">
|
|
680
|
+
<div class="color-swatch">
|
|
681
|
+
<div class="swatch-block" style="background:#1E2026;"></div>
|
|
682
|
+
<div class="swatch-info">
|
|
683
|
+
<div class="swatch-name">Ink</div>
|
|
684
|
+
<div class="swatch-hex">#1E2026</div>
|
|
685
|
+
<div class="swatch-role">Primary text, headings</div>
|
|
686
|
+
</div>
|
|
687
|
+
</div>
|
|
688
|
+
<div class="color-swatch">
|
|
689
|
+
<div class="swatch-block" style="background:#32313A;"></div>
|
|
690
|
+
<div class="swatch-info">
|
|
691
|
+
<div class="swatch-name">Secondary Text</div>
|
|
692
|
+
<div class="swatch-hex">#32313A</div>
|
|
693
|
+
<div class="swatch-role">Nav links, body copy</div>
|
|
694
|
+
</div>
|
|
695
|
+
</div>
|
|
696
|
+
<div class="color-swatch">
|
|
697
|
+
<div class="swatch-block" style="background:#848E9C;"></div>
|
|
698
|
+
<div class="swatch-info">
|
|
699
|
+
<div class="swatch-name">Slate</div>
|
|
700
|
+
<div class="swatch-hex">#848E9C</div>
|
|
701
|
+
<div class="swatch-role">Metadata, descriptions</div>
|
|
702
|
+
</div>
|
|
703
|
+
</div>
|
|
704
|
+
<div class="color-swatch">
|
|
705
|
+
<div class="swatch-block" style="background:#686A6C;"></div>
|
|
706
|
+
<div class="swatch-info">
|
|
707
|
+
<div class="swatch-name">Steel</div>
|
|
708
|
+
<div class="swatch-hex">#686A6C</div>
|
|
709
|
+
<div class="swatch-role">Disabled, subtle labels</div>
|
|
710
|
+
</div>
|
|
711
|
+
</div>
|
|
712
|
+
<div class="color-swatch">
|
|
713
|
+
<div class="swatch-block" style="background:#E6E8EA;"></div>
|
|
714
|
+
<div class="swatch-info">
|
|
715
|
+
<div class="swatch-name">Border Light</div>
|
|
716
|
+
<div class="swatch-hex">#E6E8EA</div>
|
|
717
|
+
<div class="swatch-role">Card borders, dividers</div>
|
|
718
|
+
</div>
|
|
719
|
+
</div>
|
|
720
|
+
</div>
|
|
721
|
+
</div>
|
|
722
|
+
|
|
723
|
+
<div class="color-category">
|
|
724
|
+
<h3>Semantic</h3>
|
|
725
|
+
<div class="color-grid">
|
|
726
|
+
<div class="color-swatch">
|
|
727
|
+
<div class="swatch-block" style="background:#0ECB81;"></div>
|
|
728
|
+
<div class="swatch-info">
|
|
729
|
+
<div class="swatch-name">Crypto Green</div>
|
|
730
|
+
<div class="swatch-hex">#0ECB81</div>
|
|
731
|
+
<div class="swatch-role">Positive, up, success</div>
|
|
732
|
+
</div>
|
|
733
|
+
</div>
|
|
734
|
+
<div class="color-swatch">
|
|
735
|
+
<div class="swatch-block" style="background:#F6465D;"></div>
|
|
736
|
+
<div class="swatch-info">
|
|
737
|
+
<div class="swatch-name">Crypto Red</div>
|
|
738
|
+
<div class="swatch-hex">#F6465D</div>
|
|
739
|
+
<div class="swatch-role">Negative, down, error</div>
|
|
740
|
+
</div>
|
|
741
|
+
</div>
|
|
742
|
+
<div class="color-swatch">
|
|
743
|
+
<div class="swatch-block" style="background:#1EAEDB;"></div>
|
|
744
|
+
<div class="swatch-info">
|
|
745
|
+
<div class="swatch-name">Focus Blue</div>
|
|
746
|
+
<div class="swatch-hex">#1EAEDB</div>
|
|
747
|
+
<div class="swatch-role">Focus ring, a11y state</div>
|
|
748
|
+
</div>
|
|
749
|
+
</div>
|
|
750
|
+
</div>
|
|
751
|
+
</div>
|
|
752
|
+
</section>
|
|
753
|
+
|
|
754
|
+
<hr class="section-divider">
|
|
755
|
+
|
|
756
|
+
<!-- Typography -->
|
|
757
|
+
<section class="section" id="typography">
|
|
758
|
+
<h2 class="section-title">Typography Scale</h2>
|
|
759
|
+
<p class="section-desc">BinancePlex custom typeface (IBM Plex Sans as web substitute) â tabular numerals, 500-700 weights for financial authority.</p>
|
|
760
|
+
|
|
761
|
+
<div class="type-sample">
|
|
762
|
+
<div class="type-label">Display Hero â 60px / 700 / 1.08</div>
|
|
763
|
+
<div class="type-display">Buy, sell & trade crypto</div>
|
|
764
|
+
</div>
|
|
765
|
+
<div class="type-sample">
|
|
766
|
+
<div class="type-label">Heading 1 â 34px / 700 / 1.00</div>
|
|
767
|
+
<div class="type-h1">Trusted by millions</div>
|
|
768
|
+
</div>
|
|
769
|
+
<div class="type-sample">
|
|
770
|
+
<div class="type-label">Heading 2 â 28px / 500 / 1.00</div>
|
|
771
|
+
<div class="type-h2">Take your crypto journey further</div>
|
|
772
|
+
</div>
|
|
773
|
+
<div class="type-sample">
|
|
774
|
+
<div class="type-label">Heading 3 â 24px / 700 / 1.00</div>
|
|
775
|
+
<div class="type-h3">Advanced Trading</div>
|
|
776
|
+
</div>
|
|
777
|
+
<div class="type-sample">
|
|
778
|
+
<div class="type-label">Heading 4 â 20px / 600 / 1.25</div>
|
|
779
|
+
<div class="type-h4">Feature Card Title</div>
|
|
780
|
+
</div>
|
|
781
|
+
<div class="type-sample">
|
|
782
|
+
<div class="type-label">Body Large â 20px / 500 / 1.50</div>
|
|
783
|
+
<div class="type-body-lg">The most trusted US-based crypto exchange with institutional-grade security.</div>
|
|
784
|
+
</div>
|
|
785
|
+
<div class="type-sample">
|
|
786
|
+
<div class="type-label">Body â 16px / 500 / 1.50</div>
|
|
787
|
+
<div class="type-body">Standard body text used throughout the platform for product descriptions and educational content.</div>
|
|
788
|
+
</div>
|
|
789
|
+
<div class="type-sample">
|
|
790
|
+
<div class="type-label">Body SemiBold â 16px / 600 / 1.30</div>
|
|
791
|
+
<div class="type-body-semi">Navigation links and emphasized text</div>
|
|
792
|
+
</div>
|
|
793
|
+
<div class="type-sample">
|
|
794
|
+
<div class="type-label">Caption â 14px / 500 / 1.43</div>
|
|
795
|
+
<div class="type-caption">$71,234.21 +2.34% | Last updated 2 min ago</div>
|
|
796
|
+
</div>
|
|
797
|
+
<div class="type-sample">
|
|
798
|
+
<div class="type-label">Small â 12px / 600 / 1.00</div>
|
|
799
|
+
<div class="type-small">BADGE LABEL</div>
|
|
800
|
+
</div>
|
|
801
|
+
<div class="type-sample">
|
|
802
|
+
<div class="type-label">Tiny â 11px / 500 / 1.00</div>
|
|
803
|
+
<div class="type-tiny">Chart annotation, micro-label</div>
|
|
804
|
+
</div>
|
|
805
|
+
</section>
|
|
806
|
+
|
|
807
|
+
<hr class="section-divider">
|
|
808
|
+
|
|
809
|
+
<!-- Buttons -->
|
|
810
|
+
<section class="section" id="buttons">
|
|
811
|
+
<h2 class="section-title">Button Variants</h2>
|
|
812
|
+
<p class="section-desc">Pill buttons (50px radius) for CTAs, standard buttons (6px radius) for form actions. Yellow drives all primary actions.</p>
|
|
813
|
+
|
|
814
|
+
<div class="button-label">Standard Buttons (6px radius)</div>
|
|
815
|
+
<div class="button-row">
|
|
816
|
+
<button class="btn-yellow">Primary</button>
|
|
817
|
+
<button class="btn-disabled" disabled>Disabled</button>
|
|
818
|
+
</div>
|
|
819
|
+
|
|
820
|
+
<div class="button-label" style="margin-top:32px;">Pill Buttons (50px radius)</div>
|
|
821
|
+
<div class="button-row">
|
|
822
|
+
<button class="btn-primary-pill">Primary Pill</button>
|
|
823
|
+
<button class="btn-gold-pill">Gold Pill</button>
|
|
824
|
+
<button class="btn-outline-pill">Outlined Pill</button>
|
|
825
|
+
</div>
|
|
826
|
+
|
|
827
|
+
<div class="button-label" style="margin-top:32px;">On Dark Background</div>
|
|
828
|
+
<div class="dark-btn-row">
|
|
829
|
+
<button class="btn-primary-pill">Get Started</button>
|
|
830
|
+
<button class="btn-outline-pill" style="background:transparent; color:#F0B90B; border-color:#F0B90B;">Learn More</button>
|
|
831
|
+
</div>
|
|
832
|
+
</section>
|
|
833
|
+
|
|
834
|
+
<hr class="section-divider">
|
|
835
|
+
|
|
836
|
+
<!-- Cards -->
|
|
837
|
+
<section class="section" id="cards">
|
|
838
|
+
<h2 class="section-title">Cards & Containers</h2>
|
|
839
|
+
<p class="section-desc">12px radius, 5% opacity shadow â barely visible elevation that builds trust through subtle depth.</p>
|
|
840
|
+
|
|
841
|
+
<div style="margin-bottom:40px;">
|
|
842
|
+
<div class="button-label">Light Cards</div>
|
|
843
|
+
<div class="card-grid">
|
|
844
|
+
<div class="card">
|
|
845
|
+
<div class="card-icon">$</div>
|
|
846
|
+
<h4>Low Fees</h4>
|
|
847
|
+
<p>Trade with competitive fees starting at 0.1% for makers and takers.</p>
|
|
848
|
+
</div>
|
|
849
|
+
<div class="card">
|
|
850
|
+
<div class="card-icon">S</div>
|
|
851
|
+
<h4>Security First</h4>
|
|
852
|
+
<p>Institutional-grade security with SOC 2 compliance and cold storage.</p>
|
|
853
|
+
</div>
|
|
854
|
+
<div class="card">
|
|
855
|
+
<div class="card-icon">24</div>
|
|
856
|
+
<h4>24/7 Support</h4>
|
|
857
|
+
<p>Round-the-clock customer service with real human agents.</p>
|
|
858
|
+
</div>
|
|
859
|
+
</div>
|
|
860
|
+
</div>
|
|
861
|
+
|
|
862
|
+
<div>
|
|
863
|
+
<div class="button-label">Dark Cards</div>
|
|
864
|
+
<div class="section-dark" style="padding:32px; border-radius:12px;">
|
|
865
|
+
<div style="display:grid; grid-template-columns: repeat(3, 1fr); gap:24px;">
|
|
866
|
+
<div class="card-dark">
|
|
867
|
+
<div class="card-icon">T</div>
|
|
868
|
+
<h4>Trade</h4>
|
|
869
|
+
<p>Access 150+ cryptocurrencies with advanced charting tools.</p>
|
|
870
|
+
</div>
|
|
871
|
+
<div class="card-dark">
|
|
872
|
+
<div class="card-icon">S</div>
|
|
873
|
+
<h4>Stake</h4>
|
|
874
|
+
<p>Earn rewards on your holdings with flexible staking options.</p>
|
|
875
|
+
</div>
|
|
876
|
+
<div class="card-dark">
|
|
877
|
+
<div class="card-icon">P</div>
|
|
878
|
+
<h4>Portfolio</h4>
|
|
879
|
+
<p>Track your holdings in real-time with detailed analytics.</p>
|
|
880
|
+
</div>
|
|
881
|
+
</div>
|
|
882
|
+
</div>
|
|
883
|
+
</div>
|
|
884
|
+
</section>
|
|
885
|
+
|
|
886
|
+
<hr class="section-divider">
|
|
887
|
+
|
|
888
|
+
<!-- Forms -->
|
|
889
|
+
<section class="section" id="forms">
|
|
890
|
+
<h2 class="section-title">Form Elements</h2>
|
|
891
|
+
<p class="section-desc">Clean inputs with #E6E8EA borders, 8px radius for standard fields, 50px for search pills.</p>
|
|
892
|
+
|
|
893
|
+
<div class="form-group">
|
|
894
|
+
<label class="form-label">Search (50px pill radius)</label>
|
|
895
|
+
<input type="text" class="form-search" placeholder="Search coins...">
|
|
896
|
+
</div>
|
|
897
|
+
<div class="form-group">
|
|
898
|
+
<label class="form-label">Default Input</label>
|
|
899
|
+
<input type="text" class="form-input" placeholder="Enter your email">
|
|
900
|
+
</div>
|
|
901
|
+
<div class="form-group">
|
|
902
|
+
<label class="form-label">Focus State</label>
|
|
903
|
+
<input type="text" class="form-input" value="user@example.com" style="border-color:#F0B90B; box-shadow: 0 0 0 2px rgba(240, 185, 11, 0.2);">
|
|
904
|
+
</div>
|
|
905
|
+
<div class="form-group">
|
|
906
|
+
<label class="form-label">Error State</label>
|
|
907
|
+
<input type="text" class="form-input-error" value="invalid@">
|
|
908
|
+
<div class="form-error-text">Please enter a valid email address</div>
|
|
909
|
+
</div>
|
|
910
|
+
<div class="form-group">
|
|
911
|
+
<label class="form-label">Textarea</label>
|
|
912
|
+
<textarea class="form-textarea" placeholder="Describe your issue"></textarea>
|
|
913
|
+
</div>
|
|
914
|
+
</section>
|
|
915
|
+
|
|
916
|
+
<hr class="section-divider">
|
|
917
|
+
|
|
918
|
+
<!-- Spacing -->
|
|
919
|
+
<section class="section" id="spacing">
|
|
920
|
+
<h2 class="section-title">Spacing Scale</h2>
|
|
921
|
+
<p class="section-desc">8px base unit system with progressive scaling for financial UI density.</p>
|
|
922
|
+
|
|
923
|
+
<div class="spacing-row">
|
|
924
|
+
<div class="spacing-box" style="width:16px; height:40px;"><span style="font-size:10px;">4</span></div>
|
|
925
|
+
<div class="spacing-box" style="width:32px; height:40px;">8</div>
|
|
926
|
+
<div class="spacing-box" style="width:48px; height:40px;">12</div>
|
|
927
|
+
<div class="spacing-box" style="width:64px; height:40px;">16</div>
|
|
928
|
+
<div class="spacing-box" style="width:80px; height:40px;">20</div>
|
|
929
|
+
<div class="spacing-box" style="width:100px; height:40px;">25</div>
|
|
930
|
+
<div class="spacing-box" style="width:128px; height:40px;">32</div>
|
|
931
|
+
<div class="spacing-box" style="width:192px; height:40px;">48</div>
|
|
932
|
+
<div class="spacing-box" style="width:256px; height:40px;">64</div>
|
|
933
|
+
</div>
|
|
934
|
+
</section>
|
|
935
|
+
|
|
936
|
+
<hr class="section-divider">
|
|
937
|
+
|
|
938
|
+
<!-- Border Radius -->
|
|
939
|
+
<section class="section">
|
|
940
|
+
<h2 class="section-title">Border Radius Scale</h2>
|
|
941
|
+
<p class="section-desc">From tight data cards to full pill buttons â radius communicates interaction level.</p>
|
|
942
|
+
|
|
943
|
+
<div class="radius-row">
|
|
944
|
+
<div class="radius-item">
|
|
945
|
+
<div class="radius-box" style="border-radius:2px;"></div>
|
|
946
|
+
<div class="radius-label">2px</div>
|
|
947
|
+
<div class="radius-context">Micro</div>
|
|
948
|
+
</div>
|
|
949
|
+
<div class="radius-item">
|
|
950
|
+
<div class="radius-box" style="border-radius:6px;"></div>
|
|
951
|
+
<div class="radius-label">6px</div>
|
|
952
|
+
<div class="radius-context">Buttons</div>
|
|
953
|
+
</div>
|
|
954
|
+
<div class="radius-item">
|
|
955
|
+
<div class="radius-box" style="border-radius:8px;"></div>
|
|
956
|
+
<div class="radius-label">8px</div>
|
|
957
|
+
<div class="radius-context">Inputs</div>
|
|
958
|
+
</div>
|
|
959
|
+
<div class="radius-item">
|
|
960
|
+
<div class="radius-box" style="border-radius:10px;"></div>
|
|
961
|
+
<div class="radius-label">10px</div>
|
|
962
|
+
<div class="radius-context">Tags</div>
|
|
963
|
+
</div>
|
|
964
|
+
<div class="radius-item">
|
|
965
|
+
<div class="radius-box" style="border-radius:12px;"></div>
|
|
966
|
+
<div class="radius-label">12px</div>
|
|
967
|
+
<div class="radius-context">Cards</div>
|
|
968
|
+
</div>
|
|
969
|
+
<div class="radius-item">
|
|
970
|
+
<div class="radius-box" style="border-radius:24px;"></div>
|
|
971
|
+
<div class="radius-label">24px</div>
|
|
972
|
+
<div class="radius-context">Video</div>
|
|
973
|
+
</div>
|
|
974
|
+
<div class="radius-item">
|
|
975
|
+
<div class="radius-box" style="border-radius:50px;"></div>
|
|
976
|
+
<div class="radius-label">50px</div>
|
|
977
|
+
<div class="radius-context">Pill CTA</div>
|
|
978
|
+
</div>
|
|
979
|
+
</div>
|
|
980
|
+
</section>
|
|
981
|
+
|
|
982
|
+
<hr class="section-divider">
|
|
983
|
+
|
|
984
|
+
<!-- Elevation -->
|
|
985
|
+
<section class="section">
|
|
986
|
+
<h2 class="section-title">Depth & Elevation</h2>
|
|
987
|
+
<p class="section-desc">Whisper-light shadows at 5% opacity â trust through clarity, not drama.</p>
|
|
988
|
+
|
|
989
|
+
<div class="elevation-grid">
|
|
990
|
+
<div class="elevation-card elevation-flat">
|
|
991
|
+
<div class="elevation-name">Flat</div>
|
|
992
|
+
<div class="elevation-desc">Border only, no shadow</div>
|
|
993
|
+
</div>
|
|
994
|
+
<div class="elevation-card elevation-subtle">
|
|
995
|
+
<div class="elevation-name">Subtle</div>
|
|
996
|
+
<div class="elevation-desc">5% opacity, resting cards</div>
|
|
997
|
+
</div>
|
|
998
|
+
<div class="elevation-card elevation-medium">
|
|
999
|
+
<div class="elevation-name">Medium</div>
|
|
1000
|
+
<div class="elevation-desc">5% spread, hovered cards</div>
|
|
1001
|
+
</div>
|
|
1002
|
+
<div class="elevation-card elevation-pill">
|
|
1003
|
+
<div class="elevation-name">Pill</div>
|
|
1004
|
+
<div class="elevation-desc">Visible shadow, floating CTAs</div>
|
|
1005
|
+
</div>
|
|
1006
|
+
</div>
|
|
1007
|
+
</section>
|
|
1008
|
+
|
|
1009
|
+
<!-- Footer -->
|
|
1010
|
+
<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>
|
|
1011
|
+
|
|
1012
|
+
</body>
|
|
1013
|
+
</html>
|