savant-code 0.0.21 → 0.0.23

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 +16 -8
  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,1053 @@
1
+ {
2
+ "schemaVersion": "1",
3
+ "id": "playstation-design-analysis",
4
+ "displayName": "PlayStation-design-analysis",
5
+ "description": "A three-surface marketing system organized around alternating black, white, and PlayStation Blue chapters that scroll past the viewer like a console launch trailer. Each section has a single editorial purpose — hero photography, console product render, PS Plus tier callout, news strip — and each owns one of three full-bleed canvas modes. The chrome is unusually quiet for a gaming brand: bright PlayStation Blue (`#0070d1`) carries every primary CTA as a fully-rounded pill, the proprietary SST face renders display copy at a signature weight 300 (light) for an airy, premium feel, and a crisp 8px-radius secondary card system carries product info on either canvas mode. The system never decorates — no gradient backgrounds on chrome, no atmospheric mesh, no drop shadows beyond a faint section-divide. Imagery does all the heavy lifting: console glamour shots, game key art, and PS Plus tier illustrations occupy 60-90% of every section, with copy compressed into a small editorial slot.\n",
6
+ "source": "embedded",
7
+ "status": "curated-reference",
8
+ "targets": [
9
+ "terminal",
10
+ "react"
11
+ ],
12
+ "contentPath": "packages/design-systems/library/playstation.design.md",
13
+ "sourceContentHash": "2a56c109af6cb847fa091b768f719b498ac56b582d010860e73ea5fb72a1590d",
14
+ "normalizedContentHash": "5644ef2aeb4baa70f223ca0f43a1d691d95f82f429e0d80c4376eb0ba1be7544",
15
+ "provenance": {
16
+ "sourceRepository": "VoltAgent/awesome-design-md",
17
+ "sourceRevision": "working-tree-curated-snapshot",
18
+ "sourcePath": "packages/design-systems/library/playstation.design.md",
19
+ "license": "MIT"
20
+ },
21
+ "fonts": [
22
+ {
23
+ "family": "PlayStation SST",
24
+ "fallback": [
25
+ "system-ui",
26
+ "sans-serif"
27
+ ],
28
+ "redistributable": false
29
+ }
30
+ ],
31
+ "tokens": {
32
+ "colors": {
33
+ "ash-dark": "rgba(229,229,229,0.2)",
34
+ "ash-light": "#cccccc",
35
+ "body-dark": "rgba(255,255,255,0.7)",
36
+ "body-light": "rgba(0,0,0,0.6)",
37
+ "canvas-dark": "#000000",
38
+ "canvas-light": "#ffffff",
39
+ "charcoal": "#1f2024",
40
+ "commerce": "#d53b00",
41
+ "commerce-link-base": "#d63d00",
42
+ "commerce-pressed": "#aa2f00",
43
+ "hairline-dark": "rgba(229,229,229,0.2)",
44
+ "hairline-light": "#f3f3f3",
45
+ "ink": "#000000",
46
+ "ink-deep": "#121314",
47
+ "ink-elevated": "#181818",
48
+ "link-dark": "#53b1ff",
49
+ "link-light": "#0064b7",
50
+ "marathon-yellow": "#deff20",
51
+ "mute-dark": "rgba(229,229,229,0.55)",
52
+ "mute-light": "#6b6b6b",
53
+ "on-commerce": "#ffffff",
54
+ "on-dark": "#ffffff",
55
+ "on-dark-mute": "#cccccc",
56
+ "on-primary": "#ffffff",
57
+ "primary": "#0070d1",
58
+ "primary-active": "#004d8d",
59
+ "primary-pressed": "#0064b7",
60
+ "ps-plus-gold-end": "#ee8e00",
61
+ "ps-plus-gold-mid": "#f5a623",
62
+ "ps-plus-gold-start": "#ffce21",
63
+ "surface-card": "#f5f7fa",
64
+ "surface-dark-card": "#181818",
65
+ "surface-dark-elevated": "#121314",
66
+ "surface-filter": "rgba(245,247,250,0.3)",
67
+ "surface-soft": "#f3f3f3",
68
+ "warning": "#c81b3a"
69
+ },
70
+ "typography": {
71
+ "display-xl": {
72
+ "fontFamily": "PlayStation SST",
73
+ "fontSize": "54px",
74
+ "fontWeight": 300,
75
+ "letterSpacing": "-0.1px",
76
+ "lineHeight": 1.25
77
+ },
78
+ "display-lg": {
79
+ "fontFamily": "PlayStation SST",
80
+ "fontSize": "44px",
81
+ "fontWeight": 300,
82
+ "letterSpacing": "0.1px",
83
+ "lineHeight": 1.25
84
+ },
85
+ "display-md": {
86
+ "fontFamily": "PlayStation SST",
87
+ "fontSize": "35px",
88
+ "fontWeight": 300,
89
+ "letterSpacing": 0,
90
+ "lineHeight": 1.25
91
+ },
92
+ "heading-xl": {
93
+ "fontFamily": "PlayStation SST",
94
+ "fontSize": "28px",
95
+ "fontWeight": 300,
96
+ "letterSpacing": "0.1px",
97
+ "lineHeight": 1.25
98
+ },
99
+ "heading-lg": {
100
+ "fontFamily": "PlayStation SST",
101
+ "fontSize": "22px",
102
+ "fontWeight": 300,
103
+ "letterSpacing": "0.1px",
104
+ "lineHeight": 1.25
105
+ },
106
+ "heading-md": {
107
+ "fontFamily": "PlayStation SST",
108
+ "fontSize": "18px",
109
+ "fontWeight": 600,
110
+ "letterSpacing": 0,
111
+ "lineHeight": 1
112
+ },
113
+ "body-md": {
114
+ "fontFamily": "PlayStation SST",
115
+ "fontSize": "18px",
116
+ "fontWeight": 400,
117
+ "letterSpacing": "0.1px",
118
+ "lineHeight": 1.5
119
+ },
120
+ "body-strong": {
121
+ "fontFamily": "PlayStation SST",
122
+ "fontSize": "18px",
123
+ "fontWeight": 500,
124
+ "letterSpacing": "0.4px",
125
+ "lineHeight": 1.25
126
+ },
127
+ "body-sm": {
128
+ "fontFamily": "PlayStation SST",
129
+ "fontSize": "16px",
130
+ "fontWeight": 400,
131
+ "letterSpacing": 0,
132
+ "lineHeight": 1.5
133
+ },
134
+ "caption-md": {
135
+ "fontFamily": "PlayStation SST",
136
+ "fontSize": "14px",
137
+ "fontWeight": 400,
138
+ "letterSpacing": 0,
139
+ "lineHeight": 1.5
140
+ },
141
+ "caption-sm": {
142
+ "fontFamily": "PlayStation SST",
143
+ "fontSize": "12px",
144
+ "fontWeight": 500,
145
+ "letterSpacing": 0,
146
+ "lineHeight": 1.5
147
+ },
148
+ "link-md": {
149
+ "fontFamily": "PlayStation SST",
150
+ "fontSize": "18px",
151
+ "fontWeight": 400,
152
+ "letterSpacing": 0,
153
+ "lineHeight": 1.5
154
+ },
155
+ "button-lg": {
156
+ "fontFamily": "PlayStation SST",
157
+ "fontSize": "18px",
158
+ "fontWeight": 700,
159
+ "letterSpacing": "0.45px",
160
+ "lineHeight": 1.25
161
+ },
162
+ "button-md": {
163
+ "fontFamily": "PlayStation SST",
164
+ "fontSize": "14px",
165
+ "fontWeight": 700,
166
+ "letterSpacing": "0.324px",
167
+ "lineHeight": 1.25
168
+ }
169
+ },
170
+ "spacing": {
171
+ "lg": "24px",
172
+ "md": "16px",
173
+ "section": "96px",
174
+ "sm": "12px",
175
+ "xl": "32px",
176
+ "xs": "8px",
177
+ "xxl": "48px",
178
+ "xxs": "4px"
179
+ },
180
+ "radius": {
181
+ "full": "9999px",
182
+ "lg": "16px",
183
+ "md": "8px",
184
+ "none": "0px",
185
+ "sm": "4px"
186
+ },
187
+ "components": {
188
+ "button-primary": {
189
+ "backgroundColor": "{colors.primary}",
190
+ "height": "48px",
191
+ "padding": "12px 28px",
192
+ "rounded": "{rounded.full}",
193
+ "textColor": "{colors.on-primary}",
194
+ "typography": "{typography.button-lg}"
195
+ },
196
+ "button-primary-pressed": {
197
+ "backgroundColor": "{colors.primary-pressed}",
198
+ "rounded": "{rounded.full}",
199
+ "textColor": "{colors.on-primary}",
200
+ "typography": "{typography.button-lg}"
201
+ },
202
+ "button-commerce": {
203
+ "backgroundColor": "{colors.commerce}",
204
+ "height": "48px",
205
+ "padding": "12px 28px",
206
+ "rounded": "{rounded.full}",
207
+ "textColor": "{colors.on-commerce}",
208
+ "typography": "{typography.button-lg}"
209
+ },
210
+ "button-commerce-pressed": {
211
+ "backgroundColor": "{colors.commerce-pressed}",
212
+ "rounded": "{rounded.full}",
213
+ "textColor": "{colors.on-commerce}",
214
+ "typography": "{typography.button-lg}"
215
+ },
216
+ "button-secondary-light": {
217
+ "backgroundColor": "transparent",
218
+ "height": "48px",
219
+ "padding": "12px 28px",
220
+ "rounded": "{rounded.full}",
221
+ "textColor": "{colors.ink}",
222
+ "typography": "{typography.button-lg}"
223
+ },
224
+ "button-secondary-dark": {
225
+ "backgroundColor": "transparent",
226
+ "height": "48px",
227
+ "padding": "12px 28px",
228
+ "rounded": "{rounded.full}",
229
+ "textColor": "{colors.on-dark}",
230
+ "typography": "{typography.button-lg}"
231
+ },
232
+ "button-disabled": {
233
+ "backgroundColor": "{colors.surface-soft}",
234
+ "rounded": "{rounded.full}",
235
+ "textColor": "{colors.ash-light}"
236
+ },
237
+ "text-input": {
238
+ "backgroundColor": "{colors.canvas-light}",
239
+ "height": "48px",
240
+ "padding": "12px 16px",
241
+ "rounded": "{rounded.sm}",
242
+ "textColor": "{colors.ink}",
243
+ "typography": "{typography.body-md}"
244
+ },
245
+ "text-input-focused": {
246
+ "backgroundColor": "{colors.canvas-light}",
247
+ "rounded": "{rounded.sm}",
248
+ "textColor": "{colors.ink}"
249
+ },
250
+ "filter-pill": {
251
+ "backgroundColor": "{colors.surface-filter}",
252
+ "padding": "8px 16px",
253
+ "rounded": "{rounded.full}",
254
+ "textColor": "{colors.ink}",
255
+ "typography": "{typography.button-md}"
256
+ },
257
+ "filter-pill-active": {
258
+ "backgroundColor": "{colors.canvas-light}",
259
+ "rounded": "{rounded.full}",
260
+ "textColor": "{colors.ink}",
261
+ "typography": "{typography.button-md}"
262
+ },
263
+ "product-card": {
264
+ "backgroundColor": "{colors.surface-card}",
265
+ "padding": "24px",
266
+ "rounded": "{rounded.md}",
267
+ "textColor": "{colors.ink}",
268
+ "typography": "{typography.body-md}"
269
+ },
270
+ "product-card-dark": {
271
+ "backgroundColor": "{colors.surface-dark-card}",
272
+ "padding": "24px",
273
+ "rounded": "{rounded.md}",
274
+ "textColor": "{colors.on-dark}",
275
+ "typography": "{typography.body-md}"
276
+ },
277
+ "game-tile": {
278
+ "backgroundColor": "{colors.surface-dark-elevated}",
279
+ "padding": "0px",
280
+ "rounded": "{rounded.md}",
281
+ "textColor": "{colors.on-dark}",
282
+ "typography": "{typography.body-sm}"
283
+ },
284
+ "feature-card": {
285
+ "backgroundColor": "{colors.canvas-light}",
286
+ "padding": "32px",
287
+ "rounded": "{rounded.md}",
288
+ "textColor": "{colors.ink}",
289
+ "typography": "{typography.body-md}"
290
+ },
291
+ "hero-band-blue": {
292
+ "backgroundColor": "{colors.primary}",
293
+ "padding": "96px 48px",
294
+ "rounded": "{rounded.none}",
295
+ "textColor": "{colors.on-primary}",
296
+ "typography": "{typography.display-md}"
297
+ },
298
+ "hero-band-dark": {
299
+ "backgroundColor": "{colors.canvas-dark}",
300
+ "padding": "96px 48px",
301
+ "rounded": "{rounded.none}",
302
+ "textColor": "{colors.on-dark}",
303
+ "typography": "{typography.display-xl}"
304
+ },
305
+ "hero-band-light": {
306
+ "backgroundColor": "{colors.canvas-light}",
307
+ "padding": "96px 48px",
308
+ "rounded": "{rounded.none}",
309
+ "textColor": "{colors.ink}",
310
+ "typography": "{typography.display-xl}"
311
+ },
312
+ "ps-plus-banner": {
313
+ "backgroundColor": "{colors.surface-dark-elevated}",
314
+ "padding": "48px 32px",
315
+ "rounded": "{rounded.md}",
316
+ "textColor": "{colors.on-dark}",
317
+ "typography": "{typography.heading-xl}"
318
+ },
319
+ "carousel-paddle": {
320
+ "backgroundColor": "rgba(255,255,255,0.16)",
321
+ "rounded": "{rounded.full}",
322
+ "size": "48px",
323
+ "textColor": "{colors.on-dark}"
324
+ },
325
+ "pagination-dot": {
326
+ "backgroundColor": "{colors.ash-dark}",
327
+ "rounded": "{rounded.full}",
328
+ "size": "8px"
329
+ },
330
+ "pagination-dot-active": {
331
+ "backgroundColor": "{colors.on-dark}",
332
+ "rounded": "{rounded.full}",
333
+ "size": "8px"
334
+ },
335
+ "badge-info": {
336
+ "backgroundColor": "{colors.primary}",
337
+ "padding": "4px 10px",
338
+ "rounded": "{rounded.full}",
339
+ "textColor": "{colors.on-primary}",
340
+ "typography": "{typography.caption-sm}"
341
+ },
342
+ "primary-nav": {
343
+ "backgroundColor": "{colors.canvas-dark}",
344
+ "height": "48px",
345
+ "rounded": "{rounded.none}",
346
+ "textColor": "{colors.on-dark}",
347
+ "typography": "{typography.body-strong}"
348
+ },
349
+ "sub-nav": {
350
+ "backgroundColor": "{colors.canvas-dark}",
351
+ "height": "40px",
352
+ "rounded": "{rounded.none}",
353
+ "textColor": "{colors.on-dark}",
354
+ "typography": "{typography.caption-md}"
355
+ },
356
+ "footer-section": {
357
+ "backgroundColor": "{colors.primary}",
358
+ "padding": "48px 32px",
359
+ "rounded": "{rounded.none}",
360
+ "textColor": "{colors.on-primary}",
361
+ "typography": "{typography.caption-md}"
362
+ },
363
+ "support-search-bar": {
364
+ "backgroundColor": "{colors.canvas-light}",
365
+ "height": "56px",
366
+ "padding": "12px 24px",
367
+ "rounded": "{rounded.full}",
368
+ "textColor": "{colors.ink}",
369
+ "typography": "{typography.body-md}"
370
+ },
371
+ "support-row": {
372
+ "backgroundColor": "{colors.canvas-light}",
373
+ "padding": "16px 0px",
374
+ "rounded": "{rounded.none}",
375
+ "textColor": "{colors.ink}",
376
+ "typography": "{typography.body-md}"
377
+ },
378
+ "link-inline": {
379
+ "textColor": "{colors.link-light}",
380
+ "typography": "{typography.link-md}"
381
+ }
382
+ },
383
+ "extensions": {
384
+ "description": "A three-surface marketing system organized around alternating black, white, and PlayStation Blue chapters that scroll past the viewer like a console launch trailer. Each section has a single editorial purpose — hero photography, console product render, PS Plus tier callout, news strip — and each owns one of three full-bleed canvas modes. The chrome is unusually quiet for a gaming brand: bright PlayStation Blue (`#0070d1`) carries every primary CTA as a fully-rounded pill, the proprietary SST face renders display copy at a signature weight 300 (light) for an airy, premium feel, and a crisp 8px-radius secondary card system carries product info on either canvas mode. The system never decorates — no gradient backgrounds on chrome, no atmospheric mesh, no drop shadows beyond a faint section-divide. Imagery does all the heavy lifting: console glamour shots, game key art, and PS Plus tier illustrations occupy 60-90% of every section, with copy compressed into a small editorial slot.\n",
385
+ "name": "PlayStation-design-analysis",
386
+ "version": "alpha"
387
+ }
388
+ }
389
+ }
390
+
391
+ ---
392
+
393
+ ---
394
+ version: alpha
395
+ name: PlayStation-design-analysis
396
+ description: |
397
+ A three-surface marketing system organized around alternating black, white, and PlayStation Blue chapters that scroll past the viewer like a console launch trailer. Each section has a single editorial purpose — hero photography, console product render, PS Plus tier callout, news strip — and each owns one of three full-bleed canvas modes. The chrome is unusually quiet for a gaming brand: bright PlayStation Blue (`#0070d1`) carries every primary CTA as a fully-rounded pill, the proprietary SST face renders display copy at a signature weight 300 (light) for an airy, premium feel, and a crisp 8px-radius secondary card system carries product info on either canvas mode. The system never decorates — no gradient backgrounds on chrome, no atmospheric mesh, no drop shadows beyond a faint section-divide. Imagery does all the heavy lifting: console glamour shots, game key art, and PS Plus tier illustrations occupy 60-90% of every section, with copy compressed into a small editorial slot.
398
+
399
+ colors:
400
+ primary: "#0070d1"
401
+ primary-pressed: "#0064b7"
402
+ primary-active: "#004d8d"
403
+ on-primary: "#ffffff"
404
+ link-light: "#0064b7"
405
+ link-dark: "#53b1ff"
406
+ commerce: "#d53b00"
407
+ commerce-pressed: "#aa2f00"
408
+ commerce-link-base: "#d63d00"
409
+ on-commerce: "#ffffff"
410
+ ink: "#000000"
411
+ ink-deep: "#121314"
412
+ ink-elevated: "#181818"
413
+ charcoal: "#1f2024"
414
+ body-light: "rgba(0,0,0,0.6)"
415
+ mute-light: "#6b6b6b"
416
+ ash-light: "#cccccc"
417
+ body-dark: "rgba(255,255,255,0.7)"
418
+ mute-dark: "rgba(229,229,229,0.55)"
419
+ ash-dark: "rgba(229,229,229,0.2)"
420
+ canvas-light: "#ffffff"
421
+ surface-soft: "#f3f3f3"
422
+ surface-card: "#f5f7fa"
423
+ surface-filter: "rgba(245,247,250,0.3)"
424
+ canvas-dark: "#000000"
425
+ surface-dark-elevated: "#121314"
426
+ surface-dark-card: "#181818"
427
+ hairline-light: "#f3f3f3"
428
+ hairline-dark: "rgba(229,229,229,0.2)"
429
+ on-dark: "#ffffff"
430
+ on-dark-mute: "#cccccc"
431
+ warning: "#c81b3a"
432
+ ps-plus-gold-start: "#ffce21"
433
+ ps-plus-gold-mid: "#f5a623"
434
+ ps-plus-gold-end: "#ee8e00"
435
+ marathon-yellow: "#deff20"
436
+
437
+ typography:
438
+ display-xl:
439
+ fontFamily: PlayStation SST
440
+ fontSize: 54px
441
+ fontWeight: 300
442
+ lineHeight: 1.25
443
+ letterSpacing: -0.1px
444
+ display-lg:
445
+ fontFamily: PlayStation SST
446
+ fontSize: 44px
447
+ fontWeight: 300
448
+ lineHeight: 1.25
449
+ letterSpacing: 0.1px
450
+ display-md:
451
+ fontFamily: PlayStation SST
452
+ fontSize: 35px
453
+ fontWeight: 300
454
+ lineHeight: 1.25
455
+ letterSpacing: 0
456
+ heading-xl:
457
+ fontFamily: PlayStation SST
458
+ fontSize: 28px
459
+ fontWeight: 300
460
+ lineHeight: 1.25
461
+ letterSpacing: 0.1px
462
+ heading-lg:
463
+ fontFamily: PlayStation SST
464
+ fontSize: 22px
465
+ fontWeight: 300
466
+ lineHeight: 1.25
467
+ letterSpacing: 0.1px
468
+ heading-md:
469
+ fontFamily: PlayStation SST
470
+ fontSize: 18px
471
+ fontWeight: 600
472
+ lineHeight: 1
473
+ letterSpacing: 0
474
+ body-md:
475
+ fontFamily: PlayStation SST
476
+ fontSize: 18px
477
+ fontWeight: 400
478
+ lineHeight: 1.5
479
+ letterSpacing: 0.1px
480
+ body-strong:
481
+ fontFamily: PlayStation SST
482
+ fontSize: 18px
483
+ fontWeight: 500
484
+ lineHeight: 1.25
485
+ letterSpacing: 0.4px
486
+ body-sm:
487
+ fontFamily: PlayStation SST
488
+ fontSize: 16px
489
+ fontWeight: 400
490
+ lineHeight: 1.5
491
+ letterSpacing: 0
492
+ caption-md:
493
+ fontFamily: PlayStation SST
494
+ fontSize: 14px
495
+ fontWeight: 400
496
+ lineHeight: 1.5
497
+ letterSpacing: 0
498
+ caption-sm:
499
+ fontFamily: PlayStation SST
500
+ fontSize: 12px
501
+ fontWeight: 500
502
+ lineHeight: 1.5
503
+ letterSpacing: 0
504
+ link-md:
505
+ fontFamily: PlayStation SST
506
+ fontSize: 18px
507
+ fontWeight: 400
508
+ lineHeight: 1.5
509
+ letterSpacing: 0
510
+ button-lg:
511
+ fontFamily: PlayStation SST
512
+ fontSize: 18px
513
+ fontWeight: 700
514
+ lineHeight: 1.25
515
+ letterSpacing: 0.45px
516
+ button-md:
517
+ fontFamily: PlayStation SST
518
+ fontSize: 14px
519
+ fontWeight: 700
520
+ lineHeight: 1.25
521
+ letterSpacing: 0.324px
522
+
523
+ rounded:
524
+ none: 0px
525
+ sm: 4px
526
+ md: 8px
527
+ lg: 16px
528
+ full: 9999px
529
+
530
+ spacing:
531
+ xxs: 4px
532
+ xs: 8px
533
+ sm: 12px
534
+ md: 16px
535
+ lg: 24px
536
+ xl: 32px
537
+ xxl: 48px
538
+ section: 96px
539
+
540
+ components:
541
+ button-primary:
542
+ backgroundColor: "{colors.primary}"
543
+ textColor: "{colors.on-primary}"
544
+ typography: "{typography.button-lg}"
545
+ rounded: "{rounded.full}"
546
+ padding: 12px 28px
547
+ height: 48px
548
+ button-primary-pressed:
549
+ backgroundColor: "{colors.primary-pressed}"
550
+ textColor: "{colors.on-primary}"
551
+ typography: "{typography.button-lg}"
552
+ rounded: "{rounded.full}"
553
+ button-commerce:
554
+ backgroundColor: "{colors.commerce}"
555
+ textColor: "{colors.on-commerce}"
556
+ typography: "{typography.button-lg}"
557
+ rounded: "{rounded.full}"
558
+ padding: 12px 28px
559
+ height: 48px
560
+ button-commerce-pressed:
561
+ backgroundColor: "{colors.commerce-pressed}"
562
+ textColor: "{colors.on-commerce}"
563
+ typography: "{typography.button-lg}"
564
+ rounded: "{rounded.full}"
565
+ button-secondary-light:
566
+ backgroundColor: "transparent"
567
+ textColor: "{colors.ink}"
568
+ typography: "{typography.button-lg}"
569
+ rounded: "{rounded.full}"
570
+ padding: 12px 28px
571
+ height: 48px
572
+ button-secondary-dark:
573
+ backgroundColor: "transparent"
574
+ textColor: "{colors.on-dark}"
575
+ typography: "{typography.button-lg}"
576
+ rounded: "{rounded.full}"
577
+ padding: 12px 28px
578
+ height: 48px
579
+ button-disabled:
580
+ backgroundColor: "{colors.surface-soft}"
581
+ textColor: "{colors.ash-light}"
582
+ rounded: "{rounded.full}"
583
+ text-input:
584
+ backgroundColor: "{colors.canvas-light}"
585
+ textColor: "{colors.ink}"
586
+ typography: "{typography.body-md}"
587
+ rounded: "{rounded.sm}"
588
+ padding: 12px 16px
589
+ height: 48px
590
+ text-input-focused:
591
+ backgroundColor: "{colors.canvas-light}"
592
+ textColor: "{colors.ink}"
593
+ rounded: "{rounded.sm}"
594
+ filter-pill:
595
+ backgroundColor: "{colors.surface-filter}"
596
+ textColor: "{colors.ink}"
597
+ typography: "{typography.button-md}"
598
+ rounded: "{rounded.full}"
599
+ padding: 8px 16px
600
+ filter-pill-active:
601
+ backgroundColor: "{colors.canvas-light}"
602
+ textColor: "{colors.ink}"
603
+ typography: "{typography.button-md}"
604
+ rounded: "{rounded.full}"
605
+ product-card:
606
+ backgroundColor: "{colors.surface-card}"
607
+ textColor: "{colors.ink}"
608
+ typography: "{typography.body-md}"
609
+ rounded: "{rounded.md}"
610
+ padding: 24px
611
+ product-card-dark:
612
+ backgroundColor: "{colors.surface-dark-card}"
613
+ textColor: "{colors.on-dark}"
614
+ typography: "{typography.body-md}"
615
+ rounded: "{rounded.md}"
616
+ padding: 24px
617
+ game-tile:
618
+ backgroundColor: "{colors.surface-dark-elevated}"
619
+ textColor: "{colors.on-dark}"
620
+ typography: "{typography.body-sm}"
621
+ rounded: "{rounded.md}"
622
+ padding: 0px
623
+ feature-card:
624
+ backgroundColor: "{colors.canvas-light}"
625
+ textColor: "{colors.ink}"
626
+ typography: "{typography.body-md}"
627
+ rounded: "{rounded.md}"
628
+ padding: 32px
629
+ hero-band-blue:
630
+ backgroundColor: "{colors.primary}"
631
+ textColor: "{colors.on-primary}"
632
+ typography: "{typography.display-md}"
633
+ rounded: "{rounded.none}"
634
+ padding: 96px 48px
635
+ hero-band-dark:
636
+ backgroundColor: "{colors.canvas-dark}"
637
+ textColor: "{colors.on-dark}"
638
+ typography: "{typography.display-xl}"
639
+ rounded: "{rounded.none}"
640
+ padding: 96px 48px
641
+ hero-band-light:
642
+ backgroundColor: "{colors.canvas-light}"
643
+ textColor: "{colors.ink}"
644
+ typography: "{typography.display-xl}"
645
+ rounded: "{rounded.none}"
646
+ padding: 96px 48px
647
+ ps-plus-banner:
648
+ backgroundColor: "{colors.surface-dark-elevated}"
649
+ textColor: "{colors.on-dark}"
650
+ typography: "{typography.heading-xl}"
651
+ rounded: "{rounded.md}"
652
+ padding: 48px 32px
653
+ carousel-paddle:
654
+ backgroundColor: "rgba(255,255,255,0.16)"
655
+ textColor: "{colors.on-dark}"
656
+ rounded: "{rounded.full}"
657
+ size: 48px
658
+ pagination-dot:
659
+ backgroundColor: "{colors.ash-dark}"
660
+ rounded: "{rounded.full}"
661
+ size: 8px
662
+ pagination-dot-active:
663
+ backgroundColor: "{colors.on-dark}"
664
+ rounded: "{rounded.full}"
665
+ size: 8px
666
+ badge-info:
667
+ backgroundColor: "{colors.primary}"
668
+ textColor: "{colors.on-primary}"
669
+ typography: "{typography.caption-sm}"
670
+ rounded: "{rounded.full}"
671
+ padding: 4px 10px
672
+ primary-nav:
673
+ backgroundColor: "{colors.canvas-dark}"
674
+ textColor: "{colors.on-dark}"
675
+ typography: "{typography.body-strong}"
676
+ rounded: "{rounded.none}"
677
+ height: 48px
678
+ sub-nav:
679
+ backgroundColor: "{colors.canvas-dark}"
680
+ textColor: "{colors.on-dark}"
681
+ typography: "{typography.caption-md}"
682
+ rounded: "{rounded.none}"
683
+ height: 40px
684
+ footer-section:
685
+ backgroundColor: "{colors.primary}"
686
+ textColor: "{colors.on-primary}"
687
+ typography: "{typography.caption-md}"
688
+ rounded: "{rounded.none}"
689
+ padding: 48px 32px
690
+ support-search-bar:
691
+ backgroundColor: "{colors.canvas-light}"
692
+ textColor: "{colors.ink}"
693
+ typography: "{typography.body-md}"
694
+ rounded: "{rounded.full}"
695
+ padding: 12px 24px
696
+ height: 56px
697
+ support-row:
698
+ backgroundColor: "{colors.canvas-light}"
699
+ textColor: "{colors.ink}"
700
+ typography: "{typography.body-md}"
701
+ rounded: "{rounded.none}"
702
+ padding: 16px 0px
703
+ link-inline:
704
+ textColor: "{colors.link-light}"
705
+ typography: "{typography.link-md}"
706
+ ---
707
+
708
+ ## Overview
709
+
710
+ PlayStation's marketing system reads like a console launch trailer scrolling past the viewer in chapters. Each section is a full-bleed band — pure black `{colors.canvas-dark}`, true white `{colors.canvas-light}`, or PlayStation Blue `{colors.primary}` — and each chapter owns one editorial moment: hero console photography, a games-coming-soon strip, the PlayStation Plus tier banner, the "30 Years of PlayStation" anniversary band, the news strip from the PlayStation Blog. There is no decorative chrome between chapters; the section background change IS the divider. Sections stack at `{spacing.section}` (96px) rhythm with the next band's color taking over the page edge-to-edge.
711
+
712
+ The system has two distinct surface modes that alternate down the page: a **dark canvas mode** for editorial product moments (hero, "ON PLAYSTATION" band, marathon game pages) and a **light canvas mode** for utility surfaces (PS5 games listing, support pages, news index). Both modes use the same chrome vocabulary — fully-rounded `{rounded.full}` pill buttons, 8px-radius `{rounded.md}` cards, the proprietary PlayStation SST face — only the surface and on-surface colors change. The third surface mode is the **PlayStation Blue band** (`{colors.primary}` — `#0070d1`) reserved for the highest-priority moments: the Marathon launch CTA strip, the footer, and any "Action Required" banner.
713
+
714
+ The typography is the system's most distinctive choice. PlayStation SST renders display headlines at **weight 300** (light) — unusual for a gaming brand that could easily reach for bold geometric display faces. The light weight gives the chrome an airy, almost editorial quality that lets the imagery speak; copy is information rather than decoration. Heading sizes drop in tight increments (54 → 44 → 35 → 28 → 22 → 18) and body settles at 18px with 1.5 line-height for comfortable long-form reading on support and games pages.
715
+
716
+ **Key Characteristics:**
717
+ - Three-canvas chapter system: `{colors.canvas-dark}` (black), `{colors.canvas-light}` (white), `{colors.primary}` (PlayStation Blue) alternating down the page
718
+ - PlayStation Blue (`{colors.primary}` — `#0070d1`) is the universal primary CTA — fully-rounded pill at `{rounded.full}` (9999px)
719
+ - Commerce orange (`{colors.commerce}` — `#d53b00`) is the secondary CTA reserved for "Buy now" / "Pre-order" / store actions
720
+ - PlayStation SST display tier renders at **weight 300** with -0.1px to +0.4px tracking — the brand's signature airy editorial voice
721
+ - 8px-radius (`{rounded.md}`) for product cards and feature panels; 4px-radius (`{rounded.sm}`) for inputs; pills (`{rounded.full}`) for every CTA
722
+ - Game tiles, console renders, and PS Plus tier illustrations occupy 60-90% of each section — imagery does the storytelling
723
+ - Color-block page rhythm (one observed band sequence): dark hero → light console showcase → dark "Great PS4 & PS5 games" rail → light "Discover PlayStation Plus" tier band → light "30 years of PlayStation" callout → dark "ON PLAYSTATION" band → light news strip → blue footer
724
+
725
+ ## Colors
726
+
727
+ > **Source pages:** `/en-tr/` (home), `/en-tr/ps5/games/` (PS5 games listing), `/en-tr/games/marathon/` (single game page), `/tr-tr/support/account/` (support center). The chrome palette is identical across all four pages; the support page uses the light-canvas mode exclusively while marketing pages alternate.
728
+
729
+ ### Brand & Accent
730
+ - **PlayStation Blue** (`{colors.primary}` — `#0070d1`): the brand's universal primary. Every primary CTA pill, the active filter chip, the footer surface, badge fills, and inline link color on dark surfaces.
731
+ - **PlayStation Blue Pressed** (`{colors.primary-pressed}` — `#0064b7`): pressed state for the primary pill — also doubles as the inline link color on light surfaces.
732
+ - **PlayStation Blue Active** (`{colors.primary-active}` — `#004d8d`): deeply-pressed state for the primary button.
733
+ - **Commerce Orange** (`{colors.commerce}` — `#d53b00`): the secondary CTA reserved for store/buy/pre-order actions. The only warm color in the system.
734
+ - **Commerce Orange Pressed** (`{colors.commerce-pressed}` — `#aa2f00`): pressed state for commerce buttons.
735
+ - **Marathon Yellow** (`{colors.marathon-yellow}` — `#deff20`): a single high-saturation game-page accent extracted from Marathon's product palette — used only inside the dedicated `/marathon/` game page chrome and not part of the system's general accent vocabulary.
736
+
737
+ ### Surface
738
+ - **Canvas Dark** (`{colors.canvas-dark}` — `#000000`): pure black hero band, primary nav background, footer base. The dominant surface for editorial product moments.
739
+ - **Surface Dark Elevated** (`{colors.surface-dark-elevated}` — `#121314`): inset dark panels, PS Plus tier banner background, "ON PLAYSTATION" gradient end.
740
+ - **Surface Dark Card** (`{colors.surface-dark-card}` — `#181818`): game tile fill, dark product card background.
741
+ - **Canvas Light** (`{colors.canvas-light}` — `#ffffff`): true white console-showcase band, support page body, news strip background.
742
+ - **Soft Surface** (`{colors.surface-soft}` — `#f3f3f3`): hairline-soft band fill on light pages, divider rule on light surfaces.
743
+ - **Surface Card** (`{colors.surface-card}` — `#f5f7fa`): cool-blue-tinted product card and tier-card background on light canvas.
744
+ - **Surface Filter** (`{colors.surface-filter}` — `rgba(245,247,250,0.3)`): translucent fill for filter-pill default state on light canvas.
745
+ - **Hairline Light** (`{colors.hairline-light}` — `#f3f3f3`): 1px divider rule on light pages.
746
+ - **Hairline Dark** (`{colors.hairline-dark}` — `rgba(229,229,229,0.2)`): translucent 1px divider on dark canvas.
747
+
748
+ ### Text
749
+ - **Ink** (`{colors.ink}` — `#000000`): primary text on `{colors.canvas-light}`. Headlines, button text, support body.
750
+ - **Ink Deep** (`{colors.ink-deep}` — `#121314`): warmer near-black for in-card titles on dark surfaces and deep-shadow gradients.
751
+ - **Ink Elevated** (`{colors.ink-elevated}` — `#181818`): the lightest of the dark-canvas inks, used for elevated card backgrounds.
752
+ - **Body Light** (`{colors.body-light}` — `rgba(0,0,0,0.6)`): translucent body text on light canvas — the system's default paragraph color.
753
+ - **Mute Light** (`{colors.mute-light}` — `#6b6b6b`): metadata text and footer link captions on light canvas.
754
+ - **Ash Light** (`{colors.ash-light}` — `#cccccc`): disabled-state text and lowest-emphasis utility on light surfaces.
755
+ - **On Dark** (`{colors.on-dark}` — `#ffffff`): primary text on `{colors.canvas-dark}` — headlines, button text on dark hero bands.
756
+ - **Body Dark** (`{colors.body-dark}` — `rgba(255,255,255,0.7)`): translucent body text on dark canvas.
757
+ - **On Dark Mute** (`{colors.on-dark-mute}` — `#cccccc`): secondary text and disabled state on dark surfaces.
758
+ - **Mute Dark** (`{colors.mute-dark}` — `rgba(229,229,229,0.55)`): captions and metadata on dark canvas.
759
+
760
+ ### Semantic
761
+ - **Warning** (`{colors.warning}` — `#c81b3a`): validation errors and destructive confirmation copy.
762
+ - **Link Light** (`{colors.link-light}` — `#0064b7`): inline body-prose anchor link on light canvas — same hex as `{colors.primary-pressed}`.
763
+ - **Link Dark** (`{colors.link-dark}` — `#53b1ff`): inline body-prose anchor link on dark canvas — a brightened blue for dark-mode legibility.
764
+
765
+ ### Brand Gradient
766
+ - **PlayStation Plus Gold Gradient** — a horizontal three-stop gold gradient `{colors.ps-plus-gold-start}` (`#ffce21`) → `{colors.ps-plus-gold-mid}` (`#f5a623`) → `{colors.ps-plus-gold-end}` (`#ee8e00`) that anchors the PS Plus banner on the home page. The only gradient in the system; reserved exclusively for PS Plus chrome.
767
+
768
+ ## Typography
769
+
770
+ ### Font Family
771
+ - **PlayStation SST** is the proprietary brand sans-serif used across every text role on the site. It carries weights 300 (light), 400 (regular), 500 (medium), 600 (semibold), and 700 (bold), and falls back through `sst` → `Arial` → `Helvetica`. The brand's distinctive choice is using **weight 300 (light) for display headlines** — unusual for a gaming brand and the source of the system's editorial, airy character.
772
+ - **SST** appears as a secondary cut for in-product surfaces, falling back to Helvetica → Arial.
773
+
774
+ ### Hierarchy
775
+
776
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
777
+ |---|---|---|---|---|---|
778
+ | `{typography.display-xl}` | 54px | 300 | 1.25 | -0.1px | Hero headline ("Discover all PS5 consoles and accessories") |
779
+ | `{typography.display-lg}` | 44px | 300 | 1.25 | 0.1px | Section headline ("Great PS4 & PS5 games out now or coming soon") |
780
+ | `{typography.display-md}` | 35px | 300 | 1.25 | 0 | Mid-section headline, game-page sub-hero |
781
+ | `{typography.heading-xl}` | 28px | 300 | 1.25 | 0.1px | "30 Years of PlayStation" callout, in-band sub-heading |
782
+ | `{typography.heading-lg}` | 22px | 300 | 1.25 | 0.1px | News card title, support category title |
783
+ | `{typography.heading-md}` | 18px | 600 | 1 | 0 | Card label, navigation menu heading, in-product strong title |
784
+ | `{typography.body-md}` | 18px | 400 | 1.5 | 0.1px | Body copy, paragraph text, support article body |
785
+ | `{typography.body-strong}` | 18px | 500 | 1.25 | 0.4px | Inline emphasis, primary nav link, button label (large) |
786
+ | `{typography.body-sm}` | 16px | 400 | 1.5 | 0 | Card description, secondary body |
787
+ | `{typography.caption-md}` | 14px | 400 | 1.5 | 0 | Footer link, metadata, sub-nav text |
788
+ | `{typography.caption-sm}` | 12px | 500 | 1.5 | 0 | Smallest utility text, badge label |
789
+ | `{typography.link-md}` | 18px | 400 | 1.5 | 0 | Inline body-prose anchor link |
790
+ | `{typography.button-lg}` | 18px | 700 | 1.25 | 0.45px | Primary CTA pill |
791
+ | `{typography.button-md}` | 14px | 700 | 1.25 | 0.324px | Compact pill, filter chip, secondary CTA |
792
+
793
+ ### Principles
794
+ The hierarchy works on a 1.25-line-height ladder almost exclusively — even body sits at 1.5 instead of the typical 1.6 — which keeps long-form support pages tight and console showcases efficient. The weight contrast between display (300) and button (700) is dramatic: a single 18px chrome line might host a heavyweight CTA next to a feather-light 22px headline, giving the system its editorial gaming-magazine feel.
795
+
796
+ ### Note on Font Substitutes
797
+ PlayStation SST is proprietary. The closest open-source substitutes:
798
+ - **Roboto Light (300)** for the display tier — its slightly looser letter-spacing matches SST's display optical fit.
799
+ - **Inter** at weights 400/500/600 for body and chrome — the closest geometric sans match for SST's body cut.
800
+ - **Source Sans Pro Light (300)** as an alternative for the display tier when Roboto reads too utilitarian.
801
+
802
+ When substituting, preserve the +0.1px to +0.45px tracking on display and button tiers — the spacing is part of what makes PlayStation SST feel premium at the light weight.
803
+
804
+ ## Layout
805
+
806
+ ### Spacing System
807
+ - **Base unit:** 8px (with finer 4/12px steps for tight inline gaps).
808
+ - **Tokens (front matter):** `{spacing.xxs}` (4px) · `{spacing.xs}` (8px) · `{spacing.sm}` (12px) · `{spacing.md}` (16px) · `{spacing.lg}` (24px) · `{spacing.xl}` (32px) · `{spacing.xxl}` (48px) · `{spacing.section}` (96px).
809
+ - **Universal section rhythm:** every page in the set uses `{spacing.section}` (96px) as the vertical gap between major content blocks. Card grids use `{spacing.lg}` (24px) gutters; in-card padding sits at `{spacing.lg}` to `{spacing.xl}` depending on density.
810
+ - **Hero band padding:** 96px vertical / 48px horizontal — the largest spacing in the system, reserved for full-bleed surface chapters.
811
+
812
+ ### Grid & Container
813
+ - **Max width:** ~1280px content area for body text on desktop with 24px gutters that expand to ~48px at ultrawide. Hero bands and game-tile rails go full-bleed with no max-width constraint on imagery.
814
+ - **Game tile carousel:** 4-up at desktop with horizontal scroll on the same row, collapsing to 3-up at 1024px and 2-up at 768px. Each tile uses 16:9 cover art at `{rounded.md}`.
815
+ - **Console showcase grid:** desktop 5-column thumbnail strip below the main hero render, collapsing to 3-up + horizontal scroll at tablet.
816
+ - **Support page:** desktop 2-column 30/70 split (sidebar nav + article body), collapsing to single-column with the sidebar promoted to a top accordion at mobile.
817
+ - **News strip:** 3-up card grid at desktop, 2-up at tablet, 1-up at mobile.
818
+
819
+ ### Whitespace Philosophy
820
+ Whitespace is structural and band-defined. The 96px `{spacing.section}` between chapters reads as silence between trailer cuts — there's no decorative wash, no gradient transition, no mid-section divider. Inside a section, content is left-aligned in a tight column with the imagery breathing in the right 60-70% of the band. Paragraph text is comfortable at 1.5 line-height but column widths stay narrow (~520px at desktop) to keep long-form copy readable.
821
+
822
+ ## Elevation & Depth
823
+
824
+ | Level | Treatment | Use |
825
+ |---|---|---|
826
+ | 0 — Flat | No border, no shadow | Default for hero bands, footer, full-bleed sections — the dominant treatment |
827
+ | 1 — Hairline divider | 1px solid `{colors.hairline-light}` or `{colors.hairline-dark}` | Card borders, support row dividers, footer column rules |
828
+ | 2 — Soft active shadow | `0 4px 12px rgba(0,0,0,0.16)` | Active/pressed CTAs, lifted product card |
829
+ | 3 — Section gradient | Soft top-to-bottom darkening from `{colors.surface-dark-elevated}` to `{colors.canvas-dark}` | "ON PLAYSTATION" band — only place a gradient appears on chrome |
830
+
831
+ The system has effectively no resting shadow on cards; depth is built from surface-color contrast across band chapters. Cards lift only on press.
832
+
833
+ ### Decorative Depth
834
+ Depth comes from the alternating-band rhythm and from the imagery itself:
835
+ - **Console product photography** — DualSense controller and PS5 console renders shot on neutral white with crisp edge lighting, full-bleed inside the light-canvas band.
836
+ - **Game key art** — full-bleed cinematic stills (Marathon, the latest blockbuster releases) inside dark-canvas bands with title lockup overlaid in the lower-left.
837
+ - **PS Plus tier banner** — a subtle horizontal gold gradient (`{colors.ps-plus-gold-start}` → `{colors.ps-plus-gold-end}`) sits as the only chrome gradient in the system, anchoring the "Discover PlayStation Plus" CTA.
838
+ - **"ON PLAYSTATION" gradient band** — top-to-bottom deepening from `{colors.surface-dark-elevated}` (`#121314`) to `{colors.canvas-dark}` (`#000000`) creates a cinematic dimming effect under the anniversary callout.
839
+
840
+ ## Shapes
841
+
842
+ ### Border Radius Scale
843
+
844
+ | Token | Value | Use |
845
+ |---|---|---|
846
+ | `{rounded.none}` | 0px | Hero bands, primary nav, footer, sub-nav, support article body — every full-bleed structural surface |
847
+ | `{rounded.sm}` | 4px | Text inputs, support search field utilities |
848
+ | `{rounded.md}` | 8px | Game tiles, product cards, feature cards, PS Plus banner |
849
+ | `{rounded.lg}` | 16px | Rare large container with extra-soft corners (e.g., dialog cards) |
850
+ | `{rounded.full}` | 9999px | Every CTA pill (primary / commerce / secondary), filter chips, pagination dots, carousel paddles |
851
+
852
+ The radius vocabulary works on a 4 / 8 / pill rhythm for chrome with structural surfaces staying flat at 0px.
853
+
854
+ ### Photography Geometry
855
+ - **Hero console render:** large centered console + DualSense composition on white, ~70% width of the band, with copy slot to the left.
856
+ - **Game tiles:** 16:9 key art at `{rounded.md}` (8px), 4-up rail at desktop with horizontal carousel.
857
+ - **Marathon game page hero:** full-bleed cinematic 16:9 still with the "MARATHON" wordmark in the lower-left at light weight, brand yellow `{colors.marathon-yellow}` accent on a few small UI tags.
858
+ - **News card thumbnails:** 16:9 imagery at `{rounded.md}` with a small text block below.
859
+ - **Avatar / brand icons:** 32–40px circles for sub-nav social row.
860
+
861
+ ## Components
862
+
863
+ > **No hover states documented** per system policy. Each spec covers Default and Active/Pressed only.
864
+
865
+ ### Buttons
866
+
867
+ **`button-primary`** — the universal PlayStation CTA
868
+ - Background `{colors.primary}` (PlayStation Blue), text `{colors.on-primary}`, type `{typography.button-lg}`, padding `12px 28px`, height ~48px, rounded `{rounded.full}`.
869
+ - Used for "Add to bag", "Sign up", "Learn more", "Subscribe" — every primary action across both light and dark canvases.
870
+ - Pressed state lives in `button-primary-pressed` — background drops to `{colors.primary-pressed}` (`#0064b7`).
871
+
872
+ **`button-commerce`** — orange store CTA
873
+ - Background `{colors.commerce}` (`#d53b00`), text `{colors.on-commerce}`, type `{typography.button-lg}`, padding `12px 28px`, height ~48px, rounded `{rounded.full}`.
874
+ - Reserved for "Buy now", "Pre-order", "Add to cart" — store actions only. The only warm color in the system.
875
+ - Pressed state lives in `button-commerce-pressed` — background drops to `{colors.commerce-pressed}`.
876
+
877
+ **`button-secondary-light`** — outline variant on light canvas
878
+ - Background transparent, text `{colors.ink}`, 1px solid `{colors.ash-light}` border, type `{typography.button-lg}`, padding `12px 28px`, height ~48px, rounded `{rounded.full}`.
879
+ - Lower-emphasis CTA on white surfaces ("Learn more →", "Watch trailer").
880
+
881
+ **`button-secondary-dark`** — outline variant on dark canvas
882
+ - Background transparent, text `{colors.on-dark}`, 1px solid `{colors.hairline-dark}`, type `{typography.button-lg}`, padding `12px 28px`, height ~48px, rounded `{rounded.full}`.
883
+ - Same role as the light variant but inverted for use on `{colors.canvas-dark}` hero bands.
884
+
885
+ **`button-disabled`**
886
+ - Background `{colors.surface-soft}`, text `{colors.ash-light}`, rounded `{rounded.full}` — flat soft gray.
887
+
888
+ ### Filter & Tab Chips
889
+
890
+ **`filter-pill`** + **`filter-pill-active`**
891
+ - Default: background `{colors.surface-filter}` (translucent), text `{colors.ink}`, type `{typography.button-md}`, padding `8px 16px`, rounded `{rounded.full}`.
892
+ - Active: background flips to `{colors.canvas-light}` (opaque white) — the chip "lifts" from the translucent default.
893
+ - Used in the PS5 games filter strip ("All", "Coming Soon", "PlayStation VR2", "Recently Released").
894
+
895
+ ### Inputs & Forms
896
+
897
+ **`text-input`** + **`text-input-focused`**
898
+ - Default: background `{colors.canvas-light}`, text `{colors.ink}`, 1px solid `{colors.ash-light}`, type `{typography.body-md}`, padding `12px 16px`, height ~48px, rounded `{rounded.sm}` (4px).
899
+ - Focused: 2px solid `{colors.primary}` border, no halo (relies on the border weight increase as the focus signal).
900
+
901
+ **`support-search-bar`** — the support-page signature search field
902
+ - Background `{colors.canvas-light}`, text `{colors.ink}`, type `{typography.body-md}`, padding `12px 24px`, height ~56px, rounded `{rounded.full}`.
903
+ - Sits at the top of the support page hero with a magnifier icon at the left edge and "Search the support center" placeholder.
904
+
905
+ ### Cards & Containers
906
+
907
+ **`product-card`** — light-canvas product/feature card
908
+ - Container: background `{colors.surface-card}` (`#f5f7fa` cool-blue-tinted), 1px solid `{colors.hairline-light}` (rare; usually borderless), padding `{spacing.lg}` (24px), rounded `{rounded.md}` (8px).
909
+ - Used for the "PlayStation Store" sale callout, news cards, and PS Plus tier comparison cards on light canvas.
910
+
911
+ **`product-card-dark`** — dark-canvas product card
912
+ - Container: background `{colors.surface-dark-card}` (`#181818`), padding `{spacing.lg}`, rounded `{rounded.md}`.
913
+ - Used for game-detail cards and dark-canvas feature panels.
914
+
915
+ **`game-tile`** — game/console thumbnail tile
916
+ - Container: background `{colors.surface-dark-elevated}`, padding 0, rounded `{rounded.md}`.
917
+ - Layout: 16:9 cover art at full bleed inside the radius, with title + platform tag overlaid at the bottom-left in `{typography.body-sm}`.
918
+ - Used in the "Great PS4 & PS5 games" rail and the PS5 games listing grid.
919
+
920
+ **`feature-card`** — light-canvas marketing card
921
+ - Container: background `{colors.canvas-light}`, padding `{spacing.xl}` (32px), rounded `{rounded.md}`.
922
+ - Used for the "PlayStation Store" hero card and similar feature panels with a small product icon, title, body, and CTA.
923
+
924
+ **`hero-band-blue`** — the PlayStation Blue full-bleed band
925
+ - Background `{colors.primary}`, text `{colors.on-primary}` in `{typography.display-md}`, padding `96px 48px`, rounded `{rounded.none}`.
926
+ - The Marathon launch CTA strip and the footer surface use this band. The band's defining purpose is "this is the action moment of the page."
927
+
928
+ **`hero-band-dark`** — full-bleed dark hero
929
+ - Background `{colors.canvas-dark}` (with optional gradient end at `{colors.surface-dark-elevated}`), text `{colors.on-dark}` in `{typography.display-xl}`, padding `96px 48px`, rounded `{rounded.none}`.
930
+ - The home-page hero, the game-detail page hero, and the "ON PLAYSTATION" anniversary band.
931
+
932
+ **`hero-band-light`** — full-bleed white hero
933
+ - Background `{colors.canvas-light}`, text `{colors.ink}` in `{typography.display-xl}`, padding `96px 48px`, rounded `{rounded.none}`.
934
+ - The console showcase band ("Discover all PS5 consoles and accessories") and the support page top.
935
+
936
+ **`ps-plus-banner`** — PlayStation Plus tier callout
937
+ - Background `{colors.surface-dark-elevated}` with the `{colors.ps-plus-gold-start}` → `{colors.ps-plus-gold-end}` gold gradient as a horizontal accent bar across the top, text `{colors.on-dark}` in `{typography.heading-xl}`, padding `48px 32px`, rounded `{rounded.md}`.
938
+ - The "Discover PlayStation Plus" full-width banner on the home page.
939
+
940
+ **`carousel-paddle`** — circular carousel control
941
+ - Background `rgba(255,255,255,0.16)`, icon `{colors.on-dark}`, rounded `{rounded.full}`, size 48px.
942
+ - Anchored to the left/right edge of the game tile carousel.
943
+
944
+ **`pagination-dot`** + **`pagination-dot-active`**
945
+ - 8px circle at `{rounded.full}`. Default fill `{colors.ash-dark}`; active fill `{colors.on-dark}`.
946
+ - Carousel position indicator below the game tile rail.
947
+
948
+ ### Inline
949
+
950
+ **`badge-info`** — small info tag
951
+ - Background `{colors.primary}`, text `{colors.on-primary}` in `{typography.caption-sm}`, padding `4px 10px`, rounded `{rounded.full}`.
952
+ - "New", "Pre-order", "Coming Soon" labels overlaid on game tiles.
953
+
954
+ **`link-inline`** — body-prose anchor link
955
+ - `{colors.link-light}` text on light canvas / `{colors.link-dark}` on dark canvas, no underline by default. Inline body links inside support article paragraphs.
956
+
957
+ ### Navigation
958
+
959
+ **`primary-nav`**
960
+ - Background `{colors.canvas-dark}`, text `{colors.on-dark}`, height ~48px, type `{typography.body-strong}`, rounded `{rounded.none}`.
961
+ - Layout (desktop): PlayStation P-logo at far-left, centered nav row ("Games · PS5 · PS4 · PS VR2 · Subscriptions · Hardware · Mobile · News · Shop · Support"), right cluster (search-glyph + locale + cart icon + user-avatar circle).
962
+
963
+ **`sub-nav`** — secondary nav strip
964
+ - Background `{colors.canvas-dark}`, text `{colors.on-dark}` in `{typography.caption-md}`, height ~40px, rounded `{rounded.none}`.
965
+ - Sits directly below the primary nav on PS5 games / single game / PS Plus pages with section-specific anchor links.
966
+
967
+ **Top Nav (Mobile)**
968
+ - Hamburger menu icon at left, P-logo at center, search + cart icons at right. Primary nav collapses into a full-screen dark drawer that slides from the left.
969
+
970
+ ### Footer
971
+
972
+ **`footer-section`**
973
+ - Background `{colors.primary}` (PlayStation Blue), text `{colors.on-primary}` in `{typography.caption-md}`, padding `{spacing.xxl}` (48px) vertical.
974
+ - Layout: large PlayStation wordmark at top-left, multi-column link grid (locale selector, store links, account, support, social), bottom row with terms / privacy fine-print in `{typography.caption-sm}`.
975
+ - The footer's blue surface is the system's "we're done — return to the brand" anchor.
976
+
977
+ ### Support-page-specific
978
+
979
+ **`support-row`** — support article-list row
980
+ - Background `{colors.canvas-light}`, text `{colors.ink}` in `{typography.body-md}`, padding `16px 0`, with a 1px `{colors.hairline-light}` bottom rule.
981
+ - Used for FAQ / category-listing rows on the support page with a small chevron-right icon at the right edge.
982
+
983
+ ## Do's and Don'ts
984
+
985
+ ### Do
986
+ - Reserve `{colors.primary}` (PlayStation Blue) for primary CTAs and the footer surface only. The blue band is precious — at most one full-bleed blue band per page.
987
+ - Reserve `{colors.commerce}` (orange) for store/buy/pre-order CTAs only. It is never used on marketing chrome or hero pills.
988
+ - Use PlayStation SST at weight 300 for display headings (54 / 44 / 35 / 28 / 22). The light weight is the brand voice.
989
+ - Stack content sections at `{spacing.section}` (96px) rhythm with the next band's surface color taking over the page edge-to-edge — no decorative dividers between bands.
990
+ - Use `{rounded.full}` (9999px) on every CTA pill and `{rounded.md}` (8px) on every product card. The two-radius vocabulary is the entire shape system aside from inputs.
991
+ - Pair full-bleed game key art and console renders inside dark or light bands; let imagery occupy 60-90% of the band's vertical height.
992
+ - Use `{component.ps-plus-banner}` with the gold gradient exclusively for the PlayStation Plus tier callout — never decorate other components with the gold.
993
+
994
+ ### Don't
995
+ - Don't introduce drop shadows on resting cards. The system is flat-on-canvas; cards lift only on press.
996
+ - Don't replace `{colors.primary}` with another shade of blue. The brand blue is precise — `#0070d1` for default and `#0064b7` for pressed.
997
+ - Don't use `{colors.commerce}` (orange) on marketing/hero CTAs. It's reserved exclusively for store actions.
998
+ - Don't introduce a sans-serif body font, italic, or monospace style. PlayStation SST carries every text role.
999
+ - Don't soften pill geometry. CTAs are always `{rounded.full}` — no medium-radius buttons.
1000
+ - Don't use the gold PS Plus gradient on anything that isn't the PS Plus banner. It is a tier-specific brand asset.
1001
+ - Don't put a gradient on chrome. The only allowed gradient is the gold PS Plus accent and the soft top-to-bottom darkening of the "ON PLAYSTATION" band.
1002
+
1003
+ ## Responsive Behavior
1004
+
1005
+ ### Breakpoints
1006
+
1007
+ | Name | Width | Key Changes |
1008
+ |---|---|---|
1009
+ | ultrawide | 1920px+ | Hero band stays at content max-width 1280px; outer gutters grow to ~80px |
1010
+ | desktop-large | 1440px | Default desktop — 4-up game tile carousel, full primary nav |
1011
+ | desktop | 1280px | Same layout with narrower outer gutters |
1012
+ | desktop-small | 1024px | Game tile rail collapses to 3-up; sub-nav remains horizontal |
1013
+ | tablet | 768px | Game tiles → 2-up; primary nav becomes hamburger drawer |
1014
+ | mobile | 480px | Single-column everything; hero `{typography.display-xl}` scales 54px → ~32px |
1015
+ | mobile-narrow | 320px | Section padding tightens to 32px; hero further scales to ~28px |
1016
+
1017
+ ### Touch Targets
1018
+ All interactive elements meet WCAG AAA (≥ 44×44px). `{component.button-primary}` and `{component.button-commerce}` sit at 48px height with 28px horizontal padding (effective ~48×100px tappable). `{component.text-input}` sits at 48px. `{component.support-search-bar}` sits at 56px. `{component.filter-pill}` is ~36–40px height with 16px padding extending to 44px tappable via inline padding. `{component.carousel-paddle}` is exactly 48×48 circular.
1019
+
1020
+ ### Collapsing Strategy
1021
+ - **Primary nav:** desktop horizontal cluster → tablet hamburger drawer at 768px. The right-cluster icons (search, cart, account) stay visible at every breakpoint.
1022
+ - **Sub-nav:** desktop horizontal anchor row → tablet horizontal scroll → mobile select dropdown.
1023
+ - **Game tile carousel:** 4-up → 3-up → 2-up at 1024 and 768px; carousel paddles stay visible at every desktop breakpoint, hide on mobile in favor of touch-swipe.
1024
+ - **Hero bands:** stay full-bleed at every breakpoint; only the internal content column reflows from 2-column (text-left + image-right) to single-column (text above image).
1025
+ - **Console showcase:** desktop 5-up thumbnail strip → tablet 3-up + horizontal scroll → mobile 1-up with paddle.
1026
+ - **Support page:** desktop 30/70 split (sidebar + body) → tablet sidebar promoted to top accordion → mobile fully collapsed accordion.
1027
+ - **Section padding:** `{spacing.section}` (96px) desktop → 64px tablet → 48px mobile.
1028
+ - **Hero headline:** `{typography.display-xl}` (54px) at desktop, scaling 44px / 32px / 28px down the breakpoint stack.
1029
+
1030
+ ### Image Behavior
1031
+ - Hero imagery (console renders, game key art) uses art-direction crops on mobile so the central subject stays centered when the band collapses to single-column.
1032
+ - Game tile cover art preserves 16:9 ratio at every breakpoint; only the column count changes.
1033
+ - Console showcase thumbnails maintain their natural aspect (~1:1 product render) across breakpoints.
1034
+ - All non-critical imagery is lazy-loaded as the user scrolls into the next chapter.
1035
+
1036
+ ## Iteration Guide
1037
+
1038
+ 1. Focus on ONE component at a time. Pull its YAML entry and verify every property resolves.
1039
+ 2. Reference component names and tokens directly (`{colors.primary}`, `{component.button-primary-pressed}`, `{rounded.full}`) — do not paraphrase.
1040
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits — `broken-ref`, `contrast-ratio`, and `orphaned-tokens` warnings flag issues automatically.
1041
+ 4. Add new variants as separate component entries (`-pressed`, `-disabled`) — do not bury them inside prose.
1042
+ 5. Default body to `{typography.body-md}` (18px / 400 / 1.5); reach for `{typography.display-xl}` strictly for the page-top hero headline; use `{typography.body-strong}` for primary nav links.
1043
+ 6. Keep `{colors.primary}` scarce per viewport — at most one full-bleed PlayStation Blue band per page.
1044
+ 7. When introducing a new component, ask whether it can be expressed with the existing pill + 8px-radius card + full-bleed-band vocabulary before adding new tokens. The system's strength is that it almost never needs new ones.
1045
+
1046
+ ## Known Gaps
1047
+
1048
+ - **Mobile screenshots not captured** — responsive behavior synthesizes PlayStation's known mobile pattern (hamburger drawer, single-column band reflow, hero downscale) from desktop evidence and the breakpoint stack.
1049
+ - **Hover states not documented** by system policy.
1050
+ - **Sign-in / authentication chrome** (login modal, account dashboard, profile pages) not in the captured pages.
1051
+ - **PlayStation Store** in-store browsing surfaces (PDP / cart / checkout) are not in the captured set — those use a more dense data-table layout that this document does not describe.
1052
+ - **Game-page-specific theming** — the `/marathon/` page uses `{colors.marathon-yellow}` as a chapter accent. Other game pages may pull in their own per-title brand colors that vary outside the documented system.
1053
+ - **Form validation states** (success / error inline messages) not present in the captured surfaces beyond the `{colors.warning}` color token.