你不能用 Angular 开箱即用地做到这一点。你需要两个步骤。
- 定义一个新的水平。就我而言,它是标签
$label: mat.define-typography-level(20px, 27px, 400, $font-family: 'Roboto, "Helvetica Neue", sans-serif');
- 将此级别与 sass "map.merge ()" 合并到现有配置中。
$typography-config: map.merge(
mat.define-typography-config(
$font-family: 'Roboto, "Helvetica Neue", sans-serif',
$display-4: mat.define-typography-level(112px, 112px, 300, $letter-spacing: -0.05em),
$display-3: mat.define-typography-level(56px, 56px, 400, $letter-spacing: -0.02em),
$display-2: mat.define-typography-level(45px, 48px, 400, $letter-spacing: -0.005em),
$display-1: mat.define-typography-level(34px, 40px, 400),
$headline: mat.define-typography-level(20px, 27px, 500),
$title: mat.define-typography-level(20px, 27px, 400),
$subheading-1: mat.define-typography-level(15px, 17px, 400),
$subheading-2: mat.define-typography-level(16px, 21px, 500),
$body-1: mat.define-typography-level(16px, 21px, 400),
$body-2: mat.define-typography-level(16px, 25px, 500),
$caption: mat.define-typography-level(14px, 21px, 400),
$button: mat.define-typography-level(16px, 21px, 400),
$input: mat.define-typography-level(inherit, 1.125, 400),
),
(
"label": $label,
)
);
- 最后你必须应用它们
$app-theme: mat.define-light-theme(
(
typography: $typography-config,
)
);
@include mat.all-component-typographies($typography-config);
这些可以像这样使用
@mixin typography($theme) {
$typography-config: mat.get-typography-config($theme);
.mat-form-field-appearance-legacy .mat-form-field-label {
@include mat.typography-level($typography-config, 'label');
}
}
@include typography($app-theme);