简体   繁体   中英

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 . Below is my SCSS for custom theming:

custome-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

"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

  • Error: Module build failed (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), │
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ╵
    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
    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).

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. Personally, for beginning, I used the same color for the three hue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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