SMUI 主题
使用 Sass 主题化
_smui-theme.scss 文件是您为主题定义 Sass 变量的地方。您可以查看 MDC-Web 组件的自述文件,了解如何深入设计组件的样式。最重要的(有可能也是您唯一想要的)是设置主题颜色。对于 Material 调色板,您可以使用 @use “@material/theme/color-palette”。您也可以设置边框半径变量的样式。
这有一个 _smui-theme.scss 示例文件,您可以将其用作起点。
@use '@material/theme/color-palette';
$background: #fff;
@use '@material/theme/index' as theme with (
$primary: color-palette.$purple-500,
$secondary: color-palette.$teal-600,
$surface: #fff,
$background: $background,
$error: #b00020,
);
html,
body {
background-color: $background;
color: if(theme.contrast-tone($background) == 'dark', #000, #fff);
}
a {
color: color-palette.$blue-500;
}
a:visited {
color: color-palette.$blue-800;
}
使用基础 CSS 主题化
如果您使用基础的 CSS,则可以使用 CSS 变量设置主题选项的子集。请注意,并非 SMUI 中的所有颜色都是从 CSS 变量中读取的,因此某些部分仍将使用原始 Sass 编译中定义的颜色。下面是 SMUI 网站上 CSS 中变量的副本。您可以将其用作您自己主题的起点。
/* Theme colors. */
:root {
--mdc-theme-primary: #ff3e00;
--mdc-theme-secondary: #676778;
--mdc-theme-background: #fff;
--mdc-theme-surface: #fff;
--mdc-theme-error: #b71c1c;
--mdc-theme-on-primary: #fff;
--mdc-theme-on-secondary: #fff;
--mdc-theme-on-surface: #000;
--mdc-theme-on-error: #fff;
--mdc-theme-text-primary-on-background: rgba(0, 0, 0, 0.87);
--mdc-theme-text-secondary-on-background: rgba(0, 0, 0, 0.54);
--mdc-theme-text-hint-on-background: rgba(0, 0, 0, 0.38);
--mdc-theme-text-disabled-on-background: rgba(0, 0, 0, 0.38);
--mdc-theme-text-icon-on-background: rgba(0, 0, 0, 0.38);
--mdc-theme-text-primary-on-light: rgba(0, 0, 0, 0.87);
--mdc-theme-text-secondary-on-light: rgba(0, 0, 0, 0.54);
--mdc-theme-text-hint-on-light: rgba(0, 0, 0, 0.38);
--mdc-theme-text-disabled-on-light: rgba(0, 0, 0, 0.38);
--mdc-theme-text-icon-on-light: rgba(0, 0, 0, 0.38);
--mdc-theme-text-primary-on-dark: #fff;
--mdc-theme-text-secondary-on-dark: hsla(0, 0%, 100%, 0.7);
--mdc-theme-text-hint-on-dark: hsla(0, 0%, 100%, 0.5);
--mdc-theme-text-disabled-on-dark: hsla(0, 0%, 100%, 0.5);
--mdc-theme-text-icon-on-dark: hsla(0, 0%, 100%, 0.5);
}
/* Layout grid spacing. */
:root {
--mdc-layout-grid-margin-desktop: 24px;
--mdc-layout-grid-gutter-desktop: 24px;
--mdc-layout-grid-column-width-desktop: 72px;
--mdc-layout-grid-margin-tablet: 16px;
--mdc-layout-grid-gutter-tablet: 16px;
--mdc-layout-grid-column-width-tablet: 72px;
--mdc-layout-grid-margin-phone: 16px;
--mdc-layout-grid-gutter-phone: 16px;
--mdc-layout-grid-column-width-phone: 72px;
}