简体   繁体   English

Angular 13: Angular Material 13 自定义主题抛出错误

[英]Angular 13: Angular Material 13 custom theme throwing error

I have custom theme pallet for my project which is working fine with version ^12.2.13 of the angular material but not with ^13.2.3 .我为我的项目定制了主题托盘,它适用于 angular 材料的版本^12.2.13 ,但不适用于^13.2.3 Below is my SCSS for custom theming:下面是我的自定义主题 SCSS:

custome-mat-theme.scss客户mat-theme.scss

@import '~@angular/material/theming';
@include mat-core();

$cust-blue: (primary: #002a5c, contrast: (primary: #ffffff));
$cust-gold: (accent: #989100, contrast: (accent: #ffffff));
$primary: mat-palette($cust-blue, primary);
$accent: mat-palette($cust-gold, accent);

$theme: mat-light-theme($primary, $accent);

@include angular-material-theme($theme);

angular.json angular.json

"styles": [
  "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
  "./node_modules/ngx-toastr/toastr.css",
  "src/styles.css",
  "src/assets/css/custom-mat-theme.scss"
]

Error错误

./src/assets/css/custom-mat-theme.scss.webpack[javascript/auto].=.?/node_modules/css-loader/dist/cjs?js..ruleSet[1].rules[6].rules[0].oneOf[0].use[1]??/node_modules/postcss-loader/dist/cjs.js..ruleSet[1].rules[6].rules[0].oneOf[0]?use[2]?./node_modules/resolve-url-loader/index.js..ruleSet[1].rules[6]?rules[1]?use[0]../node_modules/sass-loader/dist/cjs.js..ruleSet[1].rules[6].rules[1].use[1]!./src/assets/css/custom-mat-theme.scss ./src/assets/css/custom-mat-theme.scss.webpack[javascript/auto].=.?/node_modules/css-loader/dist/cjs?js..ruleSet[1].rules[6]。规则[0].oneOf[0].use[1]??/node_modules/postcss-loader/dist/cjs.js..ruleSet[1].rules[6].rules[0].oneOf[0]?使用[2]?./node_modules/resolve-url-loader/index.js..ruleSet[1].rules[6]?rules[1]?use[0]../node_modules/sass-loader/dist/ cjs.js..ruleSet[1].rules[6].rules[1].use[1]!./src/assets/css/custom-mat-theme.scss

  • Error: Module build failed (from./node_modules/sass-loader/dist/cjs.js): SassError: 'Hue "100" does not exist in palette.错误:模块构建失败 (from./node_modules/sass-loader/dist/cjs.js): SassError: 'Hue "100" does not exist in palette. Available hues are: primary, contrast' ╷ 55 │ lighter: _get-color-from-palette($base-palette, $lighter), │可用的色调是:primary, contrast' ╷ 55 │ lighter: _get-color-from-palette($base-palette, $lighter), │
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ╵ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^╵
    node_modules@angular\material\core\theming_theming.scss 55:14 node_modules@angular\material\core\theming_theming.scss 55:14
    define-palette()定义调色板()
    node_modules@angular\material\core\theming_theming-deprecated.scss 16:11 palette() src\assets\css\custom-mat-theme.scss 6:11 node_modules@angular\material\core\theming_theming-deprecated.scss 16:11 调色板() src\assets\css\custom-mat-theme.scss 6:11
    root stylesheet根样式表

Can anyone tell me whats wrong with this?谁能告诉我这有什么问题吗?

It seems that material needs at least hue: 100, hue 500 and hue 700 (probably for functions like lighter etc).似乎材料至少需要色调:100、色调 500 和色调 700(可能用于打火机等功能)。

I had the same problem as you, I only defined that hue 500. I then set hue 100 and hue 700 for each color and it solved my problem.我和你有同样的问题,我只定义了色相 500。然后我为每种颜色设置了色相 100 和色相 700,它解决了我的问题。 Personally, for beginning, I used the same color for the three hue.就个人而言,一开始,我对三种色调使用了相同的颜色。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM