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

Angular 18迁移:SCSS主题代码从@import改@use的正确语法

修正后的Angular Material 18主题配置代码

错误原因很明确:你把define-palette拼写成了define-palete(少了一个字母t),这是导致函数未识别的直接原因。以下是修正后、且完全对齐你旧版主题配置的代码:

@use '@angular/material' as mat;

// 初始化Material核心基础样式
@include mat.core();

// 定义调色板,与旧代码保持完全一致的色调选择
$my-app-primary: mat.define-palette(mat.$indigo-palette); // 对应旧版的$material-primary
$my-app-accent: mat.define-palette(mat.$pink-palette, 500, 900, A100);
$my-app-warn: mat.define-palette(mat.$red-palette);

// 构建浅色主题
$my-app-theme: mat.define-light-theme((
  color: (
    primary: $my-app-primary,
    accent: $my-app-accent,
    warn: $my-app-warn,
  )
));

// 将主题应用到所有Material组件
@include mat.all-component-themes($my-app-theme);

额外说明:

  • 旧版的$material-primary对应新版的mat.$indigo-palette,这样能确保原有主题主色不变
  • 新版的mat.define-light-theme采用嵌套参数结构,替代了旧版的多参数写法
  • mat.all-component-themes是新版替代angular-material-theme的方法,功能完全一致

内容的提问来源于stack exchange,提问作者Nietzsche

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:12:13