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,1140 @@
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: Sanity (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=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet">
10
+ <style>
11
+ :root {
12
+ /* Primary */
13
+ --bg-canvas: #f7f7f7;
14
+ --bg-surface: #ffffff;
15
+ --bg-elevated: #f0f0f0;
16
+ --bg-dark-section: #0b0b0b;
17
+ --bg-dark-surface: #212121;
18
+ /* Brand */
19
+ --sanity-red: #f36458;
20
+ --sanity-red-hover: #e0544a;
21
+ --electric-blue: #0052ef;
22
+ --blue-300: #55beff;
23
+ --blue-dim: #afe3ff;
24
+ --neon-green: #19d600;
25
+ --error-red: #dd0000;
26
+ --accent-magenta: #e600ff;
27
+ /* Text */
28
+ --text-primary: #0b0b0b;
29
+ --text-secondary: #797979;
30
+ --text-tertiary: #b9b9b9;
31
+ --text-on-dark: #ffffff;
32
+ --text-on-dark-secondary: #b9b9b9;
33
+ --text-on-dark-tertiary: #797979;
34
+ /* Border */
35
+ --border-light: #ededed;
36
+ --border-medium: #b9b9b9;
37
+ --border-dark: #212121;
38
+ --border-subtle-dark: #353535;
39
+ /* Shadow */
40
+ --shadow-card: 0 1px 3px rgba(0,0,0,0.08);
41
+ --shadow-elevated: 0 4px 12px rgba(0,0,0,0.06);
42
+ /* Font */
43
+ --font-display: 'Space Grotesk', ui-sans-serif, system-ui, sans-serif;
44
+ --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
45
+ /* Radius */
46
+ --radius-xs: 3px;
47
+ --radius-sm: 5px;
48
+ --radius-md: 6px;
49
+ --radius-lg: 12px;
50
+ --radius-pill: 99999px;
51
+ }
52
+
53
+ * { margin: 0; padding: 0; box-sizing: border-box; }
54
+
55
+ body {
56
+ background: var(--bg-canvas);
57
+ color: var(--text-primary);
58
+ font-family: var(--font-display);
59
+ font-size: 16px;
60
+ font-weight: 400;
61
+ line-height: 1.50;
62
+ -webkit-font-smoothing: antialiased;
63
+ }
64
+
65
+ /* NAV */
66
+ .nav {
67
+ position: sticky;
68
+ top: 0;
69
+ z-index: 100;
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: space-between;
73
+ padding: 14px 32px;
74
+ background: rgba(255,255,255,0.88);
75
+ backdrop-filter: blur(16px) saturate(180%);
76
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
77
+ border-bottom: 1px solid var(--border-light);
78
+ }
79
+ .nav-brand {
80
+ font-size: 15px;
81
+ font-weight: 600;
82
+ color: var(--text-primary);
83
+ text-decoration: none;
84
+ letter-spacing: -0.3px;
85
+ }
86
+ .nav-links { display: flex; gap: 24px; align-items: center; }
87
+ .nav-links a {
88
+ font-size: 14px;
89
+ color: var(--text-secondary);
90
+ text-decoration: none;
91
+ font-weight: 500;
92
+ transition: color 0.15s;
93
+ }
94
+ .nav-links a:hover { color: var(--electric-blue); }
95
+
96
+ /* HERO */
97
+ .hero {
98
+ background: var(--bg-dark-section);
99
+ padding: 100px 32px 96px;
100
+ text-align: center;
101
+ }
102
+ .hero h1 {
103
+ font-size: 80px;
104
+ font-weight: 700;
105
+ line-height: 1.00;
106
+ letter-spacing: -3.6px;
107
+ color: var(--text-on-dark);
108
+ margin-bottom: 20px;
109
+ max-width: 900px;
110
+ margin-left: auto;
111
+ margin-right: auto;
112
+ }
113
+ .hero p {
114
+ font-size: 18px;
115
+ color: var(--text-on-dark-secondary);
116
+ line-height: 1.50;
117
+ letter-spacing: -0.18px;
118
+ max-width: 560px;
119
+ margin: 0 auto 36px;
120
+ }
121
+ .hero-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
122
+
123
+ /* SECTIONS */
124
+ .section {
125
+ padding: 80px 32px;
126
+ max-width: 1200px;
127
+ margin: 0 auto;
128
+ }
129
+ .section-dark {
130
+ background: var(--bg-dark-section);
131
+ max-width: 100%;
132
+ padding: 80px 32px;
133
+ }
134
+ .section-dark .section-inner {
135
+ max-width: 1200px;
136
+ margin: 0 auto;
137
+ }
138
+ .section-title {
139
+ font-size: 38px;
140
+ font-weight: 600;
141
+ line-height: 1.10;
142
+ letter-spacing: -1.14px;
143
+ margin-bottom: 12px;
144
+ }
145
+ .section-subtitle {
146
+ font-size: 16px;
147
+ color: var(--text-secondary);
148
+ line-height: 1.50;
149
+ margin-bottom: 48px;
150
+ max-width: 600px;
151
+ }
152
+ .section-dark .section-title { color: var(--text-on-dark); }
153
+ .section-dark .section-subtitle { color: var(--text-on-dark-secondary); }
154
+
155
+ /* COLOR PALETTE */
156
+ .color-grid {
157
+ display: grid;
158
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
159
+ gap: 16px;
160
+ }
161
+ .color-card {
162
+ border-radius: var(--radius-md);
163
+ overflow: hidden;
164
+ border: 1px solid var(--border-light);
165
+ background: var(--bg-surface);
166
+ }
167
+ .color-swatch {
168
+ height: 96px;
169
+ width: 100%;
170
+ }
171
+ .color-info {
172
+ padding: 12px 14px;
173
+ }
174
+ .color-name {
175
+ font-size: 13px;
176
+ font-weight: 600;
177
+ letter-spacing: -0.13px;
178
+ margin-bottom: 2px;
179
+ }
180
+ .color-hex {
181
+ font-size: 12px;
182
+ font-family: var(--font-mono);
183
+ color: var(--text-secondary);
184
+ }
185
+ .color-role {
186
+ font-size: 11px;
187
+ color: var(--text-tertiary);
188
+ margin-top: 4px;
189
+ }
190
+
191
+ /* TYPOGRAPHY */
192
+ .type-scale { display: flex; flex-direction: column; gap: 32px; }
193
+ .type-row {
194
+ display: grid;
195
+ grid-template-columns: 180px 1fr;
196
+ gap: 24px;
197
+ align-items: baseline;
198
+ padding-bottom: 24px;
199
+ border-bottom: 1px solid var(--border-light);
200
+ }
201
+ .type-meta {
202
+ font-size: 12px;
203
+ font-family: var(--font-mono);
204
+ color: var(--text-secondary);
205
+ line-height: 1.60;
206
+ }
207
+ .type-meta span { display: block; }
208
+ .type-meta .label {
209
+ font-size: 10px;
210
+ text-transform: uppercase;
211
+ color: var(--text-tertiary);
212
+ letter-spacing: 0.5px;
213
+ margin-bottom: 2px;
214
+ }
215
+
216
+ /* BUTTONS */
217
+ .button-grid {
218
+ display: flex;
219
+ flex-wrap: wrap;
220
+ gap: 16px;
221
+ align-items: center;
222
+ }
223
+ .btn {
224
+ display: inline-flex;
225
+ align-items: center;
226
+ justify-content: center;
227
+ padding: 10px 20px;
228
+ font-family: var(--font-display);
229
+ font-size: 15px;
230
+ font-weight: 500;
231
+ line-height: 1.30;
232
+ letter-spacing: -0.15px;
233
+ text-decoration: none;
234
+ cursor: pointer;
235
+ transition: all 0.18s ease;
236
+ border: none;
237
+ outline: none;
238
+ }
239
+ .btn-primary {
240
+ background: var(--sanity-red);
241
+ color: #ffffff;
242
+ border-radius: var(--radius-pill);
243
+ padding: 12px 28px;
244
+ }
245
+ .btn-primary:hover { background: var(--electric-blue); }
246
+
247
+ .btn-secondary {
248
+ background: var(--bg-dark-section);
249
+ color: var(--text-on-dark-secondary);
250
+ border-radius: var(--radius-pill);
251
+ padding: 12px 28px;
252
+ }
253
+ .btn-secondary:hover { background: var(--electric-blue); color: #fff; }
254
+
255
+ .btn-outline {
256
+ background: var(--bg-surface);
257
+ color: var(--text-primary);
258
+ border: 1px solid var(--text-primary);
259
+ border-radius: var(--radius-pill);
260
+ padding: 11px 27px;
261
+ }
262
+ .btn-outline:hover { background: var(--electric-blue); color: #fff; border-color: var(--electric-blue); }
263
+
264
+ .btn-ghost {
265
+ background: var(--bg-elevated);
266
+ color: var(--text-secondary);
267
+ border-radius: var(--radius-sm);
268
+ padding: 8px 16px;
269
+ font-size: 13px;
270
+ }
271
+ .btn-ghost:hover { background: var(--electric-blue); color: #fff; }
272
+
273
+ .btn-label {
274
+ background: transparent;
275
+ color: var(--text-secondary);
276
+ border-radius: var(--radius-sm);
277
+ padding: 6px 12px;
278
+ font-size: 11px;
279
+ font-weight: 600;
280
+ text-transform: uppercase;
281
+ font-family: var(--font-mono);
282
+ }
283
+ .btn-label:hover { color: var(--electric-blue); }
284
+
285
+ .btn-sm {
286
+ font-size: 13px;
287
+ padding: 8px 18px;
288
+ }
289
+
290
+ /* Buttons on dark background */
291
+ .btn-dark-primary {
292
+ background: var(--sanity-red);
293
+ color: #ffffff;
294
+ border-radius: var(--radius-pill);
295
+ padding: 12px 28px;
296
+ }
297
+ .btn-dark-primary:hover { background: var(--electric-blue); }
298
+ .btn-dark-outline {
299
+ background: transparent;
300
+ color: #ffffff;
301
+ border: 1px solid #ffffff;
302
+ border-radius: var(--radius-pill);
303
+ padding: 11px 27px;
304
+ }
305
+ .btn-dark-outline:hover { background: var(--electric-blue); border-color: var(--electric-blue); }
306
+
307
+ /* CARDS */
308
+ .card-grid {
309
+ display: grid;
310
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
311
+ gap: 20px;
312
+ }
313
+ .card {
314
+ background: var(--bg-surface);
315
+ border: 1px solid var(--border-light);
316
+ border-radius: var(--radius-md);
317
+ padding: 28px;
318
+ transition: border-color 0.15s;
319
+ }
320
+ .card:hover { border-color: var(--border-medium); }
321
+ .card-tag {
322
+ font-size: 11px;
323
+ font-family: var(--font-mono);
324
+ text-transform: uppercase;
325
+ color: var(--text-tertiary);
326
+ letter-spacing: 0.5px;
327
+ margin-bottom: 12px;
328
+ }
329
+ .card-title {
330
+ font-size: 20px;
331
+ font-weight: 600;
332
+ line-height: 1.20;
333
+ letter-spacing: -0.2px;
334
+ margin-bottom: 8px;
335
+ }
336
+ .card-body {
337
+ font-size: 14px;
338
+ line-height: 1.55;
339
+ color: var(--text-secondary);
340
+ }
341
+ .card-link {
342
+ display: inline-flex;
343
+ align-items: center;
344
+ gap: 6px;
345
+ font-size: 14px;
346
+ font-weight: 500;
347
+ color: var(--electric-blue);
348
+ text-decoration: none;
349
+ margin-top: 16px;
350
+ }
351
+ .card-link:hover { text-decoration: underline; }
352
+
353
+ /* Dark cards */
354
+ .card-dark {
355
+ background: var(--bg-dark-surface);
356
+ border: 1px solid var(--border-subtle-dark);
357
+ border-radius: var(--radius-md);
358
+ padding: 28px;
359
+ transition: border-color 0.15s;
360
+ }
361
+ .card-dark:hover { border-color: var(--text-on-dark-secondary); }
362
+ .card-dark .card-tag { color: var(--text-on-dark-tertiary); }
363
+ .card-dark .card-title { color: var(--text-on-dark); }
364
+ .card-dark .card-body { color: var(--text-on-dark-secondary); }
365
+
366
+ /* FORMS */
367
+ .form-grid {
368
+ display: grid;
369
+ grid-template-columns: 1fr 1fr;
370
+ gap: 20px;
371
+ max-width: 680px;
372
+ }
373
+ .form-group { display: flex; flex-direction: column; gap: 6px; }
374
+ .form-group.full-width { grid-column: 1 / -1; }
375
+ .form-label {
376
+ font-size: 13px;
377
+ font-weight: 500;
378
+ color: var(--text-primary);
379
+ letter-spacing: -0.13px;
380
+ }
381
+ .form-input {
382
+ font-family: var(--font-display);
383
+ font-size: 14px;
384
+ color: var(--text-primary);
385
+ background: var(--bg-surface);
386
+ border: 1px solid var(--border-light);
387
+ border-radius: var(--radius-xs);
388
+ padding: 10px 12px;
389
+ outline: none;
390
+ transition: border-color 0.15s, box-shadow 0.15s;
391
+ }
392
+ .form-input::placeholder { color: var(--text-tertiary); }
393
+ .form-input:focus {
394
+ border-color: var(--electric-blue);
395
+ box-shadow: 0 0 0 2px rgba(0, 82, 239, 0.15);
396
+ }
397
+ .form-textarea {
398
+ font-family: var(--font-display);
399
+ font-size: 14px;
400
+ color: var(--text-primary);
401
+ background: var(--bg-surface);
402
+ border: 1px solid var(--border-light);
403
+ border-radius: var(--radius-xs);
404
+ padding: 10px 12px;
405
+ outline: none;
406
+ resize: vertical;
407
+ min-height: 100px;
408
+ transition: border-color 0.15s, box-shadow 0.15s;
409
+ }
410
+ .form-textarea:focus {
411
+ border-color: var(--electric-blue);
412
+ box-shadow: 0 0 0 2px rgba(0, 82, 239, 0.15);
413
+ }
414
+ .form-helper {
415
+ font-size: 12px;
416
+ color: var(--text-tertiary);
417
+ }
418
+
419
+ /* Dark form */
420
+ .form-dark .form-label { color: var(--text-on-dark-secondary); }
421
+ .form-dark .form-input,
422
+ .form-dark .form-textarea {
423
+ background: var(--bg-dark-section);
424
+ border-color: var(--border-dark);
425
+ color: var(--text-on-dark);
426
+ }
427
+ .form-dark .form-input::placeholder,
428
+ .form-dark .form-textarea::placeholder { color: var(--text-on-dark-tertiary); }
429
+ .form-dark .form-input:focus,
430
+ .form-dark .form-textarea:focus {
431
+ border-color: var(--electric-blue);
432
+ box-shadow: 0 0 0 2px rgba(0, 82, 239, 0.25);
433
+ }
434
+ .form-dark .form-helper { color: var(--text-on-dark-tertiary); }
435
+
436
+ /* SPACING SCALE */
437
+ .spacing-grid {
438
+ display: flex;
439
+ flex-direction: column;
440
+ gap: 12px;
441
+ }
442
+ .spacing-row {
443
+ display: flex;
444
+ align-items: center;
445
+ gap: 16px;
446
+ }
447
+ .spacing-label {
448
+ width: 80px;
449
+ font-size: 12px;
450
+ font-family: var(--font-mono);
451
+ color: var(--text-secondary);
452
+ text-align: right;
453
+ flex-shrink: 0;
454
+ }
455
+ .spacing-bar {
456
+ height: 28px;
457
+ background: var(--sanity-red);
458
+ border-radius: var(--radius-xs);
459
+ opacity: 0.8;
460
+ transition: opacity 0.15s;
461
+ }
462
+ .spacing-bar:hover { opacity: 1; }
463
+
464
+ /* RADIUS SCALE */
465
+ .radius-grid {
466
+ display: flex;
467
+ flex-wrap: wrap;
468
+ gap: 24px;
469
+ align-items: end;
470
+ }
471
+ .radius-item {
472
+ display: flex;
473
+ flex-direction: column;
474
+ align-items: center;
475
+ gap: 10px;
476
+ }
477
+ .radius-box {
478
+ width: 80px;
479
+ height: 80px;
480
+ background: var(--bg-surface);
481
+ border: 2px solid var(--text-primary);
482
+ }
483
+ .radius-label {
484
+ font-size: 12px;
485
+ font-family: var(--font-mono);
486
+ color: var(--text-secondary);
487
+ text-align: center;
488
+ }
489
+
490
+ /* ELEVATION */
491
+ .elevation-grid {
492
+ display: flex;
493
+ flex-wrap: wrap;
494
+ gap: 24px;
495
+ align-items: start;
496
+ }
497
+ .elevation-item {
498
+ display: flex;
499
+ flex-direction: column;
500
+ align-items: center;
501
+ gap: 12px;
502
+ }
503
+ .elevation-box {
504
+ width: 160px;
505
+ height: 100px;
506
+ border-radius: var(--radius-md);
507
+ display: flex;
508
+ align-items: center;
509
+ justify-content: center;
510
+ font-size: 13px;
511
+ font-weight: 500;
512
+ }
513
+ .elevation-label {
514
+ font-size: 11px;
515
+ font-family: var(--font-mono);
516
+ color: var(--text-secondary);
517
+ text-align: center;
518
+ max-width: 160px;
519
+ }
520
+
521
+ /* DARK ELEVATION */
522
+ .elevation-dark-grid {
523
+ display: flex;
524
+ flex-wrap: wrap;
525
+ gap: 20px;
526
+ align-items: start;
527
+ }
528
+ .elevation-dark-item {
529
+ display: flex;
530
+ flex-direction: column;
531
+ align-items: center;
532
+ gap: 10px;
533
+ }
534
+ .elevation-dark-box {
535
+ width: 140px;
536
+ height: 90px;
537
+ border-radius: var(--radius-md);
538
+ display: flex;
539
+ align-items: center;
540
+ justify-content: center;
541
+ font-size: 12px;
542
+ font-weight: 500;
543
+ color: var(--text-on-dark-secondary);
544
+ }
545
+ .elevation-dark-label {
546
+ font-size: 11px;
547
+ font-family: var(--font-mono);
548
+ color: var(--text-on-dark-tertiary);
549
+ text-align: center;
550
+ max-width: 140px;
551
+ }
552
+
553
+ /* Utility */
554
+ .badge {
555
+ display: inline-block;
556
+ font-size: 11px;
557
+ font-family: var(--font-mono);
558
+ font-weight: 500;
559
+ text-transform: uppercase;
560
+ letter-spacing: 0.5px;
561
+ padding: 4px 10px;
562
+ border-radius: var(--radius-pill);
563
+ }
564
+ .badge-light { background: var(--bg-surface); color: var(--text-primary); border: 1px solid var(--border-light); }
565
+ .badge-dark { background: var(--bg-dark-section); color: var(--text-on-dark); }
566
+ .badge-red { background: var(--sanity-red); color: #fff; }
567
+ .badge-blue { background: var(--electric-blue); color: #fff; }
568
+ .badge-green { background: var(--neon-green); color: #0b0b0b; }
569
+
570
+ .divider {
571
+ border: none;
572
+ border-top: 1px solid var(--border-light);
573
+ margin: 0;
574
+ }
575
+ .divider-dark {
576
+ border: none;
577
+ border-top: 1px solid var(--border-dark);
578
+ margin: 0;
579
+ }
580
+
581
+ @media (max-width: 768px) {
582
+ .hero h1 { font-size: 42px; letter-spacing: -1.6px; }
583
+ .hero { padding: 64px 20px 60px; }
584
+ .section { padding: 56px 20px; }
585
+ .section-dark { padding: 56px 20px; }
586
+ .section-title { font-size: 28px; letter-spacing: -0.6px; }
587
+ .type-row { grid-template-columns: 1fr; }
588
+ .form-grid { grid-template-columns: 1fr; }
589
+ .card-grid { grid-template-columns: 1fr; }
590
+ .color-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
591
+ .nav-links { display: none; }
592
+ }
593
+ </style>
594
+ </head>
595
+ <body>
596
+
597
+ <!-- NAV -->
598
+ <nav class="nav">
599
+ <a href="#" class="nav-brand">awesome-design-md</a>
600
+ <div class="nav-links">
601
+ <a href="#colors">Colors</a>
602
+ <a href="#typography">Typography</a>
603
+ <a href="#buttons">Buttons</a>
604
+ <a href="#cards">Cards</a>
605
+ <a href="#forms">Forms</a>
606
+ <a href="#spacing">Spacing</a>
607
+ </div>
608
+ </nav>
609
+
610
+ <!-- HERO -->
611
+ <section class="hero">
612
+ <h1>Design System Inspired by Sanity</h1>
613
+ <p>Structured content meets precise design. A dark-first, engineering-grade design language built on achromatic neutrals, tight typography, and vivid accent punctuation.</p>
614
+ <div class="hero-buttons">
615
+ <button class="btn btn-dark-primary">Get Started</button>
616
+ <button class="btn btn-dark-outline">Contact Sales</button>
617
+ </div>
618
+ </section>
619
+
620
+ <!-- COLOR PALETTE -->
621
+ <section class="section" id="colors">
622
+ <h2 class="section-title">Color Palette</h2>
623
+ <p class="section-subtitle">Pure achromatic gray scale with vivid accent punctuation. No warm or cool bias in the neutral range.</p>
624
+ <div class="color-grid">
625
+ <div class="color-card">
626
+ <div class="color-swatch" style="background:#0b0b0b"></div>
627
+ <div class="color-info">
628
+ <div class="color-name">Sanity Black</div>
629
+ <div class="color-hex">#0b0b0b</div>
630
+ <div class="color-role">Primary canvas</div>
631
+ </div>
632
+ </div>
633
+ <div class="color-card">
634
+ <div class="color-swatch" style="background:#212121"></div>
635
+ <div class="color-info">
636
+ <div class="color-name">Dark Surface</div>
637
+ <div class="color-hex">#212121</div>
638
+ <div class="color-role">Elevated cards, containers</div>
639
+ </div>
640
+ </div>
641
+ <div class="color-card">
642
+ <div class="color-swatch" style="background:#353535"></div>
643
+ <div class="color-info">
644
+ <div class="color-name">Medium Border</div>
645
+ <div class="color-hex">#353535</div>
646
+ <div class="color-role">Visible borders, dividers</div>
647
+ </div>
648
+ </div>
649
+ <div class="color-card">
650
+ <div class="color-swatch" style="background:#797979"></div>
651
+ <div class="color-info">
652
+ <div class="color-name">Medium Gray</div>
653
+ <div class="color-hex">#797979</div>
654
+ <div class="color-role">Tertiary text, metadata</div>
655
+ </div>
656
+ </div>
657
+ <div class="color-card">
658
+ <div class="color-swatch" style="background:#b9b9b9"></div>
659
+ <div class="color-info">
660
+ <div class="color-name">Silver</div>
661
+ <div class="color-hex">#b9b9b9</div>
662
+ <div class="color-role">Secondary text on dark</div>
663
+ </div>
664
+ </div>
665
+ <div class="color-card">
666
+ <div class="color-swatch" style="background:#ededed"></div>
667
+ <div class="color-info">
668
+ <div class="color-name">Light Gray</div>
669
+ <div class="color-hex">#ededed</div>
670
+ <div class="color-role">Light surface, backgrounds</div>
671
+ </div>
672
+ </div>
673
+ <div class="color-card">
674
+ <div class="color-swatch" style="background:#ffffff; border-bottom: 1px solid #ededed"></div>
675
+ <div class="color-info">
676
+ <div class="color-name">White</div>
677
+ <div class="color-hex">#ffffff</div>
678
+ <div class="color-role">Primary text on dark, light surfaces</div>
679
+ </div>
680
+ </div>
681
+ <div class="color-card">
682
+ <div class="color-swatch" style="background:#f36458"></div>
683
+ <div class="color-info">
684
+ <div class="color-name">Sanity Red</div>
685
+ <div class="color-hex">#f36458</div>
686
+ <div class="color-role">Primary CTA</div>
687
+ </div>
688
+ </div>
689
+ <div class="color-card">
690
+ <div class="color-swatch" style="background:#0052ef"></div>
691
+ <div class="color-info">
692
+ <div class="color-name">Electric Blue</div>
693
+ <div class="color-hex">#0052ef</div>
694
+ <div class="color-role">Hover/active state, focus rings</div>
695
+ </div>
696
+ </div>
697
+ <div class="color-card">
698
+ <div class="color-swatch" style="background:#55beff"></div>
699
+ <div class="color-info">
700
+ <div class="color-name">Blue 300</div>
701
+ <div class="color-hex">#55beff</div>
702
+ <div class="color-role">Light blue accent</div>
703
+ </div>
704
+ </div>
705
+ <div class="color-card">
706
+ <div class="color-swatch" style="background:#19d600"></div>
707
+ <div class="color-info">
708
+ <div class="color-name">Neon Green</div>
709
+ <div class="color-hex">#19d600</div>
710
+ <div class="color-role">Success, accent green</div>
711
+ </div>
712
+ </div>
713
+ <div class="color-card">
714
+ <div class="color-swatch" style="background:#dd0000"></div>
715
+ <div class="color-info">
716
+ <div class="color-name">Error Red</div>
717
+ <div class="color-hex">#dd0000</div>
718
+ <div class="color-role">Errors, destructive actions</div>
719
+ </div>
720
+ </div>
721
+ </div>
722
+ </section>
723
+
724
+ <hr class="divider">
725
+
726
+ <!-- TYPOGRAPHY -->
727
+ <section class="section" id="typography">
728
+ <h2 class="section-title">Typography Scale</h2>
729
+ <p class="section-subtitle">Space Grotesk (substitute for waldenburgNormal) with tight negative tracking at display sizes. IBM Plex Mono for technical labels.</p>
730
+ <div class="type-scale">
731
+
732
+ <div class="type-row">
733
+ <div class="type-meta">
734
+ <span class="label">Display</span>
735
+ <span>80px / 700</span>
736
+ <span>LH: 1.00</span>
737
+ <span>LS: -3.6px</span>
738
+ </div>
739
+ <div style="font-size:80px; font-weight:700; line-height:1.00; letter-spacing:-3.6px;">Structure</div>
740
+ </div>
741
+
742
+ <div class="type-row">
743
+ <div class="type-meta">
744
+ <span class="label">Heading 1</span>
745
+ <span>48px / 600</span>
746
+ <span>LH: 1.08</span>
747
+ <span>LS: -1.68px</span>
748
+ </div>
749
+ <div style="font-size:48px; font-weight:600; line-height:1.08; letter-spacing:-1.68px;">Powers intelligence</div>
750
+ </div>
751
+
752
+ <div class="type-row">
753
+ <div class="type-meta">
754
+ <span class="label">Heading 2</span>
755
+ <span>38px / 600</span>
756
+ <span>LH: 1.10</span>
757
+ <span>LS: -1.14px</span>
758
+ </div>
759
+ <div style="font-size:38px; font-weight:600; line-height:1.10; letter-spacing:-1.14px;">Content operations</div>
760
+ </div>
761
+
762
+ <div class="type-row">
763
+ <div class="type-meta">
764
+ <span class="label">Heading 3</span>
765
+ <span>24px / 500</span>
766
+ <span>LH: 1.24</span>
767
+ <span>LS: -0.24px</span>
768
+ </div>
769
+ <div style="font-size:24px; font-weight:500; line-height:1.24; letter-spacing:-0.24px;">Composable content platform</div>
770
+ </div>
771
+
772
+ <div class="type-row">
773
+ <div class="type-meta">
774
+ <span class="label">Subheading</span>
775
+ <span>20px / 500</span>
776
+ <span>LH: 1.13</span>
777
+ <span>LS: -0.2px</span>
778
+ </div>
779
+ <div style="font-size:20px; font-weight:500; line-height:1.13; letter-spacing:-0.2px;">One API, every platform</div>
780
+ </div>
781
+
782
+ <div class="type-row">
783
+ <div class="type-meta">
784
+ <span class="label">Body Large</span>
785
+ <span>18px / 400</span>
786
+ <span>LH: 1.50</span>
787
+ <span>LS: -0.18px</span>
788
+ </div>
789
+ <div style="font-size:18px; font-weight:400; line-height:1.50; letter-spacing:-0.18px;">Mirror how your content operations team works. Treat content as data with a structured, API-first approach.</div>
790
+ </div>
791
+
792
+ <div class="type-row">
793
+ <div class="type-meta">
794
+ <span class="label">Body</span>
795
+ <span>16px / 400</span>
796
+ <span>LH: 1.50</span>
797
+ </div>
798
+ <div style="font-size:16px; font-weight:400; line-height:1.50;">Power anything with one unified content platform. Connect to any frontend, any channel, any device.</div>
799
+ </div>
800
+
801
+ <div class="type-row">
802
+ <div class="type-meta">
803
+ <span class="label">Caption</span>
804
+ <span>13px / 400</span>
805
+ <span>LH: 1.50</span>
806
+ <span>LS: -0.13px</span>
807
+ </div>
808
+ <div style="font-size:13px; font-weight:400; line-height:1.50; letter-spacing:-0.13px;">Loved by 1M+ users and 6K+ teams worldwide. Enterprise-grade content infrastructure.</div>
809
+ </div>
810
+
811
+ <div class="type-row">
812
+ <div class="type-meta">
813
+ <span class="label">Mono Label</span>
814
+ <span>12px / 500</span>
815
+ <span>LH: 1.50</span>
816
+ <span>UPPERCASE</span>
817
+ </div>
818
+ <div style="font-size:12px; font-weight:500; line-height:1.50; text-transform:uppercase; font-family:var(--font-mono); letter-spacing:0.5px;">CONTENT LAKE &middot; GROQ &middot; STUDIO &middot; SCHEMAS</div>
819
+ </div>
820
+
821
+ <div class="type-row">
822
+ <div class="type-meta">
823
+ <span class="label">Code</span>
824
+ <span>15px / 400</span>
825
+ <span>LH: 1.50</span>
826
+ <span>IBM Plex Mono</span>
827
+ </div>
828
+ <div style="font-size:15px; font-weight:400; line-height:1.50; font-family:var(--font-mono);">sanity.fetch('*[_type == "post"]')</div>
829
+ </div>
830
+
831
+ </div>
832
+ </section>
833
+
834
+ <hr class="divider">
835
+
836
+ <!-- BUTTONS -->
837
+ <section class="section" id="buttons">
838
+ <h2 class="section-title">Button Variants</h2>
839
+ <p class="section-subtitle">Pill-shaped CTAs with coral-red brand color. All interactive elements hover to electric blue.</p>
840
+
841
+ <div style="margin-bottom: 40px;">
842
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:16px; letter-spacing:-0.16px;">Light Surface</h3>
843
+ <div class="button-grid">
844
+ <button class="btn btn-primary">Get Started</button>
845
+ <button class="btn btn-secondary">Contact Sales</button>
846
+ <button class="btn btn-outline">Learn More</button>
847
+ <button class="btn btn-ghost">Filter</button>
848
+ <button class="btn btn-label">DOCUMENTATION</button>
849
+ </div>
850
+ </div>
851
+
852
+ <div style="margin-bottom: 40px;">
853
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:16px; letter-spacing:-0.16px;">Small Variants</h3>
854
+ <div class="button-grid">
855
+ <button class="btn btn-primary btn-sm">Get Started</button>
856
+ <button class="btn btn-outline btn-sm">Details</button>
857
+ <button class="btn btn-ghost btn-sm">Tag</button>
858
+ </div>
859
+ </div>
860
+
861
+ <div style="background: var(--bg-dark-section); padding: 32px; border-radius: var(--radius-lg);">
862
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:16px; color: var(--text-on-dark); letter-spacing:-0.16px;">Dark Surface</h3>
863
+ <div class="button-grid">
864
+ <button class="btn btn-dark-primary">Get Started</button>
865
+ <button class="btn btn-dark-outline">Contact Sales</button>
866
+ <button class="btn btn-ghost" style="background: var(--bg-dark-surface); color: var(--text-on-dark-secondary);">Filter</button>
867
+ <button class="btn btn-label" style="color: var(--text-on-dark-tertiary);">DOCUMENTATION</button>
868
+ </div>
869
+ </div>
870
+
871
+ <div style="margin-top: 40px;">
872
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:16px; letter-spacing:-0.16px;">Badges</h3>
873
+ <div style="display: flex; flex-wrap: wrap; gap: 10px;">
874
+ <span class="badge badge-light">Neutral</span>
875
+ <span class="badge badge-dark">Dark</span>
876
+ <span class="badge badge-red">New</span>
877
+ <span class="badge badge-blue">Featured</span>
878
+ <span class="badge badge-green">Active</span>
879
+ </div>
880
+ </div>
881
+ </section>
882
+
883
+ <hr class="divider">
884
+
885
+ <!-- CARDS -->
886
+ <section class="section" id="cards">
887
+ <h2 class="section-title">Card Examples</h2>
888
+ <p class="section-subtitle">Minimal containment with border-based separation. Dark cards use surface color shifts for elevation.</p>
889
+
890
+ <div style="margin-bottom: 40px;">
891
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:20px; letter-spacing:-0.16px;">Light Cards</h3>
892
+ <div class="card-grid">
893
+ <div class="card">
894
+ <div class="card-tag">Content Lake</div>
895
+ <div class="card-title">Structured content as data</div>
896
+ <div class="card-body">Store, query, and distribute content across any channel using a single source of truth with real-time collaboration.</div>
897
+ <a href="#" class="card-link">Learn more &rarr;</a>
898
+ </div>
899
+ <div class="card">
900
+ <div class="card-tag">GROQ</div>
901
+ <div class="card-title">Query language for content</div>
902
+ <div class="card-body">Purpose-built query language that lets you fetch exactly the content you need, in the shape you want it.</div>
903
+ <a href="#" class="card-link">Explore GROQ &rarr;</a>
904
+ </div>
905
+ <div class="card">
906
+ <div class="card-tag">Studio</div>
907
+ <div class="card-title">Customizable editing environment</div>
908
+ <div class="card-body">A fully customizable, open-source editing environment that adapts to your team's workflow and content model.</div>
909
+ <a href="#" class="card-link">Try Studio &rarr;</a>
910
+ </div>
911
+ </div>
912
+ </div>
913
+
914
+ <div style="background: var(--bg-dark-section); padding: 40px 32px; border-radius: var(--radius-lg); margin: 0 -32px;">
915
+ <div style="max-width: 1200px; margin: 0 auto;">
916
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:20px; color: var(--text-on-dark); letter-spacing:-0.16px;">Dark Cards</h3>
917
+ <div class="card-grid">
918
+ <div class="card-dark">
919
+ <div class="card-tag">Schemas</div>
920
+ <div class="card-title">Define your content model</div>
921
+ <div class="card-body">Use code-first schemas to define documents, objects, and fields with full TypeScript support and validation rules.</div>
922
+ <a href="#" class="card-link">View docs &rarr;</a>
923
+ </div>
924
+ <div class="card-dark">
925
+ <div class="card-tag">Plugins</div>
926
+ <div class="card-title">Extend with the ecosystem</div>
927
+ <div class="card-body">Community-driven plugin ecosystem with dashboards, custom inputs, media management, and workflow tools.</div>
928
+ <a href="#" class="card-link">Browse plugins &rarr;</a>
929
+ </div>
930
+ <div class="card-dark">
931
+ <div class="card-tag">Webhooks</div>
932
+ <div class="card-title">React to content changes</div>
933
+ <div class="card-body">Trigger builds, sync to external systems, and automate workflows whenever your content updates in real-time.</div>
934
+ <a href="#" class="card-link">Set up &rarr;</a>
935
+ </div>
936
+ </div>
937
+ </div>
938
+ </div>
939
+ </section>
940
+
941
+ <!-- FORMS -->
942
+ <section class="section" id="forms">
943
+ <h2 class="section-title">Form Elements</h2>
944
+ <p class="section-subtitle">Minimal inputs with subtle borders and blue focus rings. Dark variant uses colorimetric depth.</p>
945
+
946
+ <div style="margin-bottom: 48px;">
947
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:20px; letter-spacing:-0.16px;">Light Form</h3>
948
+ <div class="form-grid">
949
+ <div class="form-group">
950
+ <label class="form-label">First Name</label>
951
+ <input type="text" class="form-input" placeholder="Enter first name">
952
+ </div>
953
+ <div class="form-group">
954
+ <label class="form-label">Last Name</label>
955
+ <input type="text" class="form-input" placeholder="Enter last name">
956
+ </div>
957
+ <div class="form-group full-width">
958
+ <label class="form-label">Email Address</label>
959
+ <input type="email" class="form-input" placeholder="you@company.com">
960
+ <span class="form-helper">We will never share your email.</span>
961
+ </div>
962
+ <div class="form-group full-width">
963
+ <label class="form-label">Message</label>
964
+ <textarea class="form-textarea" placeholder="Tell us about your project..."></textarea>
965
+ </div>
966
+ <div class="form-group">
967
+ <button class="btn btn-primary" style="width:100%;">Submit</button>
968
+ </div>
969
+ </div>
970
+ </div>
971
+
972
+ <div style="background: var(--bg-dark-section); padding: 40px 32px; border-radius: var(--radius-lg); margin: 0 -32px;">
973
+ <div style="max-width: 1200px; margin: 0 auto;">
974
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:20px; color: var(--text-on-dark); letter-spacing:-0.16px;">Dark Form</h3>
975
+ <div class="form-grid form-dark">
976
+ <div class="form-group">
977
+ <label class="form-label">Project Name</label>
978
+ <input type="text" class="form-input" placeholder="my-sanity-project">
979
+ </div>
980
+ <div class="form-group">
981
+ <label class="form-label">Dataset</label>
982
+ <input type="text" class="form-input" placeholder="production">
983
+ </div>
984
+ <div class="form-group full-width">
985
+ <label class="form-label">GROQ Query</label>
986
+ <textarea class="form-textarea" placeholder='*[_type == "post"]{title, slug, body}'></textarea>
987
+ <span class="form-helper">Write a GROQ query to test against your dataset.</span>
988
+ </div>
989
+ <div class="form-group">
990
+ <button class="btn btn-dark-primary" style="width:100%;">Run Query</button>
991
+ </div>
992
+ </div>
993
+ </div>
994
+ </div>
995
+ </section>
996
+
997
+ <hr class="divider">
998
+
999
+ <!-- SPACING -->
1000
+ <section class="section" id="spacing">
1001
+ <h2 class="section-title">Spacing Scale</h2>
1002
+ <p class="section-subtitle">8px base unit. Spacing follows a controlled progression for consistent rhythm.</p>
1003
+ <div class="spacing-grid">
1004
+ <div class="spacing-row">
1005
+ <div class="spacing-label">4px</div>
1006
+ <div class="spacing-bar" style="width: 4px;"></div>
1007
+ </div>
1008
+ <div class="spacing-row">
1009
+ <div class="spacing-label">8px</div>
1010
+ <div class="spacing-bar" style="width: 32px;"></div>
1011
+ </div>
1012
+ <div class="spacing-row">
1013
+ <div class="spacing-label">12px</div>
1014
+ <div class="spacing-bar" style="width: 64px;"></div>
1015
+ </div>
1016
+ <div class="spacing-row">
1017
+ <div class="spacing-label">16px</div>
1018
+ <div class="spacing-bar" style="width: 96px;"></div>
1019
+ </div>
1020
+ <div class="spacing-row">
1021
+ <div class="spacing-label">24px</div>
1022
+ <div class="spacing-bar" style="width: 160px;"></div>
1023
+ </div>
1024
+ <div class="spacing-row">
1025
+ <div class="spacing-label">32px</div>
1026
+ <div class="spacing-bar" style="width: 220px;"></div>
1027
+ </div>
1028
+ <div class="spacing-row">
1029
+ <div class="spacing-label">48px</div>
1030
+ <div class="spacing-bar" style="width: 320px;"></div>
1031
+ </div>
1032
+ <div class="spacing-row">
1033
+ <div class="spacing-label">64px</div>
1034
+ <div class="spacing-bar" style="width: 420px;"></div>
1035
+ </div>
1036
+ <div class="spacing-row">
1037
+ <div class="spacing-label">96px</div>
1038
+ <div class="spacing-bar" style="width: 560px;"></div>
1039
+ </div>
1040
+ <div class="spacing-row">
1041
+ <div class="spacing-label">120px</div>
1042
+ <div class="spacing-bar" style="width: 680px;"></div>
1043
+ </div>
1044
+ </div>
1045
+ </section>
1046
+
1047
+ <hr class="divider">
1048
+
1049
+ <!-- BORDER RADIUS -->
1050
+ <section class="section">
1051
+ <h2 class="section-title">Border Radius Scale</h2>
1052
+ <p class="section-subtitle">Sharp geometry for inputs, subtle rounding for cards, full pills for buttons and badges.</p>
1053
+ <div class="radius-grid">
1054
+ <div class="radius-item">
1055
+ <div class="radius-box" style="border-radius: 3px;"></div>
1056
+ <div class="radius-label">3px<br><span style="font-size:10px; color:var(--text-tertiary)">Inputs</span></div>
1057
+ </div>
1058
+ <div class="radius-item">
1059
+ <div class="radius-box" style="border-radius: 5px;"></div>
1060
+ <div class="radius-label">5px<br><span style="font-size:10px; color:var(--text-tertiary)">Ghost buttons</span></div>
1061
+ </div>
1062
+ <div class="radius-item">
1063
+ <div class="radius-box" style="border-radius: 6px;"></div>
1064
+ <div class="radius-label">6px<br><span style="font-size:10px; color:var(--text-tertiary)">Cards</span></div>
1065
+ </div>
1066
+ <div class="radius-item">
1067
+ <div class="radius-box" style="border-radius: 12px;"></div>
1068
+ <div class="radius-label">12px<br><span style="font-size:10px; color:var(--text-tertiary)">Large cards</span></div>
1069
+ </div>
1070
+ <div class="radius-item">
1071
+ <div class="radius-box" style="border-radius: 99999px;"></div>
1072
+ <div class="radius-label">99999px<br><span style="font-size:10px; color:var(--text-tertiary)">Pill / CTA</span></div>
1073
+ </div>
1074
+ </div>
1075
+ </section>
1076
+
1077
+ <hr class="divider">
1078
+
1079
+ <!-- ELEVATION / DEPTH -->
1080
+ <section class="section">
1081
+ <h2 class="section-title">Elevation & Depth</h2>
1082
+ <p class="section-subtitle">Colorimetric depth system. Elevation is communicated through surface color shifts rather than shadows.</p>
1083
+
1084
+ <div style="margin-bottom: 48px;">
1085
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:20px; letter-spacing:-0.16px;">Light Mode Elevation</h3>
1086
+ <div class="elevation-grid">
1087
+ <div class="elevation-item">
1088
+ <div class="elevation-box" style="background: var(--bg-canvas); border: 1px solid var(--border-light); color: var(--text-secondary);">Level 0</div>
1089
+ <div class="elevation-label">Canvas<br>#f7f7f7</div>
1090
+ </div>
1091
+ <div class="elevation-item">
1092
+ <div class="elevation-box" style="background: var(--bg-surface); box-shadow: var(--shadow-card); color: var(--text-secondary);">Level 1</div>
1093
+ <div class="elevation-label">Surface<br>#ffffff</div>
1094
+ </div>
1095
+ <div class="elevation-item">
1096
+ <div class="elevation-box" style="background: var(--bg-surface); box-shadow: var(--shadow-elevated); color: var(--text-secondary);">Level 2</div>
1097
+ <div class="elevation-label">Elevated<br>shadow</div>
1098
+ </div>
1099
+ </div>
1100
+ </div>
1101
+
1102
+ <div style="background: var(--bg-dark-section); padding: 40px 32px; border-radius: var(--radius-lg); margin: 0 -32px;">
1103
+ <div style="max-width: 1200px; margin: 0 auto;">
1104
+ <h3 style="font-size:16px; font-weight:600; margin-bottom:20px; color: var(--text-on-dark); letter-spacing:-0.16px;">Dark Mode Depth (Colorimetric)</h3>
1105
+ <div class="elevation-dark-grid">
1106
+ <div class="elevation-dark-item">
1107
+ <div class="elevation-dark-box" style="background: #000000; border: 1px solid #212121;">Ground</div>
1108
+ <div class="elevation-dark-label">#000000</div>
1109
+ </div>
1110
+ <div class="elevation-dark-item">
1111
+ <div class="elevation-dark-box" style="background: #0b0b0b; border: 1px solid #212121;">Canvas</div>
1112
+ <div class="elevation-dark-label">#0b0b0b</div>
1113
+ </div>
1114
+ <div class="elevation-dark-item">
1115
+ <div class="elevation-dark-box" style="background: #212121; border: 1px solid #353535;">Surface</div>
1116
+ <div class="elevation-dark-label">#212121</div>
1117
+ </div>
1118
+ <div class="elevation-dark-item">
1119
+ <div class="elevation-dark-box" style="background: #353535; border: 1px solid #797979;">Prominent</div>
1120
+ <div class="elevation-dark-label">#353535</div>
1121
+ </div>
1122
+ <div class="elevation-dark-item">
1123
+ <div class="elevation-dark-box" style="background: #ffffff; color: #0b0b0b; border: 1px solid #ededed;">Inverted</div>
1124
+ <div class="elevation-dark-label">#ffffff</div>
1125
+ </div>
1126
+ </div>
1127
+ </div>
1128
+ </div>
1129
+ </section>
1130
+
1131
+ <!-- FOOTER -->
1132
+ <footer style="background: var(--bg-dark-section); padding: 48px 32px; margin-top: 0;">
1133
+ <div style="max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px;">
1134
+ <span style="font-size: 13px; color: var(--text-on-dark-secondary); font-family: var(--font-mono);">Design tokens extracted from sanity.io</span>
1135
+ <span style="font-size: 12px; color: var(--text-on-dark-tertiary); font-family: var(--font-mono); text-transform: uppercase;">awesome-design-md</span>
1136
+ </div>
1137
+ </footer>
1138
+
1139
+ </body>
1140
+ </html>