主题
全局与局部 token
Link to “全局与局部 token”变量有两层。系统变量全站共用,例如 --md-sys-color-primary、--md-sys-typescale-*、--md-sys-shape-*。组件变量只作用于一种组件,例如 --md-filled-button-container-color。
实心按钮的容器色先看 --md-filled-button-container-color。这条没设时,才用 --md-sys-color-primary。
只改主色,所有还没单独设过容器色的按钮一起变:
:root {
--md-sys-color-primary: #006a6a;
}只要这一个按钮变,就设组件变量。这时再改主色,这个按钮不变:
md-filled-button.danger {
--md-filled-button-container-color: #b3261e;
}字体、圆角也是这个顺序。某个组件具体有哪些变量,看该组件页的主题表。
颜色 token
Link to “颜色 token”下面是浅色主题的默认值。暗色里,示意图上的角色与浅色同一档;Background、Surface Dim、Surface Container High、Surface Variant、Surface Tint 仍用各自的暗色档。写在这些颜色上的文字,用对应的 --md-sys-color-on-*。表面用 --md-sys-color-on-surface 或 --md-sys-color-on-surface-variant。
| 变量 | 默认值 |
|---|---|
--md-sys-color-primary | #6c43c6 |
--md-sys-color-primary-container | #e9ddff |
--md-sys-color-secondary | #0156cf |
--md-sys-color-secondary-container | #dae2ff |
--md-sys-color-tertiary | #b52332 |
--md-sys-color-tertiary-container | #ffdad8 |
--md-sys-color-error | #ba1a1a |
--md-sys-color-error-container | #ffdad6 |
--md-sys-color-background | #fefcfa |
--md-sys-color-surface | #ffffff |
--md-sys-color-surface-bright | #ffffff |
--md-sys-color-surface-dim | #e7e2dd |
--md-sys-color-surface-container | #fbf9f7 |
--md-sys-color-surface-container-lowest | #ffffff |
--md-sys-color-surface-container-low | #fefcfa |
--md-sys-color-surface-container-high | #e7e2dd |
--md-sys-color-surface-container-highest | #f3f0ee |
--md-sys-color-outline | #7a757f |
--md-sys-color-outline-variant | #cac4cf |
在全站设一次主色和它上面的文字色,自己的元素直接用:
:root {
--md-sys-color-primary: #006a6a;
--md-sys-color-on-primary: #ffffff;
}
.banner {
background: var(--md-sys-color-primary);
color: var(--md-sys-color-on-primary);
}这些变量要先在 :root 上生成出来,做法见「问题与支持」里的「怎么在自己的样式里使用 --md-sys-*?」。
文字 token
Link to “文字 token”全站换字体,改下面两条。默认都是 Roboto。
| 变量 | 默认值 |
|---|---|
--md-ref-typeface-brand | Roboto |
--md-ref-typeface-plain | Roboto |
下面是五档文字的 medium。Display、Headline 用品牌字体,Title、Body、Label 用普通字体。
| 变量 | 默认值 |
|---|---|
--md-sys-typescale-display-medium-font | Roboto |
--md-sys-typescale-display-medium-size | 2.8125rem |
--md-sys-typescale-display-medium-line-height | 3.25rem |
--md-sys-typescale-display-medium-weight | 400 |
--md-sys-typescale-headline-medium-font | Roboto |
--md-sys-typescale-headline-medium-size | 1.75rem |
--md-sys-typescale-headline-medium-line-height | 2.25rem |
--md-sys-typescale-headline-medium-weight | 400 |
--md-sys-typescale-title-medium-font | Roboto |
--md-sys-typescale-title-medium-size | 1rem |
--md-sys-typescale-title-medium-line-height | 1.5rem |
--md-sys-typescale-title-medium-weight | 500 |
--md-sys-typescale-body-medium-font | Roboto |
--md-sys-typescale-body-medium-size | 0.875rem |
--md-sys-typescale-body-medium-line-height | 1.25rem |
--md-sys-typescale-body-medium-weight | 400 |
--md-sys-typescale-label-medium-font | Roboto |
--md-sys-typescale-label-medium-size | 0.75rem |
--md-sys-typescale-label-medium-line-height | 1rem |
--md-sys-typescale-label-medium-weight | 500 |
全站换成另一种无衬线字体:
:root {
--md-ref-typeface-brand: "Noto Sans";
--md-ref-typeface-plain: "Noto Sans";
}只把正文 medium 加大,其它档不动:
:root {
--md-sys-typescale-body-medium-size: 1rem;
--md-sys-typescale-body-medium-line-height: 1.5rem;
}
p {
font-family: var(--md-sys-typescale-body-medium-font);
font-size: var(--md-sys-typescale-body-medium-size);
line-height: var(--md-sys-typescale-body-medium-line-height);
font-weight: var(--md-sys-typescale-body-medium-weight);
}只换标题用的字体时,改 --md-sys-typescale-headline-medium-font,不要改上面那两个全局字体名。
圆角 token
Link to “圆角 token”| 变量 | 默认值 |
|---|---|
--md-sys-shape-corner-none | 0px |
--md-sys-shape-corner-extra-small | 4px |
--md-sys-shape-corner-small | 8px |
--md-sys-shape-corner-medium | 12px |
--md-sys-shape-corner-large | 16px |
--md-sys-shape-corner-extra-large | 28px |
--md-sys-shape-corner-full | 9999px |
自己的卡片用中等圆角:
.card {
border-radius: var(--md-sys-shape-corner-medium);
}按钮默认用的是 --md-sys-shape-corner-full,改 corner-medium 不会让按钮变方。要改按钮圆角,设 --md-filled-button-container-shape。具体见对应组件的主题。
全部变量:圆角