oh-my-design-cli 1.8.6 → 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.
Files changed (275) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +2761 -85
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/airbridge/DESIGN.md +451 -0
  71. package/web/references/alipay/DESIGN.md +179 -420
  72. package/web/references/apple/DESIGN.md +224 -498
  73. package/web/references/asleep/DESIGN.md +402 -0
  74. package/web/references/au/DESIGN.md +334 -0
  75. package/web/references/autopedia/DESIGN.md +382 -0
  76. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  77. package/web/references/baemin/DESIGN.md +332 -491
  78. package/web/references/banksalad/DESIGN.md +269 -180
  79. package/web/references/barogo/DESIGN.md +416 -0
  80. package/web/references/beusable/DESIGN.md +464 -0
  81. package/web/references/bigin/DESIGN.md +454 -0
  82. package/web/references/bilibili/DESIGN.md +206 -374
  83. package/web/references/bmw/DESIGN.md +162 -276
  84. package/web/references/brandi/DESIGN.md +184 -325
  85. package/web/references/buzzvil/DESIGN.md +457 -0
  86. package/web/references/cafe24/DESIGN.md +472 -0
  87. package/web/references/catchtable/DESIGN.md +219 -264
  88. package/web/references/cgv/DESIGN.md +317 -0
  89. package/web/references/channeltalk/DESIGN.md +210 -336
  90. package/web/references/china-airlines/DESIGN.md +291 -0
  91. package/web/references/cjonstyle/DESIGN.md +453 -0
  92. package/web/references/class101/DESIGN.md +168 -387
  93. package/web/references/classum/DESIGN.md +228 -203
  94. package/web/references/claude/DESIGN.md +242 -479
  95. package/web/references/clay/DESIGN.md +179 -377
  96. package/web/references/clickhouse/DESIGN.md +254 -343
  97. package/web/references/codeit/DESIGN.md +470 -0
  98. package/web/references/cohere/DESIGN.md +214 -324
  99. package/web/references/coinone/DESIGN.md +199 -179
  100. package/web/references/corca/DESIGN.md +414 -0
  101. package/web/references/coupang/DESIGN.md +205 -475
  102. package/web/references/cursor/DESIGN.md +240 -381
  103. package/web/references/dabang/DESIGN.md +248 -213
  104. package/web/references/dable/DESIGN.md +431 -0
  105. package/web/references/datarize/DESIGN.md +338 -0
  106. package/web/references/dealicious/DESIGN.md +402 -0
  107. package/web/references/drdiary/DESIGN.md +404 -0
  108. package/web/references/elastic/DESIGN.md +238 -0
  109. package/web/references/elevenlabs/DESIGN.md +183 -321
  110. package/web/references/elice/DESIGN.md +445 -0
  111. package/web/references/eslite/DESIGN.md +257 -0
  112. package/web/references/evaair/DESIGN.md +338 -0
  113. package/web/references/expo/DESIGN.md +238 -331
  114. package/web/references/familymart-tw/DESIGN.md +254 -0
  115. package/web/references/ferrari/DESIGN.md +160 -377
  116. package/web/references/figma/DESIGN.md +197 -451
  117. package/web/references/fitpet/DESIGN.md +445 -0
  118. package/web/references/flex/DESIGN.md +170 -253
  119. package/web/references/framer/DESIGN.md +197 -340
  120. package/web/references/freee/DESIGN.md +211 -533
  121. package/web/references/friendliai/DESIGN.md +431 -0
  122. package/web/references/frip/DESIGN.md +440 -0
  123. package/web/references/furiosaai/DESIGN.md +450 -0
  124. package/web/references/gangnamunni/DESIGN.md +154 -591
  125. package/web/references/gaudiolab/DESIGN.md +414 -0
  126. package/web/references/google/DESIGN.md +290 -398
  127. package/web/references/goorm/DESIGN.md +470 -0
  128. package/web/references/greencar/DESIGN.md +420 -0
  129. package/web/references/hackle/DESIGN.md +472 -0
  130. package/web/references/hashicorp/DESIGN.md +273 -318
  131. package/web/references/heydealer/DESIGN.md +429 -0
  132. package/web/references/humanscape/DESIGN.md +433 -0
  133. package/web/references/hwahae/DESIGN.md +453 -0
  134. package/web/references/hyundai/DESIGN.md +158 -368
  135. package/web/references/hyundaicard/DESIGN.md +171 -121
  136. package/web/references/ibm/DESIGN.md +227 -378
  137. package/web/references/idus/DESIGN.md +450 -0
  138. package/web/references/igaworks/DESIGN.md +437 -0
  139. package/web/references/inflearn/DESIGN.md +221 -366
  140. package/web/references/intuit/DESIGN.md +244 -0
  141. package/web/references/jandi/DESIGN.md +191 -291
  142. package/web/references/jobplanet/DESIGN.md +415 -0
  143. package/web/references/kakao/DESIGN.md +287 -475
  144. package/web/references/kakaobank/DESIGN.md +220 -521
  145. package/web/references/kakaogames/DESIGN.md +220 -0
  146. package/web/references/kakaopay/DESIGN.md +207 -526
  147. package/web/references/karrot/DESIGN.md +227 -251
  148. package/web/references/kb-kookmin/DESIGN.md +308 -0
  149. package/web/references/kbank/DESIGN.md +220 -175
  150. package/web/references/kcd/DESIGN.md +432 -0
  151. package/web/references/kmong/DESIGN.md +281 -356
  152. package/web/references/krds/DESIGN.md +245 -19
  153. package/web/references/kream/DESIGN.md +224 -359
  154. package/web/references/kurly/DESIGN.md +211 -533
  155. package/web/references/kyobobook/DESIGN.md +445 -0
  156. package/web/references/lablup/DESIGN.md +474 -0
  157. package/web/references/lamborghini/DESIGN.md +198 -360
  158. package/web/references/lemonbase/DESIGN.md +452 -0
  159. package/web/references/lguplus/DESIGN.md +259 -0
  160. package/web/references/likelion/DESIGN.md +283 -0
  161. package/web/references/line/DESIGN.md +396 -355
  162. package/web/references/linear.app/DESIGN.md +209 -562
  163. package/web/references/lotteon/DESIGN.md +386 -0
  164. package/web/references/lovable/DESIGN.md +255 -349
  165. package/web/references/makinarocks/DESIGN.md +242 -0
  166. package/web/references/maum-ai/DESIGN.md +423 -0
  167. package/web/references/medibloc/DESIGN.md +425 -0
  168. package/web/references/megabox/DESIGN.md +232 -0
  169. package/web/references/mercari/DESIGN.md +217 -434
  170. package/web/references/microsoft/DESIGN.md +234 -388
  171. package/web/references/mildang/DESIGN.md +411 -0
  172. package/web/references/millie/DESIGN.md +183 -504
  173. package/web/references/minimax/DESIGN.md +264 -322
  174. package/web/references/miricanvas/DESIGN.md +182 -355
  175. package/web/references/miro/DESIGN.md +234 -232
  176. package/web/references/mistral.ai/DESIGN.md +231 -314
  177. package/web/references/mixi/DESIGN.md +234 -0
  178. package/web/references/moin/DESIGN.md +445 -0
  179. package/web/references/mongodb/DESIGN.md +219 -316
  180. package/web/references/moreh/DESIGN.md +437 -0
  181. package/web/references/musinsa/DESIGN.md +184 -510
  182. package/web/references/mynavi/DESIGN.md +242 -0
  183. package/web/references/myrealtrip/DESIGN.md +169 -406
  184. package/web/references/naver/DESIGN.md +328 -499
  185. package/web/references/naverwebtoon/DESIGN.md +172 -395
  186. package/web/references/neosapience/DESIGN.md +441 -0
  187. package/web/references/nhn/DESIGN.md +169 -346
  188. package/web/references/nhncloud/DESIGN.md +185 -123
  189. package/web/references/nota/DESIGN.md +451 -0
  190. package/web/references/notion/DESIGN.md +271 -475
  191. package/web/references/nrise/DESIGN.md +417 -0
  192. package/web/references/ohouse/DESIGN.md +210 -549
  193. package/web/references/oliveyoung/DESIGN.md +217 -326
  194. package/web/references/ollama/DESIGN.md +241 -308
  195. package/web/references/onestore/DESIGN.md +248 -0
  196. package/web/references/palantir/DESIGN.md +256 -0
  197. package/web/references/panasonic/DESIGN.md +276 -0
  198. package/web/references/patternfly/DESIGN.md +259 -0
  199. package/web/references/payhere/DESIGN.md +438 -0
  200. package/web/references/pega/DESIGN.md +262 -0
  201. package/web/references/peoplefund/DESIGN.md +431 -0
  202. package/web/references/petfriends/DESIGN.md +428 -0
  203. package/web/references/pinkfong/DESIGN.md +199 -367
  204. package/web/references/pinterest/DESIGN.md +258 -308
  205. package/web/references/portone/DESIGN.md +446 -0
  206. package/web/references/poya/DESIGN.md +286 -0
  207. package/web/references/pozalabs/DESIGN.md +438 -0
  208. package/web/references/protopie/DESIGN.md +419 -0
  209. package/web/references/qraft/DESIGN.md +448 -0
  210. package/web/references/queenit/DESIGN.md +432 -0
  211. package/web/references/quotabook/DESIGN.md +449 -0
  212. package/web/references/rebellions/DESIGN.md +449 -0
  213. package/web/references/recruit/DESIGN.md +247 -0
  214. package/web/references/remember/DESIGN.md +202 -396
  215. package/web/references/resend/DESIGN.md +274 -348
  216. package/web/references/returnzero/DESIGN.md +460 -0
  217. package/web/references/sakura-internet/DESIGN.md +269 -0
  218. package/web/references/samsung/DESIGN.md +157 -359
  219. package/web/references/sandoll/DESIGN.md +445 -0
  220. package/web/references/sanity/DESIGN.md +241 -375
  221. package/web/references/saramin/DESIGN.md +465 -0
  222. package/web/references/scatterlab/DESIGN.md +412 -0
  223. package/web/references/selectstar/DESIGN.md +439 -0
  224. package/web/references/servicenow/DESIGN.md +289 -0
  225. package/web/references/shiftee/DESIGN.md +468 -0
  226. package/web/references/shinhanbank/DESIGN.md +161 -341
  227. package/web/references/shinhancard/DESIGN.md +208 -319
  228. package/web/references/sionic/DESIGN.md +454 -0
  229. package/web/references/sktelecom/DESIGN.md +310 -0
  230. package/web/references/socar/DESIGN.md +125 -32
  231. package/web/references/softbank/DESIGN.md +231 -0
  232. package/web/references/solapi/DESIGN.md +483 -0
  233. package/web/references/sony/DESIGN.md +234 -0
  234. package/web/references/soop/DESIGN.md +261 -0
  235. package/web/references/spacex/DESIGN.md +184 -323
  236. package/web/references/spotify/DESIGN.md +253 -394
  237. package/web/references/squeezebits/DESIGN.md +441 -0
  238. package/web/references/stayfolio/DESIGN.md +422 -0
  239. package/web/references/stripe/DESIGN.md +212 -491
  240. package/web/references/supabase/DESIGN.md +244 -316
  241. package/web/references/supertone/DESIGN.md +413 -0
  242. package/web/references/tabling/DESIGN.md +415 -0
  243. package/web/references/taishinbank/DESIGN.md +243 -0
  244. package/web/references/teamlab/DESIGN.md +240 -0
  245. package/web/references/teamsparta/DESIGN.md +472 -0
  246. package/web/references/tellingme/DESIGN.md +392 -0
  247. package/web/references/tesla/DESIGN.md +244 -427
  248. package/web/references/thsr/DESIGN.md +284 -0
  249. package/web/references/thumbtack/DESIGN.md +302 -0
  250. package/web/references/together.ai/DESIGN.md +257 -304
  251. package/web/references/toss/DESIGN.md +251 -593
  252. package/web/references/toss-securities/DESIGN.md +255 -178
  253. package/web/references/tossbank/DESIGN.md +195 -491
  254. package/web/references/toyota/DESIGN.md +238 -0
  255. package/web/references/tving/DESIGN.md +197 -245
  256. package/web/references/typed/DESIGN.md +413 -0
  257. package/web/references/uber/DESIGN.md +256 -333
  258. package/web/references/udn/DESIGN.md +250 -0
  259. package/web/references/upbit/DESIGN.md +145 -256
  260. package/web/references/upstage/DESIGN.md +211 -204
  261. package/web/references/uswds/DESIGN.md +287 -0
  262. package/web/references/vercel/DESIGN.md +236 -440
  263. package/web/references/vuno/DESIGN.md +413 -0
  264. package/web/references/wanted/DESIGN.md +215 -487
  265. package/web/references/weverse/DESIGN.md +437 -0
  266. package/web/references/wise/DESIGN.md +223 -231
  267. package/web/references/wisetracker/DESIGN.md +462 -0
  268. package/web/references/wooribank/DESIGN.md +245 -0
  269. package/web/references/yanolja/DESIGN.md +250 -419
  270. package/web/references/yeogiotte/DESIGN.md +235 -418
  271. package/web/references/zapier/DESIGN.md +256 -377
  272. package/web/references/zendesk/DESIGN.md +288 -0
  273. package/web/references/zigzag/DESIGN.md +200 -621
  274. package/dist/install-skills-7UUDOLG2.js +0 -734
  275. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -4,357 +4,243 @@ name: BMW
4
4
  country: DE
5
5
  category: automotive
6
6
  homepage: "https://www.bmw.com"
7
- primary_color: "#0066b1"
7
+ primary_color: "#1c69d4"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: bmw
11
- verified: "2026-05-15"
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: product-marketing, url: "https://www.bmwusa.com/", inspected: "2026-07-13" }
18
+ - { id: models, kind: vehicle-catalog, url: "https://www.bmwusa.com/vehicles/all-bmw-models.html", inspected: "2026-07-13" }
19
+ - { id: configurator, kind: configurator-marketing, url: "https://www.bmwusa.com/build-your-own.html#/", inspected: "2026-07-13" }
20
+ sources:
21
+ - { id: home-live, kind: product-surface, url: "https://www.bmwusa.com/", captured: "2026-07-13" }
22
+ - { id: models-live, kind: product-surface, url: "https://www.bmwusa.com/vehicles/all-bmw-models.html", captured: "2026-07-13" }
23
+ - { id: configurator-live, kind: product-surface, url: "https://www.bmwusa.com/build-your-own.html#/", captured: "2026-07-13" }
24
+ - { id: bmwtype-web-assets, kind: brand-asset, url: "https://www.bmwusa.com/etc.clientlibs/bmw-web/clientlibs/clientlib-site/resources/fonts/BMWTypeNext-Regular.woff2", captured: "2026-07-13" }
25
+ - { id: bmw-club-ci, kind: official-doc, url: "https://www.bmwgroup-werke.com/content/dam/grpw/websites/bmwgroup-classic_com/bmw_clubs/downloads/leitlinien/en/BCIC_Guideline_no5_version2.1.1.pdf", captured: "2026-07-13" }
26
+ - { id: bmw-brand-design, kind: official-doc, url: "https://www.press.bmwgroup.com/global/article/detail/T0306305EN/introducing-bmw%E2%80%99s-new-brand-design-for-online-and-offline-communication?language=en", captured: "2026-07-13" }
27
+ - { id: bmw-history, kind: official-doc, url: "https://www.bmwgroup.com/en/company/history.html", captured: "2026-07-13" }
28
+ - { id: bmw-neue-klasse, kind: official-doc, url: "https://www.bmwgroup.com/en/company/neue-klasse.html", captured: "2026-07-13" }
29
+ conflicts: []
30
+ claims:
31
+ "tokens.colors.primary": &home { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
32
+ "tokens.colors.foreground": *home
33
+ "tokens.colors.on-dark": *home
34
+ "tokens.colors.outline": *home
35
+ "tokens.colors.foreground-configurator": &configurator { surface_id: configurator, source_id: configurator-live, method: computed-style, captured: "2026-07-13" }
36
+ "tokens.typography.family.ui": { surface_id: home, source_id: bmwtype-web-assets, method: computed-font-face, captured: "2026-07-13" }
37
+ "tokens.typography.display.size": *home
38
+ "tokens.typography.display.weight": *home
39
+ "tokens.typography.display.lineHeight": *home
40
+ "tokens.typography.display.use": *home
41
+ "tokens.typography.body.size": *home
42
+ "tokens.typography.body.weight": *home
43
+ "tokens.typography.body.lineHeight": *home
44
+ "tokens.typography.body.use": *home
45
+ "tokens.typography.control.size": *home
46
+ "tokens.typography.control.weight": *home
47
+ "tokens.typography.control.lineHeight": *home
48
+ "tokens.typography.control.use": *home
49
+ "tokens.typography.utility.size": *home
50
+ "tokens.typography.utility.weight": *home
51
+ "tokens.typography.utility.lineHeight": *home
52
+ "tokens.typography.utility.use": *home
53
+ "tokens.spacing.space-4": *home
54
+ "tokens.spacing.space-12": *home
55
+ "tokens.spacing.space-24": *home
56
+ "tokens.spacing.space-32": *home
57
+ "tokens.rounded.none": *home
58
+ "tokens.rounded.control": *home
13
59
  tokens:
14
- source: prose-derived
15
- extracted: "2026-06-08"
16
- note: "primary = live signature interactive blue --site-context-highlight-color (#1c69d4); differs from primary_color frontmatter (#0066b1, BMW roundel marketing blue)"
60
+ source: live-extract
61
+ extracted: "2026-07-13"
62
+ components_harvested: false
17
63
  colors:
18
64
  primary: "#1c69d4"
19
- primary-hover: "#0653b6"
20
- brand: "#0066b1"
21
- canvas: "#ffffff"
22
- foreground: "#262626"
23
- muted: "#757575"
24
- on-primary: "#ffffff"
25
- focus: "#0653b6"
26
- surface: "#ffffff"
27
- dark-surface: "#262626"
28
- tertiary: "#bbbbbb"
65
+ foreground: "#414141"
66
+ foreground-configurator: "#262626"
67
+ on-dark: "#ffffff"
68
+ outline: "#f2f2f2"
29
69
  typography:
30
- family: { sans: "BMWTypeNextLatin, Helvetica, Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, Meiryo", mono: "monospace" }
31
- display-hero: { size: 60, weight: 300, lineHeight: 1.30, use: "Uppercase hero display, whispered authority" }
32
- section-heading: { size: 32, weight: 400, lineHeight: 1.30, use: "Major section titles" }
33
- nav-emphasis: { size: 18, weight: 900, lineHeight: 1.30, use: "Navigation bold items, stark authority" }
34
- body: { size: 16, weight: 400, lineHeight: 1.15, use: "Standard body text" }
35
- button-bold: { size: 16, weight: 700, lineHeight: 1.20, use: "CTA buttons" }
36
- button: { size: 16, weight: 400, lineHeight: 1.15, use: "Standard buttons" }
37
- spacing: { xs: 4, sm: 8, md: 16, base: 16, lg: 24, xl: 32, xxl: 48, section: 60 }
38
- rounded: { sm: 0, md: 0, lg: 0, full: 0 }
39
- shadow:
40
- none: "none"
41
- components_harvested: true
42
- components:
43
- button-primary: { type: button, bg: "transparent", fg: "#ffffff", border: "1px solid #ffffff", radius: "0px", padding: "12px 24px", font: "16px / 700", hover: "text stays white, no underline", use: "Primary CTA on dark/hero surfaces" }
44
- button-secondary: { type: button, bg: "transparent", fg: "#262626", border: "1px solid #262626", radius: "0px", padding: "12px 24px", font: "16px / 400", use: "Secondary action on light surfaces" }
45
- button-highlight: { type: button, bg: "#1c69d4", fg: "#ffffff", radius: "0px", padding: "12px 24px", font: "16px / 700", hover: "bg #0653b6", use: "BMW Blue highlight CTA" }
46
- input: { type: input, bg: "#ffffff", fg: "#262626", border: "1px solid #262626", radius: "0px", padding: "12px 16px", font: "16px / 400", focus: "border #0653b6", use: "Default text input" }
47
- card: { type: card, bg: "#ffffff", radius: "0px", padding: "24px", border: "none", use: "Light-section content card — sharp rectangular" }
48
- dark-hero-container: { type: card, bg: "#262626", fg: "#ffffff", radius: "0px", padding: "0px", use: "Hero/feature with full-bleed automotive photography, edge-to-edge" }
49
- badge: { type: badge, bg: "#262626", fg: "#ffffff", radius: "0px", padding: "4px 8px", font: "12px / 700", use: "Label badge" }
70
+ family: { ui: "bmwTypeNextWeb" }
71
+ display: { size: 35, weight: 300, lineHeight: 1.43, use: "Observed home heading only." }
72
+ body: { size: 18, weight: 300, lineHeight: 1.56, use: "Observed home body copy only." }
73
+ control: { size: 15, weight: 500, lineHeight: 1.6, use: "Observed home button and navigation control text only." }
74
+ utility: { size: 20, weight: 300, lineHeight: 1.5, use: "Observed home navigation icon-flyout text only." }
75
+ spacing: { space-4: 4, space-12: 12, space-24: 24, space-32: 32 }
76
+ rounded: { none: 0, control: 3 }
77
+ components: {}
50
78
  ---
51
79
 
52
80
  # Design System Inspiration of BMW
53
81
 
54
82
  ## 1. Visual Theme & Atmosphere
55
83
 
56
- BMW's website is automotive engineering made visual a design system that communicates precision, performance, and German industrial confidence. The page alternates between deep dark hero sections (featuring full-bleed automotive photography) and clean white content areas, creating a cinematic rhythm reminiscent of a luxury car showroom where vehicles are lit against darkness. The BMW CI2020 design language (their corporate identity refresh) defines every element.
84
+ BMW makes premium automobiles, motorcycles, and mobility services. Its public BMW USA home, model-catalog, and build-your-own routes were captured as separate product-marketing surfaces; this reference intentionally does not turn them into a claim about an authenticated vehicle, account, dealer, or in-car interface. The recorded home treatment pairs a small number of blue primary actions with white or transparent navigation controls and light, high-line-height BMW Type text. The catalogue and configurator share the same family but do not resolve every color identically, so the values remain surface-scoped rather than being blended into a fictional global palette. BMW’s official 2020 identity update describes a digitally oriented brand presence built around openness, clarity, visual restraint, and graphic flexibility; its current Neue Klasse programme carries that direction into a new, reduced vehicle-design language. [BMW brand design announcement](https://www.press.bmwgroup.com/global/article/detail/T0306305EN/introducing-bmw%E2%80%99s-new-brand-design-for-online-and-offline-communication?language=en) and [Neue Klasse context](https://www.bmwgroup.com/en/company/neue-klasse.html) inform this narrative, not the live web tokens.
57
85
 
58
- The typography is built on BMWTypeNextLatin — a proprietary typeface in two variants: BMWTypeNextLatin Light (weight 300) for massive uppercase display headings, and BMWTypeNextLatin Regular for body and UI text. The 60px uppercase headline at weight 300 is the defining typographic gesture — light-weight type that whispers authority rather than shouting it. The fallback stack includes Helvetica and Japanese fonts (Hiragino, Meiryo), reflecting BMW's global presence.
86
+ **Key characteristics:**
59
87
 
60
- What makes BMW distinctive is its CSS variable-driven theming system. Context-aware variables (`--site-context-highlight-color: #1c69d4`, `--site-context-focus-color: #0653b6`, `--site-context-metainfo-color: #757575`) suggest a design system built for multi-brand, multi-context deployment where colors can be swapped globally. The blue highlight color (`#1c69d4`) is BMW's signature blue — used sparingly for interactive elements and focus states, never decoratively. Zero border-radius was detected — BMW's design is angular, sharp-cornered, and uncompromisingly geometric.
61
-
62
- **Key Characteristics:**
63
- - BMWTypeNextLatin Light (weight 300) uppercase for display whispered authority
64
- - BMW Blue (`#1c69d4`) as singular accent used only for interactive elements
65
- - Zero border-radius detected — angular, sharp-cornered, industrial geometry
66
- - Dark hero photography + white content sections — showroom lighting rhythm
67
- - CSS variable-driven theming: `--site-context-*` tokens for brand flexibility
68
- - Weight 900 for navigation emphasis — extreme contrast with 300 display
69
- - Tight line-heights (1.15–1.30) throughout — compressed, efficient, German engineering
70
- - Full-bleed automotive photography as primary visual content
88
+ - A single observed blue home CTA fill, `#1c69d4`
89
+ - `bmwTypeNextWeb` as the loaded, computed public-web family
90
+ - Mostly square navigation chrome, with 3px CTA corners where measured
91
+ - Separate home and configurator foreground values rather than one assumed neutral scale
92
+ - No promoted hover, focus, pressed, modal, or responsive system from this capture
71
93
 
72
94
  ## 2. Color Palette & Roles
73
95
 
74
- ### Primary Brand
75
- - **Pure White** (`#ffffff`): `--site-context-theme-color`, primary surface, card backgrounds
76
- - **BMW Blue** (`#1c69d4`): `--site-context-highlight-color`, primary interactive accent
77
- - **BMW Focus Blue** (`#0653b6`): `--site-context-focus-color`, keyboard focus and active states
78
-
79
- ### Neutral Scale
80
- - **Near Black** (`#262626`): Primary text on light surfaces, dark link text
81
- - **Meta Gray** (`#757575`): `--site-context-metainfo-color`, secondary text, metadata
82
- - **Silver** (`#bbbbbb`): Tertiary text, muted links, footer elements
96
+ ### Observed BMW USA product-marketing values
83
97
 
84
- ### Interactive States
85
- - All links hover to white (`#ffffff`) suggesting primarily dark-surface navigation
86
- - Text links use underline: none on hover clean interaction
98
+ - **Primary action** (`#1c69d4`): home `.cmp-button` background at `home::[data-omd-capture="10"]`.
99
+ - **Home foreground** (`#414141`): home list and dialog chrome; it is not substituted for the configurator value.
100
+ - **Configurator foreground** (`#262626`): build-your-own navigation and local chrome at `surface-3`.
101
+ - **On-dark navigation** (`#ffffff`): home global-navigation control text.
102
+ - **Outline action** (`#f2f2f2`): inset-outline and text color of the paired home CTA at `home::[data-omd-capture="11"]`.
87
103
 
88
- ### Shadows
89
- - Minimal shadow system — depth through photography and dark/light section contrast
104
+ No semantic success, warning, error, disabled, hover, or focus color is claimed. The collector did not observe a reusable white canvas fill, a general dark-surface token, or a system-wide BMW roundel color role, so those values are omitted instead of inferred from marketing imagery or logos.
90
105
 
91
106
  ## 3. Typography Rules
92
107
 
93
- ### Font Families
94
- - **Display Light**: `BMWTypeNextLatin Light`, fallbacks: `Helvetica, Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, Meiryo`
95
- - **Body / UI**: `BMWTypeNextLatin`, same fallback stack
108
+ ### Evidence classes
96
109
 
97
- ### Hierarchy
110
+ - **Live computed surface-use, FontFaceSet, and source corroboration:** `bmwTypeNextWeb` is loaded with high confidence, appears on 288 captured elements across body, headings, navigation, buttons, dialogs, and list items, and is backed by 52 BMWUSA-hosted WOFF/WOFF2 source URLs. It is the sole UI family token.
111
+ - **Live computed but limited use:** `BMWTypeNext` is also loaded with high confidence (five captured uses) from six BMWUSA-hosted BMWTypeNextLatin files. Its limited observed role is recorded here but it is not made a second generic UI-family token.
112
+ - **Official distributed brand asset:** BMW’s official Club CI guideline specifies BMW TypeNext Bold and Regular for club identifiers. That establishes an official brand-asset context, not an assertion that the club guideline defines the captured BMWUSA product UI. [BMW Club CI guideline](https://www.bmwgroup-werke.com/content/dam/grpw/websites/bmwgroup-classic_com/bmw_clubs/downloads/leitlinien/en/BCIC_Guideline_no5_version2.1.1.pdf)
113
+ - **Declared-only:** Arial MT, `bmw_next_icons`, and SangBleuKingdom have captured `@font-face` declarations but zero visible uses. They are not UI-family tokens.
114
+ - **Licence boundary:** the collected BMWUSA WOFF/WOFF2 files corroborate browser use only. The public BMW Club guideline governs official-club brand materials and does not grant a downstream webfont licence; no public first-party reuse licence was located in this pass.
98
115
 
99
- | Role | Font | Size | Weight | Line Height | Notes |
100
- |------|------|------|--------|-------------|-------|
101
- | Display Hero | BMWTypeNextLatin Light | 60px (3.75rem) | 300 | 1.30 (tight) | `text-transform: uppercase` |
102
- | Section Heading | BMWTypeNextLatin | 32px (2.00rem) | 400 | 1.30 (tight) | Major section titles |
103
- | Nav Emphasis | BMWTypeNextLatin | 18px (1.13rem) | 900 | 1.30 (tight) | Navigation bold items |
104
- | Body | BMWTypeNextLatin | 16px (1.00rem) | 400 | 1.15 (tight) | Standard body text |
105
- | Button Bold | BMWTypeNextLatin | 16px (1.00rem) | 700 | 1.20–2.88 | CTA buttons |
106
- | Button | BMWTypeNextLatin | 16px (1.00rem) | 400 | 1.15 (tight) | Standard buttons |
116
+ ### Observed hierarchy
107
117
 
108
- ### Principles
109
- - **Light display, heavy navigation**: Weight 300 for hero headlines creates whispered elegance; weight 900 for navigation creates stark authority. This extreme weight contrast (300 vs 900) is the signature typographic tension.
110
- - **Universal uppercase display**: The 60px hero is always uppercase creating a monumental, architectural quality.
111
- - **Tight everything**: Line-heights from 1.15 to 1.30 across the entire system. Nothing breathes — every line is compressed, efficient, German-engineered.
112
- - **Single font family**: BMWTypeNextLatin handles everything from 60px display to 16px body unity through one typeface at different weights.
118
+ | Role | Size | Weight | Line height | Surface boundary |
119
+ |------|------|--------|-------------|------------------|
120
+ | Display heading | 35px | 300 | 50px | Home only |
121
+ | Body copy | 18px | 300 | 28px | Home only |
122
+ | Control text | 15px | 500 | 24px | Home button and navigation controls |
123
+ | Icon-flyout text | 20px | 300 | 30px | Home global navigation only |
113
124
 
114
125
  ## 4. Component Stylings
115
126
 
116
127
  ### Buttons
117
128
 
118
- **Primary**
119
- - Background: transparent
120
- - Text: `#ffffff`
121
- - Border: 1px solid `#ffffff` (bottom-border on dark surfaces)
129
+ **Home primary CTA — observed default**
130
+ - Background: #1c69d4
131
+ - Text: #ffffff
132
+ - Radius: 3px
133
+ - Padding: 4px
134
+ - Font: 15px / 500 / bmwTypeNextWeb
135
+ - Use: `home::[data-omd-capture="10"]` `.cmp-button`; 52px rendered height. No state snapshot was supplied.
136
+
137
+ **Home outline CTA — observed default**
138
+ - Text: #f2f2f2
139
+ - Radius: 3px
140
+ - Padding: 4px
141
+ - Font: 15px / 500 / bmwTypeNextWeb
142
+ - Use: `home::[data-omd-capture="11"]` `.cmp-button`; transparent fill with `#f2f2f2` 1px inset outline and 52px rendered height. No state snapshot was supplied.
143
+
144
+ ### Global navigation controls
145
+
146
+ **Home flyout trigger — observed default**
147
+ - Text: #ffffff
122
148
  - Radius: 0px
123
- - Padding: 12px 24px
124
- - Font: 16px / 700 / BMWTypeNextLatin
125
- - Hover: text remains white, no underline
126
- - Use: Primary CTA on dark/hero surfaces
127
-
128
- **Secondary**
129
- - Background: transparent
130
- - Text: `#262626`
131
- - Border: 1px solid `#262626`
132
- - Radius: 0px
133
- - Padding: 12px 24px
134
- - Font: 16px / 400 / BMWTypeNextLatin
135
- - Use: Secondary actions on light surfaces
149
+ - Padding: 0px 12px
150
+ - Font: 15px / 500 / bmwTypeNextWeb
151
+ - Use: `home::[data-omd-capture="1"]` `.cmp-globalnavigation__interaction--flyout`; 84px rendered height. No menu-open state was observed.
136
152
 
137
- **Highlight**
138
- - Background: `#1c69d4`
139
- - Text: `#ffffff`
153
+ **Build-your-own flyout trigger — observed default**
154
+ - Text: #666666
140
155
  - Radius: 0px
141
- - Padding: 12px 24px
142
- - Font: 16px / 700 / BMWTypeNextLatin
143
- - Hover: `#0653b6`
144
- - Use: Inferred from §1-§2 baseline (no explicit DS variant in source) — BMW Blue highlight CTA
156
+ - Padding: 0px 12px
157
+ - Font: 15px / 500 / bmwTypeNextWeb
158
+ - Use: `surface-3::[data-omd-capture="1"]` `.cmp-globalnavigation__interaction--flyout`; 84px rendered height. This surface-specific value is not a home-navigation variant.
145
159
 
146
- ### Inputs
160
+ Inputs, cards, badges, dialogs, chatbot chrome, menu panels, and state variants are omitted: the supplied artifact has no representative BMW selector/state evidence for them. OneTrust dialog and close-button records are third-party consent chrome, not BMW product components.
147
161
 
148
- **Default**
149
- - Background: `#ffffff`
150
- - Text: `#262626`
151
- - Border: 1px solid `#262626`
152
- - Radius: 0px
153
- - Padding: 12px 16px
154
- - Font: 16px / 400 / BMWTypeNextLatin
155
- - Focus: border `#0653b6`
156
- - Use: Inferred from §1-§2 baseline (no explicit DS variant in source).
157
-
158
- ### Cards
159
-
160
- **Standard**
161
- - Background: `#ffffff`
162
- - Radius: 0px
163
- - Padding: 24px
164
- - Border: none
165
- - Use: Light-section content card — sharp rectangular, no border-radius (BMW's angular signature)
166
-
167
- **Dark Hero Container**
168
- - Background: `#262626` (or full-bleed photography)
169
- - Text: `#ffffff`
170
- - Radius: 0px
171
- - Padding: 0px (edge-to-edge)
172
- - Use: Hero/feature sections with full-bleed automotive photography
173
-
174
- ### Badges
175
-
176
- **Default**
177
- - Background: `#262626`
178
- - Text: `#ffffff`
179
- - Radius: 0px
180
- - Padding: 4px 8px
181
- - Font: 12px / 700 / BMWTypeNextLatin
182
- - Use: Inferred from §1-§2 baseline (no explicit DS variant in source).
183
-
184
- ### Navigation
185
- - BMWTypeNextLatin 18px weight 900 for primary nav links
186
- - White text on dark header
187
- - BMW logo 54x54px
188
- - Hover: remains white, text-decoration none
189
- - "Home" text link in header
190
-
191
- ### Image Treatment
192
- - Full-bleed automotive photography
193
- - Dark cinematic lighting
194
- - Edge-to-edge hero images
195
- - Car photography as primary visual content
162
+ ---
163
+ **Verified:** 2026-07-13
164
+ **Tier 1 sources:** https://www.bmwusa.com/ · https://www.bmwusa.com/vehicles/all-bmw-models.html · https://www.bmwusa.com/build-your-own.html#/
165
+ **Tier 2 sources:** https://getdesign.md/bmw (record present; broad editorial cross-check only) · https://styles.refero.design/?q=bmw (required search attempted; built-in open was blocked and no usable BMW style record was collected)
166
+ **Conflicts unresolved:** none
196
167
 
197
168
  ## 5. Layout Principles
198
169
 
199
- ### Spacing System
200
- - Base unit: 8px
201
- - Scale: 1px, 5px, 8px, 10px, 12px, 15px, 16px, 20px, 24px, 30px, 32px, 40px, 45px, 56px, 60px
170
+ ### Observed spacing
202
171
 
203
- ### Grid & Container
204
- - Full-width hero photography
205
- - Centered content sections
206
- - Footer: multi-column link grid
172
+ The supplied desktop capture repeatedly records 4px, 12px, 24px, and 32px values. They are exposed as observed values rather than a declared BMW spacing scale: 4px is the CTA inset padding, 12px is global-navigation horizontal padding, 24px is recurrent control/list line-height or spacing, and 32px occurs in home list margins. No grid, container width, or breakpoint is established by these repetitions.
207
173
 
208
- ### Whitespace Philosophy
209
- - **Showroom pacing**: Dark hero sections with generous padding create the feeling of walking through a showroom where each vehicle is spotlit in its own space.
210
- - **Compressed content**: Body text areas use tight line-heights and compact spacing — information-dense, no waste.
174
+ ### Shape boundary
211
175
 
212
- ### Border Radius Scale
213
- - **None detected.** BMW uses sharp corners exclusively — every element is a precise rectangle. This is the most angular design system analyzed.
176
+ The sampled global-navigation controls are 0px radius; the sampled paired home CTAs are 3px radius. The evidence therefore supports two measured geometries, not a claim that every BMW surface is square or that 3px is a universal corporate rule.
214
177
 
215
178
  ## 6. Depth & Elevation
216
179
 
217
- | Level | Treatment | Use |
218
- |-------|-----------|-----|
219
- | Photography (Level 0) | Full-bleed dark imagery | Hero backgrounds |
220
- | Flat (Level 1) | White surface, no shadow | Content sections |
221
- | Focus (Accessibility) | BMW Focus Blue (`#0653b6`) | Focus states |
222
-
223
- **Shadow Philosophy**: BMW uses virtually no shadows. Depth is created entirely through the contrast between dark photographic sections and white content sections — the automotive lighting does the elevation work.
180
+ The observed BMW CTA and global-navigation controls have `box-shadow: none`. A low-confidence chatbot record contains a shadow, but it is not used to define an elevation token or a general BMW component rule. No reusable panel, card, or modal elevation system was collected.
224
181
 
225
182
  ## 7. Do's and Don'ts
226
183
 
227
184
  ### Do
228
- - Use BMWTypeNextLatin Light (300) uppercase for all display headings
229
- - Keep ALL corners sharp (0px radius) angular geometry is non-negotiable
230
- - Use BMW Blue (`#1c69d4`) only for interactive elements never decoratively
231
- - Apply weight 900 for navigation emphasis the extreme weight contrast is intentional
232
- - Use full-bleed automotive photography for hero sections
233
- - Keep line-heights tight (1.15–1.30) throughout
234
- - Use `--site-context-*` CSS variables for theming
185
+
186
+ - Keep the home primary action tied to the observed `#1c69d4` CTA rather than treating it as a generic semantic blue.
187
+ - Preserve the measured distinction between 0px navigation controls and 3px paired CTAs when recreating the captured home pattern.
188
+ - Keep `bmwTypeNextWeb` metadata attached to BMWUSA web evidence; use a lawful fallback only when the proprietary face cannot be loaded.
189
+ - Scope home and configurator navigation values to their recorded surfaces.
235
190
 
236
191
  ### Don't
237
- - Don't round corners — zero radius is the BMW identity
238
- - Don't use BMW Blue for backgrounds or large surfaces it's an accent only
239
- - Don't use medium font weights (500–600) the system uses 300, 400, 700, 900 extremes
240
- - Don't add decorative elements the photography and typography carry everything
241
- - Don't use relaxed line-heights BMW text is always compressed
242
- - Don't lighten the dark hero sections — the contrast with white IS the design
192
+
193
+ - Don't claim unobserved hover, focus, pressed, disabled, error, or menu-open behavior.
194
+ - Don't promote declared-only Arial MT, `bmw_next_icons`, or SangBleuKingdom into BMW UI typography.
195
+ - Don't reuse BMW-hosted font files as though the capture supplied a public downstream licence.
196
+ - Don't turn consent-banner or chatbot records into BMW component tokens without source-specific evidence.
243
197
 
244
198
  ## 8. Responsive Behavior
245
199
 
246
- ### Breakpoints
247
- | Name | Width | Key Changes |
248
- |------|-------|-------------|
249
- | Mobile Small | <375px | Minimum supported |
250
- | Mobile | 375–480px | Single column |
251
- | Mobile Large | 480–640px | Slight adjustments |
252
- | Tablet Small | 640–768px | 2-column begins |
253
- | Tablet | 768–920px | Standard tablet |
254
- | Desktop Small | 920–1024px | Desktop layout begins |
255
- | Desktop | 1024–1280px | Standard desktop |
256
- | Large Desktop | 1280–1440px | Expanded |
257
- | Ultra-wide | 1440–1600px | Maximum layout |
258
-
259
- ### Collapsing Strategy
260
- - Hero: 60px → scales down, maintains uppercase
261
- - Navigation: horizontal → hamburger
262
- - Photography: full-bleed maintained at all sizes
263
- - Content sections: stack vertically
264
- - Footer: multi-column → stacked
200
+ Only a 1440×900 desktop collector run was supplied. It does not substantiate mobile breakpoints, navigation collapse, touch targets, or responsive spacing rules; no responsive token or rule is asserted.
265
201
 
266
202
  ## 9. Agent Prompt Guide
267
203
 
268
- ### Quick Color Reference
269
- - Background: Pure White (`#ffffff`)
270
- - Text: Near Black (`#262626`)
271
- - Secondary text: Meta Gray (`#757575`)
272
- - Accent: BMW Blue (`#1c69d4`)
273
- - Focus: BMW Focus Blue (`#0653b6`)
274
- - Muted: Silver (`#bbbbbb`)
275
-
276
- ### Example Component Prompts
277
- - "Create a hero: full-width dark automotive photography background. Heading at 60px BMWTypeNextLatin Light weight 300, uppercase, line-height 1.30, white text. No border-radius anywhere."
278
- - "Design navigation: dark background. BMWTypeNextLatin 18px weight 900 for links, white text. BMW logo 54x54. Sharp rectangular layout."
279
- - "Build a button: 16px BMWTypeNextLatin weight 700, line-height 1.20. Sharp corners (0px radius). White bottom border on dark surface."
280
- - "Create content section: white background. Heading at 32px weight 400, line-height 1.30, #262626. Body at 16px weight 400, line-height 1.15."
281
-
282
- ### Iteration Guide
283
- 1. Zero border-radius — every corner is sharp, no exceptions
284
- 2. Weight extremes: 300 (display), 400 (body), 700 (buttons), 900 (nav)
285
- 3. BMW Blue for interactive only — never as background or decoration
286
- 4. Photography carries emotion — the UI is pure precision
287
- 5. Tight line-heights everywhere — 1.15 to 1.30 is the range
204
+ Use this reference as a constrained public-web inspiration, not as a specification for a vehicle interface or an authenticated service.
288
205
 
289
- ## 10. Voice & Tone
206
+ - "Create a BMW USA home CTA: `#1c69d4` fill, white 15px/500 `bmwTypeNextWeb` text where licensed and loadable, 3px radius, 4px inset padding, 52px observed height."
207
+ - "Create a paired outline action: transparent fill, `#f2f2f2` text and inset outline, 3px radius; do not invent interaction states."
208
+ - "Create the observed home navigation trigger: white 15px/500 text, 0px radius, 0px 12px padding. Keep it separate from the build-your-own trigger's `#666666` text."
290
209
 
291
- BMW's voice is **precision-engineered and luxury-confident.** "프리미엄 자동차와 혁신적인 기술" — luxury performance positioning. Sharp 3px radius + photography-driven hero signal "German engineering precision."
292
-
293
- | Context | Tone |
294
- |---|---|
295
- | CTA | Verb-noun. "사전 예약하기", "더 알아보기", "구성하기" |
296
- | Marketing | Photography dominant; copy supports image |
297
- | Documentation | Technical specs (kW, km/h, 제로백) prominent |
298
- | Error | Specific. "구성 옵션이 호환되지 않습니다." |
210
+ ## 10. Voice & Tone
299
211
 
300
- **Voice samples**
301
- - Marketing CTAs: *"사전 예약하기"* / *"BMW AI 어시스턴트"* <!-- verified: bmw.co.kr 2026-05 -->
212
+ BMW’s official 2020 communication-design announcement describes the brand update as open, clear, customer-centred, and suited to a digital future. For source-backed BMW-inspired communication, use concise, confident language that makes the next action legible and lets a product image or technical detail carry the rest. This is brand-communication context, not evidence for unobserved product error copy.
302
213
 
303
- **Forbidden phrases.** "Revolutionary driving". Aggressive Mercedes-comparison framing.
214
+ | Context | Source-backed direction |
215
+ |---------|-------------------------|
216
+ | Brand communication | Openness, clarity, and strength of character from the 2020 brand-design announcement |
217
+ | Future mobility | Electric, digital, circular, and driving-pleasure framing from Neue Klasse materials |
218
+ | Controls | Use direct labels whose visual treatment stays within the observed surface-specific component evidence |
304
219
 
305
220
  ## 11. Brand Narrative
306
221
 
307
- BMW (**Bayerische Motoren Werke**) was founded **March 7, 1916** in Munich, originally as **Bayerische Flugzeugwerke (BFW)** formerly Otto Flugmaschinenfabrik an aircraft engine manufacturer ([BMW Wikipedia](https://en.wikipedia.org/wiki/BMW), [History of BMW Wikipedia](https://en.wikipedia.org/wiki/History_of_BMW), [BMW Group History](https://www.bmwgroup.com/en/company/history.html)). The company traces its lineage to **Karl Rapp** and **Gustav Otto**; the moniker "BMW" first appeared in 1917 when Rapp Motorenwerke became BMW GmbH, then re-formalized as **Bayerische Motoren Werke in 1922**. The first product was the **BMW IIIa aircraft engine**, distinguished by fuel economy and high-altitude performance ([PBS](https://www.pbs.org/newshour/world/heres-what-bmw-did-before-it-made-luxury-cars)). The **Treaty of Versailles (1918) banned aircraft engine production**, forcing BMW to pivot to **farm equipment, household items, and railway brakes** to survive. Motorcycle production began **1923 (R32)**; automobile market entry **1928** (Dixi acquisition). Brand positioning: ***"Sheer Driving Pleasure"* / *"Freude am Fahren"***. The 2024-2025 evolution toward AI Assistant integration + EV (i-series, Neue Klasse) positions BMW for the post-internal-combustion era while preserving driving-pleasure identity. The roundel logo's **white + blue quarters represent the Bavarian flag**, not a spinning propeller — that myth has been explicitly debunked by BMW corporate communications.
222
+ BMW’s roots reach to 1916, when the Flugmaschinenfabrik Gustav Otto merged into Bayerische Flugzeug-Werke AG; BMW Group’s own history identifies 7 March 1916 as the foundation date of today’s BMW AG and traces the company’s roots to Karl Rapp and Gustav Otto. [BMW Group history](https://www.bmwgroup.com/en/company/history.html) describes a company that now spans BMW, MINI, Rolls-Royce, and BMW Motorrad across automobiles, motorcycles, and mobility services.
223
+
224
+ Its current evolution is not only a web re-skin. BMW’s 2020 communication identity moved toward a pared-down, two-dimensional, digitally focused presence centred on openness and clarity. The Neue Klasse programme now positions electrification, digitalisation, circularity, and a reduced new design language as an update to the brand’s driving-pleasure proposition. [BMW Group’s Neue Klasse overview](https://www.bmwgroup.com/en/company/neue-klasse.html) records the first series-production iX3 as the beginning of that new model generation.
308
225
 
309
226
  ## 12. Principles
310
227
 
311
- 1. **Photography is the design.** *UI implication:* hero modules dominated by car photography.
312
- 2. **3px sharp radius.** *UI implication:* never round corners more sharp signals German engineering.
313
- 3. **BMW Blue `#1c69d4` for primary action.** *UI implication:* preserve corporate blue for CTAs.
314
- 4. **Tight line-heights 1.15-1.30.** *UI implication:* don't open line-height; tight signals premium typography.
315
- 5. **Photography emotion, UI precision.** *UI implication:* car photos can be cinematic; chrome stays restrained.
228
+ 1. **Communicate with openness and clarity.** *UI implication:* make hierarchy and calls to action legible before adding decorative treatment. Source: BMW’s 2020 brand-design announcement.
229
+ 2. **Use restraint with flexibility across touchpoints.** *UI implication:* reuse verified primitives only where their surface provenance matches; do not flatten different routes into one speculative kit. Source: BMW’s 2020 brand-design announcement.
230
+ 3. **Carry driving pleasure into a digital future.** *UI implication:* a BMW-inspired public page can foreground product imagery and digital action, but it must not claim in-car UI behavior without product evidence. Source: BMW Group Neue Klasse materials.
316
231
 
317
232
  ## 13. Personas
318
233
 
319
- *Personas are fictional archetypes informed by BMW user segments (premium auto buyers, EV early-adopters, fleet managers), not individual people.*
234
+ The following are source-backed stakeholder groups, not fictional customers or demographic personas.
320
235
 
321
- **Heinz Müller, 48, Munich.** BMW M-series enthusiast. Long-time customer.
322
-
323
- **Sofia Park, 38, Seoul.** First BMW iX buyer, Korean market.
324
-
325
- **Marcus Webb, 52, San Francisco.** Tech executive evaluating EV options. BMW i7 vs Tesla Model S comparison.
236
+ - **Prospective BMW customer:** the 2020 brand announcement says BMW puts the customer at the centre of the revised identity and invites customers into the world of BMW.
237
+ - **Official BMW Club representative:** the Club CI guideline addresses official clubs as brand ambassadors and sets mandatory rules for their communications; it is not a public-product UI persona.
238
+ - **BMW Group design collaborator:** BMW Group Design describes a global design organisation working across its automotive brands; this informs brand context, not a user-flow requirement.
326
239
 
327
240
  ## 14. States
328
241
 
329
- | State | Treatment |
330
- |---|---|
331
- | **Empty (no configurations)** | "Configure your BMW" CTA + model selector |
332
- | **Empty (no test drives)** | "Book a test drive" CTA |
333
- | **Loading (configurator)** | Real-time 3D rendering progress |
334
- | **Loading (price calc)** | Per-option price update |
335
- | **Error (incompatible config)** | Specific. Constraint explanation |
336
- | **Error (no inventory)** | "출고 대기 시간: N개월" with reservation CTA |
337
- | **Success (saved config)** | Configuration ID + share link |
338
- | **Success (test drive booked)** | Confirmation + dealer contact |
339
- | **Skeleton (model list)** | 3px-radius placeholders |
340
- | **Disabled (option locked)** | Tooltip with constraint reason |
341
- | **Loading (long render)** | Persistent progress |
242
+ No BMW product state treatment is asserted. The supplied collector reports zero observed states, zero interaction kinds, and zero interaction snapshots. Empty, loading, error, success, skeleton, and disabled treatments require a future selector-level public-surface capture.
342
243
 
343
244
  ## 15. Motion & Easing
344
245
 
345
- | Token | Value | Use |
346
- |---|---|---|
347
- | `motion-instant` | 0ms | Selection |
348
- | `motion-fast` | 150ms | Hover |
349
- | `motion-standard` | 300ms | Modal, panel |
350
- | `motion-config-transition` | 500ms | Configuration option transitions |
351
-
352
- Standard cubic-bezier; minimal bounce — premium register. `prefers-reduced-motion: reduce` removes 3D rendering animations.
353
-
354
- ---
355
-
356
- **Verified:** 2026-05-08 (B9 loop)
357
- **Tier 1 sources:** bmw.co.kr (live DOM via playwright — BMW Blue `#1c69d4` 3px / 4px / 52px / 14px·500; Light gray `#fff` ghost 3px; Round white icon button 50% / 52px)
358
- **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
359
- **Tier 1 (Philosophy):** bmw.com homepage; BMW corporate history; "Sheer Driving Pleasure" tagline.
360
- **Style ref:** `apple` (luxury minimal). **Conflicts unresolved:** none.
246
+ No BMW public-web duration, easing, or reduced-motion rule was captured or located in the official sources reviewed for this update. Motion tokens are intentionally omitted.