Material angular - variáveis globais de cores

Observando a documentação do material angular, eles recomendam o uso de um-theme arquivo por componente para gerenciar a aplicação de qualquer estilo relacionado ao tema a uma classe específica.

Na minha perspectiva, algumas desvantagens dessa abordagem são:

bastante detalhadodivide o estilo em dois locais diferentestodos os seus desenvolvedores de front-end precisam entender como as cores do material angular funcionamdificulta a alteração de valores (por exemplo, poderíamos estar usandomat-color($primary, 200) para cores de borda e agora deseja alterá-lo paramat-color($primary, 300). Isso terá sido repetido por toda a base de código.

Dada uma linguagem de design consistente, haverá apenas um subconjunto de cores que serão usadas (por exemplo, 4 cores da paleta principal, 3 da paleta de acentos, algumas cores diferentes de primeiro plano / plano de fundo, etc.).

Diante do exposto, não faz mais sentido ter um_colors.scss que define as cores exatas usando o tema em vez de esperar que os desenvolvedores extraiam o valor correto do tema a cada vez?

por exemplo. talvez algo como:

  $clr-primary-default: mat-color($primary);
  $clr-primary-contrast: mat-color($primary, default-contrast);
  $clr-primary-light: mat-color($primary, lighter);
  $clr-primary-dark: mat-color($primary, darker);

  $clr-accent-default: mat-color($accent);
  $clr-accent-light: mat-color($accent, lighter);
  $clr-accent-dark: mat-color($accent, darker);

  $clr-default-text: mat-color($foreground);
  $clr-secondary-text: mat-color($foreground, secondary-text);

  //etc

Em vez de criar um arquivo separado-theme arquivo para cada componente que requer cores específicas, posso simplesmente importar ocolors.scss arquivo e use as variáveis diretamente no*.component.scss Arquivo.

Apenas querendo confirmar que o que foi dito acima é bom e que não estou perdendo nada óbvio que cause dor no caminho?

A outra parte complicada é como realmente defini-los em um separadocolors arquivo com eficiência, pois o arquivo precisará acessar os dados do tema.

questionAnswers(3)

yourAnswerToTheQuestion