oh-my-design-cli 1.8.7 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +1995 -38
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +217 -330
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +149 -349
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- package/dist/install-skills-7UUDOLG2.js.map +0 -1
|
@@ -4,58 +4,80 @@ name: Ferrari
|
|
|
4
4
|
country: IT
|
|
5
5
|
category: automotive
|
|
6
6
|
homepage: "https://www.ferrari.com"
|
|
7
|
-
primary_color: "#
|
|
7
|
+
primary_color: "#da291c"
|
|
8
8
|
logo:
|
|
9
9
|
type: simpleicons
|
|
10
10
|
slug: ferrari
|
|
11
|
-
verified: "2026-
|
|
11
|
+
verified: "2026-07-13"
|
|
12
12
|
omd: "0.1"
|
|
13
|
+
verification_v2:
|
|
14
|
+
schema: 2
|
|
15
|
+
checked: "2026-07-13"
|
|
16
|
+
surfaces:
|
|
17
|
+
- { id: home, kind: public-brand, url: "https://www.ferrari.com/en-EN", inspected: "2026-07-13" }
|
|
18
|
+
- { id: car-range, kind: public-product, url: "https://www.ferrari.com/en-EN/auto/car-range", inspected: "2026-07-13" }
|
|
19
|
+
- { id: formula1, kind: public-racing, url: "https://www.ferrari.com/en-EN/formula1", inspected: "2026-07-13" }
|
|
20
|
+
sources:
|
|
21
|
+
- { id: home-live, kind: product-surface, url: "https://www.ferrari.com/en-EN", captured: "2026-07-13" }
|
|
22
|
+
- { id: car-range-live, kind: product-surface, url: "https://www.ferrari.com/en-EN/auto/car-range", captured: "2026-07-13" }
|
|
23
|
+
- { id: formula1-live, kind: product-surface, url: "https://www.ferrari.com/en-EN/formula1", captured: "2026-07-13" }
|
|
24
|
+
- { id: ferrari-sans-asset, kind: brand-asset, url: "https://www.ferrari.com/etc.clientlibs/ferrari-fcom/clientlibs/clientlib-site/resources/fonts/Ferrari-SansRegular.woff2?v=1", captured: "2026-07-13" }
|
|
25
|
+
- { id: ferrari-font-context, kind: official-doc, url: "https://www.ferrari.com/en-EN/formula1/articles/the-sf-24-is-here", captured: "2026-07-13" }
|
|
26
|
+
- { id: ferrari-legal, kind: license, url: "https://www.ferrari.com/en-US/legal", captured: "2026-07-13" }
|
|
27
|
+
- { id: ferrari-about, kind: official-doc, url: "https://www.ferrari.com/en-EN/corporate/about-us", captured: "2026-07-13" }
|
|
28
|
+
- { id: ferrari-history, kind: official-doc, url: "https://www.ferrari.com/en-EN/history", captured: "2026-07-13" }
|
|
29
|
+
- { id: ferrari-design, kind: official-doc, url: "https://www.ferrari.com/en-EN/magazine/articles/new-language-of-ferrari-design", captured: "2026-07-13" }
|
|
30
|
+
conflicts: []
|
|
31
|
+
claims:
|
|
32
|
+
"tokens.colors.primary": &range { surface_id: car-range, source_id: car-range-live, method: computed-style, captured: "2026-07-13" }
|
|
33
|
+
"tokens.colors.canvas": &home { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
34
|
+
"tokens.colors.foreground": *home
|
|
35
|
+
"tokens.colors.on-primary": *range
|
|
36
|
+
"tokens.typography.family.ui": *range
|
|
37
|
+
"tokens.typography.family.chrome": *home
|
|
38
|
+
"tokens.typography.nav.size": *home
|
|
39
|
+
"tokens.typography.nav.weight": *home
|
|
40
|
+
"tokens.typography.nav.lineHeight": *home
|
|
41
|
+
"tokens.typography.nav.tracking": *home
|
|
42
|
+
"tokens.typography.nav.use": *home
|
|
43
|
+
"tokens.typography.primary-action.size": *range
|
|
44
|
+
"tokens.typography.primary-action.weight": *range
|
|
45
|
+
"tokens.typography.primary-action.lineHeight": *range
|
|
46
|
+
"tokens.typography.primary-action.use": *range
|
|
47
|
+
"tokens.typography.consent-action.size": *home
|
|
48
|
+
"tokens.typography.consent-action.weight": *home
|
|
49
|
+
"tokens.typography.consent-action.lineHeight": *home
|
|
50
|
+
"tokens.typography.consent-action.tracking": *home
|
|
51
|
+
"tokens.typography.consent-action.use": *home
|
|
52
|
+
"tokens.spacing.nav-y": *home
|
|
53
|
+
"tokens.spacing.consent-y": *home
|
|
54
|
+
"tokens.spacing.primary-inset": *range
|
|
55
|
+
"tokens.rounded.sharp": *range
|
|
56
|
+
"tokens.rounded.consent": *home
|
|
57
|
+
"tokens.components.racing-media-card.type": &formula1 { surface_id: formula1, source_id: formula1-live, method: computed-style, captured: "2026-07-13" }
|
|
58
|
+
"tokens.components.racing-media-card.bg": *formula1
|
|
59
|
+
"tokens.components.racing-media-card.fg": *formula1
|
|
60
|
+
"tokens.components.racing-media-card.radius": *formula1
|
|
61
|
+
"tokens.components.racing-media-card.shadow": *formula1
|
|
62
|
+
"tokens.components.racing-media-card.use": *formula1
|
|
13
63
|
tokens:
|
|
14
|
-
source:
|
|
15
|
-
extracted: "2026-
|
|
16
|
-
note: "
|
|
64
|
+
source: reconciled
|
|
65
|
+
extracted: "2026-07-13"
|
|
66
|
+
note: "Three supplied public Ferrari surfaces were reconciled. Marketing and racing web components are retained only at their observed selector/surface boundary; no authenticated product UI, responsive behavior, semantic status palette, or unobserved interaction variant is inferred."
|
|
17
67
|
colors:
|
|
18
|
-
primary: "#
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
black: "#000000"
|
|
23
|
-
dark-surface: "#303030"
|
|
24
|
-
light-gray: "#D2D2D2"
|
|
25
|
-
heading: "#181818"
|
|
26
|
-
body: "#666666"
|
|
27
|
-
mid-gray: "#8F8F8F"
|
|
28
|
-
silver: "#969696"
|
|
29
|
-
racing-yellow: "#FFF200"
|
|
30
|
-
modena-yellow: "#F6E500"
|
|
31
|
-
warning: "#F13A2C"
|
|
32
|
-
success: "#03904A"
|
|
33
|
-
info: "#4C98B9"
|
|
34
|
-
link-hover: "#3860BE"
|
|
35
|
-
teal-hover: "#1EAEDB"
|
|
68
|
+
primary: "#da291c"
|
|
69
|
+
canvas: "#ffffff"
|
|
70
|
+
foreground: "#181818"
|
|
71
|
+
on-primary: "#ffffff"
|
|
36
72
|
typography:
|
|
37
|
-
family: {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
nav-link: { size: 13, weight: 600, lineHeight: 1.20, tracking: 0.13, use: "Navigation and footer links" }
|
|
44
|
-
caption: { size: 13, weight: 400, lineHeight: 1.50, tracking: 0.195, use: "Metadata and descriptions" }
|
|
45
|
-
label-upper: { size: 12, weight: 400, lineHeight: 1.27, tracking: 1, use: "Body-Font uppercase labels, category tags" }
|
|
46
|
-
spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 25, section: 80 }
|
|
47
|
-
rounded: { sm: 2, md: 2, lg: 8, full: 9999 }
|
|
48
|
-
shadow:
|
|
49
|
-
subtle: "rgb(153,153,153) 1px 1px 1px 0px"
|
|
73
|
+
family: { ui: "Body-Font", chrome: "FerrariSans" }
|
|
74
|
+
nav: { size: 12, weight: 400, lineHeight: 1.27, tracking: 1, use: "Observed public header item" }
|
|
75
|
+
primary-action: { size: 16, weight: 400, lineHeight: 1.15, use: "Observed Ferrari-red Subscribe CTA" }
|
|
76
|
+
consent-action: { size: 13.008, weight: 600, lineHeight: 1.2, tracking: 0.13008, use: "Observed OneTrust cookie-control action" }
|
|
77
|
+
spacing: { nav-y: 5, consent-y: 12, primary-inset: 21 }
|
|
78
|
+
rounded: { sharp: 0, consent: 2 }
|
|
50
79
|
components:
|
|
51
|
-
|
|
52
|
-
button-subscribe: { type: button, bg: "#DA291C", fg: "#FFFFFF", radius: 2, padding: "12px 10px", use: "High-emphasis Subscribe CTA — only red button" }
|
|
53
|
-
button-ghost: { type: button, bg: "transparent", fg: "#FFFFFF", radius: 2, padding: "12px 10px", use: "Ghost button on dark backgrounds (1px white border)" }
|
|
54
|
-
editorial-card: { type: card, bg: "#FFFFFF", radius: 2, use: "Content card — image above, heading + caption below, no border/shadow" }
|
|
55
|
-
dark-card: { type: card, bg: "#000000", fg: "#FFFFFF", use: "Hero/feature full-bleed cinematic card" }
|
|
56
|
-
input: { type: input, bg: "transparent", fg: "#FFFFFF", radius: 2, use: "Newsletter input on dark (1px #969696 placeholder)" }
|
|
57
|
-
dialog: { type: dialog, bg: "#FFFFFF", radius: 8, use: "Cookie consent modal" }
|
|
58
|
-
label: { type: badge, fg: "#8F8F8F", font: "12px Body-Font uppercase, 1px tracking", use: "Category tag / structural annotation" }
|
|
80
|
+
racing-media-card: { type: card, bg: "transparent", fg: "#ffffff", radius: "0px", shadow: "none", use: "Static Formula 1 media-card wrapper; surface-3::div.Card__wrapper__2HwxoSe5.Card__wrapper--visible__1LdTLCPj." }
|
|
59
81
|
components_harvested: true
|
|
60
82
|
---
|
|
61
83
|
|
|
@@ -63,385 +85,146 @@ tokens:
|
|
|
63
85
|
|
|
64
86
|
## 1. Visual Theme & Atmosphere
|
|
65
87
|
|
|
66
|
-
Ferrari
|
|
88
|
+
Ferrari builds road cars and competes in racing from Maranello; its official history frames that work as cars made to win both on track and road. The public web surfaces supplied for this review express that heritage as image-led brand and racing communication rather than an in-car, owner, or commerce application. Across the home, car-range, and Formula 1 pages, the interface mostly recedes into black, white, transparent layers, wide-tracked small navigation, and sharp controls, while a Ferrari-red `#da291c` Subscribe action appears on the observed product-range and racing surfaces. Ferrari’s own design writing describes Centro Stile’s continuing combination of art and engineering, a useful context for the deliberate, low-chrome presentation; it is context, not a substitute for a web token. The capture does not establish authenticated product UI, dealer tooling, configurator states, or native-app patterns.
|
|
67
89
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
**Key Characteristics:**
|
|
73
|
-
- Chiaroscuro layout alternating between deep black sections and clean white editorial panels
|
|
74
|
-
- Ferrari Red (`#DA291C`) used with extreme sparseness — accent, not atmosphere
|
|
75
|
-
- Prancing Horse emblem as isolated hero element on a void-black field
|
|
76
|
-
- FerrariSans proprietary typeface with compact proportions and medium weights
|
|
77
|
-
- Photo-journalism imagery: concept renders, driver portraits, lineup parades — each section is a story
|
|
78
|
-
- Uppercase Body-Font labels with wide letter-spacing (1px) for editorial annotation
|
|
79
|
-
- Nearly zero border-radius (2px default) reflecting precision engineering aesthetics
|
|
80
|
-
- Dual-framework architecture (PrimeReact + Element Plus) powering 32+ interactive components
|
|
81
|
-
- Carousel-driven hero with editorial slides and arrow/dot navigation
|
|
90
|
+
- **Public-surface scope:** home, car range, and Formula 1 only; no account or checkout behavior is promoted.
|
|
91
|
+
- **Image-led contrast:** `#ffffff`, `#181818`, and transparent controls carry the observed chrome.
|
|
92
|
+
- **Measured accent:** `#da291c` is an observed 57px Subscribe CTA fill, not a universal semantic color.
|
|
93
|
+
- **Sharp geometry:** public primary and header controls resolve to 0px radius; cookie consent is a separate 2px utility treatment.
|
|
82
94
|
|
|
83
95
|
## 2. Color Palette & Roles
|
|
84
96
|
|
|
85
|
-
|
|
86
|
-
- **
|
|
87
|
-
- **
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- **Dark Red** (`#B01E0A`): Deeper variant of Ferrari Red for hover/pressed states and high-contrast contexts — adds dimensionality to the brand color without introducing a new hue (--f-color-accent-90)
|
|
91
|
-
- **Deep Red** (`#9D2211`): The most saturated dark red — used for active states and extra emphasis where even Dark Red needs more weight (--f-color-accent-80)
|
|
92
|
-
- **Racing Yellow** (`#FFF200`): Heritage accent from Ferrari's racing livery — reserved for special highlights and motorsport-related contexts (--f-color-yellow-hypersail)
|
|
93
|
-
- **Modena Yellow** (`#F6E500`): Slightly warmer and more golden than Racing Yellow — used for secondary heritage accents and category markers (--f-color-yellow)
|
|
94
|
-
|
|
95
|
-
### Surface & Background
|
|
96
|
-
- **Absolute Black** (`#000000`): Hero sections, cinematic backgrounds, and the dominant dark surface — the void that makes imagery and the Prancing Horse emblem float
|
|
97
|
-
- **Dark Surface** (`#303030`): Secondary dark surface for footer regions, newsletter sections, and layered dark panels — slightly lifted from pure black for depth differentiation (--f-color-ui-90)
|
|
98
|
-
- **Light Gray Surface** (`#D2D2D2`): Subtle alternate surface for dividers and border treatments on white panels (--f-color-ui-20)
|
|
99
|
-
- **Overlay Dark** (`hsla(0, 0%, 7%, 0.8)`): Semi-transparent near-black for modal overlays and image caption backgrounds (--f-color-overlay-darker)
|
|
100
|
-
|
|
101
|
-
### Neutrals & Text
|
|
102
|
-
- **Near Black** (`#181818`): Primary body text color on light surfaces — slightly softened from absolute black for better readability (link default color)
|
|
103
|
-
- **Dark Gray** (`#666666`): Secondary text and subdued UI labels — used where text needs to recede from the primary hierarchy (--f-color-black-60)
|
|
104
|
-
- **Mid Gray** (`#8F8F8F`): Tertiary text for metadata, timestamps, and supportive content (--f-color-black-50)
|
|
105
|
-
- **Silver Gray** (`#969696`): Placeholder text and disabled state indicators (--f-color-black-55)
|
|
106
|
-
|
|
107
|
-
### Semantic & Accent
|
|
108
|
-
- **Warning Red** (`#F13A2C`): Accessible warning state — brighter and more orange-shifted than Ferrari Red to differentiate semantic alerts from brand expression (--f-color-accessible-warning)
|
|
109
|
-
- **Success Green** (`#03904A`): Confirmation and positive status indicators (--f-color-accessible-success)
|
|
110
|
-
- **Info Blue** (`#4C98B9`): Informational callouts, tooltips, and neutral status messaging (--f-color-accessible-info)
|
|
111
|
-
- **Link Hover Blue** (`#3860BE`): Interactive hover state for text links — a dignified navy-blue that signals interactivity without competing with Ferrari Red
|
|
112
|
-
|
|
113
|
-
### Gradient System
|
|
114
|
-
- No explicit gradients in the token system
|
|
115
|
-
- Depth is achieved through photography and the binary contrast between black and white surfaces
|
|
116
|
-
- The overlay darker color (`hsla(0, 0%, 7%, 0.8)`) creates depth through transparency layering over imagery
|
|
117
|
-
- Occasional photographic gradients (light falloff in studio shots) provide atmospheric depth within image content
|
|
97
|
+
- **Ferrari-red action** (`#da291c`): observed background for the car-range and Formula 1 `BtnCta__button__w7eTRXBJ` Subscribe CTA.
|
|
98
|
+
- **Canvas / on-primary** (`#ffffff`): observed white surface and red-CTA foreground; it also appears as the header-control foreground on dark imagery.
|
|
99
|
+
- **Foreground** (`#181818`): observed text and border color on light public chrome.
|
|
100
|
+
|
|
101
|
+
The bundle also contains black text and border values, but it does not establish error, success, warning, link-hover, yellow heritage, or a general dark-surface role. Those are omitted rather than reconstructed from older snapshots or photography.
|
|
118
102
|
|
|
119
103
|
## 3. Typography Rules
|
|
120
104
|
|
|
121
|
-
### Font
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
|
135
|
-
|
|
|
136
|
-
| Small Button | 14.4px (0.90rem) | 700 | 1.00 (tight) | normal | FerrariSans, compact action buttons |
|
|
137
|
-
| Nav Link | 13px (0.81rem) | 600 | 1.20 (tight) | 0.13px | FerrariSans, navigation and footer links |
|
|
138
|
-
| Caption | 13px (0.81rem) | 400 | 1.50 | 0.195px | FerrariSans/Body-Font, metadata and descriptions |
|
|
139
|
-
| Micro Button | 12px (0.75rem) | 700 | 1.00 (tight) | 0.96px | FerrariSans, small CTA with wide tracking |
|
|
140
|
-
| Label Upper | 12px (0.75rem) | 400 | 1.27 (tight) | 1px | Body-Font, uppercase labels and category tags |
|
|
141
|
-
| Micro Label | 11px (0.69rem) | 400 | 1.27 (tight) | 1px | Body-Font, uppercase smallest annotation text |
|
|
142
|
-
| Cookie Text | 45px (2.81rem) | 400 | 1.50 | 0.195px | Arial, consent dialog oversized button text |
|
|
143
|
-
|
|
144
|
-
### Principles
|
|
145
|
-
- **Proprietary identity**: FerrariSans is exclusive to Ferrari — it cannot be substituted without losing brand recognition. The font's compact proportions and medium weight default (500) convey engineering precision
|
|
146
|
-
- **Two-register system**: FerrariSans handles narrative voice (headings, content, buttons) while Body-Font handles structural annotation (labels, tags, micro-captions) — this mirrors print magazine conventions of editorial text vs. technical labels
|
|
147
|
-
- **Uppercase as emphasis tool**: Body-Font captions use `text-transform: uppercase` with expanded letter-spacing (1px) to create a visually distinct label layer that reads as "informational overlay" rather than primary content
|
|
148
|
-
- **Compact line-heights**: Headlines use tight line-heights (1.00–1.30) creating dense, impactful text blocks, while body text opens to 1.50 for comfortable reading — the contrast between compressed headers and relaxed body text creates visual tension
|
|
149
|
-
- **Weight range 400–700**: Four weights active in the system (400, 500, 600, 700) — significantly more range than Tesla but still controlled. 500 is the default "voice," 700 is for emphasis, 400 for body, 600 for navigation
|
|
105
|
+
### Font evidence boundary
|
|
106
|
+
|
|
107
|
+
| Evidence class | Resolution |
|
|
108
|
+
|---|---|
|
|
109
|
+
| Official product-use | Ferrari’s official SF-24 article identifies Ferrari Sans as the marque’s official font for the race numbers. That establishes brand context, not a blanket UI role. |
|
|
110
|
+
| Live computed surface-use | `Body-Font` is loaded/high with 746 visible uses across all three supplied pages; it covers public navigation, CTA, card, badge, list, and text roles. `FerrariSans` is loaded/high with 32 visible home-surface uses. |
|
|
111
|
+
| Official distributed asset | First-party `Ferrari-SansRegular` and `Ferrari-SansMedium` WOFF/WOFF2 files corroborate the loaded FerrariSans family. |
|
|
112
|
+
| Declared-only | `Body-Font-Medium`, LF Maranello Body/Caption/Title, Noe Display, and Open Sans families were declared with zero visible captured use. They are not UI-family tokens. |
|
|
113
|
+
| Unresolved / license boundary | `Title-Font` was loaded for four Formula 1 headings but is an alias whose delivered sources include Ferrari Sans files; it is not promoted as a separate family. Ferrari’s Legal page does not grant a downstream web-font licence. Preserve metadata and omit a specimen when the font is unavailable; never substitute a system font as FerrariSans or Body-Font. |
|
|
114
|
+
|
|
115
|
+
| Role | Family | Size | Weight | Line height | Provenance |
|
|
116
|
+
|---|---|---:|---:|---:|---|
|
|
117
|
+
| Header item | Body-Font | 12px | 400 | 15.24px | `home::[data-omd-capture="1"]` |
|
|
118
|
+
| Red Subscribe CTA | Body-Font | 16px | 400 | 18.4px | `surface-2::[data-omd-capture="49"]` |
|
|
119
|
+
| Cookie Manage action | FerrariSans | 13.008px | 600 | 15.6096px | `home::[data-omd-capture="101"]` |
|
|
150
120
|
|
|
151
121
|
## 4. Component Stylings
|
|
152
122
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
###
|
|
180
|
-
|
|
181
|
-
**
|
|
182
|
-
- Background:
|
|
183
|
-
-
|
|
184
|
-
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
- No border, no shadow — the darkness IS the container
|
|
193
|
-
- Text: white, positioned with careful negative space
|
|
194
|
-
|
|
195
|
-
**Vehicle Lineup** (Model carousel):
|
|
196
|
-
- Horizontal scrollable row of vehicle thumbnails
|
|
197
|
-
- Each vehicle on a neutral/white background
|
|
198
|
-
- Navigation: arrow buttons + dot indicators
|
|
199
|
-
- Background shifts to showcase the selected model's color context
|
|
200
|
-
|
|
201
|
-
### Inputs & Forms
|
|
202
|
-
|
|
203
|
-
**Newsletter Input** (Footer section):
|
|
204
|
-
- Background: transparent on dark surface
|
|
205
|
-
- Text: white
|
|
206
|
-
- Border: 1px solid `#CCCCCC`
|
|
207
|
-
- Placeholder: `#969696` (Silver Gray)
|
|
208
|
-
- Focus: border color transitions (standard browser focus ring)
|
|
209
|
-
- Label: Body-Font uppercase, 12px, 1px letter-spacing
|
|
210
|
-
|
|
211
|
-
**Cookie Consent** (Modal):
|
|
212
|
-
- Background: white
|
|
213
|
-
- Border radius: 8px (dialog)
|
|
214
|
-
- Shadow: `rgb(153, 153, 153) 1px 1px 1px 0px`
|
|
215
|
-
- Buttons: oversized (45px Arial), white bg with black border
|
|
216
|
-
- Uses standard PrimeReact/Element Plus modal framework
|
|
217
|
-
|
|
218
|
-
### Navigation
|
|
219
|
-
- **Desktop**: Prancing Horse logo centered at top of page, primary navigation below — not a traditional horizontal nav bar but a full-width header block on black background
|
|
220
|
-
- **Logo**: Centered Prancing Horse emblem (44×42px) on absolute black — the single most prominent UI element
|
|
221
|
-
- **Links**: FerrariSans, 13px, weight 600, white text on dark backgrounds
|
|
222
|
-
- **Mobile**: Hamburger collapse to vertical navigation drawer
|
|
223
|
-
- **Footer**: Multi-column layout on `#303030` (Dark Surface) with category links in Body-Font uppercase
|
|
224
|
-
- **No sticky nav behavior** observed — the page scrolls naturally with the header moving off-screen
|
|
225
|
-
|
|
226
|
-
### Image Treatment
|
|
227
|
-
- **Hero**: Full-width editorial photography on black backgrounds — concept cars in atmospheric studio lighting, editorial portraits with cinematic composition
|
|
228
|
-
- **Aspect ratios**: Mixed — landscape (16:9) for hero sections, near-square for portrait/driver imagery, wide panoramic for vehicle lineups
|
|
229
|
-
- **Full-bleed vs padded**: Hero images are full-bleed edge-to-edge; editorial content images are padded within white containers
|
|
230
|
-
- **Lazy loading**: Below-fold sections use progressive loading (PrimeReact framework handles this)
|
|
231
|
-
- **Image quality**: High-resolution photography with studio lighting — no user-generated or lifestyle imagery. Every image is art-directed
|
|
232
|
-
|
|
233
|
-
### Carousel Component
|
|
234
|
-
- Editorial carousel with multiple slides
|
|
235
|
-
- Dot indicators for slide position
|
|
236
|
-
- Arrow navigation (left/right) at slide edges
|
|
237
|
-
- Auto-advancing with manual override
|
|
238
|
-
- Content: mixed editorial — event recaps, model launches, racing highlights
|
|
123
|
+
All values below come from the supplied public-surface collector. It records `interactionCount: 0`; a focus snapshot is not evidence of a transition, menu, dialog flow, or unlisted variant.
|
|
124
|
+
|
|
125
|
+
### Subscribe CTA
|
|
126
|
+
|
|
127
|
+
**Ferrari-red public CTA**
|
|
128
|
+
- Background: `#da291c`
|
|
129
|
+
- Text: `#ffffff`
|
|
130
|
+
- Border: `0px solid #ffffff`
|
|
131
|
+
- Radius: `0px`
|
|
132
|
+
- Padding: `21px`
|
|
133
|
+
- Height: `57px`
|
|
134
|
+
- Font: `16px / 400 / Body-Font`
|
|
135
|
+
- Use: `surface-2::[data-omd-capture="49"]` on car range and its Formula 1 sibling `surface-3::[data-omd-capture="49"]`
|
|
136
|
+
|
|
137
|
+
### Header navigation item
|
|
138
|
+
|
|
139
|
+
**Light-on-image control**
|
|
140
|
+
- Background: transparent
|
|
141
|
+
- Text: `#ffffff`
|
|
142
|
+
- Border: `0px solid #ffffff`
|
|
143
|
+
- Radius: `0px`
|
|
144
|
+
- Padding: `5px 0px`
|
|
145
|
+
- Height: `25px`
|
|
146
|
+
- Font: `12px / 400 / Body-Font`
|
|
147
|
+
- Use: `home::[data-omd-capture="1"]`; the collector retained a focus snapshot but no changed focus value is promoted
|
|
148
|
+
|
|
149
|
+
### Cookie-consent action
|
|
150
|
+
|
|
151
|
+
**Manage Cookies utility**
|
|
152
|
+
- Background: `#ffffff`
|
|
153
|
+
- Text: `#000000`
|
|
154
|
+
- Border: `1px solid #000000`
|
|
155
|
+
- Radius: `2px`
|
|
156
|
+
- Padding: `12px 10px`
|
|
157
|
+
- Height: `42px`
|
|
158
|
+
- Font: `13.008px / 600 / FerrariSans`
|
|
159
|
+
- Use: `home::[data-omd-capture="101"]` within the `ot-sdk-container` consent dialog; this is not a public product CTA
|
|
160
|
+
|
|
161
|
+
No generic card, input, carousel, menu, notification, tab, hover, pressed, disabled, or error variant is published here: the relevant component or state was not observed as a measured canonical field.
|
|
239
162
|
|
|
240
163
|
## 5. Layout Principles
|
|
241
164
|
|
|
242
|
-
|
|
243
|
-
- **Base unit**: 8px (detected system base)
|
|
244
|
-
- **Scale**: 1px, 2px, 4px, 5px, 6px, 9px, 10px, 11.2px, 12px, 13px, 15px, 16px, 19px, 20px, 25px
|
|
245
|
-
- **Button padding**: 12px vertical, 10px horizontal — compact and precise
|
|
246
|
-
- **Section padding**: Generous vertical spacing (40–80px estimated) between major content blocks
|
|
247
|
-
- **Card gaps**: 16–20px between grid items
|
|
248
|
-
- **Footer padding**: 25px horizontal sections within the dark footer block
|
|
249
|
-
|
|
250
|
-
### Grid & Container
|
|
251
|
-
- **Max width**: 1920px (largest breakpoint) with content constraining at narrower widths
|
|
252
|
-
- **Hero**: Full-bleed on black, content centered
|
|
253
|
-
- **Editorial sections**: 2-column layouts with image + text, alternating sides
|
|
254
|
-
- **Vehicle lineup**: Horizontal scroll/carousel, 5–6 models visible at desktop width
|
|
255
|
-
- **Footer**: 4-column grid for link categories
|
|
256
|
-
|
|
257
|
-
### Whitespace Philosophy
|
|
258
|
-
Ferrari treats white space as a gallery wall. Each section — whether a concept car render on black void or a pair of F1 drivers on neutral gray — is given its own "room" of breathing space. The alternating black/white sections create a pacing rhythm: dark = immersive moment, white = editorial content, dark = immersive moment. This cadence makes scrolling feel like turning pages in a luxury publication. White space between editorial cards is moderate (not Tesla-extreme) because Ferrari is telling stories, not exhibiting single objects.
|
|
259
|
-
|
|
260
|
-
### Border Radius Scale
|
|
261
|
-
| Value | Context |
|
|
262
|
-
|-------|---------|
|
|
263
|
-
| 1px | Subtle softening on small inline elements (spans) |
|
|
264
|
-
| 2px | Default for buttons, inputs, and interactive elements — barely perceptible, razor-precision |
|
|
265
|
-
| 8px | Modal dialogs and overlay containers — the "softest" structural radius |
|
|
266
|
-
| 50% | Circular elements: carousel dots, avatar thumbnails, slider handles |
|
|
165
|
+
The supplied desktop capture is `1440×900`. Its evidence supports full-width public surfaces, light-on-image header controls, and content whose visual emphasis comes from photography rather than a framed application shell. It does not establish a global grid, maximum width, breakpoint, carousel behavior, or a reusable card layout. Keep those fields absent until a captured surface measures them.
|
|
267
166
|
|
|
268
167
|
## 6. Depth & Elevation
|
|
269
168
|
|
|
270
|
-
|
|
271
|
-
|-------|-----------|-----|
|
|
272
|
-
| Level 0 (Flat) | No shadow, no border | Default state for all content sections and cards |
|
|
273
|
-
| Level 1 (Subtle) | `rgb(153, 153, 153) 1px 1px 1px 0px` | Rare — cookie consent dialogs and dropdown menus |
|
|
274
|
-
| Level 2 (Overlay) | `hsla(0, 0%, 7%, 0.8)` backdrop | Modal overlays and image caption backgrounds |
|
|
275
|
-
| Level 3 (Border) | `1px solid #CCCCCC` | Input fields, form containers — depth through delineation not shadow |
|
|
276
|
-
|
|
277
|
-
### Shadow Philosophy
|
|
278
|
-
Ferrari's approach to elevation is nearly as flat as Tesla's, but with a different rationale. Where Tesla avoids shadows for minimalism, Ferrari avoids them because the editorial photography provides all the visual depth needed. The single shadow token (`rgb(153, 153, 153) 1px 1px 1px 0px`) is extremely subtle — a 1-pixel whisper used only in utilitarian contexts like consent dialogs. The site communicates hierarchy through three strategies:
|
|
279
|
-
1. **Surface color contrast**: Black sections vs. white sections create unmistakable layering
|
|
280
|
-
2. **Overlay transparency**: The `--f-color-overlay-darker` at 80% opacity creates depth without shadow
|
|
281
|
-
3. **Photographic depth**: Studio-lit car imagery with reflections, ground shadows, and atmospheric haze provides all the visual dimensionality
|
|
282
|
-
|
|
283
|
-
### Decorative Depth
|
|
284
|
-
- No UI gradients, no glows, no blur effects on interface elements
|
|
285
|
-
- The Prancing Horse logo on black creates a "floating in void" effect through pure contrast — no glow or shadow needed
|
|
286
|
-
- Dark-to-light section transitions are hard cuts, not gradient blends — reinforcing the editorial page-turn metaphor
|
|
169
|
+
The listed components have `boxShadow: none`; their observed depth comes from transparency, image contrast, and white or red fills rather than a reusable shadow token. No overlay, modal elevation, or dark-card token is promoted from the collector.
|
|
287
170
|
|
|
288
171
|
## 7. Do's and Don'ts
|
|
289
172
|
|
|
290
173
|
### Do
|
|
291
|
-
|
|
292
|
-
-
|
|
293
|
-
-
|
|
294
|
-
-
|
|
295
|
-
-
|
|
296
|
-
- Let photography carry the emotional weight — every image should be art-directed studio quality
|
|
297
|
-
- Use the Prancing Horse emblem as a standalone hero element on black — never crowd it with adjacent content
|
|
298
|
-
- Maintain the 12px/10px button padding ratio — compact, purposeful, no excess
|
|
299
|
-
- Use `#181818` (Near Black) for body text instead of pure `#000000` — the subtle warmth improves readability
|
|
300
|
-
- Reserve the yellow accents (`#FFF200`, `#F6E500`) strictly for motorsport and racing heritage contexts
|
|
174
|
+
|
|
175
|
+
- Scope the sharp red Subscribe CTA to the observed public car-range/racing pattern.
|
|
176
|
+
- Keep the measured header item transparent, white, and widely tracked when it sits on dark imagery.
|
|
177
|
+
- Treat the 2px consent button as third-party utility chrome, not a Ferrari product-control default.
|
|
178
|
+
- Preserve FerrariSans and Body-Font metadata without silent font substitution.
|
|
301
179
|
|
|
302
180
|
### Don't
|
|
303
|
-
|
|
304
|
-
-
|
|
305
|
-
-
|
|
306
|
-
-
|
|
307
|
-
- Use
|
|
308
|
-
- Apply text transforms to FerrariSans headings — uppercase is reserved for Body-Font labels only
|
|
309
|
-
- Display low-quality or user-generated imagery — every photograph must meet editorial standards
|
|
310
|
-
- Use the Link Hover Blue (`#3860BE`) for anything other than interactive hover states — it's not a brand color
|
|
311
|
-
- Create busy layouts with multiple competing focal points — each section should have one clear story
|
|
312
|
-
- Override the semantic color system (warning, success, info) with brand colors — `#F13A2C` warning is deliberately different from `#DA291C` brand red
|
|
181
|
+
|
|
182
|
+
- Generalize `#da291c` into success, danger, alert, or every primary-action role.
|
|
183
|
+
- Turn the OneTrust cookie action into a product button pattern.
|
|
184
|
+
- Add hover, pressed, menu, carousel, or responsive rules not present in the supplied evidence.
|
|
185
|
+
- Use declared-only LF Maranello, Noe Display, or Open Sans faces as current Ferrari UI tokens.
|
|
313
186
|
|
|
314
187
|
## 8. Responsive Behavior
|
|
315
188
|
|
|
316
|
-
|
|
317
|
-
| Name | Width | Key Changes |
|
|
318
|
-
|------|-------|-------------|
|
|
319
|
-
| Mobile Small | ≤375px | Single-column, minimal padding (12px), stacked navigation, hero text scales to ~18px, full-width CTAs |
|
|
320
|
-
| Mobile | 376–600px | Single-column, slightly larger padding (16px), hamburger nav, body text at 13px |
|
|
321
|
-
| Tablet Small | 601–768px | 2-column editorial grid begins, hero images maintain full-width, footer switches to 2-column |
|
|
322
|
-
| Tablet | 769–960px | Full 2-column layout, carousel shows 3 vehicles, padding increases to 20px |
|
|
323
|
-
| Desktop | 961–1280px | Full navigation, 2-column editorial with larger imagery, vehicle lineup shows 5 models |
|
|
324
|
-
| Large Desktop | 1281–1920px | Maximum content width, generous whitespace, hero photography at full cinematic scale |
|
|
325
|
-
|
|
326
|
-
### Touch Targets
|
|
327
|
-
- Primary CTA buttons: minimum 44px height with 12px vertical padding (meets WCAG AAA 44×44px target)
|
|
328
|
-
- Navigation links: 13px text with 1.50 line-height and adequate spacing between items
|
|
329
|
-
- Carousel arrows: 44px+ touch targets at viewport edges
|
|
330
|
-
- Footer links: grouped with sufficient vertical spacing (16–20px) for touch accuracy
|
|
331
|
-
|
|
332
|
-
### Collapsing Strategy
|
|
333
|
-
- **Navigation**: Full horizontal nav collapses to centered Prancing Horse logo + hamburger menu on mobile
|
|
334
|
-
- **Editorial sections**: 2-column image+text layouts collapse to single-column with image stacking above text
|
|
335
|
-
- **Vehicle lineup**: Horizontal carousel maintains scroll behavior but reduces visible models from 5 to 2–3
|
|
336
|
-
- **Footer**: 4-column link grid collapses to 2-column on tablet, single-column accordion on mobile
|
|
337
|
-
- **Hero carousel**: Full-width at all breakpoints, dot indicators and arrows scale proportionally
|
|
338
|
-
- **Spacing reduction**: Section padding reduces from 40–80px (desktop) to 20–40px (mobile), maintaining proportional breathing room
|
|
339
|
-
|
|
340
|
-
### Image Behavior
|
|
341
|
-
- Hero images: full-bleed at all breakpoints, using `object-fit: cover` to maintain cinematic composition
|
|
342
|
-
- Editorial images: responsive within their containers, maintaining aspect ratio
|
|
343
|
-
- Vehicle lineup: thumbnail size scales but maintains consistent car-to-frame proportions
|
|
344
|
-
- Art direction: mobile crops may tighten on vehicle subjects, reducing environmental context
|
|
345
|
-
- Lazy loading: PrimeReact handles progressive image loading for below-fold content
|
|
189
|
+
Only a `1440×900` desktop capture was supplied. Mobile breakpoints, navigation collapse, touch-target policy, image crops, and reduced-motion behavior were not measured and are therefore not specified.
|
|
346
190
|
|
|
347
191
|
## 9. Agent Prompt Guide
|
|
348
192
|
|
|
349
|
-
|
|
350
|
-
- Primary CTA: "Ferrari Red (#DA291C)"
|
|
351
|
-
- Background Light: "Pure White (#FFFFFF)"
|
|
352
|
-
- Background Dark: "Absolute Black (#000000)"
|
|
353
|
-
- Secondary Dark Surface: "Dark Surface (#303030)"
|
|
354
|
-
- Heading text (light bg): "Near Black (#181818)"
|
|
355
|
-
- Body text: "Dark Gray (#666666)"
|
|
356
|
-
- Tertiary text: "Mid Gray (#8F8F8F)"
|
|
357
|
-
- Border: "Border Gray (#CCCCCC)"
|
|
358
|
-
- Button Hover: "Teal (#1EAEDB)"
|
|
359
|
-
- Link Hover: "Link Blue (#3860BE)"
|
|
360
|
-
|
|
361
|
-
### Example Component Prompts
|
|
362
|
-
- "Create a hero section on Absolute Black (#000000) background with a centered logo emblem at the top, generous vertical spacing (80px+), and a single editorial headline in FerrariSans at 26px weight 500 in white, with a small Body-Font uppercase caption (12px, 1px letter-spacing) in Silver Gray (#969696) below"
|
|
363
|
-
- "Design a Subscribe section on Dark Surface (#303030) with a left-aligned headline in white FerrariSans (24px/500), a subtitle in Mid Gray (#8F8F8F, 13px), an email input with transparent background and 1px #CCCCCC border, and a Ferrari Red (#DA291C) Subscribe button with white text, 2px border-radius, and 12px 10px padding"
|
|
364
|
-
- "Build an editorial card on white background with a full-width image (16:9 ratio) above, a FerrariSans heading (16px/700, Near Black #181818) below, and a Body-Font uppercase label (11px, 1px letter-spacing, Mid Gray #8F8F8F) as the category tag — no border, no shadow, no border-radius"
|
|
365
|
-
- "Create a vehicle lineup carousel showing 5 car thumbnails in a horizontal scroll on white background, with left/right arrow navigation, dot indicators below, and a FerrariSans model name (16px/500) beneath each vehicle"
|
|
366
|
-
- "Design a dark cinematic section with full-bleed studio photography of a concept car on Absolute Black, a white FerrariSans headline (26px/500) positioned in the lower-left with generous padding (40px), and a Ghost Button (transparent bg, 1px white border, white text, 2px radius) as the CTA"
|
|
367
|
-
|
|
368
|
-
### Iteration Guide
|
|
369
|
-
When refining existing screens generated with this design system:
|
|
370
|
-
1. Focus on ONE component at a time — Ferrari's editorial rhythm means each section is a self-contained vignette
|
|
371
|
-
2. Reference specific color names and hex codes from this document — the palette is small but each color has a precise role
|
|
372
|
-
3. Use natural language descriptions, not CSS values — "razor-sharp 2px corners" conveys intent better than "border-radius: 2px"
|
|
373
|
-
4. Describe the desired "feel" alongside specific measurements — "editorial magazine page-turn between sections" communicates the layout philosophy better than "margin-bottom: 80px"
|
|
374
|
-
5. Always maintain the chiaroscuro contrast — if a section feels flat, check whether it needs to be on black or white to maintain the alternating rhythm
|
|
375
|
-
6. Reserve Ferrari Red for ONE element per screen — if red appears in more than one place, it loses its authority
|
|
193
|
+
Use only the observed public-web boundary: “Create a sharp 57px Subscribe CTA with `#da291c` background, white 16px Body-Font text, 21px inset, and 0px radius.” For a light-on-image header control, use transparent background, white 12px Body-Font text, 5px vertical padding, and 1px tracking. Do not request an unverified Ferrari configurator, checkout, dashboard, alert, or component-state system from this reference.
|
|
376
194
|
|
|
377
195
|
## 10. Voice & Tone
|
|
378
196
|
|
|
379
|
-
Ferrari
|
|
197
|
+
Ferrari’s first-party corporate language connects passion, craftsmanship, innovation, exclusivity, performance, quality, and memorable client experiences. The public navigation and short action controls in the capture are much terser than that corporate narrative. Use concise discovery language on public editorial surfaces; do not fabricate customer-service, error, or transactional voice rules.
|
|
380
198
|
|
|
381
|
-
|
|
382
|
-
|---|---|
|
|
383
|
-
| CTA | Heritage-imperative. "Discover", "Configure", "Reserve" |
|
|
384
|
-
| Marketing | Photography first, racing heritage second, copy third |
|
|
385
|
-
| Documentation | Sparse — luxury product, minimal docs |
|
|
386
|
-
| Error | Polite. "An error occurred. Try again." |
|
|
387
|
-
|
|
388
|
-
**Voice samples**
|
|
389
|
-
- Brand register: "The Power of Dreams" / "Tradition of Innovation" type framing <!-- illustrative -->
|
|
390
|
-
|
|
391
|
-
**Forbidden phrases.** "Revolutionary supercar". Direct Lamborghini comparison.
|
|
199
|
+
**First-party wording:** “The power of passion becomes the beauty of achievement.” — Ferrari Corporate, [About us](https://www.ferrari.com/en-EN/corporate/about-us).
|
|
392
200
|
|
|
393
201
|
## 11. Brand Narrative
|
|
394
202
|
|
|
395
|
-
|
|
203
|
+
Ferrari’s official corporate account begins in 1947, when the 125 S passed through the Maranello factory gates. Its History surface frames the continuing work as cars intended to win on track and road, while the corporate description connects the Prancing Horse with exclusivity, performance, quality, sporting success, innovation, technology, and driving pleasure. This is the product and category context for the public car-range and Formula 1 surfaces in this reference.
|
|
204
|
+
|
|
205
|
+
The company’s own design reporting adds a current evolution: Ferrari established Centro Stile in 2010 and describes its work as a close relationship between design and engineering, form and content. The concise public web shell should be read alongside that wider product story, not as proof that every Ferrari surface uses the same tokens or components. Sources: [Ferrari History](https://www.ferrari.com/en-EN/history), [Corporate About us](https://www.ferrari.com/en-EN/corporate/about-us), and [The New Language of Ferrari Design](https://www.ferrari.com/en-EN/magazine/articles/new-language-of-ferrari-design).
|
|
396
206
|
|
|
397
207
|
## 12. Principles
|
|
398
208
|
|
|
399
|
-
1. **
|
|
400
|
-
2. **
|
|
401
|
-
3. **
|
|
402
|
-
4. **
|
|
403
|
-
5. **Maranello heritage > tech specs.** *UI implication:* lead with story, not numbers.
|
|
209
|
+
1. **Let the vehicle imagery carry the public-surface emphasis.** *UI implication:* retain the measured low-chrome, transparent header treatment rather than inventing application panels.
|
|
210
|
+
2. **Keep action color contextual.** *UI implication:* use the measured red only where the captured Subscribe CTA establishes it; do not infer semantic status colors.
|
|
211
|
+
3. **Keep public controls sharp.** *UI implication:* the observed header and Subscribe controls are 0px radius; cookie-consent chrome is a separate 2px utility exception.
|
|
212
|
+
4. **Separate related evidence domains.** *UI implication:* a marketing, racing, corporate, font-asset, or consent observation does not authorize an unobserved product component.
|
|
404
213
|
|
|
405
214
|
## 13. Personas
|
|
406
215
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
**Marcus Conti, 55, Milan.** Existing Ferrari owner with 3 cars in collection.
|
|
410
|
-
|
|
411
|
-
**Heinz Müller, 48, Munich.** Track-day enthusiast considering 296 GTB.
|
|
412
|
-
|
|
413
|
-
**Sofia Park, 42, Seoul.** Tech founder, first Ferrari purchase.
|
|
216
|
+
Ferrari’s official corporate material identifies clients as the recipients of its exclusive, authentic, and memorable experiences. No first-party research in this packet establishes demographics, jobs-to-be-done, purchase behavior, accessibility needs, or task flows for a detailed persona. [FILL IN: validated stakeholder research before adding user archetypes.]
|
|
414
217
|
|
|
415
218
|
## 14. States
|
|
416
219
|
|
|
417
|
-
|
|
418
|
-
|---|---|
|
|
419
|
-
| **Empty (configurator start)** | Model selector with cinematic photography |
|
|
420
|
-
| **Empty (no saved configs)** | "Begin your Ferrari" CTA |
|
|
421
|
-
| **Loading (config render)** | Real-time 3D rendering |
|
|
422
|
-
| **Loading (price)** | Per-option price update |
|
|
423
|
-
| **Error (incompatible)** | Constraint explanation |
|
|
424
|
-
| **Error (waitlist required)** | "This model is by allocation only — contact dealer" |
|
|
425
|
-
| **Success (saved)** | Configuration ID + dealer share |
|
|
426
|
-
| **Success (booked test)** | Dealer confirmation |
|
|
427
|
-
| **Skeleton (model showcase)** | Black/white placeholders |
|
|
428
|
-
| **Disabled (region restricted)** | Region tooltip |
|
|
429
|
-
| **Loading (long render)** | Persistent progress |
|
|
220
|
+
The collector reports zero interaction events. Default public-control baselines and one header focus snapshot were captured, but empty, loading, success, failure, disabled, form validation, and skeleton states were not observed. No state treatment is invented here.
|
|
430
221
|
|
|
431
222
|
## 15. Motion & Easing
|
|
432
223
|
|
|
433
|
-
|
|
434
|
-
|---|---|---|
|
|
435
|
-
| `motion-instant` | 0ms | Selection |
|
|
436
|
-
| `motion-fast` | 200ms | Hover |
|
|
437
|
-
| `motion-cinematic` | 600ms | Hero reveals |
|
|
438
|
-
|
|
439
|
-
Cinematic easing for hero, standard for chrome. `prefers-reduced-motion: reduce` disables hero auto-play.
|
|
224
|
+
No duration, easing, autoplay, or reduced-motion rule was measured in the supplied capture. Do not infer a Ferrari motion system from editorial photography or the existence of racing content.
|
|
440
225
|
|
|
441
226
|
---
|
|
442
|
-
|
|
443
|
-
**
|
|
444
|
-
**Tier
|
|
445
|
-
**
|
|
446
|
-
**Tier 2 (Philosophy/history):** Wikipedia (Enzo Ferrari + Ferrari company), Britannica, CNBC (2015-10-21 IPO debut), Ferrari Corporate listing page, Fortune.
|
|
447
|
-
**Style ref:** `apple` (luxury minimal). **Conflicts unresolved:** none. **Earlier mistake reverted:** prior footer cited cookie banner as canonical Primary; the actual Primary is `#da291c` 0px (cookie 2px is GDPR utility track).
|
|
227
|
+
**Verified:** 2026-07-13
|
|
228
|
+
**Tier 1 sources:** https://www.ferrari.com/en-EN · https://www.ferrari.com/en-EN/auto/car-range · https://www.ferrari.com/en-EN/formula1 (supplied computed-style, FontFaceSet, and source-URL evidence).
|
|
229
|
+
**Tier 2 sources:** https://getdesign.md/ferrari · https://styles.refero.design/style/80164adf-a898-4f7c-bce7-12f3f62e1649 (cross-check only; Tier 1 wins recorded component conflicts).
|
|
230
|
+
**Conflicts unresolved:** none
|