1

テーマに定義されている色で素材2でない要素をスタイルしたい場合は、標準的な方法は何ですか?自分のコンポーネントに角度のある素材の色を使用する

コンポーネントにh1というタグがあり、その色をprimary colorとしたいとします。私は

@import '[email protected]/material/theming'; 
@include mat-core(); 
$color-primary: mat-palette($mat-blue); 
$color-accent: mat-palette($mat-amber, A400, A200, A500); 
$color-warn: mat-palette($mat-red); 
$theme: mat-light-theme($color-primary, $color-accent, $color-warn); 
@include angular-material-theme($theme); 

:私はtheme.scssとstyles.scss

theme.scssを持っている現時点で

h1{ 
    color: $color-primary; 
} 

:私はこのようなことを行うことができるようにしたいと思います輸入できるものはcomponent.scsstheme.scssですが、state not to do so

mat-core()sass mixinをインポートします。これには、複数のコンポーネントによって使用されるすべての一般的なスタイル が含まれます。これはアプリケーションに一度だけ含める必要があります。 このミックスインが複数回含まれている場合、 アプリケーションはこれらの共通の スタイルの複数のコピーで終了します。

答えて

2

これは、カスタムテーマを複数のファイルに分割することで解決できると思います。たとえば、私は_mat-colors.scss_mat-theme.scssです。 _mat-colorsには、必要な3つの色変数が含まれています。 _mat-theme_mat-colorsを使用し、私はパレットを定義し、マットコアを含めます。その後、_variablesまたは_colorsファイルを持っているようにそれを使用することができます:あなたは、その後$color-redを使用するか、または必要に応じてユーザーが定義することができ、他の

@import '@angular/material/theming'; 
@import './mat-colors'; 

$color-red: mat-color($my-warn-palette); 

+0

多くのコンポーネントで 'mat-colors'をインポートする場合、' mat-colors'自体がインポートするので、 'mat-core'もインポートします。私が言ったように、彼らは彼らの文書でそれをしないと言った。だから私が何かを逃していなければ、これは彼らのアドバイスに反すると思う。 – Ced

+0

ええ、私はあなたが正しいと思う@Ced。 '_mat-core()'を '_mat-theme'で使うのではなく、メインのSASSファイルで呼び出すことができると思います。または私は間違っていると思いますか、私は何か誤解していますか? – rrjohnson85

関連する問題