← 返回全部设计

宝马 M

BMW M汽车

高性能汽车。赛车运动式对比,M 三色点缀

实时预览

配色 Colors · 21

primary
#ffffff
ink
#ffffff
body
#bbbbbb
body-strong
#e6e6e6
muted
#7e7e7e
hairline
#3c3c3c
hairline-strong
#262626
canvas
#000000
surface-card
#1a1a1a
surface-elevated
#262626
surface-soft
#0d0d0d
on-primary
#000000
on-dark
#ffffff
m-blue-light
#0066b1
m-blue-dark
#1c69d4
m-red
#e22718
bmw-blue
#1c69d4
electric-blue
#0653b6
carbon-gray
#2b2b2b
warning
#f4b400
success
#0fa336

字体阶梯 Typography · 13

display-xl
80px · 700
永远相信美好的事情即将发生 Ag
display-lg
56px · 700
永远相信美好的事情即将发生 Ag
display-md
40px · 700
永远相信美好的事情即将发生 Ag
display-sm
32px · 700
永远相信美好的事情即将发生 Ag
title-lg
24px · 700
永远相信美好的事情即将发生 Ag
title-md
20px · 400
永远相信美好的事情即将发生 Ag
title-sm
18px · 400
永远相信美好的事情即将发生 Ag
label-uppercase
14px · 700
永远相信美好的事情即将发生 Ag
body-md
16px · 300
永远相信美好的事情即将发生 Ag
body-sm
14px · 300
永远相信美好的事情即将发生 Ag
caption
12px · 400
永远相信美好的事情即将发生 Ag
button
14px · 700
永远相信美好的事情即将发生 Ag
nav-link
14px · 400
永远相信美好的事情即将发生 Ag

圆角 Radius · 5

none
0px
xs
2px
sm
4px
md
6px
full
9999px

间距 Spacing · 8

xxs
4px
xs
8px
sm
12px
md
16px
lg
24px
xl
40px
xxl
64px
section
96px

按钮预览 Buttons

标签 Badge

组件规范 Components · 21

button-primary
backgroundColor
#000000
textColor
#ffffff
typography
{typography.button}
rounded
0px
padding
16px 32px
height
48px
button-primary-outline
backgroundColor
transparent
textColor
#ffffff
typography
{typography.button}
rounded
0px
padding
16px 32px
height
48px
button-on-light
backgroundColor
#000000
textColor
#ffffff
typography
{typography.button}
rounded
0px
padding
16px 32px
button-icon
backgroundColor
#1a1a1a
textColor
#ffffff
rounded
9999px
size
48px
text-link
backgroundColor
transparent
textColor
#ffffff
typography
{typography.label-uppercase}
top-nav
backgroundColor
#000000
textColor
#ffffff
typography
{typography.nav-link}
height
64px
hero-photo-band
backgroundColor
#000000
textColor
#ffffff
typography
{typography.display-xl}
padding
96px
m-stripe-divider
backgroundColor
transparent
textColor
#ffffff
height
4px
feature-photo-card
backgroundColor
#1a1a1a
textColor
#ffffff
typography
{typography.title-md}
rounded
0px
padding
24px
model-card
backgroundColor
#000000
textColor
#ffffff
typography
{typography.title-lg}
rounded
0px
padding
24px
magazine-article-card
backgroundColor
#000000
textColor
#ffffff
typography
{typography.title-md}
rounded
0px
padding
24px
spec-cell
backgroundColor
#0d0d0d
textColor
#ffffff
typography
{typography.body-md}
rounded
0px
padding
24px
cookie-consent-card
backgroundColor
#000000
textColor
#ffffff
typography
{typography.body-sm}
rounded
0px
padding
24px
category-tab
backgroundColor
transparent
textColor
#bbbbbb
typography
{typography.label-uppercase}
padding
12px 0
category-tab-active
backgroundColor
transparent
textColor
#ffffff
typography
{typography.label-uppercase}
padding
12px 0
text-input
backgroundColor
#1a1a1a
textColor
#ffffff
typography
{typography.body-md}
rounded
0px
padding
12px 16px
height
48px
chatbot-launcher
backgroundColor
#1a1a1a
textColor
#ffffff
typography
{typography.title-md}
rounded
0px
padding
24px
cta-band-photo
backgroundColor
#000000
textColor
#ffffff
typography
{typography.display-md}
padding
80px
motorsport-photo-card
backgroundColor
#000000
textColor
#ffffff
typography
{typography.title-md}
rounded
0px
carousel-arrow
backgroundColor
#1a1a1a
textColor
#ffffff
rounded
9999px
size
48px
footer
backgroundColor
#000000
textColor
#bbbbbb
typography
{typography.body-sm}
padding
64px

设计规范


version: alpha name: BMW-M-design-analysis description: A motorsport-engineering interface anchored on a near-black canvas with white BMW Type Next Latin display headlines in confident UPPERCASE. The brand carries no decorative voltage — its energy comes from full-bleed automotive photography (cars on tracks, driver-cockpit shots, carbon-fiber detail) and the iconic M tricolor stripe (light blue → dark blue → red) used sparingly as a brand signature on logos, dividers, and motorsport chrome. Type stays light to medium weight to feel European-engineered, never American-bombastic.

colors: primary: "#ffffff" ink: "#ffffff" body: "#bbbbbb" body-strong: "#e6e6e6" muted: "#7e7e7e" hairline: "#3c3c3c" hairline-strong: "#262626" canvas: "#000000" surface-card: "#1a1a1a" surface-elevated: "#262626" surface-soft: "#0d0d0d" on-primary: "#000000" on-dark: "#ffffff" m-blue-light: "#0066b1" m-blue-dark: "#1c69d4" m-red: "#e22718" bmw-blue: "#1c69d4" electric-blue: "#0653b6" carbon-gray: "#2b2b2b" warning: "#f4b400" success: "#0fa336"

typography: display-xl: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 80px fontWeight: 700 lineHeight: 1 letterSpacing: 0 display-lg: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 56px fontWeight: 700 lineHeight: 1.05 letterSpacing: 0 display-md: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 40px fontWeight: 700 lineHeight: 1.1 letterSpacing: 0 display-sm: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 32px fontWeight: 700 lineHeight: 1.15 letterSpacing: 0 title-lg: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 24px fontWeight: 700 lineHeight: 1.3 letterSpacing: 0 title-md: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 20px fontWeight: 400 lineHeight: 1.4 letterSpacing: 0 title-sm: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 18px fontWeight: 400 lineHeight: 1.4 letterSpacing: 0 label-uppercase: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 14px fontWeight: 700 lineHeight: 1.3 letterSpacing: 1.5px body-md: fontFamily: "BMWTypeNextLatin Light, BMWTypeNextLatin, sans-serif" fontSize: 16px fontWeight: 300 lineHeight: 1.5 letterSpacing: 0 body-sm: fontFamily: "BMWTypeNextLatin Light, sans-serif" fontSize: 14px fontWeight: 300 lineHeight: 1.5 letterSpacing: 0 caption: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 12px fontWeight: 400 lineHeight: 1.4 letterSpacing: 0.5px button: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 14px fontWeight: 700 lineHeight: 1 letterSpacing: 1.5px nav-link: fontFamily: "BMWTypeNextLatin, sans-serif" fontSize: 14px fontWeight: 400 lineHeight: 1.4 letterSpacing: 0.5px

rounded: none: 0px xs: 2px sm: 4px md: 6px full: 9999px

spacing: xxs: 4px xs: 8px sm: 12px md: 16px lg: 24px xl: 40px xxl: 64px section: 96px

components: button-primary: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.button}" rounded: "{rounded.none}" padding: 16px 32px height: 48px button-primary-outline: backgroundColor: transparent textColor: "{colors.on-dark}" typography: "{typography.button}" rounded: "{rounded.none}" padding: 16px 32px height: 48px button-on-light: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.button}" rounded: "{rounded.none}" padding: 16px 32px button-icon: backgroundColor: "{colors.surface-card}" textColor: "{colors.on-dark}" rounded: "{rounded.full}" size: 48px text-link: backgroundColor: transparent textColor: "{colors.on-dark}" typography: "{typography.label-uppercase}" top-nav: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.nav-link}" height: 64px hero-photo-band: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.display-xl}" padding: 96px m-stripe-divider: backgroundColor: transparent textColor: "{colors.on-dark}" height: 4px feature-photo-card: backgroundColor: "{colors.surface-card}" textColor: "{colors.on-dark}" typography: "{typography.title-md}" rounded: "{rounded.none}" padding: 24px model-card: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.title-lg}" rounded: "{rounded.none}" padding: 24px magazine-article-card: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.title-md}" rounded: "{rounded.none}" padding: 24px spec-cell: backgroundColor: "{colors.surface-soft}" textColor: "{colors.on-dark}" typography: "{typography.body-md}" rounded: "{rounded.none}" padding: 24px cookie-consent-card: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.body-sm}" rounded: "{rounded.none}" padding: 24px category-tab: backgroundColor: transparent textColor: "{colors.body}" typography: "{typography.label-uppercase}" padding: 12px 0 category-tab-active: backgroundColor: transparent textColor: "{colors.on-dark}" typography: "{typography.label-uppercase}" padding: 12px 0 text-input: backgroundColor: "{colors.surface-card}" textColor: "{colors.on-dark}" typography: "{typography.body-md}" rounded: "{rounded.none}" padding: 12px 16px height: 48px chatbot-launcher: backgroundColor: "{colors.surface-card}" textColor: "{colors.on-dark}" typography: "{typography.title-md}" rounded: "{rounded.none}" padding: 24px cta-band-photo: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.display-md}" padding: 80px motorsport-photo-card: backgroundColor: "{colors.canvas}" textColor: "{colors.on-dark}" typography: "{typography.title-md}" rounded: "{rounded.none}" carousel-arrow: backgroundColor: "{colors.surface-card}" textColor: "{colors.on-dark}" rounded: "{rounded.full}" size: 48px footer: backgroundColor: "{colors.canvas}" textColor: "{colors.body}" typography: "{typography.body-sm}" padding: 64px

概述

BMW M 的营销表面是近乎纯黑的画布({colors.canvas} — #000),承载着白色 BMW Type Next Latin 标题,使用自信的大写。系统本身没有装饰性电压;品牌能量来自全幅汽车摄影——疾速过弯的车、碳纤维轮毂细节、驾驶舱镜头、赛车维修区——以边到边的内容填充整个板块。围绕摄影的 UI chrome 保持最小:纤细的无衬线文案、1px 细线分隔线({colors.hairline})、全大写按钮标签直到悬停才填色。

M 三色条纹——{colors.m-blue-light}(#0066b1)→ {colors.m-blue-dark}(#1c69d4)→ {colors.m-red}(#e22718)——作为品牌的签名点缀,克制地出现在 M 字标、赛车 chrome、车辆技术亮点与车型徽标上。它从不是 CTA 颜色,也从不作为背景填充——三色条纯粹是品牌识别标志。

字体声音运行 BMW Type Next Latin 两种切面:regular 用于显示 + 导航标签,Light 用于正文 + 次级文字。显示尺寸使用字重 700(BMW 标志性的"粗但紧凑"设定),而正文降至字重 300(Light)。粗体显示与轻正文之间的对比是系统的编辑签名。

关键特征:

  • 近乎纯黑的画布({colors.canvas} — #000)配白色文字。系统几乎不做反转——没有浅色模式营销表面。
  • 显示标题使用大写 BMW Type Next Latin 700。副标题保持句式小写与较轻字重。
  • M 三色({colors.m-blue-light} / {colors.m-blue-dark} / {colors.m-red})作为 4px 品牌条纹分隔、M 字标点缀、赛车 chrome——绝不用作按钮或填充。
  • 摄影边到边填充整个板块。车辆永远是视觉主体;UI chrome 退后到叠在摄影上的小白标签。
  • 按钮为平面,{rounded.none}(0px)圆角,大写带字距标签。"工业精度"的矩形轮廓就是品牌。
  • 系统中圆角几乎全为零。少数例外:{rounded.full} 用于圆形图标按钮(轮播箭头、聊天机器人启动器)和 {rounded.sm} 用于少数小型 toggle 胶囊。
  • 间距慷慨且栅格对齐:主要板块之间 {spacing.section}(96px);首屏摄影板块内 {spacing.xxl}(64px);内容卡片内 {spacing.xl}(40px)。

配色

品牌与点缀

  • Primary{colors.primary} — #ffffff):系统的主要字体与 CTA 颜色。用于 h1/h2/h3 显示、深色上的正文、以及主要按钮标签(按钮本身透明或画布色——白色文字 + 描边就是按钮)。
  • M Blue Light{colors.m-blue-light} — #0066b1):M 三色条纹的第一档。用于 M 徽标点缀与赛车 chrome。
  • M Blue Dark{colors.m-blue-dark} — #1c69d4):中间一档。与 {colors.bmw-blue} 同色——BMW 传承的企业蓝,被重新用作 M 条纹的中间带。
  • M Red{colors.m-red} — #e22718):第三档。标志性的 M 动力红,用于条纹与赛车速度亮点。
  • Electric Blue{colors.electric-blue} — #0653b6):用于 M xDrive 电动车型页的独立电动车点缀。区别于传承蓝——感觉更冷、更数字。

表面

  • Canvas{colors.canvas} — #000000):每个营销表面的默认页面底色。纯黑。
  • Surface Soft{colors.surface-soft} — #0d0d0d):与黑几乎无差别,用于规格表单元与页脚相邻条带。
  • Surface Card{colors.surface-card} — #1a1a1a):卡片、次要按钮、图标按钮背景。
  • Surface Elevated{colors.surface-elevated} — #262626):再亮一档,用于深色板块内的嵌套卡片。
  • Carbon Gray{colors.carbon-gray} — #2b2b2b):碳纤维启发的表面色调,用于技术规格卡片。

细线与边框

  • Hairline{colors.hairline} — #3c3c3c):深色表面上的 1px 分隔色调。用于正文板块之间、表格行之间、卡片描边周围。
  • Hairline Strong{colors.hairline-strong} — #262626):与 {colors.surface-elevated} 同色——边框感觉像一档抬升而非墨线。

文本

  • Ink / On Dark{colors.on-dark} — #ffffff):深色画布上所有标题与主要文字。
  • Body{colors.body} — #bbbbbb):默认正文字色(略冷于纯白)。用于正文段落与次级元数据。
  • Body Strong{colors.body-strong} — #e6e6e6):强调正文 / 引子段落。
  • Muted{colors.muted} — #7e7e7e):页脚链接、面包屑、说明。

语义

  • Warning{colors.warning} — #f4b400):极少用于技术警告亮点。
  • Success{colors.success} — #0fa336):订单确认状态(营销表面上罕见)。

字体排版

字体族

BMW Type Next Latin 是 BMW 授权的显示 + 正文字体。系统使用两种切面:regular 与 Light。回退栈为 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif

这种划分是一种刻意的字重配对:

  • 显示(700)用于标题、导航标签、按钮文字、类别标签——"压印"的声音
  • Light(300)用于正文段落、描述性文案、次级元数据——"工程化"的声音

粗体显示与轻正文之间的对比是 BMW 的编辑签名——绝不要因使用 regular(400)显示或 medium(500)正文而模糊。

层级

令牌字号字重行高字距用途
{typography.display-xl}80px7001.00首屏 h1("THE ULTIMATE"、"MORE BMW M.")
{typography.display-lg}56px7001.050板块标题("MORE FROM BMW M MAGAZINE.")
{typography.display-md}40px7001.10子板块标题、车型名
{typography.display-sm}32px7001.150CTA 板块标题、类别页标题
{typography.title-lg}24px7001.303 列栅格中的卡片标题
{typography.title-md}20px4001.40卡片副标题、引子段落
{typography.title-sm}18px4001.40规格亮点、引子段落
{typography.label-uppercase}14px7001.31.5px类别 tab、"VIEW MORE" 内联标签
{typography.body-md}16px300(Light)1.50默认正文——BMW Type Next Latin Light
{typography.body-sm}14px300(Light)1.50页脚正文、cookie 同意、小字
{typography.caption}12px4001.40.5px照片说明、图像署名行
{typography.button}14px7001.01.5px所有按钮标签——大写、带字距
{typography.nav-link}14px4001.40.5px顶部导航菜单项

设计原则

系统始终对比粗体标题(700)与极轻正文(300)——差距就是编辑签名。字距不可忽视:按钮标签与类别标签承载 1.5px 字距,让它们感觉"机械加工"而非"打字"。显示标题保持 0 字距——BMW Type 的天然字面高度在大尺寸上处理间距。

大写显示是 h1/h2 的默认声音;句式小写出现在正文与引子段落中,但很少出现在标题上。全大写处理是品牌声音信号,而非风格选择。

字体替代说明

如果 BMW Type Next Latin 不可用,Inter(可变字体)700/300 是最接近的开源替代。将显示标题的字距调整为 -0.5px 以匹配 BMW Type 在大尺寸上更紧凑的字距。如果希望略更压缩的标题,Saira Condensed 是另一种选择。

布局

间距系统

  • 基础单位: 4px。
  • 令牌: {spacing.xxs} 4px · {spacing.xs} 8px · {spacing.sm} 12px · {spacing.md} 16px · {spacing.lg} 24px · {spacing.xl} 40px · {spacing.xxl} 64px · {spacing.section} 96px。
  • 板块内边距(垂直): 主要编辑板块之间 {spacing.section}(96px)。
  • 首屏摄影板块: {spacing.xxl}(64px)首屏 h1 + 副标题对周围的内部垂直内边距。
  • 卡片内边距: {spacing.lg}(24px)用于内容与车型卡片;{spacing.xl}(40px)用于 spec-cell 表格。
  • 栏间距: 3 列栅格卡片之间 {spacing.lg}(24px);页脚栏内 {spacing.md}(16px)。

栅格与容器

  • 最大内容宽度: 营销页约 1440px 居中——比典型 SaaS 更宽,为摄影留出呼吸空间。
  • 编辑型正文: 单 12 栏栅格;摄影板块全幅出血(无最大宽度)。
  • 卡片栅格: 桌面端 3 列,平板 2 列,移动端 1 列。
  • 页脚: 桌面端 4 列链接列表,平板 2 列,移动端 1 列。

留白哲学

BMW M 依靠摄影完成视觉担纲。围绕摄影的留白有所克制——车辆充满画面,文案在紧密对齐的列中位于其下方或旁边。出现留白时(正文板块之间、CTA 周围),始终统一为 {spacing.section}(96px)。系统从不添加氛围背景、渐变或装饰——空旷之处保持空旷的黑色画布。

层次与深度

层级处理用途
平面无阴影、无边框正文板块、顶部导航、页脚、摄影板块
柔细线1px {colors.hairline} 边框板块分隔、卡片描边、表格行
卡片表面画布之上的 {colors.surface-card} 背景——无阴影功能照片卡片、杂志卡片、聊天机器人启动器
摄影深度全幅摄影边到边裁切首屏板块、赛车功能——深度来自主体而非 chrome

系统不使用投影也不使用分层 chrome。深度完全来自摄影(主体 + 镜头 + 光线)以及黑色画布与略抬升的 {colors.surface-card} 之间的对比。

装饰性深度

  • M 三色分隔条{component.m-stripe-divider}):一条 4px 高的水平分隔条,承载 M 三色({colors.m-blue-light}{colors.m-blue-dark}{colors.m-red})。用于赛车 chrome、车型详情页头、品牌识别时刻。条纹是系统中唯一的真正"装饰"元素——克制使用以标记重要性。
  • 碳纤维表面:技术规格页使用 {colors.carbon-gray}(#2b2b2b)单元,带轻微的纹理叠层。这是单页处理,而非全系统模式。
  • 摄影深度:全幅车辆就是深度。摄影中的光线(赛道灯、夕阳边缘光)完成投影在 SaaS 系统中会做的层次工作。

形态

圆角分级

令牌数值用途
{rounded.none}0px所有按钮、卡片、照片容器、规格单元、输入框——主导半径
{rounded.xs}2px几乎不使用——保留给法律 CTA
{rounded.sm}4px配置器表面上的小型 toggle 胶囊
{rounded.md}6px罕见——小型下拉菜单项
{rounded.full}9999px / 50%圆形图标按钮、轮播箭头、聊天机器人启动器

圆角层级是"几乎总为 0,有时圆形"。这种二元的圆角决策是刻意的品牌语言选择——锐利矩形读起来像工程化精度;圆形读起来像功能控件。中间没有。

摄影几何

首屏摄影全幅填充,无圆角。栅格内的照片卡片保留 {rounded.none} 圆角,图像边到边。碳纤维轮毂细节镜头与赛车维修区照片使用 16:9 或 21:9 电影长宽比。赛车队伍栅格中的车手肖像使用 4:5 竖向裁切,同样为锐角。

组件

顶部导航

top-nav — 黑色导航条,固定在每个页面顶部。64px 高,{colors.canvas} 背景。承载左侧 BMW M 标志(M 三色 + BMW 圆形 + "M" 字标),主要水平菜单(Models、Topics、Magazine、Configurator、Fastlane),右侧簇包含语言选择器、搜索图标、账户图标。菜单项以 {typography.nav-link} 渲染,句式小写标签。

按钮

button-primary — 标志性的主要 CTA。背景 {colors.canvas}(或在摄影上透明),文字 {colors.on-dark}(白色),1px 白色边框描边,圆角 {rounded.none}(0px),内边距 16px × 32px,高度 48px。字体 {typography.button}——大写 14px / 700 / 1.5px 字距。矩形轮廓与大写带字距标签就是品牌按钮。

button-primary-outline — 与主要按钮同样的形态,但背景透明,仅有白色描边。在填充按钮会与图像冲突的摄影上使用。

button-on-light — 用于罕见的浅色表面语境(配置器、账户对话框)。背景 {colors.canvas},文字 {colors.on-dark}——黑底白字,与深色画布默认相反。

button-icon — 圆形图标按钮(轮播控件、分享、收藏)。48 × 48px,背景 {colors.surface-card},白色图标居中,圆角 {rounded.full}。系统中唯一的非矩形按钮形态。

carousel-arrow — 照片轮播中使用的特定 48 × 48 圆形箭头。与 {component.button-icon} 同形态,带 chevron 字形。

text-link — 内联大写带字距链接("VIEW ALL MODELS"、"READ MORE")。{typography.label-uppercase},深色上白色,无下划线。chevron 箭头 → 字形出现在大多数链接标签旁。

卡片与容器

hero-photo-band — 全幅黑色板块,全幅汽车摄影填满大部分画面。h1 使用 {typography.display-xl}(80px / 700)左对齐叠在摄影上,通常下方有一行小副标题 {typography.body-md}。垂直内边距 {spacing.xxl}(64px)。无卡片框——摄影就是板块。

feature-photo-card — 用于 "MORE FROM BMW M MAGAZINE" 及类似编辑板块的 3 列栅格。背景 {colors.surface-card},圆角 {rounded.none},内部内边距 {spacing.lg}(24px)。卡片上半部分是 16:9 照片(卡内全幅);照片下方,类别标签 {typography.label-uppercase}{typography.title-lg} 标题,以及简短的正文描述。

model-card — 用于 "MORE NEW M MODELS" 3 列栅格。背景 {colors.canvas}(无卡片表面——仅是黑上的照片),圆角 {rounded.none}。顶部:16:10 车型主镜头。下方:车型名字体 {typography.display-md}(40px / 700),简短规格行 {typography.body-sm}{component.text-link}("EXPLORE THIS MODEL")。

magazine-article-card — 用于杂志概览页的更文字导向的卡片变体。背景 {colors.canvas} 带细线边框,圆角 {rounded.none}。顶部承载小缩略图,类别标签 {typography.label-uppercase},标题 {typography.title-lg},以及正文摘录。

spec-cell — 用于车型详情页(发动机规格、重量、最高时速、0-100 时间)的技术规格单元。背景 {colors.surface-soft}(#0d0d0d),圆角 {rounded.none},内边距 {spacing.lg}(24px)。每个单元顶部承载 {typography.display-sm}(32px / 700)的数值,下方承载 {typography.label-uppercase} 的标签。

motorsport-photo-card — 用于赛车队伍 / 赛车板块的边到边照片卡片。无卡片表面——仅全幅照片,左下角叠一小段白色文字说明。摄影就是品牌。

chatbot-launcher — 主页右侧的卡片式入口("BMW M CHATBOT")。背景 {colors.surface-card},圆角 {rounded.none},内边距 {spacing.lg}(24px)。承载 h3 标题、简短提示语,以及启动用的 {component.button-primary}

category-tab + category-tab-active — 用于杂志与话题页的类别选择器 tab(如 "ALL · MAGAZINE · MODELS · LIFESTYLE · MOTORSPORT")。Tab 以 {typography.label-uppercase} 渲染为纯文字标签。激活态将文字色从 {colors.body} 改为 {colors.on-dark} 并在标签下方加 2px 白色下划线。无背景填充,无圆角。

输入与表单

text-input — 深色表面上的标准文本输入框。背景 {colors.surface-card},文字 {colors.on-dark},字体 {typography.body-md},圆角 {rounded.none}(0px),内边距 12px × 16px,高度 48px。1px 细线边框。聚焦态将边框加粗至白色。

cookie-consent-card — 主页上可见的右侧 cookie 横幅卡片。背景 {colors.canvas} 带 1px 细线,圆角 {rounded.none},内边距 {spacing.lg}(24px)。正文 {typography.body-sm}(14px / 300)——法律文字也用 Light 字重。底部堆叠两个按钮:主要描边 + 文字链接。

签名组件

m-stripe-divider — 4px 水平条纹,承载 M 三色({colors.m-blue-light}{colors.m-blue-dark}{colors.m-red})。作为赛车 chrome 的分隔、品牌识别板块之间,以及类别 tab 上的悬停指示器。系统中最具辨识度的非字体元素。

cta-band-photo — 接近页脚的 "Drive an M" CTA 板块,承载车辆过弯的全幅摄影,居中标题 {typography.display-md} + 下方 {component.button-primary-outline}。垂直内边距 80px。CTA 通过全幅摄影而非 chrome 继承页面其余部分的编辑重量。

页脚

footer — 关闭每个页面的黑色页脚。背景 {colors.canvas},文字 {colors.body}。桌面端 4 列链接列表,覆盖 BMW M Models / BMW M Lifestyle / Owners / Company。垂直内边距 64px。底行承载 BMW 企业免责声明 {typography.caption} + 语言选择器。页脚从不反转——即便正文可能过渡,也保持黑色。

推荐与避免

推荐

  • 用全幅汽车摄影锚定每个页面。车辆就是品牌电压;chrome 退后。
  • 大写显示标题使用 {typography.display-xl}{typography.display-lg}。句式小写显示读起来偏离品牌。
  • 配对粗体显示(700)与轻正文(300)。字重对比就是编辑签名。
  • 将 M 三色条纹保留给品牌识别时刻——字标点缀、赛车 chrome、车型徽标。绝不作为按钮填充或表面。
  • 默认使用 {rounded.none}(0px)。{rounded.full} 仅保留给圆形图标按钮。
  • 大写带字距标签的字距为 1.5px。"机械加工"的感觉不可妥协。
  • 主要编辑板块之间使用 {spacing.section}(96px)保证栅格对齐的垂直节奏。

避免

  • 不要在 M 三色({colors.m-blue-light} / {colors.m-blue-dark} / {colors.m-red})与传承 {colors.bmw-blue} 之外引入品牌色。
  • 不要加粗正文。正文保持 300(Light)——提到 400 或 500 会让页面感觉是营销高歌猛进而非欧式工程化。
  • 不要使用圆角按钮。矩形轮廓就是品牌。圆角读起来像消费级科技,而非赛车。
  • 不要在首屏文字背后放置渐变背景。首屏就是摄影——页面底色保持纯黑,摄影提供深度。
  • 不要在两个连续的板块中重复相同的表面模式。节奏:摄影板块 → 规格表 → 摄影板块 → 杂志栅格 → 摄影板块。两个纯文本板块相连读起来像企业站。
  • 不要将 M 条纹用作按钮填充。条纹是分隔 / 点缀——从不作为动作表面。
  • 不要将按钮标签上的大写字距收紧到 1.5px 以下——字距是让它们感觉"机械加工"的关键。

响应式行为

断点

名称宽度关键变化
Mobile< 768px汉堡导航;首屏 h1 从 80 缩放到 48px;demo 栅格 1 列;照片卡片堆叠为全宽;页脚 4 列 → 1 列
Tablet768–1024px顶部导航保持水平但收紧;2 列卡片栅格;规格表 2 列
Desktop1024–1440px完整顶部导航;3 列卡片栅格;规格表 4 列
Wide> 1440px与桌面端相同,增加更多呼吸空间;最大内容 1440px

触控目标

  • {component.button-primary} 至少渲染为 48 × 48px——满足 WCAG AAA。
  • {component.button-icon}{component.carousel-arrow} 正好 48 × 48——轻松高于 44 × 44 最低要求。
  • {component.text-input} 高度为 48px。
  • 类别 tab 以纯文字标签渲染,带 12px 垂直内边距;有效点击区域与周围间距一起达到 44px。

折叠策略

  • 顶部导航在 < 768px 折叠为汉堡面板;菜单以全屏黑色叠层打开,顶部带 M 三色条纹。
  • 摄影在每个断点上保持全幅——从不折叠为带边距的容器。
  • 卡片栅格减列而非缩放卡片;摄影保留原生长宽比。
  • 规格表从 4 列折叠为 2 列再 1 列;规格数值无论列数都保持 {typography.display-sm}
  • M 三色条纹在所有断点上保持 4px 高度。

图片行为

  • 首屏摄影响应式裁切——桌面端更宽裁切,移动端纵向裁切。
  • 生活方式与赛车照片保留原生长宽比;系统从不信箱化或上下黑边化。
  • M 字标 + 三色标志按视口宽度按比例缩放。

迭代指南

  1. 一次专注于一个组件。直接引用其 YAML 键({component.hero-photo-band}{component.spec-cell})。
  2. 新组件默认为 {rounded.none}(0px)。仅当为圆形图标按钮时使用 {rounded.full}
  3. 变体(-active-disabled)作为独立条目存于 components: 中。
  4. 所有地方使用 {token.refs}——绝不内联十六进制。
  5. 绝不记录悬停态。仅记录默认与激活/按下态。
  6. 显示标题保持大写 700;正文保持句式小写 300。绝不模糊对比。
  7. M 三色仅为品牌识别——绝不扩展为"首要动作"系统令牌。
  8. 当对强调方式存疑时:先加大摄影再加大字体。

已知缺口

  • dembrandt 频次分析器将白色文字(出现 955 次)捕获为最高频令牌。黑色画布由截图推断——dembrandt 的正文背景采样未将其作为顶级调色板条目暴露,但页面明确是白字黑底。
  • 确切的 M 三色断点从公开 BMW 品牌指南记录;截图中条纹作为小元素出现,但该分辨率下的像素采样无法可靠区分 #0066b1 与 #1c69d4。将记录值视为基于 BMW Design Works 公开品牌规范的权威值。
  • BMW Type Next Latin 超出 Light(300)与 regular(700)的字重轴值未记录——仅记录了截图中观察到的静态字重。
  • 动画与过渡时长(照片轮播切换、悬停揭示效果、配置器交互)不在范围内。
  • {component.text-input} 默认之外的表单校验状态未提取——错误 / 成功输入变体需要配置器或订单流程才能确认。
  • 配置器表面(带颜色 / 轮毂 / 内饰选择器的车辆构建页面)不在分析的 URL 集合中;其色样栅格、对比面板与价格摘要卡片未在此记录。
  • 在捕获的截图中,cookie 同意叠层遮挡了首页首屏部分内容;次级首屏处理(不同车型循环于首屏板块)可能携带未被捕获的变化。