You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Material 18全局设置MyriadPro字体(mat-tab未生效)求助

Angular Material 18全局设置MyriadPro字体(mat-tab未生效)求助

大家好,我最近正在把项目从Angular Material 12升级到18,同时也在重构项目的CSS样式。目前项目里的核心依赖版本是:

"@angular/core": "^18.2.13",
"@angular/material": "^18.2.13"

我想要把Angular Material的默认字体全部替换成MyriadPro,在styles.scss里写了对应的配置代码,现在发现输入框(mat-form-field包裹的input)已经能正确应用MyriadPro字体了,但mat-tab的字体还是默认的Roboto,怎么都不生效。想请教下有没有办法全局统一设置,不用给每个Material组件单独写字体样式?

我当前的styles.scss代码:

@use '@angular/material' as mat;

$my-theme: mat.define-theme(
  $config: (
    typography: (
      plain-family: '"MyriadPro", "Montserrat", sans-serif',
      brand-family: '"MyriadPro", "Montserrat", sans-serif',
    ),
  ),
);

:root {
  @include mat.all-component-typographies($my-theme);
}

/* ------------------------------ Import Fonts ------------------------------ */
@font-face {
  font-family: MyriadPro;
  src: url("assets/css/fonts/MyriadFont/MyriadPro-Regular.otf");
  src: url("assets/css/fonts/MyriadFont/MyriadProRegular.eot") format("embedded-opentype"),
    url(assets/css/fonts/MyriadFont/MyriadProRegular.woff2) format("woff2"),
    url(assets/css/fonts/MyriadFont/MyriadProRegular.woff) format("woff"),
    url(assets/css/fonts/MyriadFont/MyriadProRegular.ttf) format("truetype"),
    url(assets/css/fonts/MyriadFont/MyriadProRegular.svg#MyriadProRegular) format("svg")
}

@font-face {
  font-family: Montserrat;
  src: url("assets/css/fonts/MonsterRat/Montserrat-Medium_1.ttf")
}
/* ---------------------------- Import Fonts end ---------------------------- */

body {
  height: 100%;
  font-size: 14px;
  margin: 0;
  font-family: "MyriadPro", "Montserrat", sans-serif;
}

问题细节:

  • 对于mat-form-field里的输入框,我检查元素的computed样式时,能看到font-family: MyriadPro, Montserrat, sans-serif,对应的CSS变量--mdc-filled-text-field-label-text-font也正确指向了我们设置的字体族,这部分是正常的。
  • 但对于mat-tab,检查元素时computed样式显示的是font-family: Roboto, sans-serif,对应的CSS变量--mat-tab-header-label-text-font还是默认的Roboto,完全没用到我们设置的主题配置。

我试过用模板自定义mat-tab-label(比如套一层span单独设字体),但这样太繁琐了,而且希望所有Material组件(包括按钮、卡片、对话框这些)都能统一用MyriadPro,有没有一劳永逸的全局配置方式?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 13:39:50