oh-my-design-cli 0.1.1 → 0.1.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.ko.md +3 -2
- package/README.md +3 -2
- package/package.json +3 -3
- package/references/Claude-Design-Sys-Prompt.txt +0 -421
- package/references/airbnb/README.md +0 -23
- package/references/airbnb/preview-dark.html +0 -234
- package/references/airbnb/preview.html +0 -233
- package/references/airtable/README.md +0 -23
- package/references/airtable/preview-dark.html +0 -165
- package/references/airtable/preview.html +0 -164
- package/references/apple/README.md +0 -24
- package/references/apple/preview-dark.html +0 -420
- package/references/apple/preview.html +0 -414
- package/references/baemin/README.md +0 -19
- package/references/bmw/README.md +0 -23
- package/references/bmw/preview-dark.html +0 -211
- package/references/bmw/preview.html +0 -210
- package/references/cal/README.md +0 -23
- package/references/cal/preview-dark.html +0 -449
- package/references/cal/preview.html +0 -575
- package/references/claude/README.md +0 -24
- package/references/claude/preview-dark.html +0 -803
- package/references/claude/preview.html +0 -826
- package/references/clay/README.md +0 -23
- package/references/clay/preview-dark.html +0 -316
- package/references/clay/preview.html +0 -315
- package/references/clickhouse/README.md +0 -24
- package/references/clickhouse/preview-dark.html +0 -834
- package/references/clickhouse/preview.html +0 -786
- package/references/cohere/README.md +0 -24
- package/references/cohere/preview-dark.html +0 -803
- package/references/cohere/preview.html +0 -807
- package/references/coinbase/README.md +0 -23
- package/references/coinbase/preview-dark.html +0 -164
- package/references/coinbase/preview.html +0 -163
- package/references/composio/README.md +0 -24
- package/references/composio/preview-dark.html +0 -958
- package/references/composio/preview.html +0 -933
- package/references/cursor/README.md +0 -24
- package/references/cursor/preview-dark.html +0 -393
- package/references/cursor/preview.html +0 -383
- package/references/dcard/README.md +0 -12
- package/references/dcard/_research/forum-1440px.png +0 -0
- package/references/dcard/_research.md +0 -77
- package/references/elevenlabs/README.md +0 -23
- package/references/elevenlabs/preview-dark.html +0 -252
- package/references/elevenlabs/preview.html +0 -251
- package/references/expo/README.md +0 -24
- package/references/expo/preview-dark.html +0 -533
- package/references/expo/preview.html +0 -533
- package/references/ferrari/README.md +0 -23
- package/references/ferrari/preview-dark.html +0 -1162
- package/references/ferrari/preview.html +0 -1122
- package/references/figma/README.md +0 -24
- package/references/figma/preview-dark.html +0 -822
- package/references/figma/preview.html +0 -832
- package/references/framer/README.md +0 -23
- package/references/framer/preview-dark.html +0 -902
- package/references/framer/preview.html +0 -883
- package/references/freee/README.md +0 -12
- package/references/freee/_research/vibes-storybook-1440px.png +0 -0
- package/references/freee/_research.md +0 -77
- package/references/hashicorp/README.md +0 -24
- package/references/hashicorp/preview-dark.html +0 -1202
- package/references/hashicorp/preview.html +0 -1193
- package/references/ibm/README.md +0 -24
- package/references/ibm/preview-dark.html +0 -443
- package/references/ibm/preview.html +0 -428
- package/references/intercom/README.md +0 -23
- package/references/intercom/preview-dark.html +0 -185
- package/references/intercom/preview.html +0 -184
- package/references/kakao/README.md +0 -18
- package/references/karrot/README.md +0 -18
- package/references/kraken/README.md +0 -23
- package/references/kraken/preview-dark.html +0 -169
- package/references/kraken/preview.html +0 -168
- package/references/lamborghini/README.md +0 -23
- package/references/lamborghini/preview-dark.html +0 -303
- package/references/lamborghini/preview.html +0 -381
- package/references/line/README.md +0 -12
- package/references/line/_research/home-1440px.png +0 -0
- package/references/line/_research.md +0 -65
- package/references/linear.app/README.md +0 -24
- package/references/linear.app/preview-dark.html +0 -383
- package/references/linear.app/preview.html +0 -373
- package/references/lovable/README.md +0 -24
- package/references/lovable/preview-dark.html +0 -349
- package/references/lovable/preview.html +0 -348
- package/references/mercari/README.md +0 -12
- package/references/mercari/_research/home-1440px.png +0 -0
- package/references/mercari/_research.md +0 -77
- package/references/minimax/README.md +0 -24
- package/references/minimax/preview-dark.html +0 -1262
- package/references/minimax/preview.html +0 -1248
- package/references/mintlify/README.md +0 -24
- package/references/mintlify/preview-dark.html +0 -409
- package/references/mintlify/preview.html +0 -398
- package/references/miro/README.md +0 -23
- package/references/miro/preview-dark.html +0 -174
- package/references/miro/preview.html +0 -173
- package/references/mistral.ai/README.md +0 -24
- package/references/mistral.ai/preview-dark.html +0 -806
- package/references/mistral.ai/preview.html +0 -805
- package/references/mongodb/README.md +0 -23
- package/references/mongodb/preview-dark.html +0 -260
- package/references/mongodb/preview.html +0 -259
- package/references/notion/README.md +0 -24
- package/references/notion/preview-dark.html +0 -372
- package/references/notion/preview.html +0 -364
- package/references/nvidia/README.md +0 -24
- package/references/nvidia/preview-dark.html +0 -374
- package/references/nvidia/preview.html +0 -366
- package/references/ollama/README.md +0 -24
- package/references/ollama/preview-dark.html +0 -678
- package/references/ollama/preview.html +0 -678
- package/references/opencode.ai/README.md +0 -24
- package/references/opencode.ai/preview-dark.html +0 -366
- package/references/opencode.ai/preview.html +0 -357
- package/references/pinkoi/README.md +0 -12
- package/references/pinkoi/_research/browse-1440px.png +0 -0
- package/references/pinkoi/_research.md +0 -115
- package/references/pinterest/README.md +0 -23
- package/references/pinterest/preview-dark.html +0 -233
- package/references/pinterest/preview.html +0 -232
- package/references/posthog/README.md +0 -23
- package/references/posthog/preview-dark.html +0 -699
- package/references/posthog/preview.html +0 -749
- package/references/raycast/README.md +0 -23
- package/references/raycast/preview-dark.html +0 -606
- package/references/raycast/preview.html +0 -688
- package/references/renault/README.md +0 -23
- package/references/renault/preview-dark.html +0 -406
- package/references/renault/preview.html +0 -606
- package/references/replicate/README.md +0 -24
- package/references/replicate/preview-dark.html +0 -828
- package/references/replicate/preview.html +0 -831
- package/references/resend/README.md +0 -23
- package/references/resend/preview-dark.html +0 -355
- package/references/resend/preview.html +0 -354
- package/references/revolut/README.md +0 -23
- package/references/revolut/preview-dark.html +0 -234
- package/references/revolut/preview.html +0 -233
- package/references/runwayml/README.md +0 -24
- package/references/runwayml/preview-dark.html +0 -664
- package/references/runwayml/preview.html +0 -665
- package/references/sanity/README.md +0 -24
- package/references/sanity/preview-dark.html +0 -990
- package/references/sanity/preview.html +0 -1135
- package/references/sentry/README.md +0 -24
- package/references/sentry/preview-dark.html +0 -626
- package/references/sentry/preview.html +0 -951
- package/references/spacex/README.md +0 -23
- package/references/spacex/preview-dark.html +0 -221
- package/references/spacex/preview.html +0 -220
- package/references/spotify/README.md +0 -23
- package/references/spotify/preview-dark.html +0 -231
- package/references/spotify/preview.html +0 -230
- package/references/stripe/README.md +0 -24
- package/references/stripe/preview-dark.html +0 -428
- package/references/stripe/preview.html +0 -419
- package/references/supabase/README.md +0 -24
- package/references/supabase/preview-dark.html +0 -977
- package/references/supabase/preview.html +0 -955
- package/references/superhuman/README.md +0 -23
- package/references/superhuman/preview-dark.html +0 -973
- package/references/superhuman/preview.html +0 -951
- package/references/tesla/README.md +0 -23
- package/references/tesla/preview-dark.html +0 -947
- package/references/tesla/preview.html +0 -925
- package/references/together.ai/README.md +0 -24
- package/references/together.ai/preview-dark.html +0 -892
- package/references/together.ai/preview.html +0 -897
- package/references/toss/README.md +0 -19
- package/references/uber/README.md +0 -24
- package/references/uber/preview-dark.html +0 -1120
- package/references/uber/preview.html +0 -1119
- package/references/vercel/README.md +0 -24
- package/references/vercel/preview-dark.html +0 -368
- package/references/vercel/preview.html +0 -367
- package/references/voltagent/README.md +0 -24
- package/references/voltagent/preview-dark.html +0 -487
- package/references/voltagent/preview.html +0 -766
- package/references/warp/README.md +0 -23
- package/references/warp/preview-dark.html +0 -500
- package/references/warp/preview.html +0 -533
- package/references/webflow/README.md +0 -23
- package/references/webflow/preview-dark.html +0 -147
- package/references/webflow/preview.html +0 -146
- package/references/wise/README.md +0 -23
- package/references/wise/preview-dark.html +0 -230
- package/references/wise/preview.html +0 -229
- package/references/x.ai/README.md +0 -24
- package/references/x.ai/preview-dark.html +0 -356
- package/references/x.ai/preview.html +0 -407
- package/references/zapier/README.md +0 -24
- package/references/zapier/preview-dark.html +0 -380
- package/references/zapier/preview.html +0 -372
|
@@ -1,383 +0,0 @@
|
|
|
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 Cursor</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=Lato:wght@400;600;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&display=swap" rel="stylesheet">
|
|
10
|
-
<style>
|
|
11
|
-
:root {
|
|
12
|
-
--cursor-dark: #26251e;
|
|
13
|
-
--cursor-cream: #f2f1ed;
|
|
14
|
-
--cursor-light: #e6e5e0;
|
|
15
|
-
--surface-100: #f7f7f4;
|
|
16
|
-
--surface-200: #f2f1ed;
|
|
17
|
-
--surface-300: #ebeae5;
|
|
18
|
-
--surface-400: #e6e5e0;
|
|
19
|
-
--surface-500: #e1e0db;
|
|
20
|
-
--white: #ffffff;
|
|
21
|
-
--black: #000000;
|
|
22
|
-
--accent: #f54e00;
|
|
23
|
-
--error: #cf2d56;
|
|
24
|
-
--success: #1f8a65;
|
|
25
|
-
--gold: #c08532;
|
|
26
|
-
--thinking: #dfa88f;
|
|
27
|
-
--grep: #9fc9a2;
|
|
28
|
-
--read: #9fbbe0;
|
|
29
|
-
--edit: #c0a8dd;
|
|
30
|
-
--text-primary: #26251e;
|
|
31
|
-
--text-secondary: rgba(38, 37, 30, 0.55);
|
|
32
|
-
--text-tertiary: rgba(38, 37, 30, 0.4);
|
|
33
|
-
--border-default: rgba(38, 37, 30, 0.1);
|
|
34
|
-
--border-medium: rgba(38, 37, 30, 0.2);
|
|
35
|
-
--border-strong: rgba(38, 37, 30, 0.55);
|
|
36
|
-
--shadow-card: rgba(0,0,0,0.14) 0px 28px 70px 0px, rgba(0,0,0,0.1) 0px 14px 32px 0px, rgba(38,37,30,0.1) 0px 0px 0px 1px;
|
|
37
|
-
--shadow-ambient: rgba(0,0,0,0.02) 0px 0px 16px 0px, rgba(0,0,0,0.008) 0px 0px 8px 0px;
|
|
38
|
-
--shadow-focus: rgba(0,0,0,0.1) 0px 4px 12px;
|
|
39
|
-
--font-gothic: system-ui, -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
40
|
-
--font-serif: 'Source Serif 4', 'Iowan Old Style', 'Palatino Linotype', Georgia, Cambria, 'Times New Roman', Times, serif;
|
|
41
|
-
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
|
|
42
|
-
--font-ui: system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
|
|
43
|
-
}
|
|
44
|
-
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
45
|
-
body {
|
|
46
|
-
background: var(--cursor-cream);
|
|
47
|
-
color: var(--text-primary);
|
|
48
|
-
font-family: var(--font-gothic);
|
|
49
|
-
font-size: 16px; font-weight: 400; line-height: 1.50;
|
|
50
|
-
-webkit-font-smoothing: antialiased;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* NAV */
|
|
54
|
-
.nav {
|
|
55
|
-
position: sticky; top: 0; z-index: 100;
|
|
56
|
-
display: flex; align-items: center; justify-content: space-between;
|
|
57
|
-
padding: 12px 32px;
|
|
58
|
-
background: rgba(242, 241, 237, 0.85);
|
|
59
|
-
backdrop-filter: blur(12px);
|
|
60
|
-
border-bottom: 1px solid var(--border-default);
|
|
61
|
-
}
|
|
62
|
-
.nav-brand { font-size: 14px; font-weight: 600; color: var(--text-primary); text-decoration: none; letter-spacing: -0.28px; }
|
|
63
|
-
.nav-links { display: flex; gap: 24px; list-style: none; }
|
|
64
|
-
.nav-links a { font-size: 14px; font-weight: 500; color: var(--text-secondary); text-decoration: none; transition: color 0.15s; }
|
|
65
|
-
.nav-links a:hover { color: var(--accent); }
|
|
66
|
-
.nav-cta {
|
|
67
|
-
display: inline-block; background: var(--surface-300); color: var(--text-primary);
|
|
68
|
-
padding: 8px 16px; border-radius: 8px; font-size: 14px; font-weight: 500;
|
|
69
|
-
text-decoration: none; transition: all 0.15s;
|
|
70
|
-
}
|
|
71
|
-
.nav-cta:hover { background: var(--surface-500); }
|
|
72
|
-
|
|
73
|
-
/* HERO */
|
|
74
|
-
.hero { padding: 96px 32px 80px; text-align: center; }
|
|
75
|
-
.hero h1 {
|
|
76
|
-
font-size: 72px; font-weight: 400; line-height: 1.10;
|
|
77
|
-
letter-spacing: -2.16px; color: var(--text-primary); margin-bottom: 16px;
|
|
78
|
-
}
|
|
79
|
-
.hero p { font-family: var(--font-serif); font-size: 19.2px; font-weight: 400; line-height: 1.50; color: var(--text-secondary); max-width: 600px; margin: 0 auto 32px; }
|
|
80
|
-
.hero-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
|
|
81
|
-
.btn-primary {
|
|
82
|
-
display: inline-block; background: var(--surface-300); color: var(--text-primary);
|
|
83
|
-
padding: 10px 14px 10px 14px; border-radius: 8px; border: none;
|
|
84
|
-
font-family: var(--font-gothic); font-size: 14px; font-weight: 400;
|
|
85
|
-
text-decoration: none; cursor: pointer; transition: all 0.15s;
|
|
86
|
-
}
|
|
87
|
-
.btn-primary:hover { color: var(--error); }
|
|
88
|
-
.btn-dark {
|
|
89
|
-
display: inline-block; background: var(--cursor-dark); color: var(--cursor-cream);
|
|
90
|
-
padding: 10px 20px; border-radius: 8px; border: none;
|
|
91
|
-
font-family: var(--font-gothic); font-size: 14px; font-weight: 400;
|
|
92
|
-
text-decoration: none; cursor: pointer; transition: opacity 0.15s;
|
|
93
|
-
}
|
|
94
|
-
.btn-dark:hover { opacity: 0.85; }
|
|
95
|
-
.btn-ghost {
|
|
96
|
-
display: inline-block; background: rgba(38,37,30,0.06); color: var(--text-secondary);
|
|
97
|
-
padding: 6px 12px; border-radius: 8px; border: none;
|
|
98
|
-
font-family: var(--font-gothic); font-size: 14px; font-weight: 400;
|
|
99
|
-
text-decoration: none; cursor: pointer; transition: color 0.15s;
|
|
100
|
-
}
|
|
101
|
-
.btn-ghost:hover { color: var(--error); }
|
|
102
|
-
.btn-pill {
|
|
103
|
-
display: inline-block; background: var(--surface-400); color: rgba(38,37,30,0.6);
|
|
104
|
-
padding: 3px 8px; border-radius: 9999px; font-size: 14px; font-weight: 400;
|
|
105
|
-
text-decoration: none; transition: color 0.15s;
|
|
106
|
-
}
|
|
107
|
-
.btn-pill:hover { color: var(--error); }
|
|
108
|
-
|
|
109
|
-
/* SECTIONS */
|
|
110
|
-
.section { padding: 64px 32px; max-width: 1200px; margin: 0 auto; }
|
|
111
|
-
.section-label { font-family: var(--font-mono); font-size: 12px; font-weight: 500; color: var(--text-tertiary); text-transform: uppercase; margin-bottom: 8px; letter-spacing: 0.5px; }
|
|
112
|
-
.section-title { font-size: 36px; font-weight: 400; line-height: 1.20; letter-spacing: -0.72px; margin-bottom: 32px; }
|
|
113
|
-
.section-divider { border: none; border-top: 1px solid var(--border-default); margin: 0; }
|
|
114
|
-
|
|
115
|
-
/* COLORS */
|
|
116
|
-
.color-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 12px; margin-bottom: 24px; }
|
|
117
|
-
.color-swatch { border-radius: 8px; overflow: hidden; border: 1px solid var(--border-default); background: var(--white); }
|
|
118
|
-
.color-swatch-block { height: 72px; width: 100%; }
|
|
119
|
-
.color-swatch-info { padding: 10px 12px; }
|
|
120
|
-
.color-swatch-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; letter-spacing: -0.26px; }
|
|
121
|
-
.color-swatch-hex { font-size: 12px; color: var(--text-secondary); font-family: var(--font-mono); }
|
|
122
|
-
.color-swatch-role { font-size: 11px; color: var(--text-tertiary); margin-top: 3px; }
|
|
123
|
-
.color-group-label { font-size: 14px; font-weight: 600; color: var(--text-secondary); letter-spacing: -0.28px; margin: 24px 0 10px; }
|
|
124
|
-
|
|
125
|
-
/* TYPOGRAPHY */
|
|
126
|
-
.type-sample { margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--border-default); }
|
|
127
|
-
.type-sample:last-child { border-bottom: none; }
|
|
128
|
-
.type-meta { font-family: var(--font-mono); font-size: 12px; font-weight: 500; color: var(--text-tertiary); margin-top: 8px; }
|
|
129
|
-
|
|
130
|
-
/* BUTTONS */
|
|
131
|
-
.button-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
|
|
132
|
-
.button-item { text-align: center; }
|
|
133
|
-
.button-label { font-size: 12px; font-weight: 500; color: var(--text-tertiary); margin-top: 8px; }
|
|
134
|
-
|
|
135
|
-
/* CARDS */
|
|
136
|
-
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }
|
|
137
|
-
.card { background: var(--white); border-radius: 8px; padding: 24px; border: 1px solid var(--border-default); transition: box-shadow 0.2s; }
|
|
138
|
-
.card:hover { box-shadow: var(--shadow-card); }
|
|
139
|
-
.card h3 { font-size: 22px; font-weight: 400; letter-spacing: -0.11px; margin-bottom: 8px; }
|
|
140
|
-
.card p { font-family: var(--font-serif); font-size: 17.28px; color: var(--text-secondary); line-height: 1.35; }
|
|
141
|
-
.card-badge { display: inline-block; font-size: 12px; font-weight: 500; padding: 2px 8px; border-radius: 9999px; margin-bottom: 12px; }
|
|
142
|
-
|
|
143
|
-
/* FORMS */
|
|
144
|
-
.form-group { margin-bottom: 20px; max-width: 400px; }
|
|
145
|
-
.form-label { display: block; font-size: 14px; font-weight: 500; color: var(--text-primary); margin-bottom: 6px; }
|
|
146
|
-
.form-input {
|
|
147
|
-
width: 100%; background: var(--white); color: var(--text-primary);
|
|
148
|
-
border: 1px solid var(--border-default); padding: 8px 8px 6px; border-radius: 4px;
|
|
149
|
-
font-family: var(--font-gothic); font-size: 14px; outline: none;
|
|
150
|
-
transition: border-color 0.15s;
|
|
151
|
-
}
|
|
152
|
-
.form-input:focus { border-color: var(--accent); }
|
|
153
|
-
.form-input--focus { border-color: var(--accent); }
|
|
154
|
-
.form-input--error { border-color: var(--error); }
|
|
155
|
-
.form-textarea {
|
|
156
|
-
width: 100%; min-height: 80px; background: var(--white); color: var(--text-primary);
|
|
157
|
-
border: 1px solid var(--border-default); padding: 8px; border-radius: 4px;
|
|
158
|
-
font-family: var(--font-gothic); font-size: 14px; resize: vertical; outline: none;
|
|
159
|
-
}
|
|
160
|
-
.form-state-label { font-size: 11px; color: var(--text-tertiary); margin-top: 4px; }
|
|
161
|
-
|
|
162
|
-
/* SPACING */
|
|
163
|
-
.spacing-row { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
|
|
164
|
-
.spacing-item { text-align: center; }
|
|
165
|
-
.spacing-block { background: var(--cursor-dark); border-radius: 3px; margin-bottom: 6px; height: 28px; }
|
|
166
|
-
.spacing-value { font-family: var(--font-mono); font-size: 11px; font-weight: 500; color: var(--text-tertiary); }
|
|
167
|
-
|
|
168
|
-
/* RADIUS */
|
|
169
|
-
.radius-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
|
|
170
|
-
.radius-item { text-align: center; }
|
|
171
|
-
.radius-box { width: 64px; height: 64px; background: var(--cursor-dark); margin-bottom: 6px; }
|
|
172
|
-
.radius-label { font-family: var(--font-mono); font-size: 11px; font-weight: 500; color: var(--text-tertiary); }
|
|
173
|
-
.radius-context { font-size: 10px; color: var(--text-tertiary); }
|
|
174
|
-
|
|
175
|
-
/* ELEVATION */
|
|
176
|
-
.elevation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
|
|
177
|
-
.elevation-card { background: var(--white); border-radius: 8px; padding: 20px; text-align: center; }
|
|
178
|
-
.elevation-label { font-size: 14px; font-weight: 600; letter-spacing: -0.28px; margin-bottom: 4px; }
|
|
179
|
-
.elevation-desc { font-family: var(--font-mono); font-size: 11px; color: var(--text-tertiary); }
|
|
180
|
-
|
|
181
|
-
/* FOOTER */
|
|
182
|
-
.footer { padding: 32px; text-align: center; border-top: 1px solid var(--border-default); font-family: var(--font-serif); font-size: 14px; color: var(--text-secondary); }
|
|
183
|
-
.footer a { color: var(--accent); text-decoration: underline; }
|
|
184
|
-
|
|
185
|
-
@media (max-width: 768px) {
|
|
186
|
-
.hero h1 { font-size: 36px; letter-spacing: -0.72px; }
|
|
187
|
-
.nav-links { display: none; }
|
|
188
|
-
.section { padding: 48px 20px; }
|
|
189
|
-
.card-grid { grid-template-columns: 1fr; }
|
|
190
|
-
}
|
|
191
|
-
</style>
|
|
192
|
-
</head>
|
|
193
|
-
<body>
|
|
194
|
-
|
|
195
|
-
<nav class="nav">
|
|
196
|
-
<span class="nav-brand">awesome-design-md</span>
|
|
197
|
-
<ul class="nav-links">
|
|
198
|
-
<li><a href="#colors">Colors</a></li>
|
|
199
|
-
<li><a href="#typography">Typography</a></li>
|
|
200
|
-
<li><a href="#buttons">Buttons</a></li>
|
|
201
|
-
<li><a href="#cards">Cards</a></li>
|
|
202
|
-
<li><a href="#forms">Forms</a></li>
|
|
203
|
-
<li><a href="#spacing">Spacing</a></li>
|
|
204
|
-
</ul>
|
|
205
|
-
<a class="nav-cta" href="#">Download Editor</a>
|
|
206
|
-
</nav>
|
|
207
|
-
|
|
208
|
-
<section class="hero">
|
|
209
|
-
<h1>Design System<br>Inspired by Cursor</h1>
|
|
210
|
-
<p>A design token catalog generated from DESIGN.md. Every color, font, component, and spacing value -- visualized in warm cream tones.</p>
|
|
211
|
-
<div class="hero-buttons">
|
|
212
|
-
<a class="btn-dark" href="#">Download Cursor</a>
|
|
213
|
-
<a class="btn-primary" href="#">View Documentation</a>
|
|
214
|
-
</div>
|
|
215
|
-
</section>
|
|
216
|
-
|
|
217
|
-
<hr class="section-divider">
|
|
218
|
-
|
|
219
|
-
<section class="section" id="colors">
|
|
220
|
-
<div class="section-label">01 / Colors</div>
|
|
221
|
-
<h2 class="section-title">Color Palette</h2>
|
|
222
|
-
|
|
223
|
-
<div class="color-group-label">Primary</div>
|
|
224
|
-
<div class="color-grid">
|
|
225
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#26251e"></div><div class="color-swatch-info"><div class="color-swatch-name">Cursor Dark</div><div class="color-swatch-hex">#26251e</div><div class="color-swatch-role">Primary text, headings</div></div></div>
|
|
226
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#f2f1ed"></div><div class="color-swatch-info"><div class="color-swatch-name">Cursor Cream</div><div class="color-swatch-hex">#f2f1ed</div><div class="color-swatch-role">Page background</div></div></div>
|
|
227
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#e6e5e0"></div><div class="color-swatch-info"><div class="color-swatch-name">Cursor Light</div><div class="color-swatch-hex">#e6e5e0</div><div class="color-swatch-role">Secondary surface</div></div></div>
|
|
228
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#ffffff; border-bottom:1px solid rgba(38,37,30,0.1)"></div><div class="color-swatch-info"><div class="color-swatch-name">Pure White</div><div class="color-swatch-hex">#ffffff</div><div class="color-swatch-role">Card surfaces</div></div></div>
|
|
229
|
-
</div>
|
|
230
|
-
|
|
231
|
-
<div class="color-group-label">Accent & Semantic</div>
|
|
232
|
-
<div class="color-grid">
|
|
233
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#f54e00"></div><div class="color-swatch-info"><div class="color-swatch-name">Cursor Orange</div><div class="color-swatch-hex">#f54e00</div><div class="color-swatch-role">Brand accent</div></div></div>
|
|
234
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#c08532"></div><div class="color-swatch-info"><div class="color-swatch-name">Gold</div><div class="color-swatch-hex">#c08532</div><div class="color-swatch-role">Secondary accent</div></div></div>
|
|
235
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#cf2d56"></div><div class="color-swatch-info"><div class="color-swatch-name">Error</div><div class="color-swatch-hex">#cf2d56</div><div class="color-swatch-role">Error, hover state</div></div></div>
|
|
236
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#1f8a65"></div><div class="color-swatch-info"><div class="color-swatch-name">Success</div><div class="color-swatch-hex">#1f8a65</div><div class="color-swatch-role">Success state</div></div></div>
|
|
237
|
-
</div>
|
|
238
|
-
|
|
239
|
-
<div class="color-group-label">AI Timeline Colors</div>
|
|
240
|
-
<div class="color-grid">
|
|
241
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#dfa88f"></div><div class="color-swatch-info"><div class="color-swatch-name">Thinking</div><div class="color-swatch-hex">#dfa88f</div><div class="color-swatch-role">AI thinking state</div></div></div>
|
|
242
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#9fc9a2"></div><div class="color-swatch-info"><div class="color-swatch-name">Grep</div><div class="color-swatch-hex">#9fc9a2</div><div class="color-swatch-role">Search operations</div></div></div>
|
|
243
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#9fbbe0"></div><div class="color-swatch-info"><div class="color-swatch-name">Read</div><div class="color-swatch-hex">#9fbbe0</div><div class="color-swatch-role">File reading</div></div></div>
|
|
244
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#c0a8dd"></div><div class="color-swatch-info"><div class="color-swatch-name">Edit</div><div class="color-swatch-hex">#c0a8dd</div><div class="color-swatch-role">Code editing</div></div></div>
|
|
245
|
-
</div>
|
|
246
|
-
|
|
247
|
-
<div class="color-group-label">Surface Scale</div>
|
|
248
|
-
<div class="color-grid">
|
|
249
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#f7f7f4"></div><div class="color-swatch-info"><div class="color-swatch-name">Surface 100</div><div class="color-swatch-hex">#f7f7f4</div><div class="color-swatch-role">Lightest surface</div></div></div>
|
|
250
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#f2f1ed"></div><div class="color-swatch-info"><div class="color-swatch-name">Surface 200</div><div class="color-swatch-hex">#f2f1ed</div><div class="color-swatch-role">Page background</div></div></div>
|
|
251
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#ebeae5"></div><div class="color-swatch-info"><div class="color-swatch-name">Surface 300</div><div class="color-swatch-hex">#ebeae5</div><div class="color-swatch-role">Button default</div></div></div>
|
|
252
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#e6e5e0"></div><div class="color-swatch-info"><div class="color-swatch-name">Surface 400</div><div class="color-swatch-hex">#e6e5e0</div><div class="color-swatch-role">Card backgrounds</div></div></div>
|
|
253
|
-
<div class="color-swatch"><div class="color-swatch-block" style="background:#e1e0db"></div><div class="color-swatch-info"><div class="color-swatch-name">Surface 500</div><div class="color-swatch-hex">#e1e0db</div><div class="color-swatch-role">Active/pressed</div></div></div>
|
|
254
|
-
</div>
|
|
255
|
-
</section>
|
|
256
|
-
|
|
257
|
-
<hr class="section-divider">
|
|
258
|
-
|
|
259
|
-
<section class="section" id="typography">
|
|
260
|
-
<div class="section-label">02 / Typography</div>
|
|
261
|
-
<h2 class="section-title">Typography Scale</h2>
|
|
262
|
-
|
|
263
|
-
<div class="type-sample"><div style="font-size:72px; font-weight:400; line-height:1.10; letter-spacing:-2.16px;">Display Hero</div><div class="type-meta">Display Hero -- 72px / 400 / 1.10 / -2.16px / CursorGothic</div></div>
|
|
264
|
-
<div class="type-sample"><div style="font-size:36px; font-weight:400; line-height:1.20; letter-spacing:-0.72px;">Section Heading</div><div class="type-meta">Section Heading -- 36px / 400 / 1.20 / -0.72px / CursorGothic</div></div>
|
|
265
|
-
<div class="type-sample"><div style="font-size:26px; font-weight:400; line-height:1.25; letter-spacing:-0.325px;">Sub-heading</div><div class="type-meta">Sub-heading -- 26px / 400 / 1.25 / -0.325px / CursorGothic</div></div>
|
|
266
|
-
<div class="type-sample"><div style="font-size:22px; font-weight:400; line-height:1.30; letter-spacing:-0.11px;">Title Small</div><div class="type-meta">Title Small -- 22px / 400 / 1.30 / -0.11px / CursorGothic</div></div>
|
|
267
|
-
<div class="type-sample"><div style="font-family:var(--font-serif); font-size:19.2px; font-weight:500; line-height:1.50;">Body Serif -- The AI-first code editor that helps you build software faster with intelligent assistance.</div><div class="type-meta">Body Serif -- 19.2px / 500 / 1.50 / jjannon (with cswh)</div></div>
|
|
268
|
-
<div class="type-sample"><div style="font-family:var(--font-serif); font-size:17.28px; font-weight:400; line-height:1.35;">Body Serif Small -- Write code naturally with AI that understands your entire codebase.</div><div class="type-meta">Body Serif SM -- 17.28px / 400 / 1.35 / jjannon</div></div>
|
|
269
|
-
<div class="type-sample"><div style="font-size:16px; font-weight:400; line-height:1.50;">Body Sans -- Standard UI text for navigation and interface elements</div><div class="type-meta">Body Sans -- 16px / 400 / 1.50 / CursorGothic</div></div>
|
|
270
|
-
<div class="type-sample"><div style="font-size:14px; font-weight:400; line-height:1.00;">Button Label</div><div class="type-meta">Button Label -- 14px / 400 / 1.00 / CursorGothic</div></div>
|
|
271
|
-
<div class="type-sample"><div style="font-size:11px; font-weight:500; line-height:1.50;">Caption -- Small metadata and labels</div><div class="type-meta">Caption -- 11px / 500 / 1.50 / CursorGothic</div></div>
|
|
272
|
-
<div class="type-sample"><div style="font-family:var(--font-mono); font-size:12px; font-weight:400; line-height:1.67;">const editor = await cursor.init({ ai: true });</div><div class="type-meta">Mono Body -- 12px / 400 / 1.67 / berkeleyMono</div></div>
|
|
273
|
-
<div class="type-sample"><div style="font-family:var(--font-ui); font-size:11px; font-weight:500; line-height:1.27; text-transform:uppercase; letter-spacing:0.048px;">AI OPERATIONS</div><div class="type-meta">System Micro -- 11px / 500 / uppercase / system-ui</div></div>
|
|
274
|
-
</section>
|
|
275
|
-
|
|
276
|
-
<hr class="section-divider">
|
|
277
|
-
|
|
278
|
-
<section class="section" id="buttons">
|
|
279
|
-
<div class="section-label">03 / Buttons</div>
|
|
280
|
-
<h2 class="section-title">Button Variants</h2>
|
|
281
|
-
<div class="button-row">
|
|
282
|
-
<div class="button-item"><a class="btn-dark" href="#">Download Cursor</a><div class="button-label">Primary Dark</div></div>
|
|
283
|
-
<div class="button-item"><a class="btn-primary" href="#">Documentation</a><div class="button-label">Primary Surface</div></div>
|
|
284
|
-
<div class="button-item"><a class="btn-ghost" href="#">Learn More</a><div class="button-label">Ghost</div></div>
|
|
285
|
-
<div class="button-item"><a class="btn-pill" href="#">AI-First</a><div class="button-label">Pill Tag</div></div>
|
|
286
|
-
<div class="button-item"><span style="display:inline-block; background:var(--thinking); color:var(--cursor-dark); padding:3px 8px; border-radius:9999px; font-size:12px; font-weight:500;">Thinking</span><div class="button-label">Timeline Pill</div></div>
|
|
287
|
-
<div class="button-item"><span style="display:inline-block; background:var(--grep); color:var(--cursor-dark); padding:3px 8px; border-radius:9999px; font-size:12px; font-weight:500;">Grep</span><div class="button-label">Timeline Pill</div></div>
|
|
288
|
-
<div class="button-item"><span style="display:inline-block; background:var(--read); color:var(--cursor-dark); padding:3px 8px; border-radius:9999px; font-size:12px; font-weight:500;">Read</span><div class="button-label">Timeline Pill</div></div>
|
|
289
|
-
<div class="button-item"><span style="display:inline-block; background:var(--edit); color:var(--cursor-dark); padding:3px 8px; border-radius:9999px; font-size:12px; font-weight:500;">Edit</span><div class="button-label">Timeline Pill</div></div>
|
|
290
|
-
</div>
|
|
291
|
-
</section>
|
|
292
|
-
|
|
293
|
-
<hr class="section-divider">
|
|
294
|
-
|
|
295
|
-
<section class="section" id="cards">
|
|
296
|
-
<div class="section-label">04 / Cards</div>
|
|
297
|
-
<h2 class="section-title">Card Examples</h2>
|
|
298
|
-
<div class="card-grid">
|
|
299
|
-
<div class="card">
|
|
300
|
-
<div class="card-badge" style="background:rgba(245,78,0,0.1); color:var(--accent);">AI</div>
|
|
301
|
-
<h3>Tab Autocomplete</h3>
|
|
302
|
-
<p>Cursor predicts your next edit and suggests multi-line changes. Accept with a single tab press for flow-state coding.</p>
|
|
303
|
-
</div>
|
|
304
|
-
<div class="card" style="box-shadow: var(--shadow-card);">
|
|
305
|
-
<div class="card-badge" style="background:rgba(159,187,224,0.2); color:#4a7ab5;">Elevated</div>
|
|
306
|
-
<h3>Chat with Codebase</h3>
|
|
307
|
-
<p>Ask questions about your entire repository. Cursor understands project structure, dependencies, and conventions.</p>
|
|
308
|
-
</div>
|
|
309
|
-
<div class="card">
|
|
310
|
-
<div class="card-badge" style="background:rgba(192,168,221,0.2); color:#7b5fa8;">Agent</div>
|
|
311
|
-
<h3>Agentic Editing</h3>
|
|
312
|
-
<p>Describe what you want in natural language. Cursor's agent mode makes multi-file changes across your codebase.</p>
|
|
313
|
-
</div>
|
|
314
|
-
</div>
|
|
315
|
-
</section>
|
|
316
|
-
|
|
317
|
-
<hr class="section-divider">
|
|
318
|
-
|
|
319
|
-
<section class="section" id="forms">
|
|
320
|
-
<div class="section-label">05 / Forms</div>
|
|
321
|
-
<h2 class="section-title">Form Elements</h2>
|
|
322
|
-
<div class="form-group"><label class="form-label">Project Name</label><input class="form-input" type="text" placeholder="my-cursor-project"><div class="form-state-label">Default (warm border)</div></div>
|
|
323
|
-
<div class="form-group"><label class="form-label">Repository</label><input class="form-input form-input--focus" type="text" value="cursor/editor"><div class="form-state-label">Focus (accent orange)</div></div>
|
|
324
|
-
<div class="form-group"><label class="form-label">API Key</label><input class="form-input form-input--error" type="text" value="invalid-key"><div class="form-state-label">Error (warm crimson)</div></div>
|
|
325
|
-
<div class="form-group"><label class="form-label">Instructions</label><textarea class="form-textarea" placeholder="Describe the changes you want..."></textarea></div>
|
|
326
|
-
</section>
|
|
327
|
-
|
|
328
|
-
<hr class="section-divider">
|
|
329
|
-
|
|
330
|
-
<section class="section" id="spacing">
|
|
331
|
-
<div class="section-label">06 / Spacing</div>
|
|
332
|
-
<h2 class="section-title">Spacing Scale</h2>
|
|
333
|
-
<div class="spacing-row">
|
|
334
|
-
<div class="spacing-item"><div class="spacing-block" style="width:2px"></div><div class="spacing-value">2</div></div>
|
|
335
|
-
<div class="spacing-item"><div class="spacing-block" style="width:3px"></div><div class="spacing-value">3</div></div>
|
|
336
|
-
<div class="spacing-item"><div class="spacing-block" style="width:4px"></div><div class="spacing-value">4</div></div>
|
|
337
|
-
<div class="spacing-item"><div class="spacing-block" style="width:5px"></div><div class="spacing-value">5</div></div>
|
|
338
|
-
<div class="spacing-item"><div class="spacing-block" style="width:6px"></div><div class="spacing-value">6</div></div>
|
|
339
|
-
<div class="spacing-item"><div class="spacing-block" style="width:8px"></div><div class="spacing-value">8</div></div>
|
|
340
|
-
<div class="spacing-item"><div class="spacing-block" style="width:10px"></div><div class="spacing-value">10</div></div>
|
|
341
|
-
<div class="spacing-item"><div class="spacing-block" style="width:12px"></div><div class="spacing-value">12</div></div>
|
|
342
|
-
<div class="spacing-item"><div class="spacing-block" style="width:16px"></div><div class="spacing-value">16</div></div>
|
|
343
|
-
<div class="spacing-item"><div class="spacing-block" style="width:24px"></div><div class="spacing-value">24</div></div>
|
|
344
|
-
<div class="spacing-item"><div class="spacing-block" style="width:32px"></div><div class="spacing-value">32</div></div>
|
|
345
|
-
<div class="spacing-item"><div class="spacing-block" style="width:48px"></div><div class="spacing-value">48</div></div>
|
|
346
|
-
</div>
|
|
347
|
-
</section>
|
|
348
|
-
|
|
349
|
-
<hr class="section-divider">
|
|
350
|
-
|
|
351
|
-
<section class="section" id="radius">
|
|
352
|
-
<div class="section-label">07 / Radius</div>
|
|
353
|
-
<h2 class="section-title">Border Radius Scale</h2>
|
|
354
|
-
<div class="radius-row">
|
|
355
|
-
<div class="radius-item"><div class="radius-box" style="border-radius:1.5px"></div><div class="radius-label">1.5px</div><div class="radius-context">Micro</div></div>
|
|
356
|
-
<div class="radius-item"><div class="radius-box" style="border-radius:2px"></div><div class="radius-label">2px</div><div class="radius-context">Inline</div></div>
|
|
357
|
-
<div class="radius-item"><div class="radius-box" style="border-radius:3px"></div><div class="radius-label">3px</div><div class="radius-context">Small</div></div>
|
|
358
|
-
<div class="radius-item"><div class="radius-box" style="border-radius:4px"></div><div class="radius-label">4px</div><div class="radius-context">Cards, inputs</div></div>
|
|
359
|
-
<div class="radius-item"><div class="radius-box" style="border-radius:8px"></div><div class="radius-label">8px</div><div class="radius-context">Buttons, cards</div></div>
|
|
360
|
-
<div class="radius-item"><div class="radius-box" style="border-radius:10px"></div><div class="radius-label">10px</div><div class="radius-context">Featured</div></div>
|
|
361
|
-
<div class="radius-item"><div class="radius-box" style="border-radius:9999px"></div><div class="radius-label">9999px</div><div class="radius-context">Pills</div></div>
|
|
362
|
-
</div>
|
|
363
|
-
</section>
|
|
364
|
-
|
|
365
|
-
<hr class="section-divider">
|
|
366
|
-
|
|
367
|
-
<section class="section" id="elevation">
|
|
368
|
-
<div class="section-label">08 / Elevation</div>
|
|
369
|
-
<h2 class="section-title">Elevation & Depth</h2>
|
|
370
|
-
<div class="elevation-grid">
|
|
371
|
-
<div class="elevation-card" style="border: 1px solid var(--border-default);"><div class="elevation-label">Level 0: Flat</div><div class="elevation-desc">No shadow</div></div>
|
|
372
|
-
<div class="elevation-card" style="box-shadow: rgba(38,37,30,0.1) 0px 0px 0px 1px;"><div class="elevation-label">Level 1: Border Ring</div><div class="elevation-desc">oklab warm border</div></div>
|
|
373
|
-
<div class="elevation-card" style="box-shadow: rgba(38,37,30,0.2) 0px 0px 0px 1px;"><div class="elevation-label">Level 1b: Medium</div><div class="elevation-desc">Emphasized border</div></div>
|
|
374
|
-
<div class="elevation-card" style="box-shadow: rgba(0,0,0,0.02) 0px 0px 16px 0px, rgba(0,0,0,0.008) 0px 0px 8px 0px;"><div class="elevation-label">Level 2: Ambient</div><div class="elevation-desc">Subtle glow</div></div>
|
|
375
|
-
<div class="elevation-card" style="box-shadow: rgba(0,0,0,0.14) 0px 28px 70px 0px, rgba(0,0,0,0.1) 0px 14px 32px 0px, rgba(38,37,30,0.1) 0px 0px 0px 1px;"><div class="elevation-label">Level 3: Elevated</div><div class="elevation-desc">Modal / popover</div></div>
|
|
376
|
-
<div class="elevation-card" style="box-shadow: rgba(0,0,0,0.1) 0px 4px 12px;"><div class="elevation-label">Focus</div><div class="elevation-desc">Interactive focus</div></div>
|
|
377
|
-
</div>
|
|
378
|
-
</section>
|
|
379
|
-
|
|
380
|
-
<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>
|
|
381
|
-
|
|
382
|
-
</body>
|
|
383
|
-
</html>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Dcard Inspired Design System
|
|
2
|
-
|
|
3
|
-
[DESIGN.md](./DESIGN.md) extracted from the public [Dcard](https://www.dcard.tw) website. Dcard does not publish a documentation site, but it **exposes 200+ semantic CSS custom properties on `:root`** that effectively constitute its public design system. Tokens were extracted directly via Playwright MCP at 1440px viewport on 2026-04-17. See [_research.md](./_research.md) for source detail and confidence per item.
|
|
4
|
-
|
|
5
|
-
## Files
|
|
6
|
-
|
|
7
|
-
| File | Description |
|
|
8
|
-
|------|-------------|
|
|
9
|
-
| `DESIGN.md` | Complete design system documentation (9 sections) |
|
|
10
|
-
| `_research.md` | Sources used, extraction methodology, and confidence per item |
|
|
11
|
-
|
|
12
|
-
Use [DESIGN.md](./DESIGN.md) as a reference for AI agents (Claude, Cursor, Stitch) to generate UI that looks like the Dcard design language — Taiwan's largest forum platform with Material Design heritage, Roboto-led typography (weight 500 headlines), deep teal-navy chrome (`#00324e`) framing white cards on gray content, blue-monochrome brand palette, 5-level Material shadow system, and unique gender-coded author chip colors reflecting forum culture.
|
|
Binary file
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# Research Sources for Dcard
|
|
2
|
-
|
|
3
|
-
추출 일자: 2026-04-17
|
|
4
|
-
스킬: `omd:add-reference` (5-tier methodology)
|
|
5
|
-
입력 URL: `https://www.dcard.tw`
|
|
6
|
-
|
|
7
|
-
## Tier 1 — Official Design System
|
|
8
|
-
|
|
9
|
-
**Status: EFFECTIVELY FOUND via runtime token exposure**
|
|
10
|
-
|
|
11
|
-
Dcard does not publish a documentation site (e.g., `dcard.design`), but the production app **exposes 200+ semantic CSS custom properties on `:root`** that constitute the actual design system in machine-readable form. Extracted via `getComputedStyle(document.documentElement)` using Playwright MCP. This is functionally equivalent to a public design tokens file.
|
|
12
|
-
|
|
13
|
-
Token namespaces discovered:
|
|
14
|
-
- `--color-dcard-*` — brand palette (primary/secondary/tertiary/premium/hint)
|
|
15
|
-
- `--color-state-*` — success/danger/reminder + hover/active states
|
|
16
|
-
- `--color-bg-*` — surface tokens (base 1-3, light/dark, special, topic, snackbar, etc.)
|
|
17
|
-
- `--color-text-*` — primary/secondary/hint/disabled + light variants for dark surfaces
|
|
18
|
-
- `--color-gender-*` — female/male/other + light variants (forum culture-specific)
|
|
19
|
-
- `--color-border`, `--color-separator` — divider system
|
|
20
|
-
- `--shadow-level-1` through `--shadow-level-5` — Material elevation
|
|
21
|
-
- `--typography-*` and `--fonts-*` — full type scale (4 headlines, title, 2 subtitles, 2 body, 2 caption) including mobile variants
|
|
22
|
-
- `--vars-*` — layout sizing (header, sider, post list, modals, etc.)
|
|
23
|
-
- `--animations-bezier`, `--animations-short-duration`, `--animations-medium-duration` — motion system
|
|
24
|
-
- `--mixins-*` — text-overflow / cover-image / scroll-bar mixin tokens
|
|
25
|
-
|
|
26
|
-
## Tier 2 — Brand / Press Kit
|
|
27
|
-
|
|
28
|
-
Not investigated separately — the runtime token exposure made it unnecessary. If needed, `dcard.tw/about` could be checked for additional brand voice / logo guidelines.
|
|
29
|
-
|
|
30
|
-
## Tier 3 — Engineering / Design Blog
|
|
31
|
-
|
|
32
|
-
`medium.com/dcardlab` exists with categories Web/Mobile/Data/Products/People/Career. No DS-specific articles surfaced in initial WebSearch, but the tech blog could contain design rationale articles for future supplementation.
|
|
33
|
-
|
|
34
|
-
## Tier 4 — Live Site Recon
|
|
35
|
-
|
|
36
|
-
**Method**: Playwright MCP (`@playwright/mcp@latest`, project-scoped via `.mcp.json`) at viewport 1440×900 on `https://www.dcard.tw/f` (forum index). Cloudflare bot challenge passed automatically by the embedded Chromium.
|
|
37
|
-
|
|
38
|
-
### Extraction steps
|
|
39
|
-
1. `browser_navigate` → `https://www.dcard.tw`
|
|
40
|
-
2. `browser_evaluate` to enumerate `:root` CSS custom properties → 200+ tokens captured
|
|
41
|
-
3. `browser_evaluate` for body, headings (H1×0, H2×21, H3×0), button samples (105 buttons), nav links, articles
|
|
42
|
-
4. `browser_take_screenshot` (viewport, 1440×900) → `_research/forum-1440px.png`
|
|
43
|
-
|
|
44
|
-
### Verified at runtime
|
|
45
|
-
- Body bg: `rgb(0, 50, 78)` = `#00324e` (matches `--color-dcard-tertiary`)
|
|
46
|
-
- Body font: `Roboto, "Helvetica Neue", Helvetica, Arial, "PingFang TC", 黑體-繁, "Heiti TC", 蘋果儷中黑, "Apple LiGothic Medium", 微軟正黑體, "Microsoft JhengHei", sans-serif`
|
|
47
|
-
- H2 (post titles): weight 500, 16px, color `rgba(0,0,0,0.85)` — confirms Material-aligned medium-weight hierarchy
|
|
48
|
-
- Sample buttons: `--color-dcard-primary` (`#3397cf`) for Download App, `--color-dcard-secondary` (`#006aa6`) for search submit, both 8px radius
|
|
49
|
-
- Main content area: bg `rgb(242,242,242)` = `#f2f2f2` (`--color-bg-base-1`), 728px wide
|
|
50
|
-
- Right aside: 300px wide
|
|
51
|
-
- Console: 13 errors, 110 warnings (typical for production SPA, non-blocking)
|
|
52
|
-
|
|
53
|
-
## Confidence
|
|
54
|
-
|
|
55
|
-
### High Confidence (extracted directly from `:root` CSS variables — Dcard's actual semantic tokens)
|
|
56
|
-
- Entire color palette (brand, state, bg, text, border, separator, gender, premium, topic, etc.) in §2
|
|
57
|
-
- Full type scale (4 headline tiers, title, 2 subtitle, 2 body, 2 caption) with sizes/weights/line-heights in §3
|
|
58
|
-
- Shadow system (5 levels) in §6
|
|
59
|
-
- Animation easing + durations in §6
|
|
60
|
-
- Layout sizing (header height, max page width, sider/main/aside widths, modal widths, etc.) in §5
|
|
61
|
-
|
|
62
|
-
### Medium Confidence (verified via runtime DOM but not from named tokens)
|
|
63
|
-
- Default 8px border-radius (verified across multiple buttons but not explicitly tokenized)
|
|
64
|
-
- Forum hierarchy (sider 208px / main 728px / aside 300px) confirmed via direct width measurement
|
|
65
|
-
- Material Design alignment claim (Roboto + weight 500 + cubic-bezier easing all align)
|
|
66
|
-
|
|
67
|
-
### Inferred (educated reading from observed UX)
|
|
68
|
-
- "Gender colors are for author chips only" — based on forum naming convention (女孩/男生/感情) and color names; not directly observed in posts during recon
|
|
69
|
-
- "Premium gold reserved for subscription features" — based on `--color-dcard-premium` token name; specific product surfaces not exhaustively checked
|
|
70
|
-
- Mobile breakpoint at 768px — inferred from presence of `--typography-*-font-size-mobile` tokens; exact breakpoint values not extracted
|
|
71
|
-
|
|
72
|
-
## Notes
|
|
73
|
-
- Dcard exposes its design system **at runtime via `:root` CSS variables** — this is rare and developer-friendly. Treat the variable names as the canonical reference (more stable than hex values across releases).
|
|
74
|
-
- Roboto-led typography stack with comprehensive Traditional Chinese fallbacks reflects Dcard's Taiwan-first user base.
|
|
75
|
-
- Playwright MCP successfully bypassed Cloudflare bot protection that had blocked `curl` and `WebFetch` attempts.
|
|
76
|
-
- Class names in DOM use a hashed convention (`d_a5_175izsd`, `d_h_j`, etc.) — likely vanilla-extract or similar zero-runtime CSS-in-JS. Don't rely on class selectors; use the `:root` tokens instead.
|
|
77
|
-
- This reference may drift if Dcard ships a token rename. Re-running `omd:add-reference https://www.dcard.tw` periodically captures any updates.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Elevenlabs Inspired Design System
|
|
2
|
-
|
|
3
|
-
[DESIGN.md](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/elevenlabs/DESIGN.md) extracted from the public [ElevenLabs](https://elevenlabs.io/) website. This is not the official design system. Colors, fonts, and spacing may not be 100% accurate. But it's a good starting point for building something similar.
|
|
4
|
-
|
|
5
|
-
## Files
|
|
6
|
-
|
|
7
|
-
| File | Description |
|
|
8
|
-
|------|-------------|
|
|
9
|
-
| `DESIGN.md` | Complete design system documentation (9 sections) |
|
|
10
|
-
| `preview.html` | Interactive design token catalog (light) |
|
|
11
|
-
| `preview-dark.html` | Interactive design token catalog (dark) |
|
|
12
|
-
|
|
13
|
-
Use [DESIGN.md](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/elevenlabs/DESIGN.md) to use as a reference for AI agents (Claude, Cursor, Stitch) to generate UI that looks like the Elevenlabs design language.
|
|
14
|
-
|
|
15
|
-
## Preview
|
|
16
|
-
|
|
17
|
-
A sample landing page built with DESIGN.md. It shows the actual colors, typography, buttons, cards, spacing, and elevation, all in one page.
|
|
18
|
-
|
|
19
|
-
### Dark Mode
|
|
20
|
-

|
|
21
|
-
|
|
22
|
-
### Light Mode
|
|
23
|
-

|