awesome-design-md 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +172 -0
  3. package/bin/cli.mjs +126 -0
  4. package/design-md/airbnb/DESIGN.md +246 -0
  5. package/design-md/airbnb/README.md +23 -0
  6. package/design-md/airbnb/preview-dark.html +234 -0
  7. package/design-md/airbnb/preview.html +233 -0
  8. package/design-md/airtable/DESIGN.md +89 -0
  9. package/design-md/airtable/README.md +23 -0
  10. package/design-md/airtable/preview-dark.html +165 -0
  11. package/design-md/airtable/preview.html +164 -0
  12. package/design-md/apple/DESIGN.md +313 -0
  13. package/design-md/apple/README.md +24 -0
  14. package/design-md/apple/preview-dark.html +422 -0
  15. package/design-md/apple/preview.html +416 -0
  16. package/design-md/bmw/DESIGN.md +180 -0
  17. package/design-md/bmw/README.md +23 -0
  18. package/design-md/bmw/preview-dark.html +211 -0
  19. package/design-md/bmw/preview.html +210 -0
  20. package/design-md/cal/DESIGN.md +259 -0
  21. package/design-md/cal/README.md +23 -0
  22. package/design-md/cal/preview-dark.html +449 -0
  23. package/design-md/cal/preview.html +575 -0
  24. package/design-md/claude/DESIGN.md +312 -0
  25. package/design-md/claude/README.md +24 -0
  26. package/design-md/claude/preview-dark.html +803 -0
  27. package/design-md/claude/preview.html +826 -0
  28. package/design-md/clay/DESIGN.md +304 -0
  29. package/design-md/clay/README.md +23 -0
  30. package/design-md/clay/preview-dark.html +318 -0
  31. package/design-md/clay/preview.html +317 -0
  32. package/design-md/clickhouse/DESIGN.md +281 -0
  33. package/design-md/clickhouse/README.md +24 -0
  34. package/design-md/clickhouse/preview-dark.html +834 -0
  35. package/design-md/clickhouse/preview.html +786 -0
  36. package/design-md/cohere/DESIGN.md +266 -0
  37. package/design-md/cohere/README.md +24 -0
  38. package/design-md/cohere/preview-dark.html +810 -0
  39. package/design-md/cohere/preview.html +814 -0
  40. package/design-md/coinbase/DESIGN.md +129 -0
  41. package/design-md/coinbase/README.md +23 -0
  42. package/design-md/coinbase/preview-dark.html +164 -0
  43. package/design-md/coinbase/preview.html +163 -0
  44. package/design-md/composio/DESIGN.md +307 -0
  45. package/design-md/composio/README.md +24 -0
  46. package/design-md/composio/preview-dark.html +958 -0
  47. package/design-md/composio/preview.html +933 -0
  48. package/design-md/cursor/DESIGN.md +309 -0
  49. package/design-md/cursor/README.md +24 -0
  50. package/design-md/cursor/preview-dark.html +395 -0
  51. package/design-md/cursor/preview.html +385 -0
  52. package/design-md/elevenlabs/DESIGN.md +265 -0
  53. package/design-md/elevenlabs/README.md +23 -0
  54. package/design-md/elevenlabs/preview-dark.html +254 -0
  55. package/design-md/elevenlabs/preview.html +253 -0
  56. package/design-md/expo/DESIGN.md +281 -0
  57. package/design-md/expo/README.md +24 -0
  58. package/design-md/expo/preview-dark.html +536 -0
  59. package/design-md/expo/preview.html +536 -0
  60. package/design-md/figma/DESIGN.md +220 -0
  61. package/design-md/figma/README.md +24 -0
  62. package/design-md/figma/preview-dark.html +831 -0
  63. package/design-md/figma/preview.html +841 -0
  64. package/design-md/framer/DESIGN.md +246 -0
  65. package/design-md/framer/README.md +23 -0
  66. package/design-md/framer/preview-dark.html +904 -0
  67. package/design-md/framer/preview.html +885 -0
  68. package/design-md/hashicorp/DESIGN.md +278 -0
  69. package/design-md/hashicorp/README.md +24 -0
  70. package/design-md/hashicorp/preview-dark.html +1206 -0
  71. package/design-md/hashicorp/preview.html +1195 -0
  72. package/design-md/ibm/DESIGN.md +332 -0
  73. package/design-md/ibm/README.md +24 -0
  74. package/design-md/ibm/preview-dark.html +445 -0
  75. package/design-md/ibm/preview.html +430 -0
  76. package/design-md/intercom/DESIGN.md +146 -0
  77. package/design-md/intercom/README.md +23 -0
  78. package/design-md/intercom/preview-dark.html +185 -0
  79. package/design-md/intercom/preview.html +184 -0
  80. package/design-md/kraken/DESIGN.md +125 -0
  81. package/design-md/kraken/README.md +23 -0
  82. package/design-md/kraken/preview-dark.html +169 -0
  83. package/design-md/kraken/preview.html +168 -0
  84. package/design-md/linear.app/DESIGN.md +367 -0
  85. package/design-md/linear.app/README.md +24 -0
  86. package/design-md/linear.app/preview-dark.html +385 -0
  87. package/design-md/linear.app/preview.html +375 -0
  88. package/design-md/lovable/DESIGN.md +298 -0
  89. package/design-md/lovable/README.md +24 -0
  90. package/design-md/lovable/preview-dark.html +351 -0
  91. package/design-md/lovable/preview.html +350 -0
  92. package/design-md/minimax/DESIGN.md +257 -0
  93. package/design-md/minimax/README.md +24 -0
  94. package/design-md/minimax/preview-dark.html +1267 -0
  95. package/design-md/minimax/preview.html +1253 -0
  96. package/design-md/mintlify/DESIGN.md +326 -0
  97. package/design-md/mintlify/README.md +24 -0
  98. package/design-md/mintlify/preview-dark.html +411 -0
  99. package/design-md/mintlify/preview.html +400 -0
  100. package/design-md/miro/DESIGN.md +108 -0
  101. package/design-md/miro/README.md +23 -0
  102. package/design-md/miro/preview-dark.html +174 -0
  103. package/design-md/miro/preview.html +173 -0
  104. package/design-md/mistral.ai/DESIGN.md +261 -0
  105. package/design-md/mistral.ai/README.md +24 -0
  106. package/design-md/mistral.ai/preview-dark.html +813 -0
  107. package/design-md/mistral.ai/preview.html +812 -0
  108. package/design-md/mongodb/DESIGN.md +266 -0
  109. package/design-md/mongodb/README.md +23 -0
  110. package/design-md/mongodb/preview-dark.html +262 -0
  111. package/design-md/mongodb/preview.html +261 -0
  112. package/design-md/notion/DESIGN.md +309 -0
  113. package/design-md/notion/README.md +24 -0
  114. package/design-md/notion/preview-dark.html +374 -0
  115. package/design-md/notion/preview.html +366 -0
  116. package/design-md/nvidia/DESIGN.md +293 -0
  117. package/design-md/nvidia/README.md +24 -0
  118. package/design-md/nvidia/preview-dark.html +376 -0
  119. package/design-md/nvidia/preview.html +368 -0
  120. package/design-md/ollama/DESIGN.md +267 -0
  121. package/design-md/ollama/README.md +24 -0
  122. package/design-md/ollama/preview-dark.html +678 -0
  123. package/design-md/ollama/preview.html +678 -0
  124. package/design-md/opencode.ai/DESIGN.md +281 -0
  125. package/design-md/opencode.ai/README.md +24 -0
  126. package/design-md/opencode.ai/preview-dark.html +368 -0
  127. package/design-md/opencode.ai/preview.html +359 -0
  128. package/design-md/pinterest/DESIGN.md +230 -0
  129. package/design-md/pinterest/README.md +23 -0
  130. package/design-md/pinterest/preview-dark.html +233 -0
  131. package/design-md/pinterest/preview.html +232 -0
  132. package/design-md/posthog/DESIGN.md +256 -0
  133. package/design-md/posthog/README.md +23 -0
  134. package/design-md/posthog/preview-dark.html +701 -0
  135. package/design-md/posthog/preview.html +751 -0
  136. package/design-md/raycast/DESIGN.md +268 -0
  137. package/design-md/raycast/README.md +23 -0
  138. package/design-md/raycast/preview-dark.html +608 -0
  139. package/design-md/raycast/preview.html +690 -0
  140. package/design-md/replicate/DESIGN.md +261 -0
  141. package/design-md/replicate/README.md +24 -0
  142. package/design-md/replicate/preview-dark.html +828 -0
  143. package/design-md/replicate/preview.html +831 -0
  144. package/design-md/resend/DESIGN.md +303 -0
  145. package/design-md/resend/README.md +23 -0
  146. package/design-md/resend/preview-dark.html +357 -0
  147. package/design-md/resend/preview.html +356 -0
  148. package/design-md/revolut/DESIGN.md +185 -0
  149. package/design-md/revolut/README.md +23 -0
  150. package/design-md/revolut/preview-dark.html +234 -0
  151. package/design-md/revolut/preview.html +233 -0
  152. package/design-md/runwayml/DESIGN.md +244 -0
  153. package/design-md/runwayml/README.md +24 -0
  154. package/design-md/runwayml/preview-dark.html +664 -0
  155. package/design-md/runwayml/preview.html +665 -0
  156. package/design-md/sanity/DESIGN.md +357 -0
  157. package/design-md/sanity/README.md +24 -0
  158. package/design-md/sanity/preview-dark.html +995 -0
  159. package/design-md/sanity/preview.html +1140 -0
  160. package/design-md/sentry/DESIGN.md +262 -0
  161. package/design-md/sentry/README.md +24 -0
  162. package/design-md/sentry/preview-dark.html +628 -0
  163. package/design-md/sentry/preview.html +953 -0
  164. package/design-md/spacex/DESIGN.md +194 -0
  165. package/design-md/spacex/README.md +23 -0
  166. package/design-md/spacex/preview-dark.html +223 -0
  167. package/design-md/spacex/preview.html +222 -0
  168. package/design-md/spotify/DESIGN.md +246 -0
  169. package/design-md/spotify/README.md +23 -0
  170. package/design-md/spotify/preview-dark.html +231 -0
  171. package/design-md/spotify/preview.html +230 -0
  172. package/design-md/stripe/DESIGN.md +322 -0
  173. package/design-md/stripe/README.md +24 -0
  174. package/design-md/stripe/preview-dark.html +430 -0
  175. package/design-md/stripe/preview.html +421 -0
  176. package/design-md/supabase/DESIGN.md +255 -0
  177. package/design-md/supabase/README.md +24 -0
  178. package/design-md/supabase/preview-dark.html +977 -0
  179. package/design-md/supabase/preview.html +955 -0
  180. package/design-md/superhuman/DESIGN.md +252 -0
  181. package/design-md/superhuman/README.md +23 -0
  182. package/design-md/superhuman/preview-dark.html +975 -0
  183. package/design-md/superhuman/preview.html +953 -0
  184. package/design-md/together.ai/DESIGN.md +263 -0
  185. package/design-md/together.ai/README.md +24 -0
  186. package/design-md/together.ai/preview-dark.html +892 -0
  187. package/design-md/together.ai/preview.html +897 -0
  188. package/design-md/uber/DESIGN.md +295 -0
  189. package/design-md/uber/README.md +24 -0
  190. package/design-md/uber/preview-dark.html +1164 -0
  191. package/design-md/uber/preview.html +1163 -0
  192. package/design-md/vercel/DESIGN.md +310 -0
  193. package/design-md/vercel/README.md +24 -0
  194. package/design-md/vercel/preview-dark.html +370 -0
  195. package/design-md/vercel/preview.html +369 -0
  196. package/design-md/voltagent/DESIGN.md +323 -0
  197. package/design-md/voltagent/README.md +24 -0
  198. package/design-md/voltagent/preview-dark.html +487 -0
  199. package/design-md/voltagent/preview.html +766 -0
  200. package/design-md/warp/DESIGN.md +253 -0
  201. package/design-md/warp/README.md +23 -0
  202. package/design-md/warp/preview-dark.html +502 -0
  203. package/design-md/warp/preview.html +535 -0
  204. package/design-md/webflow/DESIGN.md +92 -0
  205. package/design-md/webflow/README.md +23 -0
  206. package/design-md/webflow/preview-dark.html +147 -0
  207. package/design-md/webflow/preview.html +146 -0
  208. package/design-md/wise/DESIGN.md +173 -0
  209. package/design-md/wise/README.md +23 -0
  210. package/design-md/wise/preview-dark.html +230 -0
  211. package/design-md/wise/preview.html +229 -0
  212. package/design-md/x.ai/DESIGN.md +257 -0
  213. package/design-md/x.ai/README.md +24 -0
  214. package/design-md/x.ai/preview-dark.html +358 -0
  215. package/design-md/x.ai/preview.html +409 -0
  216. package/design-md/zapier/DESIGN.md +328 -0
  217. package/design-md/zapier/README.md +24 -0
  218. package/design-md/zapier/preview-dark.html +382 -0
  219. package/design-md/zapier/preview.html +374 -0
  220. package/package.json +33 -0
@@ -0,0 +1,536 @@
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 Preview: Expo (Light)</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
10
+ <style>
11
+ :root {
12
+ --color-expo-black: #000000;
13
+ --color-near-black: #1c2024;
14
+ --color-link-cobalt: #0d74ce;
15
+ --color-legal-blue: #476cff;
16
+ --color-widget-sky: #47c2ff;
17
+ --color-preview-purple: #8145b5;
18
+ --color-cloud-gray: #f0f0f3;
19
+ --color-pure-white: #ffffff;
20
+ --color-widget-dark: #1a1a1a;
21
+ --color-banner-dark: #171717;
22
+ --color-slate-gray: #60646c;
23
+ --color-mid-slate: #555860;
24
+ --color-silver: #b0b4ba;
25
+ --color-pewter: #999999;
26
+ --color-light-silver: #cccccc;
27
+ --color-dark-slate: #363a3f;
28
+ --color-charcoal: #333333;
29
+ --color-warning: #ab6400;
30
+ --color-destructive: #eb8e90;
31
+ --color-border-lavender: #e0e1e6;
32
+ --color-input-border: #d9d9e0;
33
+ --color-focus-ring: #2547d0;
34
+ --font-body: 'Inter', -apple-system, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
35
+ --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
36
+ /* Light mode */
37
+ --bg-page: var(--color-cloud-gray);
38
+ --bg-card: var(--color-pure-white);
39
+ --bg-nav: rgba(240,240,243,0.92);
40
+ --text-primary: var(--color-near-black);
41
+ --text-secondary: var(--color-slate-gray);
42
+ --text-muted: var(--color-silver);
43
+ --border-color: var(--color-border-lavender);
44
+ --border-subtle: rgba(224,225,230,0.5);
45
+ --section-label-color: var(--color-expo-black);
46
+ }
47
+
48
+ * { margin: 0; padding: 0; box-sizing: border-box; }
49
+
50
+ body {
51
+ background: var(--bg-page);
52
+ color: var(--text-primary);
53
+ font-family: var(--font-body);
54
+ font-size: 16px;
55
+ line-height: 1.4;
56
+ -webkit-font-smoothing: antialiased;
57
+ }
58
+
59
+ /* NAV */
60
+ .nav {
61
+ position: sticky;
62
+ top: 0;
63
+ z-index: 100;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: space-between;
67
+ padding: 16px 40px;
68
+ background: var(--bg-nav);
69
+ backdrop-filter: blur(12px);
70
+ border-bottom: 1px solid var(--border-color);
71
+ }
72
+ .nav-brand { font-family: var(--font-body); font-size: 18px; font-weight: 700; letter-spacing: -0.3px; display: flex; align-items: center; gap: 8px; color: var(--color-expo-black); }
73
+ .nav-brand svg { width: 24px; height: 24px; }
74
+ .nav-links { display: flex; gap: 32px; align-items: center; }
75
+ .nav-links a { color: var(--text-secondary); text-decoration: none; font-size: 14px; font-weight: 500; transition: color 0.2s; }
76
+ .nav-links a:hover { color: var(--color-near-black); }
77
+ .nav-cta {
78
+ background: var(--color-expo-black);
79
+ color: var(--color-pure-white);
80
+ padding: 8px 20px;
81
+ border: none;
82
+ border-radius: 9999px;
83
+ font-size: 14px;
84
+ font-family: var(--font-body);
85
+ font-weight: 600;
86
+ cursor: pointer;
87
+ }
88
+ .nav-status {
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 6px;
92
+ font-size: 12px;
93
+ font-weight: 500;
94
+ color: var(--text-secondary);
95
+ background: var(--color-pure-white);
96
+ border: 1px solid var(--color-input-border);
97
+ border-radius: 9999px;
98
+ padding: 4px 12px 4px 8px;
99
+ }
100
+ .nav-status-dot {
101
+ width: 8px;
102
+ height: 8px;
103
+ border-radius: 50%;
104
+ background: #22c55e;
105
+ }
106
+
107
+ /* HERO */
108
+ .hero {
109
+ position: relative;
110
+ text-align: center;
111
+ padding: 120px 40px 100px;
112
+ overflow: hidden;
113
+ }
114
+ .hero h1 {
115
+ font-family: var(--font-body);
116
+ font-size: 60px;
117
+ font-weight: 700;
118
+ line-height: 1.10;
119
+ letter-spacing: -3px;
120
+ margin-bottom: 24px;
121
+ color: var(--color-expo-black);
122
+ position: relative;
123
+ }
124
+ .hero p {
125
+ color: var(--text-secondary);
126
+ font-size: 18px;
127
+ line-height: 1.4;
128
+ margin-bottom: 40px;
129
+ position: relative;
130
+ }
131
+ .hero-buttons { display: flex; gap: 16px; justify-content: center; position: relative; }
132
+ .btn-primary-pill {
133
+ background: var(--color-expo-black);
134
+ color: var(--color-pure-white);
135
+ padding: 12px 28px;
136
+ border: none;
137
+ border-radius: 9999px;
138
+ font-size: 16px;
139
+ font-family: var(--font-body);
140
+ font-weight: 600;
141
+ cursor: pointer;
142
+ }
143
+ .btn-standard {
144
+ background: var(--color-pure-white);
145
+ color: var(--color-near-black);
146
+ padding: 12px 24px;
147
+ border: 1px solid var(--color-input-border);
148
+ border-radius: 6px;
149
+ font-size: 16px;
150
+ font-family: var(--font-body);
151
+ font-weight: 500;
152
+ cursor: pointer;
153
+ }
154
+
155
+ /* SECTIONS */
156
+ .section {
157
+ max-width: 1200px;
158
+ margin: 0 auto;
159
+ padding: 96px 40px;
160
+ }
161
+ .section-title {
162
+ font-family: var(--font-body);
163
+ font-size: 14px;
164
+ font-weight: 600;
165
+ text-transform: uppercase;
166
+ letter-spacing: 2.52px;
167
+ color: var(--section-label-color);
168
+ margin-bottom: 12px;
169
+ }
170
+ .section-heading {
171
+ font-family: var(--font-body);
172
+ font-size: 48px;
173
+ font-weight: 600;
174
+ line-height: 1.10;
175
+ letter-spacing: -2px;
176
+ margin-bottom: 48px;
177
+ color: var(--color-expo-black);
178
+ }
179
+ .section-divider {
180
+ border: none;
181
+ border-top: 1px solid var(--border-subtle);
182
+ margin: 0 40px;
183
+ max-width: 1200px;
184
+ margin-left: auto;
185
+ margin-right: auto;
186
+ }
187
+
188
+ /* COLOR PALETTE */
189
+ .color-group { margin-bottom: 40px; }
190
+ .color-group-title { font-size: 20px; font-weight: 600; line-height: 1.2; margin-bottom: 20px; color: var(--text-secondary); }
191
+ .color-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
192
+ .color-swatch { border: 1px solid var(--border-color); border-radius: 8px; overflow: hidden; }
193
+ .color-swatch-block { height: 80px; }
194
+ .color-swatch-info { padding: 12px; background: var(--bg-card); }
195
+ .color-swatch-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; }
196
+ .color-swatch-hex { font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); margin-bottom: 4px; }
197
+ .color-swatch-role { font-size: 12px; color: var(--text-muted); line-height: 1.4; }
198
+
199
+ /* TYPOGRAPHY */
200
+ .type-sample { margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid var(--border-subtle); }
201
+ .type-sample:last-child { border-bottom: none; }
202
+ .type-sample-text { margin-bottom: 8px; }
203
+ .type-sample-label { font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); }
204
+
205
+ /* BUTTONS */
206
+ .button-row { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
207
+ .button-demo { text-align: center; }
208
+ .button-demo-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-muted); margin-top: 10px; text-transform: uppercase; letter-spacing: 0.55px; }
209
+ .btn-dark-pill {
210
+ background: var(--color-expo-black);
211
+ color: var(--color-pure-white);
212
+ padding: 12px 28px;
213
+ border: none;
214
+ border-radius: 9999px;
215
+ font-size: 16px;
216
+ font-family: var(--font-body);
217
+ font-weight: 600;
218
+ cursor: pointer;
219
+ }
220
+ .btn-white-standard {
221
+ background: var(--color-pure-white);
222
+ color: var(--color-near-black);
223
+ padding: 12px 24px;
224
+ border: 1px solid var(--color-input-border);
225
+ border-radius: 6px;
226
+ font-size: 16px;
227
+ font-family: var(--font-body);
228
+ font-weight: 500;
229
+ cursor: pointer;
230
+ }
231
+ .btn-dark-rounded {
232
+ background: var(--color-expo-black);
233
+ color: var(--color-pure-white);
234
+ padding: 12px 24px;
235
+ border: none;
236
+ border-radius: 32px;
237
+ font-size: 16px;
238
+ font-family: var(--font-body);
239
+ font-weight: 600;
240
+ cursor: pointer;
241
+ }
242
+
243
+ /* CARDS */
244
+ .card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
245
+ .card { background: var(--bg-card); border-radius: 8px; padding: 28px; }
246
+ .card-standard { border: 1px solid var(--border-color); }
247
+ .card-elevated { border: 1px solid var(--border-color); box-shadow: rgba(0,0,0,0.08) 0px 3px 6px, rgba(0,0,0,0.07) 0px 2px 4px; }
248
+ .card-glow { border: 1px solid var(--border-color); box-shadow: rgba(0,0,0,0.1) 0px 10px 20px, rgba(0,0,0,0.05) 0px 3px 6px; border-radius: 16px; }
249
+ .card h3 { font-family: var(--font-body); font-size: 20px; font-weight: 600; line-height: 1.20; letter-spacing: -0.25px; margin-bottom: 12px; color: var(--color-near-black); }
250
+ .card p { color: var(--text-secondary); font-size: 16px; line-height: 1.40; }
251
+ .card-label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.55px; color: var(--color-expo-black); margin-bottom: 16px; }
252
+
253
+ /* CODE BLOCK */
254
+ .code-block {
255
+ background: var(--color-near-black);
256
+ border: 1px solid var(--color-dark-slate);
257
+ border-radius: 8px;
258
+ padding: 20px 24px;
259
+ margin-top: 24px;
260
+ font-family: var(--font-mono);
261
+ font-size: 14px;
262
+ line-height: 1.4;
263
+ color: #f2f2f2;
264
+ overflow-x: auto;
265
+ }
266
+ .code-block .keyword { color: var(--color-link-cobalt); }
267
+ .code-block .string { color: #22c55e; }
268
+ .code-block .comment { color: var(--color-pewter); }
269
+
270
+ /* SPACING */
271
+ .spacing-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
272
+ .spacing-item { text-align: center; }
273
+ .spacing-box { background: rgba(0,0,0,0.06); border: 1px solid rgba(0,0,0,0.12); border-radius: 2px; margin-bottom: 8px; }
274
+ .spacing-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-muted); }
275
+
276
+ /* RADIUS */
277
+ .radius-row { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
278
+ .radius-item { text-align: center; }
279
+ .radius-box { width: 80px; height: 80px; background: var(--bg-card); border: 1px solid var(--border-color); margin-bottom: 8px; }
280
+ .radius-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-muted); }
281
+ .radius-context { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
282
+
283
+ /* ELEVATION */
284
+ .elevation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
285
+ .elevation-card { background: var(--bg-card); border-radius: 8px; padding: 24px; min-height: 140px; display: flex; flex-direction: column; justify-content: space-between; }
286
+ .elevation-flat { border: none; background: var(--bg-page); }
287
+ .elevation-surface { border: none; background: var(--bg-card); }
288
+ .elevation-whisper { border: 1px solid var(--border-color); box-shadow: rgba(0,0,0,0.08) 0px 3px 6px, rgba(0,0,0,0.07) 0px 2px 4px; }
289
+ .elevation-elevated { border: 1px solid var(--border-color); box-shadow: rgba(0,0,0,0.1) 0px 10px 20px, rgba(0,0,0,0.05) 0px 3px 6px; }
290
+ .elevation-modal { border: 1px solid var(--border-color); box-shadow: rgba(0,0,0,0.15) 0px 20px 40px, rgba(0,0,0,0.08) 0px 8px 16px; }
291
+ .elevation-name { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
292
+ .elevation-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
293
+ .elevation-level { font-family: var(--font-mono); font-size: 11px; color: var(--color-expo-black); text-transform: uppercase; letter-spacing: 0.55px; margin-top: 12px; }
294
+
295
+ /* RESPONSIVE */
296
+ @media (max-width: 768px) {
297
+ .nav { padding: 12px 20px; }
298
+ .nav-links a:not(.nav-cta-wrapper) { display: none; }
299
+ .nav-status { display: none; }
300
+ .hero { padding: 80px 20px 60px; }
301
+ .hero h1 { font-size: 36px; letter-spacing: -1.5px; }
302
+ .section { padding: 60px 20px; }
303
+ .section-heading { font-size: 28px; letter-spacing: -1px; }
304
+ .color-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
305
+ .card-grid { grid-template-columns: 1fr; }
306
+ .hero-buttons { flex-direction: column; align-items: center; }
307
+ .button-row { flex-direction: column; align-items: flex-start; }
308
+ }
309
+ </style>
310
+ </head>
311
+ <body>
312
+
313
+ <!-- NAV -->
314
+ <nav class="nav">
315
+ <div class="nav-brand">
316
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
317
+ Expo
318
+ </div>
319
+ <div class="nav-links">
320
+ <a href="#colors">Colors</a>
321
+ <a href="#typography">Typography</a>
322
+ <a href="#buttons">Buttons</a>
323
+ <a href="#cards">Cards</a>
324
+ <a href="#spacing">Spacing</a>
325
+ <a href="#elevation">Elevation</a>
326
+ <div class="nav-status"><span class="nav-status-dot"></span> All Systems Operational</div>
327
+ <button class="nav-cta">Sign Up</button>
328
+ </div>
329
+ </nav>
330
+
331
+ <!-- HERO -->
332
+ <section class="hero">
333
+ <h1>Design System Preview:<br>Expo</h1>
334
+ <p>Auto-generated design token catalog from DESIGN.md</p>
335
+ <div class="hero-buttons">
336
+ <button class="btn-primary-pill">Explore Tokens</button>
337
+ <button class="btn-standard">View Source</button>
338
+ </div>
339
+ </section>
340
+
341
+ <hr class="section-divider">
342
+
343
+ <!-- COLORS -->
344
+ <section class="section" id="colors">
345
+ <div class="section-title">01 / Color Palette</div>
346
+ <h2 class="section-heading">Color Palette & Roles</h2>
347
+
348
+ <div class="color-group">
349
+ <h3 class="color-group-title">Primary</h3>
350
+ <div class="color-grid">
351
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #000000;"></div><div class="color-swatch-info"><div class="color-swatch-name">Expo Black</div><div class="color-swatch-hex">#000000</div><div class="color-swatch-role">Primary headlines, CTA buttons, brand anchor</div></div></div>
352
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #1c2024;"></div><div class="color-swatch-info"><div class="color-swatch-name">Near Black</div><div class="color-swatch-hex">#1c2024</div><div class="color-swatch-role">Body text, softer than pure black for reading</div></div></div>
353
+ </div>
354
+ </div>
355
+
356
+ <div class="color-group">
357
+ <h3 class="color-group-title">Secondary & Accent</h3>
358
+ <div class="color-grid">
359
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #0d74ce;"></div><div class="color-swatch-info"><div class="color-swatch-name">Link Cobalt</div><div class="color-swatch-hex">#0d74ce</div><div class="color-swatch-role">Standard links, interactive signals</div></div></div>
360
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #476cff;"></div><div class="color-swatch-info"><div class="color-swatch-name">Legal Blue</div><div class="color-swatch-hex">#476cff</div><div class="color-swatch-role">Footer/legal links, brighter accent</div></div></div>
361
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #47c2ff;"></div><div class="color-swatch-info"><div class="color-swatch-name">Widget Sky</div><div class="color-swatch-hex">#47c2ff</div><div class="color-swatch-role">Widget branding, lightest accent</div></div></div>
362
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #8145b5;"></div><div class="color-swatch-info"><div class="color-swatch-name">Preview Purple</div><div class="color-swatch-hex">#8145b5</div><div class="color-swatch-role">Beta/preview feature indicators</div></div></div>
363
+ </div>
364
+ </div>
365
+
366
+ <div class="color-group">
367
+ <h3 class="color-group-title">Surface & Background</h3>
368
+ <div class="color-grid">
369
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #f0f0f3; border-bottom: 1px solid #e0e1e6;"></div><div class="color-swatch-info"><div class="color-swatch-name">Cloud Gray</div><div class="color-swatch-hex">#f0f0f3</div><div class="color-swatch-role">Primary page background</div></div></div>
370
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #ffffff; border-bottom: 1px solid #e0e1e6;"></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, elevated containers</div></div></div>
371
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #1a1a1a;"></div><div class="color-swatch-info"><div class="color-swatch-name">Widget Dark</div><div class="color-swatch-hex">#1a1a1a</div><div class="color-swatch-role">Dark theme widgets, overlays</div></div></div>
372
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #171717;"></div><div class="color-swatch-info"><div class="color-swatch-name">Banner Dark</div><div class="color-swatch-hex">#171717</div><div class="color-swatch-role">Promo banners, high-contrast surfaces</div></div></div>
373
+ </div>
374
+ </div>
375
+
376
+ <div class="color-group">
377
+ <h3 class="color-group-title">Neutrals & Text</h3>
378
+ <div class="color-grid">
379
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #60646c;"></div><div class="color-swatch-info"><div class="color-swatch-name">Slate Gray</div><div class="color-swatch-hex">#60646c</div><div class="color-swatch-role">Secondary text (305 instances)</div></div></div>
380
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #555860;"></div><div class="color-swatch-info"><div class="color-swatch-name">Mid Slate</div><div class="color-swatch-hex">#555860</div><div class="color-swatch-role">Emphasized secondary text</div></div></div>
381
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #b0b4ba;"></div><div class="color-swatch-info"><div class="color-swatch-name">Silver</div><div class="color-swatch-hex">#b0b4ba</div><div class="color-swatch-role">Tertiary text, placeholders, metadata</div></div></div>
382
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #363a3f;"></div><div class="color-swatch-info"><div class="color-swatch-name">Dark Slate</div><div class="color-swatch-hex">#363a3f</div><div class="color-swatch-role">Borders on dark surfaces, switch tracks</div></div></div>
383
+ </div>
384
+ </div>
385
+
386
+ <div class="color-group">
387
+ <h3 class="color-group-title">Semantic</h3>
388
+ <div class="color-grid">
389
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #ab6400;"></div><div class="color-swatch-info"><div class="color-swatch-name">Warning Amber</div><div class="color-swatch-hex">#ab6400</div><div class="color-swatch-role">Warning states, deep amber for seriousness</div></div></div>
390
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #eb8e90;"></div><div class="color-swatch-info"><div class="color-swatch-name">Destructive Rose</div><div class="color-swatch-hex">#eb8e90</div><div class="color-swatch-role">Disabled destructive actions, gentle alarm</div></div></div>
391
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #e0e1e6;"></div><div class="color-swatch-info"><div class="color-swatch-name">Border Lavender</div><div class="color-swatch-hex">#e0e1e6</div><div class="color-swatch-role">Standard card/container borders</div></div></div>
392
+ <div class="color-swatch"><div class="color-swatch-block" style="background: #d9d9e0;"></div><div class="color-swatch-info"><div class="color-swatch-name">Input Border</div><div class="color-swatch-hex">#d9d9e0</div><div class="color-swatch-role">Buttons, form elements, interactive borders</div></div></div>
393
+ </div>
394
+ </div>
395
+ </section>
396
+
397
+ <hr class="section-divider">
398
+
399
+ <!-- TYPOGRAPHY -->
400
+ <section class="section" id="typography">
401
+ <div class="section-title">02 / Typography Scale</div>
402
+ <h2 class="section-heading">Typography Rules</h2>
403
+
404
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-body); font-size: 60px; font-weight: 700; line-height: 1.10; letter-spacing: -3px; color: var(--color-expo-black);">Display Hero</div><div class="type-sample-label">Display / Hero &mdash; 64px / 700&ndash;900 / 1.10 / -3px &mdash; Inter</div></div>
405
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-body); font-size: 48px; font-weight: 600; line-height: 1.10; letter-spacing: -2px; color: var(--color-expo-black);">Section Heading</div><div class="type-sample-label">Section Heading &mdash; 48px / 600 / 1.10 / -2px &mdash; Inter</div></div>
406
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-body); font-size: 20px; font-weight: 600; line-height: 1.20; letter-spacing: -0.25px;">Sub-heading</div><div class="type-sample-label">Sub-heading &mdash; 20px / 600 / 1.20 / -0.25px &mdash; Inter</div></div>
407
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-body); font-size: 18px; font-weight: 400; line-height: 1.40; color: var(--text-secondary);">Body large text for intro paragraphs and section descriptions with comfortable reading rhythm.</div><div class="type-sample-label">Body Large &mdash; 18px / 400&ndash;500 / 1.40 / normal &mdash; Inter</div></div>
408
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-body); font-size: 16px; font-weight: 400; line-height: 1.40;">Standard body text for paragraphs, navigation links, and button labels. Inter provides geometric precision at every weight.</div><div class="type-sample-label">Body / Button &mdash; 16px / 400&ndash;700 / 1.25&ndash;1.40 / normal &mdash; Inter</div></div>
409
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-body); font-size: 14px; font-weight: 500; line-height: 1.40; color: var(--text-secondary);">Caption text for descriptions and metadata labels</div><div class="type-sample-label">Caption / Label &mdash; 14px / 400&ndash;600 / 1.00&ndash;1.40 / normal &mdash; Inter</div></div>
410
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-body); font-size: 12px; font-weight: 500; line-height: 1.00; color: var(--text-muted);">Tag / Small Badge</div><div class="type-sample-label">Tag / Small &mdash; 12px / 500 / 1.00&ndash;1.60 / normal &mdash; Inter</div></div>
411
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-mono); font-size: 16px; font-weight: 400; line-height: 1.40;">npx create-expo-app@latest my-app</div><div class="type-sample-label">Code Body &mdash; 16px / 400&ndash;600 / 1.40 / normal &mdash; JetBrains Mono</div></div>
412
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-mono); font-size: 14px; font-weight: 400; line-height: 1.40;">import { Camera } from "expo-camera";</div><div class="type-sample-label">Code Caption &mdash; 14px / 400&ndash;600 / 1.40 / normal &mdash; JetBrains Mono</div></div>
413
+ <div class="type-sample"><div class="type-sample-text" style="font-family: var(--font-mono); font-size: 12px; font-weight: 400; line-height: 1.60; text-transform: uppercase; color: var(--text-muted);">REACT NATIVE</div><div class="type-sample-label">Code Small / Tag &mdash; 12px / 400 / 1.60 / uppercase &mdash; JetBrains Mono</div></div>
414
+ </section>
415
+
416
+ <hr class="section-divider">
417
+
418
+ <!-- BUTTONS -->
419
+ <section class="section" id="buttons">
420
+ <div class="section-title">03 / Button Variants</div>
421
+ <h2 class="section-heading">Buttons</h2>
422
+
423
+ <div class="button-row">
424
+ <div class="button-demo"><button class="btn-dark-pill">Get Started</button><div class="button-demo-label">Primary Pill (Dark)</div></div>
425
+ <div class="button-demo"><button class="btn-white-standard">View Docs</button><div class="button-demo-label">Standard (White)</div></div>
426
+ <div class="button-demo"><button class="btn-dark-rounded">Sign Up Free</button><div class="button-demo-label">Dark Rounded (32px)</div></div>
427
+ </div>
428
+
429
+ <div class="code-block" style="margin-top: 40px;">
430
+ <span class="comment">// Get started with Expo</span><br>
431
+ <span class="keyword">$</span> npx create-expo-app@latest my-app
432
+ </div>
433
+ </section>
434
+
435
+ <hr class="section-divider">
436
+
437
+ <!-- CARDS -->
438
+ <section class="section" id="cards">
439
+ <div class="section-title">04 / Card Examples</div>
440
+ <h2 class="section-heading">Cards & Containers</h2>
441
+
442
+ <div class="card-grid">
443
+ <div class="card card-standard">
444
+ <div class="card-label">Standard Card</div>
445
+ <h3>Border Lavender Container</h3>
446
+ <p>Standard content card with 1px Border Lavender border and 8px radius. White surface clearly lifted from Cloud Gray page background.</p>
447
+ </div>
448
+ <div class="card card-elevated">
449
+ <div class="card-label">Elevated (Whisper)</div>
450
+ <h3>Whisper Shadow Lift</h3>
451
+ <p>Subtle card elevation with whisper-soft shadow. Barely perceptible lift for hover states and highlighted content.</p>
452
+ </div>
453
+ <div class="card card-glow">
454
+ <div class="card-label">Featured (Glow)</div>
455
+ <h3>Standard Elevation</h3>
456
+ <p>Clear floating elevation with generous 16px radius. For feature showcases, product screenshots, and hero content containers.</p>
457
+ </div>
458
+ </div>
459
+ </section>
460
+
461
+ <hr class="section-divider">
462
+
463
+ <!-- SPACING -->
464
+ <section class="section" id="spacing">
465
+ <div class="section-title">05 / Spacing Scale</div>
466
+ <h2 class="section-heading">Spacing System</h2>
467
+ <p style="color: var(--text-secondary); margin-bottom: 32px;">Base unit: 8px. Scale builds from 1px to 144px.</p>
468
+
469
+ <div class="spacing-row">
470
+ <div class="spacing-item"><div class="spacing-box" style="width: 4px; height: 4px;"></div><div class="spacing-label">1px</div></div>
471
+ <div class="spacing-item"><div class="spacing-box" style="width: 8px; height: 8px;"></div><div class="spacing-label">2px</div></div>
472
+ <div class="spacing-item"><div class="spacing-box" style="width: 16px; height: 16px;"></div><div class="spacing-label">4px</div></div>
473
+ <div class="spacing-item"><div class="spacing-box" style="width: 32px; height: 32px;"></div><div class="spacing-label">8px</div></div>
474
+ <div class="spacing-item"><div class="spacing-box" style="width: 48px; height: 48px;"></div><div class="spacing-label">12px</div></div>
475
+ <div class="spacing-item"><div class="spacing-box" style="width: 64px; height: 64px;"></div><div class="spacing-label">16px</div></div>
476
+ <div class="spacing-item"><div class="spacing-box" style="width: 96px; height: 96px;"></div><div class="spacing-label">24px</div></div>
477
+ <div class="spacing-item"><div class="spacing-box" style="width: 128px; height: 128px;"></div><div class="spacing-label">32px</div></div>
478
+ <div class="spacing-item"><div class="spacing-box" style="width: 160px; height: 160px;"></div><div class="spacing-label">40px</div></div>
479
+ <div class="spacing-item"><div class="spacing-box" style="width: 192px; height: 192px;"></div><div class="spacing-label">48px</div></div>
480
+ <div class="spacing-item"><div class="spacing-box" style="width: 256px; height: 256px;"></div><div class="spacing-label">64px</div></div>
481
+ </div>
482
+ </section>
483
+
484
+ <hr class="section-divider">
485
+
486
+ <!-- BORDER RADIUS -->
487
+ <section class="section">
488
+ <div class="section-title">06 / Border Radius Scale</div>
489
+ <h2 class="section-heading">Border Radius</h2>
490
+
491
+ <div class="radius-row">
492
+ <div class="radius-item"><div class="radius-box" style="border-radius: 4px;"></div><div class="radius-label">4px</div><div class="radius-context">Nearly squared</div></div>
493
+ <div class="radius-item"><div class="radius-box" style="border-radius: 6px;"></div><div class="radius-label">6px</div><div class="radius-context">Buttons, inputs</div></div>
494
+ <div class="radius-item"><div class="radius-box" style="border-radius: 8px;"></div><div class="radius-label">8px</div><div class="radius-context">Standard cards</div></div>
495
+ <div class="radius-item"><div class="radius-box" style="border-radius: 16px;"></div><div class="radius-label">16px</div><div class="radius-context">Feature panels</div></div>
496
+ <div class="radius-item"><div class="radius-box" style="border-radius: 24px;"></div><div class="radius-label">24px</div><div class="radius-context">Images, videos</div></div>
497
+ <div class="radius-item"><div class="radius-box" style="border-radius: 32px;"></div><div class="radius-label">32px</div><div class="radius-context">Hero CTAs</div></div>
498
+ <div class="radius-item"><div class="radius-box" style="border-radius: 9999px;"></div><div class="radius-label">9999px</div><div class="radius-context">Pill-shaped</div></div>
499
+ </div>
500
+ </section>
501
+
502
+ <hr class="section-divider">
503
+
504
+ <!-- ELEVATION -->
505
+ <section class="section" id="elevation">
506
+ <div class="section-title">07 / Elevation & Depth</div>
507
+ <h2 class="section-heading">Depth & Elevation</h2>
508
+
509
+ <div class="elevation-grid">
510
+ <div class="elevation-card elevation-flat">
511
+ <div><div class="elevation-name">Flat</div><div class="elevation-desc">No shadow. Cloud Gray page background, inline text.</div></div>
512
+ <div class="elevation-level">Level 0</div>
513
+ </div>
514
+ <div class="elevation-card elevation-surface">
515
+ <div><div class="elevation-name">Surface</div><div class="elevation-desc">White bg, no shadow. Standard white cards on Cloud Gray.</div></div>
516
+ <div class="elevation-level">Level 1</div>
517
+ </div>
518
+ <div class="elevation-card elevation-whisper">
519
+ <div><div class="elevation-name">Whisper</div><div class="elevation-desc">Whisper-soft shadow. Subtle card lift, hover states.</div></div>
520
+ <div class="elevation-level">Level 2</div>
521
+ </div>
522
+ <div class="elevation-card elevation-elevated">
523
+ <div><div class="elevation-name">Elevated</div><div class="elevation-desc">Standard floating shadow. Feature showcases, screenshots.</div></div>
524
+ <div class="elevation-level">Level 3</div>
525
+ </div>
526
+ <div class="elevation-card elevation-modal">
527
+ <div><div class="elevation-name">Modal</div><div class="elevation-desc">Heavy shadow with dark overlay. Dialogs, overlays.</div></div>
528
+ <div class="elevation-level">Level 4</div>
529
+ </div>
530
+ </div>
531
+ </section>
532
+
533
+ <div style="height: 80px;"></div>
534
+
535
+ </body>
536
+ </html>