web-dev-qa-db-ja.com

angle5およびangularマテリアルを使用してカスタムカラーテーマを作成する方法

私はカスタムテーマの作成方法について角度/材料のドキュメントをフォローしており、他のブログをフォローして、さまざまなスタックオーバーフローの同様の質問を確認しましたが、これが機能しないようです。次のstyles.css、angular-cli.json、theme.scss、および私のテーマの色がsuper-styles.sassに由来する別のsassファイルがあります。

styles.css

...
@import 'assets/styles/theme.scss';
...

angular-cli.json

...
"styles": [
   "styles.css",
    "src/assets/styles/theme.scss"
],
...

theme.scss

@import '~@angular/material/theming';
@import "super-styles";

// Plus imports for other components in your app.

// Include the common styles for Angular Material. We include this here so that you only
// have to load a single css file for Angular Material in your app.
// Be sure that you only ever include this mixin once!
@include mat-core()

// Define the palettes for your theme using the Material Design palettes available in palette.scss
// (imported above). For each palette, you can optionally specify a default, lighter, and darker
// hue.
$candy-app-primary: mat-palette($darkblue, A400);
$candy-app-accent:  mat-palette($orange, A400);

// The warn palette is optional (defaults to red).
$candy-app-warn:    mat-palette($alert);

// Create the theme object (a Sass map containing all of the palettes).
$candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn);

// Include theme styles for core and each component used in your app.
// Alternatively, you can import and @include the theme mixins for each component
// that you are using.
@include angular-material-theme($candy-app-theme);

Super-styles.sass

...
$darkblue: #7faedd
$mediumblue: #85ceef
$lightblue: #c5e8f1
$yellow: #f4ef5f
$alert: #f37652
$orange: #fbb03c
...

チュートリアルによると、これは機能するはずですが、angularはコンパイルされず、エラーが発生します。

./node_modules/css-loader?{"sourceMap":false,"importLoaders":1}のエラー!./ node_modules/postcss-loader?{"ident": "postcss"}!./ src/assets/styles/theme.scssモジュールのビルドに失敗しました:不明な単語(23:1)

21 | $ candy-app-theme:mat-light-theme($ candy-app-primary、$ candy-app-accent、$ candy-app-warn); 22 |

23 | //コアおよびアプリで使用される各コンポーネントのテーマスタイルを含めます。 | ^ 24 | //または、各コンポーネントのテーマミックスインをインポートして@includeすることもできます25 | //使用していること。

カスタムテーマを作成し、それをmy angularアプリで使用する方法についてのヘルプは、非常に役立ちます。ありがとうございます!

14
Dan

Angular-マテリアルにカスタム16進パレットを使用するには、1つの色だけが必要な場合でも、さまざまな色合いとパレットのコントラスト色を定義する必要があります。マテリアルの組み込みアニメーションで問題なく動作するように、少なくとも3色(明るい、通常、暗い)を使用することをお勧めします。

// below defines your custom color to build a theme palette from
$my-blue: (
  50: #7fdddd,
  100: #7faedd,
  200: #7f7fdd,
  300: #7faedd,
  400: #7faedd,
  500: #7faedd,
  600: #7faedd,
  700: #7faedd,
  800: #7faedd,
  900: #7faedd,
  A100: #7faedd,
  A200: #7faedd,
  A400: #7faedd,
  A700: #7faedd,
  contrast: (
    50: white,
    100: white,
    200: white,
    300: white,
    400: white,
    500: white,
    600: white,
    700: white,
    800: white,
    900: white,
    A100: white,
    A200: white,
    A400: white,
    A700: white,
  )
);
// below creates a primary palette with three shades of blue
$my-primary: mat-palette($my-blue, 100, 50, 200);
32
Z. Bagley