主题

变量有两层。系统变量全站共用,例如 --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;
}

字体、圆角也是这个顺序。某个组件具体有哪些变量,看该组件页的主题表。

下面是浅色主题的默认值。暗色里,示意图上的角色与浅色同一档;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-*?」。

全部变量:系统颜色对应表、色阶表

全站换字体,改下面两条。默认都是 Roboto。

变量默认值
--md-ref-typeface-brandRoboto
--md-ref-typeface-plainRoboto

下面是五档文字的 medium。Display、Headline 用品牌字体,Title、Body、Label 用普通字体。

变量默认值
--md-sys-typescale-display-medium-fontRoboto
--md-sys-typescale-display-medium-size2.8125rem
--md-sys-typescale-display-medium-line-height3.25rem
--md-sys-typescale-display-medium-weight400
--md-sys-typescale-headline-medium-fontRoboto
--md-sys-typescale-headline-medium-size1.75rem
--md-sys-typescale-headline-medium-line-height2.25rem
--md-sys-typescale-headline-medium-weight400
--md-sys-typescale-title-medium-fontRoboto
--md-sys-typescale-title-medium-size1rem
--md-sys-typescale-title-medium-line-height1.5rem
--md-sys-typescale-title-medium-weight500
--md-sys-typescale-body-medium-fontRoboto
--md-sys-typescale-body-medium-size0.875rem
--md-sys-typescale-body-medium-line-height1.25rem
--md-sys-typescale-body-medium-weight400
--md-sys-typescale-label-medium-fontRoboto
--md-sys-typescale-label-medium-size0.75rem
--md-sys-typescale-label-medium-line-height1rem
--md-sys-typescale-label-medium-weight500

全站换成另一种无衬线字体:

: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,不要改上面那两个全局字体名。

全部变量:字体、文字规格

变量默认值
--md-sys-shape-corner-none0px
--md-sys-shape-corner-extra-small4px
--md-sys-shape-corner-small8px
--md-sys-shape-corner-medium12px
--md-sys-shape-corner-large16px
--md-sys-shape-corner-extra-large28px
--md-sys-shape-corner-full9999px

自己的卡片用中等圆角:

.card {
  border-radius: var(--md-sys-shape-corner-medium);
}

按钮默认用的是 --md-sys-shape-corner-full,改 corner-medium 不会让按钮变方。要改按钮圆角,设 --md-filled-button-container-shape。具体见对应组件的主题。

全部变量:圆角

开发指南
快速开始主题问题与支持
Components
Ai Input提示横幅 Alert banner按钮 ButtonCheckboxChipsDialogsFloating action button (FAB)图标 Icon图标按钮 Icon ButtonLists菜单 MenuMenus弹窗 Modal步骤条 Process stepperProgress indicatorsRadioRipple搜索栏 Search BarSelectSlidersSwitchTabsText field文本输入 Text Input