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,1077 @@
1
+ {
2
+ "schemaVersion": "1",
3
+ "id": "hp-design-analysis",
4
+ "displayName": "HP-design-analysis",
5
+ "description": "An inspired interpretation of HP's design language — a white-paper enterprise-consumer system anchored by HP Electric Blue (`#024ad8`) as the lone signal CTA, near-black ink (`#1a1a1a`) for headlines, geometric Forma-DJR sans throughout, and angular blue-chevron decorations that nod to the HP wordmark's slashes. Cards round at 8–16px, photos sit in soft 16px frames, and dark navy slabs anchor the customer-story and \"how can we help\" closing bands.",
6
+ "source": "embedded",
7
+ "status": "curated-reference",
8
+ "targets": [
9
+ "terminal",
10
+ "react"
11
+ ],
12
+ "contentPath": "packages/design-systems/library/hp.design.md",
13
+ "sourceContentHash": "4c9a248046684bdde5311a0c9881814f50e2381c2b0f3c75b02a35fc64bc8bb8",
14
+ "normalizedContentHash": "a463dbb903b38d55ab1a43e8878988cf1f58d3641d305520444849ae0f94993b",
15
+ "provenance": {
16
+ "sourceRepository": "VoltAgent/awesome-design-md",
17
+ "sourceRevision": "working-tree-curated-snapshot",
18
+ "sourcePath": "packages/design-systems/library/hp.design.md",
19
+ "license": "MIT"
20
+ },
21
+ "fonts": [
22
+ {
23
+ "family": "Forma DJR Micro",
24
+ "fallback": [
25
+ "system-ui",
26
+ "sans-serif"
27
+ ],
28
+ "redistributable": false
29
+ }
30
+ ],
31
+ "tokens": {
32
+ "colors": {
33
+ "bloom-coral": "#ff5050",
34
+ "bloom-deep": "#b3262b",
35
+ "bloom-rose": "#f9d4d2",
36
+ "bloom-wine": "#5a1313",
37
+ "canvas": "#ffffff",
38
+ "charcoal": "#3d3d3d",
39
+ "cloud": "#f7f7f7",
40
+ "error": "#b3262b",
41
+ "fog": "#e8e8e8",
42
+ "graphite": "#636363",
43
+ "hairline": "#e8e8e8",
44
+ "hairline-strong": "#c2c2c2",
45
+ "ink": "#1a1a1a",
46
+ "ink-deep": "#000000",
47
+ "ink-soft": "#292929",
48
+ "link": "#024ad8",
49
+ "link-pressed": "#0e3191",
50
+ "on-ink": "#ffffff",
51
+ "on-primary": "#ffffff",
52
+ "paper": "#ffffff",
53
+ "primary": "#024ad8",
54
+ "primary-bright": "#296ef9",
55
+ "primary-deep": "#0e3191",
56
+ "primary-soft": "#c9e0fc",
57
+ "steel": "#c2c2c2",
58
+ "storm-deep": "#356373",
59
+ "storm-mist": "#8ebdce",
60
+ "storm-sea": "#7fadbe"
61
+ },
62
+ "typography": {
63
+ "display-xxl": {
64
+ "fontFamily": "Forma DJR Micro",
65
+ "fontSize": "72px",
66
+ "fontWeight": 500,
67
+ "letterSpacing": 0,
68
+ "lineHeight": 1
69
+ },
70
+ "display-xl": {
71
+ "fontFamily": "Forma DJR Micro",
72
+ "fontSize": "56px",
73
+ "fontWeight": 500,
74
+ "letterSpacing": 0,
75
+ "lineHeight": 1
76
+ },
77
+ "display-lg": {
78
+ "fontFamily": "Forma DJR Micro",
79
+ "fontSize": "44px",
80
+ "fontWeight": 500,
81
+ "letterSpacing": 0,
82
+ "lineHeight": 1
83
+ },
84
+ "display-md": {
85
+ "fontFamily": "Forma DJR Micro",
86
+ "fontSize": "32px",
87
+ "fontWeight": 500,
88
+ "letterSpacing": 0,
89
+ "lineHeight": 1
90
+ },
91
+ "display-sm": {
92
+ "fontFamily": "Forma DJR Micro",
93
+ "fontSize": "24px",
94
+ "fontWeight": 500,
95
+ "letterSpacing": 0,
96
+ "lineHeight": 1.17
97
+ },
98
+ "display-xs": {
99
+ "fontFamily": "Forma DJR Micro",
100
+ "fontSize": "20px",
101
+ "fontWeight": 500,
102
+ "letterSpacing": 0,
103
+ "lineHeight": 1
104
+ },
105
+ "body-lg": {
106
+ "fontFamily": "Forma DJR Micro",
107
+ "fontSize": "18px",
108
+ "fontWeight": 400,
109
+ "letterSpacing": 0,
110
+ "lineHeight": 1.33
111
+ },
112
+ "body-md": {
113
+ "fontFamily": "Forma DJR Micro",
114
+ "fontSize": "16px",
115
+ "fontWeight": 400,
116
+ "letterSpacing": 0,
117
+ "lineHeight": 1.38
118
+ },
119
+ "body-emphasis": {
120
+ "fontFamily": "Forma DJR Micro",
121
+ "fontSize": "16px",
122
+ "fontWeight": 500,
123
+ "letterSpacing": 0,
124
+ "lineHeight": 1.38
125
+ },
126
+ "caption-md": {
127
+ "fontFamily": "Forma DJR Micro",
128
+ "fontSize": "14px",
129
+ "fontWeight": 400,
130
+ "letterSpacing": 0,
131
+ "lineHeight": 1.5
132
+ },
133
+ "caption-sm": {
134
+ "fontFamily": "Forma DJR Micro",
135
+ "fontSize": "12px",
136
+ "fontWeight": 400,
137
+ "letterSpacing": 0,
138
+ "lineHeight": 1.33
139
+ },
140
+ "caption-bold": {
141
+ "fontFamily": "Forma DJR Micro",
142
+ "fontSize": "14px",
143
+ "fontWeight": 700,
144
+ "letterSpacing": 0,
145
+ "lineHeight": 1.3
146
+ },
147
+ "link-md": {
148
+ "fontFamily": "Forma DJR Micro",
149
+ "fontSize": "16px",
150
+ "fontWeight": 500,
151
+ "letterSpacing": 0,
152
+ "lineHeight": 1.38
153
+ },
154
+ "button-md": {
155
+ "fontFamily": "Forma DJR Micro",
156
+ "fontSize": "14px",
157
+ "fontWeight": 600,
158
+ "letterSpacing": "0.7px",
159
+ "lineHeight": 1.4,
160
+ "textTransform": "uppercase"
161
+ },
162
+ "button-sm": {
163
+ "fontFamily": "Forma DJR Micro",
164
+ "fontSize": "12.6px",
165
+ "fontWeight": 700,
166
+ "letterSpacing": "0.126px",
167
+ "lineHeight": 1
168
+ },
169
+ "price-md": {
170
+ "fontFamily": "Forma DJR Micro",
171
+ "fontSize": "24px",
172
+ "fontWeight": 500,
173
+ "letterSpacing": 0,
174
+ "lineHeight": 1.17
175
+ }
176
+ },
177
+ "spacing": {
178
+ "lg": "20px",
179
+ "md": "16px",
180
+ "section": "80px",
181
+ "sm": "12px",
182
+ "xl": "24px",
183
+ "xs": "8px",
184
+ "xxl": "32px",
185
+ "xxs": "4px"
186
+ },
187
+ "radius": {
188
+ "full": "9999px",
189
+ "lg": "8px",
190
+ "md": "4px",
191
+ "none": "0px",
192
+ "pill": "9999px",
193
+ "sm": "3px",
194
+ "xl": "16px",
195
+ "xs": "2px"
196
+ },
197
+ "components": {
198
+ "button-primary": {
199
+ "backgroundColor": "{colors.primary}",
200
+ "height": "44px",
201
+ "padding": "12px 24px",
202
+ "rounded": "{rounded.md}",
203
+ "textColor": "{colors.on-primary}",
204
+ "typography": "{typography.button-md}"
205
+ },
206
+ "button-primary-pressed": {
207
+ "backgroundColor": "{colors.primary-deep}",
208
+ "textColor": "{colors.on-primary}"
209
+ },
210
+ "button-primary-disabled": {
211
+ "backgroundColor": "{colors.steel}",
212
+ "textColor": "{colors.on-primary}"
213
+ },
214
+ "button-ink": {
215
+ "backgroundColor": "{colors.ink}",
216
+ "height": "44px",
217
+ "padding": "12px 24px",
218
+ "rounded": "{rounded.md}",
219
+ "textColor": "{colors.on-primary}",
220
+ "typography": "{typography.button-md}"
221
+ },
222
+ "button-outline": {
223
+ "backgroundColor": "{colors.canvas}",
224
+ "height": "44px",
225
+ "padding": "12px 24px",
226
+ "rounded": "{rounded.md}",
227
+ "textColor": "{colors.primary}",
228
+ "typography": "{typography.button-md}"
229
+ },
230
+ "button-outline-ink": {
231
+ "backgroundColor": "{colors.canvas}",
232
+ "height": "44px",
233
+ "padding": "12px 24px",
234
+ "rounded": "{rounded.md}",
235
+ "textColor": "{colors.ink}",
236
+ "typography": "{typography.button-md}"
237
+ },
238
+ "button-text-link": {
239
+ "backgroundColor": "{colors.canvas}",
240
+ "padding": "4px 0",
241
+ "textColor": "{colors.primary}",
242
+ "typography": "{typography.link-md}"
243
+ },
244
+ "badge-pill-ink": {
245
+ "backgroundColor": "{colors.ink}",
246
+ "padding": "6px 12px",
247
+ "rounded": "{rounded.lg}",
248
+ "textColor": "{colors.on-primary}",
249
+ "typography": "{typography.body-md}"
250
+ },
251
+ "badge-pill-outline": {
252
+ "backgroundColor": "{colors.canvas}",
253
+ "padding": "6px 12px",
254
+ "rounded": "{rounded.lg}",
255
+ "textColor": "{colors.ink}",
256
+ "typography": "{typography.body-md}"
257
+ },
258
+ "badge-sale-coral": {
259
+ "backgroundColor": "{colors.bloom-coral}",
260
+ "padding": "4px 8px",
261
+ "rounded": "{rounded.sm}",
262
+ "textColor": "{colors.on-primary}",
263
+ "typography": "{typography.caption-bold}"
264
+ },
265
+ "text-input": {
266
+ "backgroundColor": "{colors.canvas}",
267
+ "height": "44px",
268
+ "padding": "12px 16px",
269
+ "rounded": "{rounded.md}",
270
+ "textColor": "{colors.ink}",
271
+ "typography": "{typography.body-md}"
272
+ },
273
+ "text-input-focused": {
274
+ "backgroundColor": "{colors.canvas}",
275
+ "textColor": "{colors.ink}"
276
+ },
277
+ "text-input-search": {
278
+ "backgroundColor": "{colors.canvas}",
279
+ "height": "40px",
280
+ "padding": "12px 16px",
281
+ "rounded": "{rounded.md}",
282
+ "textColor": "{colors.ink}",
283
+ "typography": "{typography.body-md}"
284
+ },
285
+ "card-product": {
286
+ "backgroundColor": "{colors.canvas}",
287
+ "padding": "24px",
288
+ "rounded": "{rounded.xl}",
289
+ "textColor": "{colors.ink}"
290
+ },
291
+ "card-product-feature": {
292
+ "backgroundColor": "{colors.cloud}",
293
+ "padding": "32px",
294
+ "rounded": "{rounded.xl}",
295
+ "textColor": "{colors.ink}"
296
+ },
297
+ "card-pricing-tier": {
298
+ "backgroundColor": "{colors.canvas}",
299
+ "padding": "24px",
300
+ "rounded": "{rounded.xl}",
301
+ "textColor": "{colors.ink}"
302
+ },
303
+ "card-pricing-tier-featured": {
304
+ "backgroundColor": "{colors.canvas}",
305
+ "padding": "24px",
306
+ "rounded": "{rounded.xl}",
307
+ "textColor": "{colors.ink}"
308
+ },
309
+ "card-customer-story": {
310
+ "backgroundColor": "{colors.canvas}",
311
+ "padding": "16px",
312
+ "rounded": "{rounded.xl}",
313
+ "textColor": "{colors.ink}"
314
+ },
315
+ "card-article-tile": {
316
+ "backgroundColor": "{colors.canvas}",
317
+ "padding": "16px",
318
+ "rounded": "{rounded.xl}",
319
+ "textColor": "{colors.ink}"
320
+ },
321
+ "card-category-icon": {
322
+ "backgroundColor": "{colors.canvas}",
323
+ "padding": "16px",
324
+ "rounded": "{rounded.lg}",
325
+ "textColor": "{colors.ink}",
326
+ "typography": "{typography.body-emphasis}"
327
+ },
328
+ "promo-strip-dark": {
329
+ "backgroundColor": "{colors.ink}",
330
+ "padding": "48px",
331
+ "rounded": "{rounded.xl}",
332
+ "textColor": "{colors.on-primary}",
333
+ "typography": "{typography.body-md}"
334
+ },
335
+ "hero-promo-card": {
336
+ "backgroundColor": "{colors.canvas}",
337
+ "padding": "32px",
338
+ "rounded": "{rounded.xl}",
339
+ "textColor": "{colors.ink}"
340
+ },
341
+ "utility-strip": {
342
+ "backgroundColor": "{colors.ink}",
343
+ "height": "36px",
344
+ "padding": "0 24px",
345
+ "textColor": "{colors.on-primary}",
346
+ "typography": "{typography.caption-md}"
347
+ },
348
+ "nav-bar-top": {
349
+ "backgroundColor": "{colors.canvas}",
350
+ "height": "64px",
351
+ "padding": "0 32px",
352
+ "textColor": "{colors.ink}",
353
+ "typography": "{typography.body-md}"
354
+ },
355
+ "nav-link": {
356
+ "backgroundColor": "{colors.canvas}",
357
+ "padding": "8px 16px",
358
+ "textColor": "{colors.ink}",
359
+ "typography": "{typography.body-md}"
360
+ },
361
+ "category-tab": {
362
+ "backgroundColor": "{colors.canvas}",
363
+ "padding": "8px 20px",
364
+ "rounded": "{rounded.pill}",
365
+ "textColor": "{colors.ink}",
366
+ "typography": "{typography.body-emphasis}"
367
+ },
368
+ "category-tab-active": {
369
+ "backgroundColor": "{colors.ink}",
370
+ "rounded": "{rounded.pill}",
371
+ "textColor": "{colors.on-primary}"
372
+ },
373
+ "faq-row": {
374
+ "backgroundColor": "{colors.canvas}",
375
+ "padding": "20px 24px",
376
+ "rounded": "{rounded.lg}",
377
+ "textColor": "{colors.ink}",
378
+ "typography": "{typography.body-emphasis}"
379
+ },
380
+ "chevron-decoration": {
381
+ "backgroundColor": "{colors.primary}",
382
+ "rounded": "{rounded.none}",
383
+ "textColor": "{colors.on-primary}"
384
+ },
385
+ "help-band-dark": {
386
+ "backgroundColor": "{colors.ink}",
387
+ "padding": "64px 32px",
388
+ "textColor": "{colors.on-primary}",
389
+ "typography": "{typography.body-md}"
390
+ },
391
+ "footer-dark": {
392
+ "backgroundColor": "{colors.ink}",
393
+ "padding": "64px 32px",
394
+ "textColor": "{colors.on-primary}",
395
+ "typography": "{typography.body-md}"
396
+ }
397
+ },
398
+ "extensions": {
399
+ "description": "An inspired interpretation of HP's design language — a white-paper enterprise-consumer system anchored by HP Electric Blue (`#024ad8`) as the lone signal CTA, near-black ink (`#1a1a1a`) for headlines, geometric Forma-DJR sans throughout, and angular blue-chevron decorations that nod to the HP wordmark's slashes. Cards round at 8–16px, photos sit in soft 16px frames, and dark navy slabs anchor the customer-story and \"how can we help\" closing bands.",
400
+ "name": "HP-design-analysis",
401
+ "version": "alpha"
402
+ }
403
+ }
404
+ }
405
+
406
+ ---
407
+
408
+ ---
409
+ version: alpha
410
+ name: HP-design-analysis
411
+ description: An inspired interpretation of HP's design language — a white-paper enterprise-consumer system anchored by HP Electric Blue (`#024ad8`) as the lone signal CTA, near-black ink (`#1a1a1a`) for headlines, geometric Forma-DJR sans throughout, and angular blue-chevron decorations that nod to the HP wordmark's slashes. Cards round at 8–16px, photos sit in soft 16px frames, and dark navy slabs anchor the customer-story and "how can we help" closing bands.
412
+
413
+ colors:
414
+ primary: "#024ad8"
415
+ primary-bright: "#296ef9"
416
+ primary-deep: "#0e3191"
417
+ primary-soft: "#c9e0fc"
418
+ on-primary: "#ffffff"
419
+ ink: "#1a1a1a"
420
+ ink-deep: "#000000"
421
+ ink-soft: "#292929"
422
+ on-ink: "#ffffff"
423
+ canvas: "#ffffff"
424
+ paper: "#ffffff"
425
+ cloud: "#f7f7f7"
426
+ fog: "#e8e8e8"
427
+ steel: "#c2c2c2"
428
+ graphite: "#636363"
429
+ charcoal: "#3d3d3d"
430
+ hairline: "#e8e8e8"
431
+ hairline-strong: "#c2c2c2"
432
+ link: "#024ad8"
433
+ link-pressed: "#0e3191"
434
+ bloom-coral: "#ff5050"
435
+ bloom-rose: "#f9d4d2"
436
+ bloom-deep: "#b3262b"
437
+ bloom-wine: "#5a1313"
438
+ storm-mist: "#8ebdce"
439
+ storm-sea: "#7fadbe"
440
+ storm-deep: "#356373"
441
+ error: "#b3262b"
442
+
443
+ typography:
444
+ display-xxl:
445
+ fontFamily: Forma DJR Micro
446
+ fontSize: 72px
447
+ fontWeight: 500
448
+ lineHeight: 1.0
449
+ letterSpacing: 0
450
+ display-xl:
451
+ fontFamily: Forma DJR Micro
452
+ fontSize: 56px
453
+ fontWeight: 500
454
+ lineHeight: 1.0
455
+ letterSpacing: 0
456
+ display-lg:
457
+ fontFamily: Forma DJR Micro
458
+ fontSize: 44px
459
+ fontWeight: 500
460
+ lineHeight: 1.0
461
+ letterSpacing: 0
462
+ display-md:
463
+ fontFamily: Forma DJR Micro
464
+ fontSize: 32px
465
+ fontWeight: 500
466
+ lineHeight: 1.0
467
+ letterSpacing: 0
468
+ display-sm:
469
+ fontFamily: Forma DJR Micro
470
+ fontSize: 24px
471
+ fontWeight: 500
472
+ lineHeight: 1.17
473
+ letterSpacing: 0
474
+ display-xs:
475
+ fontFamily: Forma DJR Micro
476
+ fontSize: 20px
477
+ fontWeight: 500
478
+ lineHeight: 1.0
479
+ letterSpacing: 0
480
+ body-lg:
481
+ fontFamily: Forma DJR Micro
482
+ fontSize: 18px
483
+ fontWeight: 400
484
+ lineHeight: 1.33
485
+ letterSpacing: 0
486
+ body-md:
487
+ fontFamily: Forma DJR Micro
488
+ fontSize: 16px
489
+ fontWeight: 400
490
+ lineHeight: 1.38
491
+ letterSpacing: 0
492
+ body-emphasis:
493
+ fontFamily: Forma DJR Micro
494
+ fontSize: 16px
495
+ fontWeight: 500
496
+ lineHeight: 1.38
497
+ letterSpacing: 0
498
+ caption-md:
499
+ fontFamily: Forma DJR Micro
500
+ fontSize: 14px
501
+ fontWeight: 400
502
+ lineHeight: 1.5
503
+ letterSpacing: 0
504
+ caption-sm:
505
+ fontFamily: Forma DJR Micro
506
+ fontSize: 12px
507
+ fontWeight: 400
508
+ lineHeight: 1.33
509
+ letterSpacing: 0
510
+ caption-bold:
511
+ fontFamily: Forma DJR Micro
512
+ fontSize: 14px
513
+ fontWeight: 700
514
+ lineHeight: 1.3
515
+ letterSpacing: 0
516
+ link-md:
517
+ fontFamily: Forma DJR Micro
518
+ fontSize: 16px
519
+ fontWeight: 500
520
+ lineHeight: 1.38
521
+ letterSpacing: 0
522
+ button-md:
523
+ fontFamily: Forma DJR Micro
524
+ fontSize: 14px
525
+ fontWeight: 600
526
+ lineHeight: 1.4
527
+ letterSpacing: 0.7px
528
+ textTransform: uppercase
529
+ button-sm:
530
+ fontFamily: Forma DJR Micro
531
+ fontSize: 12.6px
532
+ fontWeight: 700
533
+ lineHeight: 1.0
534
+ letterSpacing: 0.126px
535
+ price-md:
536
+ fontFamily: Forma DJR Micro
537
+ fontSize: 24px
538
+ fontWeight: 500
539
+ lineHeight: 1.17
540
+ letterSpacing: 0
541
+
542
+ rounded:
543
+ none: 0px
544
+ xs: 2px
545
+ sm: 3px
546
+ md: 4px
547
+ lg: 8px
548
+ xl: 16px
549
+ pill: 9999px
550
+ full: 9999px
551
+
552
+ spacing:
553
+ xxs: 4px
554
+ xs: 8px
555
+ sm: 12px
556
+ md: 16px
557
+ lg: 20px
558
+ xl: 24px
559
+ xxl: 32px
560
+ section: 80px
561
+
562
+ components:
563
+ button-primary:
564
+ backgroundColor: "{colors.primary}"
565
+ textColor: "{colors.on-primary}"
566
+ typography: "{typography.button-md}"
567
+ rounded: "{rounded.md}"
568
+ padding: 12px 24px
569
+ height: 44px
570
+ button-primary-pressed:
571
+ backgroundColor: "{colors.primary-deep}"
572
+ textColor: "{colors.on-primary}"
573
+ button-primary-disabled:
574
+ backgroundColor: "{colors.steel}"
575
+ textColor: "{colors.on-primary}"
576
+ button-ink:
577
+ backgroundColor: "{colors.ink}"
578
+ textColor: "{colors.on-primary}"
579
+ typography: "{typography.button-md}"
580
+ rounded: "{rounded.md}"
581
+ padding: 12px 24px
582
+ height: 44px
583
+ button-outline:
584
+ backgroundColor: "{colors.canvas}"
585
+ textColor: "{colors.primary}"
586
+ typography: "{typography.button-md}"
587
+ rounded: "{rounded.md}"
588
+ padding: 12px 24px
589
+ height: 44px
590
+ button-outline-ink:
591
+ backgroundColor: "{colors.canvas}"
592
+ textColor: "{colors.ink}"
593
+ typography: "{typography.button-md}"
594
+ rounded: "{rounded.md}"
595
+ padding: 12px 24px
596
+ height: 44px
597
+ button-text-link:
598
+ backgroundColor: "{colors.canvas}"
599
+ textColor: "{colors.primary}"
600
+ typography: "{typography.link-md}"
601
+ padding: 4px 0
602
+ badge-pill-ink:
603
+ backgroundColor: "{colors.ink}"
604
+ textColor: "{colors.on-primary}"
605
+ typography: "{typography.body-md}"
606
+ rounded: "{rounded.lg}"
607
+ padding: 6px 12px
608
+ badge-pill-outline:
609
+ backgroundColor: "{colors.canvas}"
610
+ textColor: "{colors.ink}"
611
+ typography: "{typography.body-md}"
612
+ rounded: "{rounded.lg}"
613
+ padding: 6px 12px
614
+ badge-sale-coral:
615
+ backgroundColor: "{colors.bloom-coral}"
616
+ textColor: "{colors.on-primary}"
617
+ typography: "{typography.caption-bold}"
618
+ rounded: "{rounded.sm}"
619
+ padding: 4px 8px
620
+ text-input:
621
+ backgroundColor: "{colors.canvas}"
622
+ textColor: "{colors.ink}"
623
+ typography: "{typography.body-md}"
624
+ rounded: "{rounded.md}"
625
+ padding: 12px 16px
626
+ height: 44px
627
+ text-input-focused:
628
+ backgroundColor: "{colors.canvas}"
629
+ textColor: "{colors.ink}"
630
+ text-input-search:
631
+ backgroundColor: "{colors.canvas}"
632
+ textColor: "{colors.ink}"
633
+ typography: "{typography.body-md}"
634
+ rounded: "{rounded.md}"
635
+ padding: 12px 16px
636
+ height: 40px
637
+ card-product:
638
+ backgroundColor: "{colors.canvas}"
639
+ textColor: "{colors.ink}"
640
+ rounded: "{rounded.xl}"
641
+ padding: 24px
642
+ card-product-feature:
643
+ backgroundColor: "{colors.cloud}"
644
+ textColor: "{colors.ink}"
645
+ rounded: "{rounded.xl}"
646
+ padding: 32px
647
+ card-pricing-tier:
648
+ backgroundColor: "{colors.canvas}"
649
+ textColor: "{colors.ink}"
650
+ rounded: "{rounded.xl}"
651
+ padding: 24px
652
+ card-pricing-tier-featured:
653
+ backgroundColor: "{colors.canvas}"
654
+ textColor: "{colors.ink}"
655
+ rounded: "{rounded.xl}"
656
+ padding: 24px
657
+ card-customer-story:
658
+ backgroundColor: "{colors.canvas}"
659
+ textColor: "{colors.ink}"
660
+ rounded: "{rounded.xl}"
661
+ padding: 16px
662
+ card-article-tile:
663
+ backgroundColor: "{colors.canvas}"
664
+ textColor: "{colors.ink}"
665
+ rounded: "{rounded.xl}"
666
+ padding: 16px
667
+ card-category-icon:
668
+ backgroundColor: "{colors.canvas}"
669
+ textColor: "{colors.ink}"
670
+ typography: "{typography.body-emphasis}"
671
+ rounded: "{rounded.lg}"
672
+ padding: 16px
673
+ promo-strip-dark:
674
+ backgroundColor: "{colors.ink}"
675
+ textColor: "{colors.on-primary}"
676
+ typography: "{typography.body-md}"
677
+ rounded: "{rounded.xl}"
678
+ padding: 48px
679
+ hero-promo-card:
680
+ backgroundColor: "{colors.canvas}"
681
+ textColor: "{colors.ink}"
682
+ rounded: "{rounded.xl}"
683
+ padding: 32px
684
+ utility-strip:
685
+ backgroundColor: "{colors.ink}"
686
+ textColor: "{colors.on-primary}"
687
+ typography: "{typography.caption-md}"
688
+ height: 36px
689
+ padding: 0 24px
690
+ nav-bar-top:
691
+ backgroundColor: "{colors.canvas}"
692
+ textColor: "{colors.ink}"
693
+ typography: "{typography.body-md}"
694
+ height: 64px
695
+ padding: 0 32px
696
+ nav-link:
697
+ backgroundColor: "{colors.canvas}"
698
+ textColor: "{colors.ink}"
699
+ typography: "{typography.body-md}"
700
+ padding: 8px 16px
701
+ category-tab:
702
+ backgroundColor: "{colors.canvas}"
703
+ textColor: "{colors.ink}"
704
+ typography: "{typography.body-emphasis}"
705
+ rounded: "{rounded.pill}"
706
+ padding: 8px 20px
707
+ category-tab-active:
708
+ backgroundColor: "{colors.ink}"
709
+ textColor: "{colors.on-primary}"
710
+ rounded: "{rounded.pill}"
711
+ faq-row:
712
+ backgroundColor: "{colors.canvas}"
713
+ textColor: "{colors.ink}"
714
+ typography: "{typography.body-emphasis}"
715
+ rounded: "{rounded.lg}"
716
+ padding: 20px 24px
717
+ chevron-decoration:
718
+ backgroundColor: "{colors.primary}"
719
+ textColor: "{colors.on-primary}"
720
+ rounded: "{rounded.none}"
721
+ help-band-dark:
722
+ backgroundColor: "{colors.ink}"
723
+ textColor: "{colors.on-primary}"
724
+ typography: "{typography.body-md}"
725
+ padding: 64px 32px
726
+ footer-dark:
727
+ backgroundColor: "{colors.ink}"
728
+ textColor: "{colors.on-primary}"
729
+ typography: "{typography.body-md}"
730
+ padding: 64px 32px
731
+ ---
732
+
733
+ ## Overview
734
+
735
+ HP reads like a long-running consumer-electronics catalog crossed with an enterprise-software product page. The whole system sits on **pure white** (`{colors.canvas}` — `#ffffff`) with thin gray panels (`{colors.cloud}` / `{colors.fog}`) for alternating section bands. There is one chromatic action color — **HP Electric Blue** (`{colors.primary}` — `#024ad8`) — and one ink color (`{colors.ink}` — `#1a1a1a`); together they do ninety percent of the work. Type is a single family across every surface: **Forma DJR Micro**, HP's bespoke geometric grotesque, set at weight 500 for headlines and 400 for body — clean, neutral, slightly mechanical.
736
+
737
+ The signature gesture is **angular blue chevrons** — sharp 0-radius slashes derived from the HP wordmark's pair of parallel slashes — that anchor the homepage hero, the laptop-page hero, and the printer pricing page. They appear on the left and right edges of the primary banner card, layered behind product photography. Outside those decorative slashes, every other surface is rectilinear with **soft 8–16px corners** on cards and a 4px corner on buttons.
738
+
739
+ The system breaks into three voice modes: a **white commercial body** for product browsing (cards, category icons, pricing tiers); a **dark navy slab** (`{colors.ink}` near-black) for testimonial bands, the closing "How can we help?" footer-prelude, and the page footer; and a **light fog band** (`{colors.cloud}` / `{colors.fog}`) for utility sections like comparison strips and FAQ accordions. The blue accent appears only on filled CTAs, link text, the chevron decorations, and the active price-stamp on a featured tier — never as a section background.
740
+
741
+ **Key Characteristics:**
742
+ - Pure white canvas (`{colors.canvas}`) with deep ink (`{colors.ink}`) running every body surface; light fog bands (`{colors.cloud}`, `{colors.fog}`) alternate for section rhythm
743
+ - HP Electric Blue (`{colors.primary}`) is the lone CTA fill and link color; it appears at most twice per viewport
744
+ - Bespoke Forma DJR Micro across every surface — display, body, button, caption — at weights 400 / 500 / 600 / 700
745
+ - Cards round at `{rounded.xl}` (16px) for product/pricing tiles; buttons sit at `{rounded.md}` (4px) with capitalize labels
746
+ - Geometric blue chevrons (`{colors.primary}` rectangles cut at 45°) frame hero photography and reinforce the wordmark
747
+ - Dark-navy slabs (`{colors.ink}`) close every page rhythm — testimonial bands, "how can we help?" prelude, and the footer
748
+ - Section rhythm: utility-strip → top nav → white body → cloud-band → ink slab → cloud-band → ink footer
749
+
750
+ ## Colors
751
+
752
+ > **No Interaction sub-section.** Hover colors are silently filtered. Allowed sub-sections: Brand & Accent, Surface, Text, Semantic.
753
+
754
+ ### Brand & Accent
755
+ - **HP Electric Blue** (`{colors.primary}` — `#024ad8`): the system's lone signal — primary CTA fill, link color, chevron-decoration fill, active sub-nav indicator. Reserved.
756
+ - **Bright Blue** (`{colors.primary-bright}` — `#296ef9`): a slightly lighter variant used inside dark slabs (testimonial-card buttons, dark-band CTA links) where the deeper blue would muddy.
757
+ - **Deep Navy** (`{colors.primary-deep}` — `#0e3191`): pressed state for the primary CTA and the visited-link color.
758
+ - **Soft Blue** (`{colors.primary-soft}` — `#c9e0fc`): pale-blue surface used inside customer-story cards and selection chips.
759
+
760
+ ### Surface
761
+ - **Canvas** (`{colors.canvas}` — `#ffffff`): the universal page background. White, full opacity.
762
+ - **Paper** (`{colors.paper}` — `#ffffff`): card surfaces — same white as canvas, with hairline borders or shadows providing the lift.
763
+ - **Cloud** (`{colors.cloud}` — `#f7f7f7`): the lightest gray section band, used for alternating-row backgrounds and product-feature card groups.
764
+ - **Fog** (`{colors.fog}` — `#e8e8e8`): a slightly darker gray surface band, used for FAQ outer panels and the "Trending laptops" header strip.
765
+ - **Steel** (`{colors.steel}` — `#c2c2c2`): hairline border used on outlined elements with stronger emphasis (focus states, active filter).
766
+ - **Bloom Coral / Bloom Rose** (`{colors.bloom-coral}` / `{colors.bloom-rose}` — `#ff5050`, `#f9d4d2`): the "Get 25% off" sale-tag chip + soft pink lifestyle accent on the sale hero.
767
+ - **Storm Mist / Sea / Deep** (`{colors.storm-mist}`, `{colors.storm-sea}`, `{colors.storm-deep}` — `#8ebdce`, `#7fadbe`, `#356373`): the teal-storm tones reserved for the printer-plan illustration backdrop and supporting infographic accents.
768
+
769
+ ### Text
770
+ - **Ink** (`{colors.ink}` — `#1a1a1a`): the universal text color on white surfaces — headlines, body, button labels, navigation.
771
+ - **Ink Deep** (`{colors.ink-deep}` — `#000000`): pure black used for the wordmark and 1px hairline strokes around badge outlines.
772
+ - **Ink Soft** (`{colors.ink-soft}` — `#292929`): an alternate near-black used inside dark-navy slabs as a subtle textural shift.
773
+ - **On Ink** (`{colors.on-ink}` — `#ffffff`): pure white used for headline and body text on every dark-navy slab.
774
+ - **Charcoal** (`{colors.charcoal}` — `#3d3d3d`): muted body color on white surfaces — secondary descriptions, fine-print disclaimers.
775
+ - **Graphite** (`{colors.graphite}` — `#636363`): smaller-print color, used for legal lines and timestamp metadata.
776
+
777
+ ### Semantic
778
+ - **Bloom Deep** (`{colors.bloom-deep}` — `#b3262b`) + **Bloom Wine** (`{colors.bloom-wine}` — `#5a1313`): error and discount-emphasis colors. The deep brick reads as "sale" or "destructive" depending on placement.
779
+ - **Storm Deep** (`{colors.storm-deep}` — `#356373`): used as a neutral status accent (e.g., printer-plan tier "Versatile" tier color).
780
+
781
+ ## Typography
782
+
783
+ ### Font Family
784
+
785
+ The voice is **single-family**: Forma DJR Micro (HP's bespoke geometric grotesque, fallback Arial) across every surface — display, body, button, caption. Forma DJR Micro is a wide, slightly rounded grotesque designed at small optical sizes to stay legible at UI-chrome scale. HP runs it at weight 400 for body, 500 for display headlines, 600/700 for emphasis and button labels.
786
+
787
+ The 16/14/12-px caption tier carries the catalog metadata — model numbers, spec rows, fine print — at weight 400 with a 1.4–1.5 line-height. Button labels lift to weight 600/700 with positive 0.5–1.1px letter-spacing and uppercase transform — the only place the system tracks letters.
788
+
789
+ ### Hierarchy
790
+
791
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
792
+ |---|---|---|---|---|---|
793
+ | `{typography.display-xxl}` | 72px | 500 | 1.0 | 0 | Hero headline (homepage, laptop hub) |
794
+ | `{typography.display-xl}` | 56px | 500 | 1.0 | 0 | Section headlines on landing pages |
795
+ | `{typography.display-lg}` | 44px | 500 | 1.0 | 0 | Sub-section headlines on shop pages |
796
+ | `{typography.display-md}` | 32px | 500 | 1.0 | 0 | Promo strip headlines, FAQ section headers |
797
+ | `{typography.display-sm}` | 24px | 500 | 1.17 | 0 | Card titles, pricing-tier names |
798
+ | `{typography.display-xs}` | 20px | 500 | 1.0 | 0 | Inline list headers, accordion labels |
799
+ | `{typography.body-lg}` | 18px | 400 | 1.33 | 0 | Lead paragraphs |
800
+ | `{typography.body-md}` | 16px | 400 | 1.38 | 0 | Default body |
801
+ | `{typography.body-emphasis}` | 16px | 500 | 1.38 | 0 | Bolded run-in copy |
802
+ | `{typography.caption-md}` | 14px | 400 | 1.5 | 0 | Specs, metadata, captions |
803
+ | `{typography.caption-bold}` | 14px | 700 | 1.3 | 0 | Sale tags, in-card highlights |
804
+ | `{typography.caption-sm}` | 12px | 400 | 1.33 | 0 | Footnotes, legal lines |
805
+ | `{typography.link-md}` | 16px | 500 | 1.38 | 0 | Inline link emphasis |
806
+ | `{typography.button-md}` | 14px | 600 | 1.4 | 0.7px | Primary/secondary button labels (uppercase) |
807
+ | `{typography.button-sm}` | 12.6px | 700 | 1.0 | 0.126px | Compact button labels in tight cells |
808
+ | `{typography.price-md}` | 24px | 500 | 1.17 | 0 | Tier and product price stamps |
809
+
810
+ ### Principles
811
+
812
+ The typographic decision worth flagging: HP runs **weight 500 for every display size**, including the largest 72px hero headline. Most editorial systems jump to 600/700 at hero scale; HP doesn't. The result feels open and approachable rather than commanding — appropriate for a brand that sells across consumer, SMB, and enterprise audiences in the same catalog.
813
+
814
+ Forma DJR Micro's rounded-grotesque shapes do most of the warmth. There's no italic in the system except inside legal disclaimers; emphasis is carried by weight (500 → body-emphasis, 700 → caption-bold) instead.
815
+
816
+ ### Note on Font Substitutes
817
+
818
+ Forma DJR Micro is proprietary (Commercial Type / Mark Caneso). Closest open-source substitutes:
819
+ - **Inter** at weights 400 / 500 / 600 / 700 — slightly narrower than Forma DJR Micro; bump font-size by ~3% to compensate
820
+ - **Manrope** at weights 400 / 500 / 600 / 700 — closer in proportion, gentler curves; use directly with no metric adjustment
821
+ - **Roboto** at weights 400 / 500 / 700 — flatter character; use as last-resort fallback
822
+
823
+ When swapping, set body line-height to 1.4 and display line-height to 1.0 explicitly — the Forma DJR Micro line-height numbers are tight, and most substitutes default looser.
824
+
825
+ ## Layout
826
+
827
+ ### Spacing System
828
+
829
+ - **Base unit**: 8px. Smaller half-step at 4px. The scale is gentle — most card padding lands at 16px or 24px; section gap at 80px.
830
+ - **Tokens (front matter)**: `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 20px · `{spacing.xl}` 24px · `{spacing.xxl}` 32px · `{spacing.section}` 80px
831
+ - **Section padding**: `{spacing.section}` (80px) vertical between major bands on desktop; collapses to ~48px on mobile.
832
+ - **Card internal padding**: `{spacing.xl}` (24px) for product cards; `{spacing.xxl}` (32px) for promo strips and feature cards; `{spacing.md}` (16px) for compact article tiles.
833
+ - **Gutter**: `{spacing.xl}` (24px) between grid columns at desktop; `{spacing.md}` (16px) on tablet/mobile.
834
+
835
+ The 80px section gap is the universal rhythm constant — it appears between every major homepage band, between the hero and the comparison table on the printer-plan page, and between feature rows on the laptop-shop page.
836
+
837
+ ### Grid & Container
838
+
839
+ - **Desktop max-width**: 1366px content container with full-bleed-on-canvas section backgrounds.
840
+ - **Hero**: a single full-width photo card (homepage and laptop-hub hero) with the headline overlay positioned upper-left or upper-right.
841
+ - **Product family grid**: 4 columns at >1200px, 3 at 1024–1199px, 2 at 768–1023px, 1 below 768px.
842
+ - **Pricing tiers**: 4 columns at >1024px, 2x2 grid at 768–1023px, single-column accordion below 768px.
843
+ - **Footer**: 5-column link grid at >1024px, collapsing to 2-column then accordion on mobile.
844
+
845
+ ### Whitespace Philosophy
846
+
847
+ Whitespace is **commercial-clean** — generous around hero photography, tight around catalog spec rows. Product cards leave breathing room above and below the photo (≥32px) so the laptop or printer reads as a hero shot rather than a thumbnail. The fine-print disclaimer regions (legal, footnote rows) tighten line-height to 1.3 and shrink type to 11–12px so the bulk of fine print stays compact.
848
+
849
+ ## Elevation & Depth
850
+
851
+ | Level | Treatment | Use |
852
+ |---|---|---|
853
+ | 0 — Flat | No border, no shadow. | Section bands (white, cloud, fog), full-bleed photo heroes |
854
+ | 1 — Hairline | 1px solid `{colors.hairline}` (`#e8e8e8`) border, no shadow. | Outlined buttons, comparison-table cells, FAQ accordion outers |
855
+ | 2 — Soft Lift | `0 2px 8px rgba(26, 26, 26, 0.08)`. | Product cards, pricing-tier columns, customer-story tiles |
856
+ | 3 — Floating Modal | `0 8px 24px rgba(26, 26, 26, 0.12)`. | Add-to-cart drawer, mobile-nav sheet, image zoom modal |
857
+
858
+ The system is mostly flat — depth is communicated by **color contrast** (cloud-band vs. white card on the same band) rather than shadow elevation. The Soft Lift level is the workhorse for the catalog — every product tile and pricing column gets it; nothing else does. Modal-floating is rare and reserved for transient overlays.
859
+
860
+ ### Decorative Depth
861
+
862
+ The system's most distinctive depth gesture is the **HP blue chevron pair** — two angular `{colors.primary}` slashes (no radius, no shadow) that sit on the left and right of the homepage hero card and the laptop-shop hero. They're not decorative noise; they're a literal echo of the HP wordmark's two parallel slashes, scaled up to architectural size. Treat them as a brand artifact, not a generic geometric flourish.
863
+
864
+ Photography on the homepage and laptop-shop pages frames product imagery inside `{rounded.xl}` (16px) containers with a soft 1px hairline. Lifestyle photography (testimonials, "How HP works for X") sits full-bleed inside dark-navy slabs without rounding.
865
+
866
+ ## Shapes
867
+
868
+ ### Border Radius Scale
869
+
870
+ | Token | Value | Use |
871
+ |---|---|---|
872
+ | `{rounded.none}` | 0px | Hero chevron decorations, full-bleed photo heroes, marquee strips |
873
+ | `{rounded.xs}` | 2px | Secondary chip backgrounds, sale-tag pills |
874
+ | `{rounded.sm}` | 3px | Default secondary CTA radius (small touch zones) |
875
+ | `{rounded.md}` | 4px | Primary buttons, secondary buttons, text inputs |
876
+ | `{rounded.lg}` | 8px | Badge pills, category-icon cards, FAQ row containers |
877
+ | `{rounded.xl}` | 16px | Product cards, pricing tiers, customer-story tiles, photo frames |
878
+ | `{rounded.pill}` | 9999px | Category sub-nav tabs, search-pill input, filter chips |
879
+
880
+ The system maintains a clear two-tier philosophy: **buttons stay sharp** (4px, almost rectilinear) while **cards and photo frames stay soft** (16px). This split is the visual signature — sharp interactive elements against softer container surfaces.
881
+
882
+ ### Photography Geometry
883
+
884
+ Hero photography sits in `{rounded.xl}` (16px) frames with no border. Product family thumbnails inside the laptop-grid are 1:1 (square) on a `{colors.canvas}` background, padded so the laptop is shown at ~70% of the frame. Customer-story photography uses 16:9 inside the same `{rounded.xl}` frame. There are no full-bleed circular avatars; testimonial avatars are 4px-rounded squares.
885
+
886
+ ## Components
887
+
888
+ > **No hover states documented.** Every component spec below documents only Default and Active/Pressed states. Variants live as separate front-matter entries.
889
+
890
+ ### Buttons
891
+
892
+ **`button-primary`** — the lone HP Electric Blue CTA
893
+ - Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button-md}` (uppercase, 0.7px tracking), padding `{spacing.sm} {spacing.xl}` (12 × 24), height 44px, rounded `{rounded.md}`
894
+ - Pressed state `button-primary-pressed` — background `{colors.primary-deep}`, same text
895
+ - Disabled state `button-primary-disabled` — background `{colors.steel}`, white text
896
+ - Used for: "Buy now", "Shop now", "Get a printer", primary form submit
897
+
898
+ **`button-ink`** — black filled CTA
899
+ - Background `{colors.ink}`, text `{colors.on-primary}`, padding `{spacing.sm} {spacing.xl}`, height 44px, rounded `{rounded.md}`, type `{typography.button-md}`
900
+ - Used for: "Buy now" on dark photo overlays, secondary primary actions where the blue would clash with imagery
901
+
902
+ **`button-outline`** — blue-text outlined CTA
903
+ - Background `{colors.canvas}`, text `{colors.primary}`, 1px `{colors.primary}` border, padding `{spacing.sm} {spacing.xl}`, height 44px, rounded `{rounded.md}`
904
+ - Used for: "Compare", "Customize", "Learn more" — secondary actions on white surfaces
905
+
906
+ **`button-outline-ink`** — black-text outlined CTA
907
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1px `{colors.ink}` border, padding `{spacing.sm} {spacing.xl}`, height 44px, rounded `{rounded.md}`
908
+ - Used for: "View" buttons inside product family card grids — neutral against the blue primary
909
+
910
+ **`button-text-link`** — inline blue link with underline
911
+ - Background `{colors.canvas}`, text `{colors.primary}`, type `{typography.link-md}`, padding `{spacing.xxs} 0`
912
+ - Used for: "See details", "Read more" inside cards and disclaimer rows
913
+
914
+ ### Cards & Containers
915
+
916
+ **`card-product`** — the workhorse product tile
917
+ - Background `{colors.canvas}`, rounded `{rounded.xl}` (16px), padding `{spacing.xl}` (24px), Soft Lift shadow
918
+ - Layout: hero photo (1:1 ratio) on top, title in `{typography.display-xs}`, spec rows in `{typography.caption-md}`, price in `{typography.price-md}`, CTA pinned to bottom
919
+ - Used for: laptop catalog cards, desktop catalog cards
920
+
921
+ **`card-product-feature`** — full-row feature card with photo + copy
922
+ - Background `{colors.cloud}`, rounded `{rounded.xl}`, padding `{spacing.xxl}` (32px)
923
+ - Layout: photo on the left (50% width), copy on the right with section eyebrow + title + body + CTA pair
924
+ - Used for: "Trending laptops" feature rows, "Shop these must haves"
925
+
926
+ **`card-pricing-tier`** + **`card-pricing-tier-featured`**
927
+ - Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.xl}`, Soft Lift shadow
928
+ - Tier name in `{typography.display-sm}`, monthly price in `{typography.display-md}` with `{typography.caption-md}` cadence, page count caption, full feature list, primary CTA
929
+ - Featured tier carries `{colors.primary}` text accent on the price-stamp + a `{colors.primary}` thin top border instead of a colored card background — never inverted to dark
930
+
931
+ **`card-customer-story`** — the three-up testimonial tile
932
+ - Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.md}` (16px), Soft Lift shadow
933
+ - 16:9 photo at top in `{rounded.xl}` frame, quote excerpt in `{typography.body-md}`, attribution row at the bottom
934
+ - Used in the "See what our customers say" homepage section
935
+
936
+ **`card-article-tile`** — the four-up "Latest from HP" tile
937
+ - Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.md}`, Soft Lift shadow
938
+ - 16:9 thumbnail at top, date eyebrow in `{typography.caption-sm}`, title in `{typography.body-emphasis}`, "Read more" link
939
+
940
+ **`card-category-icon`** — the small icon-and-label card in the homepage "Our Products" row
941
+ - Background `{colors.canvas}`, rounded `{rounded.lg}` (8px), padding `{spacing.md}`
942
+ - 48px icon at top, label in `{typography.body-emphasis}` below
943
+ - Used for: Laptops, Desktops, Printers, Computer Tools, Accessories, Enterprise Solutions
944
+
945
+ **`hero-promo-card`** — the homepage hero card with chevron decorations
946
+ - Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.xxl}` (32px)
947
+ - Photography occupies left half; copy block (eyebrow + headline + price stamp + CTA pair) occupies right half
948
+ - Flanked by `chevron-decoration` blue slashes outside the card's bounding box on left and right edges
949
+
950
+ **`promo-strip-dark`** — the inline dark navy promo block
951
+ - Background `{colors.ink}`, text `{colors.on-ink}`, rounded `{rounded.xl}`, padding `{spacing.xxl} 48px`
952
+ - Used for: "When did work start getting in the way of work?" mid-page promo, the SMB testimonial slab
953
+
954
+ ### Inputs & Forms
955
+
956
+ **`text-input`** + **`text-input-focused`**
957
+ - Background `{colors.canvas}`, text `{colors.ink}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`, height 44px
958
+ - 1px `{colors.steel}` border in default; gains 1px `{colors.ink}` border on focus (no halo)
959
+
960
+ **`text-input-search`** — pill search in the top nav
961
+ - Background `{colors.canvas}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`, height 40px, 1px `{colors.steel}` border, magnifying-glass icon at right
962
+
963
+ **`badge-pill-ink`** — filled tag pill
964
+ - Background `{colors.ink}`, text `{colors.on-primary}`, rounded `{rounded.lg}`, padding 6px 12px, type `{typography.body-md}`
965
+ - Used inline next to product titles to mark "New" or featured indicators
966
+
967
+ **`badge-pill-outline`** — outlined tag pill
968
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1px `{colors.ink}` border, rounded `{rounded.lg}`, padding 6px 12px
969
+
970
+ **`badge-sale-coral`** — the sale price-stamp
971
+ - Background `{colors.bloom-coral}`, text `{colors.on-primary}`, rounded `{rounded.sm}`, padding `{spacing.xxs} {spacing.xs}`, type `{typography.caption-bold}`
972
+ - Used for: "Save $200", "25% off" overlay tags on hero promo cards
973
+
974
+ ### Navigation
975
+
976
+ **`utility-strip`** — the top-of-page utility bar
977
+ - Background `{colors.ink}`, text `{colors.on-primary}`, height 36px, padding 0 {spacing.xl}, type `{typography.caption-md}`
978
+ - Holds: country/locale picker, "For Business / For Home" toggle, "Sign in" link, cart link
979
+
980
+ **`nav-bar-top`** — desktop top nav (sits below utility strip)
981
+ - Background `{colors.canvas}`, height 64px, padding 0 32px
982
+ - Layout: HP wordmark logo flush left → middle category list (Laptops / Desktops / Printers / Accessories / Solutions / Support) → right slot with Search field, Sign-in link, Cart icon
983
+ - 1px `{colors.hairline}` bottom border separates nav from page
984
+
985
+ **`nav-link`**
986
+ - Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, padding `{spacing.xs} {spacing.md}`
987
+ - Active page draws a 2px `{colors.primary}` underline below the text baseline
988
+
989
+ **Top Nav (Mobile)**
990
+ - Same height, hamburger icon replaces the middle category list, Search and Cart stay visible
991
+ - Drawer expands as a full-canvas sheet with `{typography.body-lg}` link list and a sticky Sign-in CTA at bottom
992
+
993
+ **`category-tab`** + **`category-tab-active`** — the pill sub-nav
994
+ - Default: background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-emphasis}`, rounded `{rounded.pill}`, padding `{spacing.xs} {spacing.lg}`
995
+ - Active: background `{colors.ink}`, text `{colors.on-primary}`, same rounding
996
+ - Used on the laptop-shop page for "All / Trending / On Sale" filtering, and on the homepage "How can we help?" closing band
997
+
998
+ ### Signature Components
999
+
1000
+ **`chevron-decoration`** — the geometric blue slash motif
1001
+ - Background `{colors.primary}`, rounded `{rounded.none}`, no shadow
1002
+ - Renders as a sharp parallelogram cut at ~60° angle, sized to the height of the hero card it flanks
1003
+ - Reserved for hero bands and full-page banners — never decorative noise inside cards
1004
+
1005
+ **`faq-row`** — the accordion row on the printer-plan FAQ
1006
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg} {spacing.xl}`, type `{typography.body-emphasis}`
1007
+ - 1px `{colors.hairline}` divider between rows; chevron-down icon on the right collapsed, chevron-up when expanded
1008
+ - Body answer renders inside the same row container in `{typography.body-md}` after expansion
1009
+
1010
+ **`help-band-dark`** — the closing "How can we help?" prelude band
1011
+ - Background `{colors.ink}`, text `{colors.on-primary}`, padding 64px {spacing.xl}
1012
+ - Layout: large lifestyle photograph as the band background (low-opacity) with chip-style category tabs centered: Browse Topics / Live Chat / Contact / Diagnose / Order Status
1013
+
1014
+ **`footer-dark`**
1015
+ - Background `{colors.ink}`, text `{colors.on-primary}`, type `{typography.body-md}`, padding 64px {spacing.xl}
1016
+ - 5-column link grid (Company / Shop / Support / Resources / Connect) with `{typography.body-emphasis}` headers and `{typography.caption-md}` link rows
1017
+ - Bottom strip carries social icons, language picker, and legal lines in `{typography.caption-sm}` muted to `{colors.steel}`
1018
+
1019
+ ## Do's and Don'ts
1020
+
1021
+ ### Do
1022
+ - Reserve `{colors.primary}` for the primary CTA, link color, and `chevron-decoration` motif — at most twice per viewport
1023
+ - Set every headline in Forma DJR Micro at weight 500 with line-height 1.0 — resist the urge to bump weight at hero scale
1024
+ - Use `{rounded.xl}` (16px) for cards and photo frames; `{rounded.md}` (4px) for buttons and inputs — keep the two-tier split sharp
1025
+ - Pair white `{colors.canvas}` body bands with `{colors.cloud}` (`#f7f7f7`) alternating bands; let the gray do the breathing
1026
+ - Close every page rhythm with a dark-navy `{colors.ink}` slab — the "How can we help?" prelude + footer
1027
+ - Set button labels in uppercase with `{typography.button-md}` (0.7px tracking) — the only place the system tracks letters
1028
+ - Use Soft Lift shadow exclusively for product cards and pricing tiers — leave section bands flat
1029
+ - Frame product photography inside `{rounded.xl}` containers; never use full-bleed circular masks
1030
+
1031
+ ### Don't
1032
+ - Don't introduce secondary saturated colors outside `{colors.primary}` family + the `bloom-coral` sale-tag and `storm` printer-plan accents
1033
+ - Don't apply heavy material shadows — depth is via color contrast (cloud vs. white) and Soft Lift only
1034
+ - Don't round buttons above `{rounded.md}` (4px); a soft 8px+ button reads as a different brand
1035
+ - Don't run Forma DJR Micro below 12px — small caption at 11px is the floor
1036
+ - Don't use the chevron decoration as inline noise; it is a hero-only architectural element tied to the wordmark
1037
+ - Don't drop ink text opacity to create hierarchy — switch surface or shift to `{colors.charcoal}` / `{colors.graphite}` instead
1038
+ - Don't replace the HP wordmark with a generic sans lockup; the wordmark is a custom mark with its own ratio
1039
+
1040
+ ## Responsive Behavior
1041
+
1042
+ ### Breakpoints
1043
+
1044
+ | Name | Width | Key Changes |
1045
+ |---|---|---|
1046
+ | Mobile | < 480px | Single-column stack; hamburger nav; section padding drops to ~48px; hero serif scales to ~36px |
1047
+ | Mobile-Large | 480–767px | Same column count; hero scales to ~44px; pricing tiers stack vertically |
1048
+ | Tablet | 768–1023px | 2-column product grid; pricing 2x2; nav still full text labels |
1049
+ | Desktop | 1024–1279px | 3-column product grid; 4-column pricing; full nav |
1050
+ | Desktop-Large | ≥ 1280px | 4-column product grid; 1366px content max-width with full-bleed bands |
1051
+
1052
+ ### Touch Targets
1053
+
1054
+ Every interactive element clears 44×44px on mobile. `button-primary` at 44px height + 24px horizontal padding meets WCAG-AAA touch target. `category-tab` at 8px 20px padding bumps to 12px 24px on touch screens. Nav-link tap areas extend invisibly beyond the text run to the full 44px row height. Sticky cart/sign-in icons in the top nav use 44×44 invisible hit boxes around their visible 24×24 glyph.
1055
+
1056
+ ### Collapsing Strategy
1057
+
1058
+ - **Utility strip**: stays visible on every breakpoint; dropdowns collapse into a single "Account" icon below 768px
1059
+ - **Top nav**: middle category list collapses into a hamburger drawer below 1024px; the right-side Search + Sign-in + Cart stay visible
1060
+ - **Hero**: stays single-column at every breakpoint; chevron decorations shrink to ~60% size on tablet and disappear entirely on mobile
1061
+ - **Product family grid**: 4 → 3 → 2 → 1 column as breakpoints shrink; cards keep `{rounded.xl}` corners at every size
1062
+ - **Pricing comparison table**: 4-column grid on desktop collapses to 2x2 on tablet, then stacks into individual accordion-style cards on mobile
1063
+ - **Footer**: 5-column link grid → 2-column tablet → single-column accordion on mobile; HP wordmark stays flush left
1064
+
1065
+ ### Image Behavior
1066
+
1067
+ Hero photography uses `{rounded.xl}` containers at every breakpoint. The chevron decorations vanish on mobile; the underlying photo card centers in the viewport. Lifestyle photography in the testimonial and "how-can-we-help" bands maintains 16:9 ratio with horizontal cropping rather than letterboxing on mobile. There are no art-direction crop swaps between desktop and mobile — the same image is used at every size.
1068
+
1069
+ ## Iteration Guide
1070
+
1071
+ 1. Focus on ONE component at a time; resist refactoring an entire section in one pass
1072
+ 2. Reference component names and tokens directly (`{colors.primary}`, `{typography.display-xxl}`, `{rounded.xl}`, `card-product`) — do not paraphrase to hex/px in prose
1073
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits — `broken-ref`, `contrast-ratio`, and `orphaned-tokens` warnings flag issues automatically
1074
+ 4. Add new variants as separate component entries (`-pressed`, `-disabled`, `-focused`); never bury state inside prose
1075
+ 5. Default body to `{typography.body-md}`; reach for `{typography.body-emphasis}` for run-in bolds; keep display sizes for true heading roles
1076
+ 6. Keep `{colors.primary}` scarce — at most two flame elements per viewport (one CTA + one chevron decoration). Three flame items in one viewport is over-saturation
1077
+ 7. When introducing a new section band, choose from `{colors.canvas}` / `{colors.cloud}` / `{colors.fog}` / `{colors.ink}` — six pre-defined surface modes is the entire surface vocabulary