savant-code 0.0.22 → 0.0.24

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 (79) hide show
  1. package/README.md +5 -0
  2. package/launcher.js +192 -5
  3. package/package.json +3 -2
  4. package/savant-design-systems/SKILL.md +12 -0
  5. package/savant-design-systems/manifest.json +2541 -0
  6. package/savant-design-systems/resources/airbnb-design-analysis.json +983 -0
  7. package/savant-design-systems/resources/airtable-design-analysis.json +931 -0
  8. package/savant-design-systems/resources/apple-design-analysis.json +920 -0
  9. package/savant-design-systems/resources/binance-design-analysis.json +1068 -0
  10. package/savant-design-systems/resources/bmw-design-analysis.json +912 -0
  11. package/savant-design-systems/resources/bmw-m-design-analysis.json +824 -0
  12. package/savant-design-systems/resources/bugatti-design-analysis.json +746 -0
  13. package/savant-design-systems/resources/cal-com-design-analysis.json +913 -0
  14. package/savant-design-systems/resources/claude-design-analysis.json +1007 -0
  15. package/savant-design-systems/resources/clay-design-analysis.json +919 -0
  16. package/savant-design-systems/resources/clickhouse-design-analysis.json +926 -0
  17. package/savant-design-systems/resources/cohere-design-analysis.json +725 -0
  18. package/savant-design-systems/resources/coinbase-design-analysis.json +998 -0
  19. package/savant-design-systems/resources/composio-design-analysis.json +851 -0
  20. package/savant-design-systems/resources/cursor-design-analysis.json +934 -0
  21. package/savant-design-systems/resources/dell-1996-inspired.json +1042 -0
  22. package/savant-design-systems/resources/elevenlabs.json +551 -0
  23. package/savant-design-systems/resources/expo-design-analysis.json +879 -0
  24. package/savant-design-systems/resources/ferrari-design-analysis.json +874 -0
  25. package/savant-design-systems/resources/figma-design-analysis.json +928 -0
  26. package/savant-design-systems/resources/framer-design-analysis.json +891 -0
  27. package/savant-design-systems/resources/hashicorp-design-analysis.json +909 -0
  28. package/savant-design-systems/resources/hp-design-analysis.json +1077 -0
  29. package/savant-design-systems/resources/ibm-design-analysis.json +881 -0
  30. package/savant-design-systems/resources/intercom-design-analysis.json +876 -0
  31. package/savant-design-systems/resources/kraken.json +172 -0
  32. package/savant-design-systems/resources/lamborghini.json +335 -0
  33. package/savant-design-systems/resources/linear-design-analysis.json +890 -0
  34. package/savant-design-systems/resources/lovable.json +345 -0
  35. package/savant-design-systems/resources/mastercard.json +412 -0
  36. package/savant-design-systems/resources/meta-design-analysis.json +1121 -0
  37. package/savant-design-systems/resources/minimax-design-analysis.json +1220 -0
  38. package/savant-design-systems/resources/mintlify-design-analysis.json +1418 -0
  39. package/savant-design-systems/resources/miro-design-analysis.json +1364 -0
  40. package/savant-design-systems/resources/mistral-ai-design-analysis.json +1286 -0
  41. package/savant-design-systems/resources/mongodb-design-analysis.json +1276 -0
  42. package/savant-design-systems/resources/nike-design-analysis.json +938 -0
  43. package/savant-design-systems/resources/nintendo-com-2001-analysis.json +1082 -0
  44. package/savant-design-systems/resources/notion-design-analysis.json +1368 -0
  45. package/savant-design-systems/resources/nvidia-design-analysis.json +1023 -0
  46. package/savant-design-systems/resources/ollama-design-analysis.json +863 -0
  47. package/savant-design-systems/resources/opencode-design-analysis.json +806 -0
  48. package/savant-design-systems/resources/pinterest-design-analysis.json +953 -0
  49. package/savant-design-systems/resources/playstation-design-analysis.json +1053 -0
  50. package/savant-design-systems/resources/posthog-design-analysis.json +1146 -0
  51. package/savant-design-systems/resources/raycast.json +716 -0
  52. package/savant-design-systems/resources/renault-design-analysis.json +916 -0
  53. package/savant-design-systems/resources/replicate-design-analysis.json +986 -0
  54. package/savant-design-systems/resources/resend-design-analysis.json +942 -0
  55. package/savant-design-systems/resources/revolut-design-analysis.json +1008 -0
  56. package/savant-design-systems/resources/runwayml.json +291 -0
  57. package/savant-design-systems/resources/sanity.json +404 -0
  58. package/savant-design-systems/resources/sentri-inspired-design-analysis.json +953 -0
  59. package/savant-design-systems/resources/shopifi-inspired-design-analysis.json +921 -0
  60. package/savant-design-systems/resources/slacc-inspired-design-analysis.json +799 -0
  61. package/savant-design-systems/resources/spacex-inspired-design-analysis.json +598 -0
  62. package/savant-design-systems/resources/spotify.json +293 -0
  63. package/savant-design-systems/resources/starbucks.json +627 -0
  64. package/savant-design-systems/resources/stripi-inspired-design-analysis.json +805 -0
  65. package/savant-design-systems/resources/supabase.json +509 -0
  66. package/savant-design-systems/resources/superhumon-inspired-design-analysis.json +740 -0
  67. package/savant-design-systems/resources/tesla.json +333 -0
  68. package/savant-design-systems/resources/theverge.json +386 -0
  69. package/savant-design-systems/resources/together-ai-inspired-design-analysis.json +1099 -0
  70. package/savant-design-systems/resources/uber-inspired-design-analysis.json +1067 -0
  71. package/savant-design-systems/resources/vercel-inspired-design-analysis.json +1261 -0
  72. package/savant-design-systems/resources/vodafone-inspired-design-analysis.json +912 -0
  73. package/savant-design-systems/resources/voltagent-inspired-design-analysis.json +929 -0
  74. package/savant-design-systems/resources/warp-inspired-design-analysis.json +946 -0
  75. package/savant-design-systems/resources/webflow-inspired-design-analysis.json +1033 -0
  76. package/savant-design-systems/resources/wired-inspired-design-analysis.json +877 -0
  77. package/savant-design-systems/resources/wise-inspired-design-analysis.json +916 -0
  78. package/savant-design-systems/resources/xai-inspired-design-analysis.json +820 -0
  79. package/savant-design-systems/resources/zapier-inspired-design-analysis.json +915 -0
@@ -0,0 +1,1368 @@
1
+ {
2
+ "schemaVersion": "1",
3
+ "id": "notion-design-analysis",
4
+ "displayName": "Notion-design-analysis",
5
+ "description": "Notion presents itself as the all-in-one workspace through a confident, illustration-rich brand voice — anchored by a deep navy hero band ({colors.brand-navy}) decorated with brand-colored sticky-note dots and mesh wire illustrations, a signature purple pill primary CTA ({colors.primary}), and a rich palette of pastel-tinted feature cards that echo the colorful database properties of the live product. The system uses a Notion-Sans (Inter-based) typeface across every UI surface, anchors a 4-tier pricing comparison (Free / Plus / Business / Enterprise), and presents the live workspace UI mockup directly inside the hero band. Coverage spans homepage, Enterprise, Product AI, Product Agents, Startups, and Pricing surfaces.",
6
+ "source": "embedded",
7
+ "status": "curated-reference",
8
+ "targets": [
9
+ "terminal",
10
+ "react"
11
+ ],
12
+ "contentPath": "packages/design-systems/library/notion.design.md",
13
+ "sourceContentHash": "fa9d6e78216d8f3e5d3990709ca2de6bc2e268e945bb94f255fd1bfb15455266",
14
+ "normalizedContentHash": "7583edc4752a5b1055b9d15cfbb51f99d5f1c6654ea4f0c97a3c86d71cd71834",
15
+ "provenance": {
16
+ "sourceRepository": "VoltAgent/awesome-design-md",
17
+ "sourceRevision": "working-tree-curated-snapshot",
18
+ "sourcePath": "packages/design-systems/library/notion.design.md",
19
+ "license": "MIT"
20
+ },
21
+ "fonts": [
22
+ {
23
+ "family": "Notion Sans",
24
+ "fallback": [
25
+ "system-ui",
26
+ "sans-serif"
27
+ ],
28
+ "redistributable": false
29
+ }
30
+ ],
31
+ "tokens": {
32
+ "colors": {
33
+ "brand-brown": "#523410",
34
+ "brand-green": "#1aae39",
35
+ "brand-navy": "#0a1530",
36
+ "brand-navy-deep": "#070f24",
37
+ "brand-navy-mid": "#1a2a52",
38
+ "brand-orange": "#dd5b00",
39
+ "brand-orange-deep": "#793400",
40
+ "brand-pink": "#ff64c8",
41
+ "brand-pink-deep": "#a02e6d",
42
+ "brand-purple": "#7b3ff2",
43
+ "brand-purple-300": "#d6b6f6",
44
+ "brand-purple-800": "#391c57",
45
+ "brand-teal": "#2a9d99",
46
+ "brand-yellow": "#f5d75e",
47
+ "canvas": "#ffffff",
48
+ "card-tint-cream": "#f8f5e8",
49
+ "card-tint-gray": "#f0eeec",
50
+ "card-tint-lavender": "#e6e0f5",
51
+ "card-tint-mint": "#d9f3e1",
52
+ "card-tint-peach": "#ffe8d4",
53
+ "card-tint-rose": "#fde0ec",
54
+ "card-tint-sky": "#dcecfa",
55
+ "card-tint-yellow": "#fef7d6",
56
+ "card-tint-yellow-bold": "#f9e79f",
57
+ "charcoal": "#37352f",
58
+ "hairline": "#e5e3df",
59
+ "hairline-soft": "#ede9e4",
60
+ "hairline-strong": "#c8c4be",
61
+ "ink": "#1a1a1a",
62
+ "ink-deep": "#000000",
63
+ "link-blue": "#0075de",
64
+ "link-blue-pressed": "#005bab",
65
+ "muted": "#bbb8b1",
66
+ "on-dark": "#ffffff",
67
+ "on-dark-muted": "#a4a097",
68
+ "on-primary": "#ffffff",
69
+ "primary": "#5645d4",
70
+ "primary-deep": "#3a2a99",
71
+ "primary-pressed": "#4534b3",
72
+ "semantic-error": "#e03131",
73
+ "semantic-success": "#1aae39",
74
+ "semantic-warning": "#dd5b00",
75
+ "slate": "#5d5b54",
76
+ "steel": "#787671",
77
+ "stone": "#a4a097",
78
+ "surface": "#f6f5f4",
79
+ "surface-soft": "#fafaf9"
80
+ },
81
+ "typography": {
82
+ "hero-display": {
83
+ "fontFamily": "Notion Sans",
84
+ "fontSize": "80px",
85
+ "fontWeight": 600,
86
+ "letterSpacing": "-2px",
87
+ "lineHeight": 1.05
88
+ },
89
+ "display-lg": {
90
+ "fontFamily": "Notion Sans",
91
+ "fontSize": "56px",
92
+ "fontWeight": 600,
93
+ "letterSpacing": "-1px",
94
+ "lineHeight": 1.1
95
+ },
96
+ "heading-1": {
97
+ "fontFamily": "Notion Sans",
98
+ "fontSize": "48px",
99
+ "fontWeight": 600,
100
+ "letterSpacing": "-0.5px",
101
+ "lineHeight": 1.15
102
+ },
103
+ "heading-2": {
104
+ "fontFamily": "Notion Sans",
105
+ "fontSize": "36px",
106
+ "fontWeight": 600,
107
+ "letterSpacing": "-0.5px",
108
+ "lineHeight": 1.2
109
+ },
110
+ "heading-3": {
111
+ "fontFamily": "Notion Sans",
112
+ "fontSize": "28px",
113
+ "fontWeight": 600,
114
+ "lineHeight": 1.25
115
+ },
116
+ "heading-4": {
117
+ "fontFamily": "Notion Sans",
118
+ "fontSize": "22px",
119
+ "fontWeight": 600,
120
+ "lineHeight": 1.3
121
+ },
122
+ "heading-5": {
123
+ "fontFamily": "Notion Sans",
124
+ "fontSize": "18px",
125
+ "fontWeight": 600,
126
+ "lineHeight": 1.4
127
+ },
128
+ "subtitle": {
129
+ "fontFamily": "Notion Sans",
130
+ "fontSize": "18px",
131
+ "fontWeight": 400,
132
+ "lineHeight": 1.5
133
+ },
134
+ "body-md": {
135
+ "fontFamily": "Notion Sans",
136
+ "fontSize": "16px",
137
+ "fontWeight": 400,
138
+ "lineHeight": 1.55
139
+ },
140
+ "body-md-medium": {
141
+ "fontFamily": "Notion Sans",
142
+ "fontSize": "16px",
143
+ "fontWeight": 500,
144
+ "lineHeight": 1.55
145
+ },
146
+ "body-sm": {
147
+ "fontFamily": "Notion Sans",
148
+ "fontSize": "14px",
149
+ "fontWeight": 400,
150
+ "lineHeight": 1.5
151
+ },
152
+ "body-sm-medium": {
153
+ "fontFamily": "Notion Sans",
154
+ "fontSize": "14px",
155
+ "fontWeight": 500,
156
+ "lineHeight": 1.5
157
+ },
158
+ "caption": {
159
+ "fontFamily": "Notion Sans",
160
+ "fontSize": "13px",
161
+ "fontWeight": 400,
162
+ "lineHeight": 1.4
163
+ },
164
+ "caption-bold": {
165
+ "fontFamily": "Notion Sans",
166
+ "fontSize": "13px",
167
+ "fontWeight": 600,
168
+ "lineHeight": 1.4
169
+ },
170
+ "micro": {
171
+ "fontFamily": "Notion Sans",
172
+ "fontSize": "12px",
173
+ "fontWeight": 500,
174
+ "lineHeight": 1.4
175
+ },
176
+ "micro-uppercase": {
177
+ "fontFamily": "Notion Sans",
178
+ "fontSize": "11px",
179
+ "fontWeight": 600,
180
+ "letterSpacing": "1px",
181
+ "lineHeight": 1.4
182
+ },
183
+ "button-md": {
184
+ "fontFamily": "Notion Sans",
185
+ "fontSize": "14px",
186
+ "fontWeight": 500,
187
+ "lineHeight": 1.3
188
+ }
189
+ },
190
+ "spacing": {
191
+ "hero": "120px",
192
+ "lg": "20px",
193
+ "md": "16px",
194
+ "section": "64px",
195
+ "section-lg": "96px",
196
+ "section-sm": "48px",
197
+ "sm": "12px",
198
+ "xl": "24px",
199
+ "xs": "8px",
200
+ "xxl": "32px",
201
+ "xxs": "4px",
202
+ "xxxl": "40px"
203
+ },
204
+ "radius": {
205
+ "full": "9999px",
206
+ "lg": "12px",
207
+ "md": "8px",
208
+ "sm": "6px",
209
+ "xl": "16px",
210
+ "xs": "4px",
211
+ "xxl": "20px",
212
+ "xxxl": "24px"
213
+ },
214
+ "components": {
215
+ "button-primary": {
216
+ "backgroundColor": "{colors.primary}",
217
+ "padding": "10px 18px",
218
+ "rounded": "{rounded.md}",
219
+ "textColor": "{colors.on-primary}",
220
+ "typography": "{typography.button-md}"
221
+ },
222
+ "button-primary-pressed": {
223
+ "backgroundColor": "{colors.primary-pressed}",
224
+ "textColor": "{colors.on-primary}"
225
+ },
226
+ "button-primary-disabled": {
227
+ "backgroundColor": "{colors.hairline}",
228
+ "textColor": "{colors.muted}"
229
+ },
230
+ "button-dark": {
231
+ "backgroundColor": "{colors.ink-deep}",
232
+ "padding": "10px 18px",
233
+ "rounded": "{rounded.md}",
234
+ "textColor": "{colors.on-dark}",
235
+ "typography": "{typography.button-md}"
236
+ },
237
+ "button-secondary": {
238
+ "backgroundColor": "transparent",
239
+ "border": "1px solid {colors.hairline-strong}",
240
+ "padding": "10px 18px",
241
+ "rounded": "{rounded.md}",
242
+ "textColor": "{colors.ink}",
243
+ "typography": "{typography.button-md}"
244
+ },
245
+ "button-on-dark": {
246
+ "backgroundColor": "{colors.on-dark}",
247
+ "padding": "10px 18px",
248
+ "rounded": "{rounded.md}",
249
+ "textColor": "{colors.ink}",
250
+ "typography": "{typography.button-md}"
251
+ },
252
+ "button-secondary-on-dark": {
253
+ "backgroundColor": "transparent",
254
+ "border": "1px solid {colors.on-dark-muted}",
255
+ "padding": "10px 18px",
256
+ "rounded": "{rounded.md}",
257
+ "textColor": "{colors.on-dark}",
258
+ "typography": "{typography.button-md}"
259
+ },
260
+ "button-ghost": {
261
+ "backgroundColor": "transparent",
262
+ "padding": "8px 12px",
263
+ "rounded": "{rounded.sm}",
264
+ "textColor": "{colors.ink}",
265
+ "typography": "{typography.button-md}"
266
+ },
267
+ "button-link": {
268
+ "backgroundColor": "transparent",
269
+ "padding": "0",
270
+ "textColor": "{colors.link-blue}",
271
+ "typography": "{typography.body-sm-medium}"
272
+ },
273
+ "card-base": {
274
+ "backgroundColor": "{colors.canvas}",
275
+ "border": "1px solid {colors.hairline}",
276
+ "padding": "{spacing.xl}",
277
+ "rounded": "{rounded.lg}"
278
+ },
279
+ "card-feature": {
280
+ "backgroundColor": "{colors.canvas}",
281
+ "border": "1px solid {colors.hairline}",
282
+ "padding": "{spacing.xxl}",
283
+ "rounded": "{rounded.lg}"
284
+ },
285
+ "card-feature-yellow-bold": {
286
+ "backgroundColor": "{colors.card-tint-yellow-bold}",
287
+ "padding": "{spacing.xxl}",
288
+ "rounded": "{rounded.lg}",
289
+ "textColor": "{colors.charcoal}"
290
+ },
291
+ "card-feature-peach": {
292
+ "backgroundColor": "{colors.card-tint-peach}",
293
+ "padding": "{spacing.xxl}",
294
+ "rounded": "{rounded.lg}",
295
+ "textColor": "{colors.charcoal}"
296
+ },
297
+ "card-feature-rose": {
298
+ "backgroundColor": "{colors.card-tint-rose}",
299
+ "padding": "{spacing.xxl}",
300
+ "rounded": "{rounded.lg}",
301
+ "textColor": "{colors.charcoal}"
302
+ },
303
+ "card-feature-mint": {
304
+ "backgroundColor": "{colors.card-tint-mint}",
305
+ "padding": "{spacing.xxl}",
306
+ "rounded": "{rounded.lg}",
307
+ "textColor": "{colors.charcoal}"
308
+ },
309
+ "card-feature-sky": {
310
+ "backgroundColor": "{colors.card-tint-sky}",
311
+ "padding": "{spacing.xxl}",
312
+ "rounded": "{rounded.lg}",
313
+ "textColor": "{colors.charcoal}"
314
+ },
315
+ "card-feature-lavender": {
316
+ "backgroundColor": "{colors.card-tint-lavender}",
317
+ "padding": "{spacing.xxl}",
318
+ "rounded": "{rounded.lg}",
319
+ "textColor": "{colors.charcoal}"
320
+ },
321
+ "card-feature-yellow": {
322
+ "backgroundColor": "{colors.card-tint-yellow}",
323
+ "padding": "{spacing.xxl}",
324
+ "rounded": "{rounded.lg}",
325
+ "textColor": "{colors.charcoal}"
326
+ },
327
+ "card-feature-cream": {
328
+ "backgroundColor": "{colors.card-tint-cream}",
329
+ "padding": "{spacing.xxl}",
330
+ "rounded": "{rounded.lg}",
331
+ "textColor": "{colors.charcoal}"
332
+ },
333
+ "card-agent-tile": {
334
+ "backgroundColor": "{colors.canvas}",
335
+ "border": "1px solid {colors.hairline}",
336
+ "padding": "{spacing.xl}",
337
+ "rounded": "{rounded.lg}"
338
+ },
339
+ "card-template": {
340
+ "backgroundColor": "{colors.canvas}",
341
+ "border": "1px solid {colors.hairline}",
342
+ "padding": "{spacing.lg}",
343
+ "rounded": "{rounded.lg}"
344
+ },
345
+ "card-startup-perk": {
346
+ "backgroundColor": "{colors.canvas}",
347
+ "border": "1px solid {colors.hairline}",
348
+ "padding": "{spacing.xl}",
349
+ "rounded": "{rounded.lg}"
350
+ },
351
+ "pricing-card": {
352
+ "backgroundColor": "{colors.canvas}",
353
+ "border": "1px solid {colors.hairline}",
354
+ "padding": "{spacing.xxl}",
355
+ "rounded": "{rounded.lg}"
356
+ },
357
+ "pricing-card-featured": {
358
+ "backgroundColor": "{colors.surface}",
359
+ "border": "2px solid {colors.primary}",
360
+ "padding": "{spacing.xxl}",
361
+ "rounded": "{rounded.lg}"
362
+ },
363
+ "text-input": {
364
+ "backgroundColor": "{colors.canvas}",
365
+ "border": "1px solid {colors.hairline-strong}",
366
+ "height": "44px",
367
+ "padding": "{spacing.sm} {spacing.md}",
368
+ "rounded": "{rounded.md}",
369
+ "textColor": "{colors.ink}",
370
+ "typography": "{typography.body-md}"
371
+ },
372
+ "text-input-focused": {
373
+ "backgroundColor": "{colors.canvas}",
374
+ "border": "2px solid {colors.primary}",
375
+ "textColor": "{colors.ink}"
376
+ },
377
+ "search-pill": {
378
+ "backgroundColor": "{colors.surface}",
379
+ "border": "1px solid {colors.hairline}",
380
+ "height": "44px",
381
+ "padding": "{spacing.sm} {spacing.md}",
382
+ "rounded": "{rounded.md}",
383
+ "textColor": "{colors.steel}",
384
+ "typography": "{typography.body-md}"
385
+ },
386
+ "pill-tab": {
387
+ "backgroundColor": "transparent",
388
+ "border": "1px solid {colors.hairline}",
389
+ "padding": "{spacing.xs} {spacing.md}",
390
+ "rounded": "{rounded.full}",
391
+ "textColor": "{colors.steel}",
392
+ "typography": "{typography.body-sm-medium}"
393
+ },
394
+ "pill-tab-active": {
395
+ "backgroundColor": "{colors.ink-deep}",
396
+ "border": "1px solid {colors.ink-deep}",
397
+ "rounded": "{rounded.full}",
398
+ "textColor": "{colors.on-dark}"
399
+ },
400
+ "segmented-tab": {
401
+ "backgroundColor": "transparent",
402
+ "border": "0 0 2px transparent solid",
403
+ "padding": "{spacing.sm} {spacing.md}",
404
+ "textColor": "{colors.steel}",
405
+ "typography": "{typography.body-sm-medium}"
406
+ },
407
+ "segmented-tab-active": {
408
+ "backgroundColor": "transparent",
409
+ "border": "0 0 2px {colors.ink} solid",
410
+ "textColor": "{colors.ink}",
411
+ "typography": "{typography.body-sm-medium}"
412
+ },
413
+ "badge-purple": {
414
+ "backgroundColor": "{colors.primary}",
415
+ "padding": "4px 10px",
416
+ "rounded": "{rounded.full}",
417
+ "textColor": "{colors.on-primary}",
418
+ "typography": "{typography.caption-bold}"
419
+ },
420
+ "badge-pink": {
421
+ "backgroundColor": "{colors.brand-pink}",
422
+ "padding": "4px 10px",
423
+ "rounded": "{rounded.full}",
424
+ "textColor": "{colors.on-primary}",
425
+ "typography": "{typography.caption-bold}"
426
+ },
427
+ "badge-orange": {
428
+ "backgroundColor": "{colors.brand-orange}",
429
+ "padding": "4px 10px",
430
+ "rounded": "{rounded.full}",
431
+ "textColor": "{colors.on-primary}",
432
+ "typography": "{typography.caption-bold}"
433
+ },
434
+ "badge-tag-purple": {
435
+ "backgroundColor": "{colors.card-tint-lavender}",
436
+ "padding": "2px 8px",
437
+ "rounded": "{rounded.sm}",
438
+ "textColor": "{colors.brand-purple-800}",
439
+ "typography": "{typography.caption-bold}"
440
+ },
441
+ "badge-tag-orange": {
442
+ "backgroundColor": "{colors.card-tint-peach}",
443
+ "padding": "2px 8px",
444
+ "rounded": "{rounded.sm}",
445
+ "textColor": "{colors.brand-orange-deep}",
446
+ "typography": "{typography.caption-bold}"
447
+ },
448
+ "badge-tag-green": {
449
+ "backgroundColor": "{colors.card-tint-mint}",
450
+ "padding": "2px 8px",
451
+ "rounded": "{rounded.sm}",
452
+ "textColor": "{colors.brand-green}",
453
+ "typography": "{typography.caption-bold}"
454
+ },
455
+ "badge-popular": {
456
+ "backgroundColor": "{colors.primary}",
457
+ "padding": "4px 10px",
458
+ "rounded": "{rounded.full}",
459
+ "textColor": "{colors.on-primary}",
460
+ "typography": "{typography.caption-bold}"
461
+ },
462
+ "promo-banner": {
463
+ "backgroundColor": "{colors.surface}",
464
+ "padding": "{spacing.sm} {spacing.md}",
465
+ "textColor": "{colors.ink}",
466
+ "typography": "{typography.body-sm-medium}"
467
+ },
468
+ "hero-band-dark": {
469
+ "backgroundColor": "{colors.brand-navy}",
470
+ "padding": "{spacing.hero}",
471
+ "rounded": "0",
472
+ "textColor": "{colors.on-dark}"
473
+ },
474
+ "workspace-mockup-card": {
475
+ "backgroundColor": "{colors.canvas}",
476
+ "border": "1px solid {colors.hairline}",
477
+ "padding": "0",
478
+ "rounded": "{rounded.lg}",
479
+ "shadow": "rgba(15, 15, 15, 0.2) 0px 24px 48px -8px"
480
+ },
481
+ "cta-banner-light": {
482
+ "backgroundColor": "{colors.surface}",
483
+ "padding": "{spacing.section}",
484
+ "rounded": "{rounded.lg}",
485
+ "textColor": "{colors.ink}"
486
+ },
487
+ "comparison-table": {
488
+ "backgroundColor": "{colors.canvas}",
489
+ "border": "1px solid {colors.hairline}",
490
+ "rounded": "{rounded.md}",
491
+ "textColor": "{colors.ink}",
492
+ "typography": "{typography.body-sm}"
493
+ },
494
+ "comparison-row": {
495
+ "backgroundColor": "{colors.canvas}",
496
+ "border": "0 0 1px {colors.hairline-soft} solid",
497
+ "padding": "{spacing.md} {spacing.lg}",
498
+ "textColor": "{colors.ink}"
499
+ },
500
+ "testimonial-card": {
501
+ "backgroundColor": "{colors.canvas}",
502
+ "border": "1px solid {colors.hairline}",
503
+ "padding": "{spacing.xxl}",
504
+ "rounded": "{rounded.lg}"
505
+ },
506
+ "logo-wall-item": {
507
+ "backgroundColor": "transparent",
508
+ "padding": "{spacing.lg}",
509
+ "textColor": "{colors.steel}",
510
+ "typography": "{typography.body-md-medium}"
511
+ },
512
+ "faq-accordion-item": {
513
+ "backgroundColor": "{colors.canvas}",
514
+ "border": "0 0 1px {colors.hairline} solid",
515
+ "padding": "{spacing.xl}",
516
+ "rounded": "{rounded.md}"
517
+ },
518
+ "stat-row": {
519
+ "backgroundColor": "{colors.surface}",
520
+ "padding": "{spacing.section-sm}",
521
+ "rounded": "{rounded.lg}",
522
+ "textColor": "{colors.ink}"
523
+ },
524
+ "footer-region": {
525
+ "backgroundColor": "{colors.canvas}",
526
+ "border": "1px solid {colors.hairline}",
527
+ "padding": "{spacing.section} {spacing.xxl}",
528
+ "textColor": "{colors.charcoal}",
529
+ "typography": "{typography.body-sm}"
530
+ },
531
+ "footer-link": {
532
+ "backgroundColor": "transparent",
533
+ "padding": "{spacing.xxs} 0",
534
+ "textColor": "{colors.steel}",
535
+ "typography": "{typography.body-sm}"
536
+ }
537
+ },
538
+ "extensions": {
539
+ "description": "Notion presents itself as the all-in-one workspace through a confident, illustration-rich brand voice — anchored by a deep navy hero band ({colors.brand-navy}) decorated with brand-colored sticky-note dots and mesh wire illustrations, a signature purple pill primary CTA ({colors.primary}), and a rich palette of pastel-tinted feature cards that echo the colorful database properties of the live product. The system uses a Notion-Sans (Inter-based) typeface across every UI surface, anchors a 4-tier pricing comparison (Free / Plus / Business / Enterprise), and presents the live workspace UI mockup directly inside the hero band. Coverage spans homepage, Enterprise, Product AI, Product Agents, Startups, and Pricing surfaces.",
540
+ "name": "Notion-design-analysis",
541
+ "version": "alpha"
542
+ }
543
+ }
544
+ }
545
+
546
+ ---
547
+
548
+ ---
549
+ version: alpha
550
+ name: Notion-design-analysis
551
+ description: Notion presents itself as the all-in-one workspace through a confident, illustration-rich brand voice — anchored by a deep navy hero band ({colors.brand-navy}) decorated with brand-colored sticky-note dots and mesh wire illustrations, a signature purple pill primary CTA ({colors.primary}), and a rich palette of pastel-tinted feature cards that echo the colorful database properties of the live product. The system uses a Notion-Sans (Inter-based) typeface across every UI surface, anchors a 4-tier pricing comparison (Free / Plus / Business / Enterprise), and presents the live workspace UI mockup directly inside the hero band. Coverage spans homepage, Enterprise, Product AI, Product Agents, Startups, and Pricing surfaces.
552
+
553
+ colors:
554
+ primary: "#5645d4"
555
+ primary-pressed: "#4534b3"
556
+ primary-deep: "#3a2a99"
557
+ on-primary: "#ffffff"
558
+ brand-navy: "#0a1530"
559
+ brand-navy-deep: "#070f24"
560
+ brand-navy-mid: "#1a2a52"
561
+ link-blue: "#0075de"
562
+ link-blue-pressed: "#005bab"
563
+ brand-orange: "#dd5b00"
564
+ brand-orange-deep: "#793400"
565
+ brand-pink: "#ff64c8"
566
+ brand-pink-deep: "#a02e6d"
567
+ brand-purple: "#7b3ff2"
568
+ brand-purple-300: "#d6b6f6"
569
+ brand-purple-800: "#391c57"
570
+ brand-teal: "#2a9d99"
571
+ brand-green: "#1aae39"
572
+ brand-yellow: "#f5d75e"
573
+ brand-brown: "#523410"
574
+ card-tint-peach: "#ffe8d4"
575
+ card-tint-rose: "#fde0ec"
576
+ card-tint-mint: "#d9f3e1"
577
+ card-tint-lavender: "#e6e0f5"
578
+ card-tint-sky: "#dcecfa"
579
+ card-tint-yellow: "#fef7d6"
580
+ card-tint-yellow-bold: "#f9e79f"
581
+ card-tint-cream: "#f8f5e8"
582
+ card-tint-gray: "#f0eeec"
583
+ canvas: "#ffffff"
584
+ surface: "#f6f5f4"
585
+ surface-soft: "#fafaf9"
586
+ hairline: "#e5e3df"
587
+ hairline-soft: "#ede9e4"
588
+ hairline-strong: "#c8c4be"
589
+ ink-deep: "#000000"
590
+ ink: "#1a1a1a"
591
+ charcoal: "#37352f"
592
+ slate: "#5d5b54"
593
+ steel: "#787671"
594
+ stone: "#a4a097"
595
+ muted: "#bbb8b1"
596
+ on-dark: "#ffffff"
597
+ on-dark-muted: "#a4a097"
598
+ semantic-success: "#1aae39"
599
+ semantic-warning: "#dd5b00"
600
+ semantic-error: "#e03131"
601
+
602
+ typography:
603
+ hero-display:
604
+ fontFamily: Notion Sans
605
+ fontSize: 80px
606
+ fontWeight: 600
607
+ lineHeight: 1.05
608
+ letterSpacing: -2px
609
+ display-lg:
610
+ fontFamily: Notion Sans
611
+ fontSize: 56px
612
+ fontWeight: 600
613
+ lineHeight: 1.10
614
+ letterSpacing: -1px
615
+ heading-1:
616
+ fontFamily: Notion Sans
617
+ fontSize: 48px
618
+ fontWeight: 600
619
+ lineHeight: 1.15
620
+ letterSpacing: -0.5px
621
+ heading-2:
622
+ fontFamily: Notion Sans
623
+ fontSize: 36px
624
+ fontWeight: 600
625
+ lineHeight: 1.20
626
+ letterSpacing: -0.5px
627
+ heading-3:
628
+ fontFamily: Notion Sans
629
+ fontSize: 28px
630
+ fontWeight: 600
631
+ lineHeight: 1.25
632
+ heading-4:
633
+ fontFamily: Notion Sans
634
+ fontSize: 22px
635
+ fontWeight: 600
636
+ lineHeight: 1.30
637
+ heading-5:
638
+ fontFamily: Notion Sans
639
+ fontSize: 18px
640
+ fontWeight: 600
641
+ lineHeight: 1.40
642
+ subtitle:
643
+ fontFamily: Notion Sans
644
+ fontSize: 18px
645
+ fontWeight: 400
646
+ lineHeight: 1.50
647
+ body-md:
648
+ fontFamily: Notion Sans
649
+ fontSize: 16px
650
+ fontWeight: 400
651
+ lineHeight: 1.55
652
+ body-md-medium:
653
+ fontFamily: Notion Sans
654
+ fontSize: 16px
655
+ fontWeight: 500
656
+ lineHeight: 1.55
657
+ body-sm:
658
+ fontFamily: Notion Sans
659
+ fontSize: 14px
660
+ fontWeight: 400
661
+ lineHeight: 1.50
662
+ body-sm-medium:
663
+ fontFamily: Notion Sans
664
+ fontSize: 14px
665
+ fontWeight: 500
666
+ lineHeight: 1.50
667
+ caption:
668
+ fontFamily: Notion Sans
669
+ fontSize: 13px
670
+ fontWeight: 400
671
+ lineHeight: 1.40
672
+ caption-bold:
673
+ fontFamily: Notion Sans
674
+ fontSize: 13px
675
+ fontWeight: 600
676
+ lineHeight: 1.40
677
+ micro:
678
+ fontFamily: Notion Sans
679
+ fontSize: 12px
680
+ fontWeight: 500
681
+ lineHeight: 1.40
682
+ micro-uppercase:
683
+ fontFamily: Notion Sans
684
+ fontSize: 11px
685
+ fontWeight: 600
686
+ lineHeight: 1.40
687
+ letterSpacing: 1px
688
+ button-md:
689
+ fontFamily: Notion Sans
690
+ fontSize: 14px
691
+ fontWeight: 500
692
+ lineHeight: 1.30
693
+
694
+ rounded:
695
+ xs: 4px
696
+ sm: 6px
697
+ md: 8px
698
+ lg: 12px
699
+ xl: 16px
700
+ xxl: 20px
701
+ xxxl: 24px
702
+ full: 9999px
703
+
704
+ spacing:
705
+ xxs: 4px
706
+ xs: 8px
707
+ sm: 12px
708
+ md: 16px
709
+ lg: 20px
710
+ xl: 24px
711
+ xxl: 32px
712
+ xxxl: 40px
713
+ section-sm: 48px
714
+ section: 64px
715
+ section-lg: 96px
716
+ hero: 120px
717
+
718
+ components:
719
+ button-primary:
720
+ backgroundColor: "{colors.primary}"
721
+ textColor: "{colors.on-primary}"
722
+ typography: "{typography.button-md}"
723
+ rounded: "{rounded.md}"
724
+ padding: "10px 18px"
725
+ button-primary-pressed:
726
+ backgroundColor: "{colors.primary-pressed}"
727
+ textColor: "{colors.on-primary}"
728
+ button-primary-disabled:
729
+ backgroundColor: "{colors.hairline}"
730
+ textColor: "{colors.muted}"
731
+ button-dark:
732
+ backgroundColor: "{colors.ink-deep}"
733
+ textColor: "{colors.on-dark}"
734
+ typography: "{typography.button-md}"
735
+ rounded: "{rounded.md}"
736
+ padding: "10px 18px"
737
+ button-secondary:
738
+ backgroundColor: "transparent"
739
+ textColor: "{colors.ink}"
740
+ typography: "{typography.button-md}"
741
+ rounded: "{rounded.md}"
742
+ padding: "10px 18px"
743
+ border: "1px solid {colors.hairline-strong}"
744
+ button-on-dark:
745
+ backgroundColor: "{colors.on-dark}"
746
+ textColor: "{colors.ink}"
747
+ typography: "{typography.button-md}"
748
+ rounded: "{rounded.md}"
749
+ padding: "10px 18px"
750
+ button-secondary-on-dark:
751
+ backgroundColor: "transparent"
752
+ textColor: "{colors.on-dark}"
753
+ typography: "{typography.button-md}"
754
+ rounded: "{rounded.md}"
755
+ padding: "10px 18px"
756
+ border: "1px solid {colors.on-dark-muted}"
757
+ button-ghost:
758
+ backgroundColor: "transparent"
759
+ textColor: "{colors.ink}"
760
+ typography: "{typography.button-md}"
761
+ rounded: "{rounded.sm}"
762
+ padding: "8px 12px"
763
+ button-link:
764
+ backgroundColor: "transparent"
765
+ textColor: "{colors.link-blue}"
766
+ typography: "{typography.body-sm-medium}"
767
+ padding: "0"
768
+ card-base:
769
+ backgroundColor: "{colors.canvas}"
770
+ rounded: "{rounded.lg}"
771
+ padding: "{spacing.xl}"
772
+ border: "1px solid {colors.hairline}"
773
+ card-feature:
774
+ backgroundColor: "{colors.canvas}"
775
+ rounded: "{rounded.lg}"
776
+ padding: "{spacing.xxl}"
777
+ border: "1px solid {colors.hairline}"
778
+ card-feature-yellow-bold:
779
+ backgroundColor: "{colors.card-tint-yellow-bold}"
780
+ textColor: "{colors.charcoal}"
781
+ rounded: "{rounded.lg}"
782
+ padding: "{spacing.xxl}"
783
+ card-feature-peach:
784
+ backgroundColor: "{colors.card-tint-peach}"
785
+ textColor: "{colors.charcoal}"
786
+ rounded: "{rounded.lg}"
787
+ padding: "{spacing.xxl}"
788
+ card-feature-rose:
789
+ backgroundColor: "{colors.card-tint-rose}"
790
+ textColor: "{colors.charcoal}"
791
+ rounded: "{rounded.lg}"
792
+ padding: "{spacing.xxl}"
793
+ card-feature-mint:
794
+ backgroundColor: "{colors.card-tint-mint}"
795
+ textColor: "{colors.charcoal}"
796
+ rounded: "{rounded.lg}"
797
+ padding: "{spacing.xxl}"
798
+ card-feature-sky:
799
+ backgroundColor: "{colors.card-tint-sky}"
800
+ textColor: "{colors.charcoal}"
801
+ rounded: "{rounded.lg}"
802
+ padding: "{spacing.xxl}"
803
+ card-feature-lavender:
804
+ backgroundColor: "{colors.card-tint-lavender}"
805
+ textColor: "{colors.charcoal}"
806
+ rounded: "{rounded.lg}"
807
+ padding: "{spacing.xxl}"
808
+ card-feature-yellow:
809
+ backgroundColor: "{colors.card-tint-yellow}"
810
+ textColor: "{colors.charcoal}"
811
+ rounded: "{rounded.lg}"
812
+ padding: "{spacing.xxl}"
813
+ card-feature-cream:
814
+ backgroundColor: "{colors.card-tint-cream}"
815
+ textColor: "{colors.charcoal}"
816
+ rounded: "{rounded.lg}"
817
+ padding: "{spacing.xxl}"
818
+ card-agent-tile:
819
+ backgroundColor: "{colors.canvas}"
820
+ rounded: "{rounded.lg}"
821
+ padding: "{spacing.xl}"
822
+ border: "1px solid {colors.hairline}"
823
+ card-template:
824
+ backgroundColor: "{colors.canvas}"
825
+ rounded: "{rounded.lg}"
826
+ padding: "{spacing.lg}"
827
+ border: "1px solid {colors.hairline}"
828
+ card-startup-perk:
829
+ backgroundColor: "{colors.canvas}"
830
+ rounded: "{rounded.lg}"
831
+ padding: "{spacing.xl}"
832
+ border: "1px solid {colors.hairline}"
833
+ pricing-card:
834
+ backgroundColor: "{colors.canvas}"
835
+ rounded: "{rounded.lg}"
836
+ padding: "{spacing.xxl}"
837
+ border: "1px solid {colors.hairline}"
838
+ pricing-card-featured:
839
+ backgroundColor: "{colors.surface}"
840
+ rounded: "{rounded.lg}"
841
+ padding: "{spacing.xxl}"
842
+ border: "2px solid {colors.primary}"
843
+ text-input:
844
+ backgroundColor: "{colors.canvas}"
845
+ textColor: "{colors.ink}"
846
+ typography: "{typography.body-md}"
847
+ rounded: "{rounded.md}"
848
+ padding: "{spacing.sm} {spacing.md}"
849
+ border: "1px solid {colors.hairline-strong}"
850
+ height: 44px
851
+ text-input-focused:
852
+ backgroundColor: "{colors.canvas}"
853
+ textColor: "{colors.ink}"
854
+ border: "2px solid {colors.primary}"
855
+ search-pill:
856
+ backgroundColor: "{colors.surface}"
857
+ textColor: "{colors.steel}"
858
+ typography: "{typography.body-md}"
859
+ rounded: "{rounded.md}"
860
+ padding: "{spacing.sm} {spacing.md}"
861
+ height: 44px
862
+ border: "1px solid {colors.hairline}"
863
+ pill-tab:
864
+ backgroundColor: "transparent"
865
+ textColor: "{colors.steel}"
866
+ typography: "{typography.body-sm-medium}"
867
+ rounded: "{rounded.full}"
868
+ padding: "{spacing.xs} {spacing.md}"
869
+ border: "1px solid {colors.hairline}"
870
+ pill-tab-active:
871
+ backgroundColor: "{colors.ink-deep}"
872
+ textColor: "{colors.on-dark}"
873
+ rounded: "{rounded.full}"
874
+ border: "1px solid {colors.ink-deep}"
875
+ segmented-tab:
876
+ backgroundColor: "transparent"
877
+ textColor: "{colors.steel}"
878
+ typography: "{typography.body-sm-medium}"
879
+ padding: "{spacing.sm} {spacing.md}"
880
+ border: "0 0 2px transparent solid"
881
+ segmented-tab-active:
882
+ backgroundColor: "transparent"
883
+ textColor: "{colors.ink}"
884
+ typography: "{typography.body-sm-medium}"
885
+ border: "0 0 2px {colors.ink} solid"
886
+ badge-purple:
887
+ backgroundColor: "{colors.primary}"
888
+ textColor: "{colors.on-primary}"
889
+ typography: "{typography.caption-bold}"
890
+ rounded: "{rounded.full}"
891
+ padding: "4px 10px"
892
+ badge-pink:
893
+ backgroundColor: "{colors.brand-pink}"
894
+ textColor: "{colors.on-primary}"
895
+ typography: "{typography.caption-bold}"
896
+ rounded: "{rounded.full}"
897
+ padding: "4px 10px"
898
+ badge-orange:
899
+ backgroundColor: "{colors.brand-orange}"
900
+ textColor: "{colors.on-primary}"
901
+ typography: "{typography.caption-bold}"
902
+ rounded: "{rounded.full}"
903
+ padding: "4px 10px"
904
+ badge-tag-purple:
905
+ backgroundColor: "{colors.card-tint-lavender}"
906
+ textColor: "{colors.brand-purple-800}"
907
+ typography: "{typography.caption-bold}"
908
+ rounded: "{rounded.sm}"
909
+ padding: "2px 8px"
910
+ badge-tag-orange:
911
+ backgroundColor: "{colors.card-tint-peach}"
912
+ textColor: "{colors.brand-orange-deep}"
913
+ typography: "{typography.caption-bold}"
914
+ rounded: "{rounded.sm}"
915
+ padding: "2px 8px"
916
+ badge-tag-green:
917
+ backgroundColor: "{colors.card-tint-mint}"
918
+ textColor: "{colors.brand-green}"
919
+ typography: "{typography.caption-bold}"
920
+ rounded: "{rounded.sm}"
921
+ padding: "2px 8px"
922
+ badge-popular:
923
+ backgroundColor: "{colors.primary}"
924
+ textColor: "{colors.on-primary}"
925
+ typography: "{typography.caption-bold}"
926
+ rounded: "{rounded.full}"
927
+ padding: "4px 10px"
928
+ promo-banner:
929
+ backgroundColor: "{colors.surface}"
930
+ textColor: "{colors.ink}"
931
+ typography: "{typography.body-sm-medium}"
932
+ padding: "{spacing.sm} {spacing.md}"
933
+ hero-band-dark:
934
+ backgroundColor: "{colors.brand-navy}"
935
+ textColor: "{colors.on-dark}"
936
+ rounded: "0"
937
+ padding: "{spacing.hero}"
938
+ workspace-mockup-card:
939
+ backgroundColor: "{colors.canvas}"
940
+ rounded: "{rounded.lg}"
941
+ padding: "0"
942
+ border: "1px solid {colors.hairline}"
943
+ shadow: "rgba(15, 15, 15, 0.2) 0px 24px 48px -8px"
944
+ cta-banner-light:
945
+ backgroundColor: "{colors.surface}"
946
+ textColor: "{colors.ink}"
947
+ rounded: "{rounded.lg}"
948
+ padding: "{spacing.section}"
949
+ comparison-table:
950
+ backgroundColor: "{colors.canvas}"
951
+ textColor: "{colors.ink}"
952
+ typography: "{typography.body-sm}"
953
+ rounded: "{rounded.md}"
954
+ border: "1px solid {colors.hairline}"
955
+ comparison-row:
956
+ backgroundColor: "{colors.canvas}"
957
+ textColor: "{colors.ink}"
958
+ padding: "{spacing.md} {spacing.lg}"
959
+ border: "0 0 1px {colors.hairline-soft} solid"
960
+ testimonial-card:
961
+ backgroundColor: "{colors.canvas}"
962
+ rounded: "{rounded.lg}"
963
+ padding: "{spacing.xxl}"
964
+ border: "1px solid {colors.hairline}"
965
+ logo-wall-item:
966
+ backgroundColor: "transparent"
967
+ textColor: "{colors.steel}"
968
+ typography: "{typography.body-md-medium}"
969
+ padding: "{spacing.lg}"
970
+ faq-accordion-item:
971
+ backgroundColor: "{colors.canvas}"
972
+ rounded: "{rounded.md}"
973
+ padding: "{spacing.xl}"
974
+ border: "0 0 1px {colors.hairline} solid"
975
+ stat-row:
976
+ backgroundColor: "{colors.surface}"
977
+ textColor: "{colors.ink}"
978
+ rounded: "{rounded.lg}"
979
+ padding: "{spacing.section-sm}"
980
+ footer-region:
981
+ backgroundColor: "{colors.canvas}"
982
+ textColor: "{colors.charcoal}"
983
+ typography: "{typography.body-sm}"
984
+ padding: "{spacing.section} {spacing.xxl}"
985
+ border: "1px solid {colors.hairline}"
986
+ footer-link:
987
+ backgroundColor: "transparent"
988
+ textColor: "{colors.steel}"
989
+ typography: "{typography.body-sm}"
990
+ padding: "{spacing.xxs} 0"
991
+ ---
992
+
993
+ ## Overview
994
+
995
+ Notion presents itself as the all-in-one workspace through a confident, illustration-rich brand voice. The homepage opens with **"Meet the night shift."** rendered centered over a deep navy hero band ({colors.brand-navy}), decorated with brand-colored sticky-note dots and mesh wire illustrations scattered around the headline. The signature **purple pill primary CTA** ({colors.primary}) "Get Notion free" sits at the visual center, paired with an outlined "Request a demo" secondary. Below the buttons, a real Notion workspace UI mockup card (the "Ramp HQ" kanban board) breaks out of the hero band with a deep diffuse drop shadow.
996
+
997
+ Below the hero, the page cycles through a distinctive sequence of feature sections: a dense sticky-note "Keep work moving 24/7" panel with red/blue/green/purple/teal status icons; a **bold yellow** ({colors.card-tint-yellow-bold}) "Ask your on-demand assistants" banner card flanked by orange/rose/mint pastel feature tiles showing assistant UI mockups; and a "Bring all your work together" 3-column grid with brand-colored mockups (sky-blue tutorial card, light Notion calendar, brown/rust testimonial slate). The pricing page renders 4 tiers (Free / Plus / Business / Enterprise) horizontally with one tier featured (purple-bordered) and a dense feature comparison table running below.
998
+
999
+ The system uses a Notion-Sans typeface (Inter-based) across every UI surface — humanist-geometric character that pairs naturally with the colorful illustrations. Buttons are `{rounded.md}` (8px) rectangles, NOT pills — distinguishing Notion's sober rectangular geometry from competitors that use pills universally. Cards use `{rounded.lg}` (12px) consistently.
1000
+
1001
+ **Key Characteristics:**
1002
+ - Deep navy hero band ({colors.brand-navy}) with scattered sticky-note dots + mesh wire decorative illustrations
1003
+ - **Signature purple pill** ({colors.primary}) primary CTA — Notion's recognizable "Get Notion free" button color
1004
+ - Real Notion workspace UI mockup card embedded in the hero with deep drop shadow
1005
+ - Bold yellow feature banner ({colors.card-tint-yellow-bold}) for high-emphasis content sections
1006
+ - Pastel feature card palette (peach, rose, mint, lavender, sky, yellow) echoing the live product database properties
1007
+ - Notion-Sans (Inter-based) across every UI surface
1008
+ - 8px-rounded buttons (NOT pills), 12px-rounded cards — sober editorial geometry
1009
+ - 4-tier pricing comparison with dense feature table
1010
+ - Centered hero layout (different from the left-aligned norm of most B2B SaaS)
1011
+
1012
+ ## Colors
1013
+
1014
+ > Source pages: notion.com/ (homepage), /enterprise, /product/ai, /product/agents, /startups, /pricing. Token coverage was identical across all six pages.
1015
+
1016
+ ### Brand & Primary
1017
+ - **Notion Purple** ({colors.primary}): Signature primary CTA color — the unmistakable "Get Notion free" pill button. Reserved for the dominant CTA only.
1018
+ - **Purple Pressed** ({colors.primary-pressed}): Pressed-state variant
1019
+ - **Purple Deep** ({colors.primary-deep}): Deeper variant for emphasis
1020
+ - **Brand Navy** ({colors.brand-navy}): Hero band background — deep navy
1021
+ - **Brand Navy Deep** ({colors.brand-navy-deep}): Deeper navy for promo banner
1022
+ - **Brand Navy Mid** ({colors.brand-navy-mid}): Mid-spectrum navy
1023
+ - **Link Blue** ({colors.link-blue}): Inline text link blue (NOT primary CTA)
1024
+ - **Link Blue Pressed** ({colors.link-blue-pressed}): Pressed-state link blue
1025
+
1026
+ ### Brand Color Spectrum (echoes live product database properties)
1027
+ - **Brand Pink** ({colors.brand-pink}): Pink accent
1028
+ - **Brand Pink Deep** ({colors.brand-pink-deep}): Deeper pink
1029
+ - **Brand Orange** ({colors.brand-orange}): Orange accent
1030
+ - **Brand Orange Deep** ({colors.brand-orange-deep}): Deeper orange-rust
1031
+ - **Brand Purple** ({colors.brand-purple}): Purple accent variant
1032
+ - **Brand Purple 300** ({colors.brand-purple-300}): Light purple
1033
+ - **Brand Purple 800** ({colors.brand-purple-800}): Deep purple for tag text
1034
+ - **Brand Teal** ({colors.brand-teal}): Teal accent
1035
+ - **Brand Green** ({colors.brand-green}): Bright green
1036
+ - **Brand Yellow** ({colors.brand-yellow}): Soft yellow
1037
+ - **Brand Brown** ({colors.brand-brown}): Brand brown for "earthy" tints
1038
+
1039
+ ### Card Tints (Pastel Feature Card Backgrounds)
1040
+ - **Tint Peach** ({colors.card-tint-peach}): Pale peach
1041
+ - **Tint Rose** ({colors.card-tint-rose}): Pale rose-pink
1042
+ - **Tint Mint** ({colors.card-tint-mint}): Pale mint-green
1043
+ - **Tint Lavender** ({colors.card-tint-lavender}): Pale lavender
1044
+ - **Tint Sky** ({colors.card-tint-sky}): Pale sky-blue
1045
+ - **Tint Yellow** ({colors.card-tint-yellow}): Pale yellow
1046
+ - **Tint Yellow Bold** ({colors.card-tint-yellow-bold}): Bold yellow for high-emphasis feature banners ("Ask your on-demand assistants")
1047
+ - **Tint Cream** ({colors.card-tint-cream}): Cream tint
1048
+ - **Tint Gray** ({colors.card-tint-gray}): Neutral surface
1049
+
1050
+ ### Surface
1051
+ - **Canvas White** ({colors.canvas}): Page background and primary card surface
1052
+ - **Surface** ({colors.surface}): Subtle section backgrounds, search-pill rest, featured pricing tier
1053
+ - **Surface Soft** ({colors.surface-soft}): Quieter section divisions
1054
+ - **Hairline** ({colors.hairline}): 1px borders and primary dividers
1055
+ - **Hairline Soft** ({colors.hairline-soft}): Quieter dividers
1056
+ - **Hairline Strong** ({colors.hairline-strong}): Stronger 1px border for inputs
1057
+
1058
+ ### Text
1059
+ - **Ink Deep** ({colors.ink-deep}): Pure black for emphasis
1060
+ - **Ink** ({colors.ink}): Primary headlines and body text
1061
+ - **Charcoal** ({colors.charcoal}): Body emphasis (Notion's signature warm-charcoal)
1062
+ - **Slate** ({colors.slate}): Secondary text
1063
+ - **Steel** ({colors.steel}): Tertiary, footer links
1064
+ - **Stone** ({colors.stone}): Muted labels
1065
+ - **Muted** ({colors.muted}): Disabled, placeholders
1066
+ - **On Dark** ({colors.on-dark}): White text on dark surfaces
1067
+ - **On Dark Muted** ({colors.on-dark-muted}): Reduced-opacity white
1068
+
1069
+ ### Semantic
1070
+ - **Success** ({colors.semantic-success}): Confirmation green
1071
+ - **Warning** ({colors.semantic-warning}): Mid-priority alerts (orange)
1072
+ - **Error** ({colors.semantic-error}): Validation errors (red)
1073
+
1074
+ ## Typography
1075
+
1076
+ ### Font Family
1077
+ **Notion Sans** (primary): Notion's custom Inter-based variable typeface. Fallbacks: Inter, -apple-system, system-ui, 'Segoe UI', Helvetica, sans-serif. Humanist-geometric character used across every UI surface.
1078
+
1079
+ ### Hierarchy
1080
+
1081
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
1082
+ |---|---|---|---|---|---|
1083
+ | `{typography.hero-display}` | 80px | 600 | 1.05 | -2px | Hero ("Meet the night shift") |
1084
+ | `{typography.display-lg}` | 56px | 600 | 1.10 | -1px | Section openers |
1085
+ | `{typography.heading-1}` | 48px | 600 | 1.15 | -0.5px | Page-level headlines ("Try for free") |
1086
+ | `{typography.heading-2}` | 36px | 600 | 1.20 | -0.5px | Subsection headlines ("Keep work moving 24/7") |
1087
+ | `{typography.heading-3}` | 28px | 600 | 1.25 | 0 | Card titles |
1088
+ | `{typography.heading-4}` | 22px | 600 | 1.30 | 0 | Feature tile titles |
1089
+ | `{typography.heading-5}` | 18px | 600 | 1.40 | 0 | FAQ questions |
1090
+ | `{typography.subtitle}` | 18px | 400 | 1.50 | 0 | Hero subtitle |
1091
+ | `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Primary body text |
1092
+ | `{typography.body-md-medium}` | 16px | 500 | 1.55 | 0 | Body emphasis |
1093
+ | `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Secondary body |
1094
+ | `{typography.body-sm-medium}` | 14px | 500 | 1.50 | 0 | Active sidebar, button labels |
1095
+ | `{typography.caption-bold}` | 13px | 600 | 1.40 | 0 | Badge labels |
1096
+ | `{typography.button-md}` | 14px | 500 | 1.30 | 0 | Button labels |
1097
+
1098
+ ### Principles
1099
+ - Tight hero leading (1.05) on 80px display
1100
+ - Negative letter-spacing on display sizes (-2px to -0.5px)
1101
+ - Generous body leading (1.55) for documentation readability
1102
+ - 600 weight for headlines + 500 for buttons; 400 body
1103
+
1104
+ ## Layout
1105
+
1106
+ ### Spacing System
1107
+ - **Base unit**: 4px (8px primary increment)
1108
+ - **Tokens**: `{spacing.xxs}` (4px) through `{spacing.hero}` (120px)
1109
+ - **Section rhythm**: Marketing pages use `{spacing.section-lg}` (96px); pricing tightens to `{spacing.section}` (64px)
1110
+
1111
+ ### Grid & Container
1112
+ - 1280px max-width with 32px gutters
1113
+ - Pricing: 4-tier card row at desktop with dense comparison table
1114
+ - Homepage: centered hero with workspace mockup below buttons; alternating colorful feature card sections
1115
+
1116
+ ### Whitespace Philosophy
1117
+ Marketing surfaces use generous breathing room between feature card bands. Workspace mockup card on hero gets full-width treatment with deep drop shadow.
1118
+
1119
+ ## Elevation & Depth
1120
+
1121
+ | Level | Treatment | Use |
1122
+ |---|---|---|
1123
+ | 0 (flat) | No shadow; `{colors.hairline}` border | Default cards, table rows |
1124
+ | 1 (subtle) | `rgba(15, 15, 15, 0.04) 0px 1px 2px 0px` | Hover-elevated tiles |
1125
+ | 2 (card) | `rgba(15, 15, 15, 0.08) 0px 4px 12px 0px` | Feature cards |
1126
+ | 3 (mockup) | `rgba(15, 15, 15, 0.20) 0px 24px 48px -8px` | Hero workspace mockup card |
1127
+ | 4 (modal) | `rgba(15, 15, 15, 0.16) 0px 16px 48px -8px` | Modals, dropdowns |
1128
+
1129
+ ### Decorative Depth
1130
+ - Hero workspace mockup card uses deep diffuse drop shadow (Level 3) — significant elevation against the navy band
1131
+ - Pastel feature cards carry their own visual weight via tint backgrounds
1132
+ - Sticky-note dot illustrations and mesh wires add atmospheric decoration to navy hero
1133
+
1134
+ ## Shapes
1135
+
1136
+ ### Border Radius Scale
1137
+
1138
+ | Token | Value | Use |
1139
+ |---|---|---|
1140
+ | `{rounded.xs}` | 4px | Tag chips |
1141
+ | `{rounded.sm}` | 6px | Type badges |
1142
+ | `{rounded.md}` | 8px | Buttons, inputs, search-pill |
1143
+ | `{rounded.lg}` | 12px | Cards, pricing tiers, agent tiles, workspace mockup |
1144
+ | `{rounded.xl}` | 16px | Larger feature panels |
1145
+ | `{rounded.xxl}` | 20px | Featured product showcases |
1146
+ | `{rounded.xxxl}` | 24px | Larger feature cards |
1147
+ | `{rounded.full}` | 9999px | Status badges, pill tabs (NOT regular buttons) |
1148
+
1149
+ Notion's geometry is sober-editorial — `{rounded.md}` (8px) buttons distinguish it from pill-button-everywhere brands.
1150
+
1151
+ ## Components
1152
+
1153
+ > Per the no-hover policy, hover states are NOT documented.
1154
+
1155
+ ### Buttons
1156
+
1157
+ **`button-primary`** — Signature purple rectangular primary CTA, the dominant action.
1158
+ - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`.
1159
+ - Pressed state `button-primary-pressed` deepens to `{colors.primary-pressed}`.
1160
+ - Disabled state uses `{colors.hairline}` background.
1161
+
1162
+ **`button-dark`** — Black rectangular CTA on light backgrounds.
1163
+ - Background `{colors.ink-deep}`, text `{colors.on-dark}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`.
1164
+
1165
+ **`button-secondary`** — Outlined rectangular for secondary actions ("Request a demo").
1166
+ - Background transparent, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`.
1167
+
1168
+ **`button-on-dark`** — White button on dark hero bands.
1169
+ - Background `{colors.on-dark}`, text `{colors.ink}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`.
1170
+
1171
+ **`button-secondary-on-dark`** — Outlined button on dark.
1172
+ - Background transparent, text `{colors.on-dark}`, border `1px solid {colors.on-dark-muted}`, typography `{typography.button-md}`, padding `10px 18px`, rounded `{rounded.md}`.
1173
+
1174
+ **`button-ghost`** — Quieter ghost button.
1175
+ - Background transparent, text `{colors.ink}`, typography `{typography.button-md}`, padding `8px 12px`, rounded `{rounded.sm}`.
1176
+
1177
+ **`button-link`** — Inline blue text link (NOT primary purple).
1178
+ - Background transparent, text `{colors.link-blue}`, typography `{typography.body-sm-medium}`, padding `0`.
1179
+
1180
+ ### Cards & Containers
1181
+
1182
+ **`card-base`** — Standard content card.
1183
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`.
1184
+
1185
+ **`card-feature`** — Feature card with larger padding.
1186
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`.
1187
+
1188
+ **`card-feature-yellow-bold`** — Bold yellow feature banner for high-emphasis content ("Ask your on-demand assistants").
1189
+ - Background `{colors.card-tint-yellow-bold}`, text `{colors.charcoal}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`.
1190
+
1191
+ **`card-feature-peach`** + **`card-feature-rose`** + **`card-feature-mint`** + **`card-feature-sky`** + **`card-feature-lavender`** + **`card-feature-yellow`** + **`card-feature-cream`** — Pastel-tinted feature cards.
1192
+ - Each variant uses its corresponding `card-tint-*` color as background, text `{colors.charcoal}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`.
1193
+
1194
+ **`card-agent-tile`** — Agent assistant tile.
1195
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`.
1196
+
1197
+ **`card-template`** — Template thumbnail card.
1198
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg}`, border `1px solid {colors.hairline}`.
1199
+
1200
+ **`card-startup-perk`** — Startup-program perk grid item.
1201
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`.
1202
+
1203
+ **`pricing-card`** — Standard pricing tier card.
1204
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`.
1205
+
1206
+ **`pricing-card-featured`** — Featured pricing tier (Plus or Business — purple-bordered).
1207
+ - Background `{colors.surface}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `2px solid {colors.primary}`.
1208
+
1209
+ ### Inputs & Forms
1210
+
1211
+ **`text-input`** — Standard text field.
1212
+ - Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`, height 44px.
1213
+
1214
+ **`text-input-focused`** — Activated state.
1215
+ - Border switches to `2px solid {colors.primary}` (purple).
1216
+
1217
+ **`search-pill`** — Search bar.
1218
+ - Background `{colors.surface}`, text `{colors.steel}`, typography `{typography.body-md}`, rounded `{rounded.md}`, height 44px, border `1px solid {colors.hairline}`.
1219
+
1220
+ ### Tabs
1221
+
1222
+ **`pill-tab`** + **`pill-tab-active`** — Pill-style tab nav for top-level switching.
1223
+ - Inactive: text `{colors.steel}`, border `1px solid {colors.hairline}`, padding `{spacing.xs} {spacing.md}`, rounded `{rounded.full}`.
1224
+ - Active: background `{colors.ink-deep}`, text `{colors.on-dark}`.
1225
+
1226
+ **`segmented-tab`** + **`segmented-tab-active`** — Underline-style tab navigation.
1227
+ - Inactive: text `{colors.steel}`, no border. Active: text `{colors.ink}`, 2px bottom border in `{colors.ink}`.
1228
+
1229
+ ### Badges & Status
1230
+
1231
+ **`badge-purple`** — Purple status badge (matches primary CTA).
1232
+ - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
1233
+
1234
+ **`badge-pink`** — Pink accent badge.
1235
+ - Background `{colors.brand-pink}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
1236
+
1237
+ **`badge-orange`** — Orange accent badge.
1238
+ - Background `{colors.brand-orange}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
1239
+
1240
+ **`badge-tag-purple`** — Soft-purple feature tag chip.
1241
+ - Background `{colors.card-tint-lavender}`, text `{colors.brand-purple-800}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`.
1242
+
1243
+ **`badge-tag-orange`** — Soft-orange feature tag.
1244
+ - Background `{colors.card-tint-peach}`, text `{colors.brand-orange-deep}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`.
1245
+
1246
+ **`badge-tag-green`** — Soft-mint feature tag.
1247
+ - Background `{colors.card-tint-mint}`, text `{colors.brand-green}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`.
1248
+
1249
+ **`badge-popular`** — "Most Popular" tier indicator.
1250
+ - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
1251
+
1252
+ **`promo-banner`** — Light surface promo strip ABOVE the top nav.
1253
+ - Background `{colors.surface}`, text `{colors.ink}`, typography `{typography.body-sm-medium}`, padding `{spacing.sm} {spacing.md}`. ("Developers: Get a first look at our new Developer Platform on May 13.")
1254
+
1255
+ ### Tables
1256
+
1257
+ **`comparison-table`** — Pricing feature comparison table.
1258
+ - Background `{colors.canvas}`, text `{colors.ink}`, typography `{typography.body-sm}`, rounded `{rounded.md}`, border `1px solid {colors.hairline}`.
1259
+
1260
+ **`comparison-row`** — Individual feature row.
1261
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md} {spacing.lg}`, bottom border `1px solid {colors.hairline-soft}`.
1262
+
1263
+ ### Documentation Components
1264
+
1265
+ **`workspace-mockup-card`** — Embedded Notion workspace UI mockup on hero band ("Ramp HQ" kanban board).
1266
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, border `1px solid {colors.hairline}`, deep shadow `rgba(15, 15, 15, 0.20) 0px 24px 48px -8px`. Carries actual Notion product UI mock.
1267
+
1268
+ **`testimonial-card`** — Customer testimonial card.
1269
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`.
1270
+
1271
+ **`logo-wall-item`** — Customer logo wordmark cell.
1272
+ - Background transparent, text `{colors.steel}`, typography `{typography.body-md-medium}`, padding `{spacing.lg}`.
1273
+
1274
+ **`faq-accordion-item`** — FAQ panel.
1275
+ - Background `{colors.canvas}`, rounded `{rounded.md}`, padding `{spacing.xl}`, bottom border `1px solid {colors.hairline}`.
1276
+
1277
+ **`stat-row`** — Stats strip with bar chart visualization ("More productivity. Fewer tools.").
1278
+ - Background `{colors.surface}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.section-sm}`.
1279
+
1280
+ **`cta-banner-light`** — Light surface CTA banner.
1281
+ - Background `{colors.surface}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.section}`.
1282
+
1283
+ ### Navigation
1284
+
1285
+ **Top Navigation (Marketing)** — Sticky white bar.
1286
+ - Background `{colors.canvas}`, height ~64px, bottom border `1px solid {colors.hairline}`.
1287
+ - Left: Notion "N" logo + "Product / AI / Solutions / Resources / Enterprise / Pricing / Request a demo" links.
1288
+ - Right: "Get Notion free" purple button + "Log in" link.
1289
+
1290
+ ### Signature Components
1291
+
1292
+ **`hero-band-dark`** — Deep navy hero band with embedded workspace mockup and decorative dots/wires.
1293
+ - Background `{colors.brand-navy}`, text `{colors.on-dark}`, padding `{spacing.hero}`.
1294
+ - Layout: centered headline `{typography.hero-display}`, subtitle, button row (`button-primary` purple + `button-secondary-on-dark`), `workspace-mockup-card` below.
1295
+ - Atmospheric decoration: scattered colorful sticky-note dots and mesh wire illustrations around the hero content (NOT a literal pattern fill — handled per-page via SVG/illustration).
1296
+
1297
+ **`footer-region`** — Multi-column light footer.
1298
+ - Background `{colors.canvas}`, padding `{spacing.section} {spacing.xxl}`, top border `1px solid {colors.hairline}`.
1299
+ - 6-column link grid (Product / Download / Resources / Notion for / Company / Legal).
1300
+
1301
+ **`footer-link`** — Individual footer link.
1302
+ - Background transparent, text `{colors.steel}`, typography `{typography.body-sm}`, padding `{spacing.xxs} 0`.
1303
+
1304
+ ## Do's and Don'ts
1305
+
1306
+ ### Do
1307
+ - Use `{colors.primary}` (purple) as the dominant CTA across all surfaces — it's the brand's recognizable signal
1308
+ - Pair deep navy hero bands ({colors.brand-navy}) with the purple button + decorative sticky-note dots
1309
+ - Use pastel feature card tints (peach, rose, mint, lavender, sky, yellow) generously
1310
+ - Use `{colors.card-tint-yellow-bold}` for high-emphasis "Ask the assistant"-style banner cards
1311
+ - Apply `{rounded.md}` (8px) to buttons consistently — Notion uses rectangles, not pills
1312
+ - Apply `{rounded.lg}` (12px) to all card families
1313
+ - Maintain Notion-Sans across every UI surface
1314
+ - Use the workspace mockup card on hero bands to show actual product UI
1315
+
1316
+ ### Don't
1317
+ - Don't use the purple for body text or large background surfaces
1318
+ - Don't use pill-shaped buttons; Notion's geometry is rectangular-sober
1319
+ - Don't mix link-blue ({colors.link-blue}) with primary-purple ({colors.primary}) — they have distinct roles
1320
+ - Don't apply heavy shadows on flat documentation cards
1321
+ - Don't replace Notion-Sans with a generic Inter
1322
+
1323
+ ## Responsive Behavior
1324
+
1325
+ ### Breakpoints
1326
+ | Name | Width | Key Changes |
1327
+ |---|---|---|
1328
+ | Mobile (small) | < 480px | Single column. Hero 36px. Pricing 1-up. |
1329
+ | Mobile (large) | 480 – 767px | Feature cards 2-up. Hero 48px. |
1330
+ | Tablet | 768 – 1023px | 2-column feature grids. Hero 56px. |
1331
+ | Desktop | 1024 – 1279px | 4-tier pricing card row. Hero 72px. |
1332
+ | Wide Desktop | ≥ 1280px | Full 80px hero presentation. |
1333
+
1334
+ ### Touch Targets
1335
+ - Buttons render at 40–44px effective height
1336
+ - Form inputs render at 44px height
1337
+ - Pill tabs ~32px → 44px on mobile
1338
+
1339
+ ### Collapsing Strategy
1340
+ - **Promo banner** stays full-width; truncates at < 480px
1341
+ - **Top nav** below 1024px collapses to hamburger
1342
+ - **Hero band**: workspace mockup card moves below text/buttons on mobile
1343
+ - **Pricing tiers**: 4-column → 2-column tablet → 1-column mobile
1344
+ - **Feature cards**: 3-up desktop → 2-up tablet → 1-up mobile
1345
+ - **Hero typography**: 80px → 56px → 48px → 36px
1346
+ - **Footer**: 6-column desktop → 3-column tablet → accordion mobile
1347
+
1348
+ ### Image Behavior
1349
+ - Workspace mockup card maintains aspect ratio
1350
+ - Pastel illustrations inside feature cards scale proportionally
1351
+ - Customer logo wall: wordmarks at consistent 60–80px height
1352
+
1353
+ ## Iteration Guide
1354
+
1355
+ 1. Focus on ONE component at a time
1356
+ 2. Reference component names and tokens directly
1357
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits
1358
+ 4. Add new variants as separate `components:` entries
1359
+ 5. Default to `{typography.body-md}` for body
1360
+ 6. Keep `{colors.primary}` (purple) as the primary CTA — distinct from `{colors.link-blue}` for inline links
1361
+ 7. Use `{rounded.md}` for buttons (rectangles), `{rounded.lg}` for cards, `{rounded.full}` for pill tabs/badges only
1362
+
1363
+ ## Known Gaps
1364
+
1365
+ - Specific dark-mode token values not surfaced beyond hero bands
1366
+ - Animation/transition timings not extracted; recommend 150–200ms ease
1367
+ - Form validation success state not explicitly captured
1368
+ - Pastel-tint mapping (which feature uses which tint) is observation-based — the actual brand library may have more entries