Temas Globais
Visão geral
Se você incluiu o arquivo igniteui-angular.css
no seu projeto de aplicativo, agora é um bom momento para removê-lo. Usaremos nosso próprio arquivo my-app-theme.scss
para gerar um tema global para todos os componentes em nosso aplicativo.
Ignite UI for Angular usa um tema global por padrão para tematizar todo o conjunto de componentes. No entanto, você pode criar temas com escopo para componentes que você tem em seu aplicativo, dependendo do seu caso de uso. Por enquanto, incluiremos todos os nossos temas em um único arquivo. Para gerar um tema global, incluiremos dois mixins core
e theme
. Ambos os mixins aceitam alguns argumentos:
Core mixin
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
$print-layout |
booleano | verdadeiro | Incluir/excluir os estilos para impressão. |
$enhanced-accessibility |
booleano | falso | Alterna as cores dos componentes e outras propriedades para valores mais acessíveis. |
Theme mixins
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
$palette |
mapa | null |
O mapa de paletas a ser usado pelos temas padrão de todos os componentes. |
$schema |
mapa | $light-material-schema |
O esquema usado como base para estilizar os componentes. |
$exclude |
lista | () |
Uma lista de temas de componentes a serem excluídos do tema global. |
$roundness |
Número | null |
Define o fator de arredondamento global para todos os componentes (o valor pode ser qualquer fração decimal entre 0 e 1). |
$elevation |
booleano | true |
Liga/desliga elevações para todos os componentes do tema. |
$elevations |
Mapa | $material-elevations |
O mapa de elevação a ser usado por todos os temas componentes. |
Vamos criar um tema global personalizado que usará as cores primárias, secundárias e de superfície da nossa empresa.
// Import the theming module
@use "igniteui-angular/theming" as *;
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
$primary-color: #2ab759;
$secondary-color: #f96a88;
$surface-color: #fff;
$my-color-palette: palette(
$primary: $primary-color,
$secondary: $secondary-color,
$surface: $surface-color
);
// IMPORTANT: Make sure you always include core first!
@include core();
@include typography();
// Pass the color palette we generated to the theme mixin.
@include theme($my-color-palette);
Vamos explicar o que os mixins core
e theme
fazem. O mixin core
cuida de algumas configurações, como adicionar acessibilidade aprimorada (por exemplo, cores adequadas para usuários daltônicos) e estilos de impressão para todos os componentes. O mixin theme
inclui cada estilo de componente individual (exceto os listados como excluídos) e configura a paleta, esquema, elevações e arredondamento que não estão listados na lista $exclude
de componentes.
Important
Incluir core
antes theme
é essencial. Os mixins core
fornecem todas as definições básicas necessárias para que o mixin theme
funcione corretamente.
Excluding Components
O mixin theme
permite que você forneça uma lista de nomes de componentes a serem excluídos dos estilos globais do tema. Por exemplo, se você quiser remover completamente todos os estilos que incluímos para o igx-avatar
e igx-badge
para reduzir a quantidade de CSS produzido ou para fornecer seus próprios estilos personalizados, você pode fazer isso passando a lista de componentes assim:
// ...
$unnecessary: (igx-avatar, igx-badge);
@include theme($my-color-palette, $exclude: $unnecessary);
Se você sabe que seu aplicativo não usará alguns de nossos componentes, recomendamos adicioná-los à lista $exclude
.
Você pode fazer o inverso, ou seja, incluir apenas os estilos de componentes que deseja usando o método abaixo:
@use 'sass:map';
@function include($items, $register) {
@return map.keys(map.remove($register, $items...));
}
$allowed: (igx-avatar, igx-badge);
@include theme(
$exclude: include($allowed, $components)
);
Light and Dark Themes
Também fornecemos versões claras e escuras para nossos quatro temas: Material, Fluent, Indigo, Bootstrap.
Para usar qualquer uma das versões, você simplesmente precisa passá-la para o nosso mixin de tema:
Luz
@include core();
@include typography(
$font-family: $material-typeface,
$type-scale: $material-type-scale
);
@include theme(
$schema: $light-material-schema,
$palette: $light-material-palette,
);
Escuro
@include core();
@include typography(
$font-family: $material-typeface,
$type-scale: $material-type-scale
);
@include theme(
$schema: $dark-material-schema,
$palette: $dark-material-palette,
);
Available Themes
Ignite UI for Angular oferece a opção de escolher entre um conjunto de temas predefinidos. A tabela abaixo mostra todos os temas integrados que você pode usar imediatamente.
Tema | Esquema | Paleta de cores |
---|---|---|
Luz material | $light-material-schema |
$paleta-de-material-leve |
Material Escuro | $dark-material-schema |
$paleta-de-material-escuro |
Luz Fluente | $light-fluent-schema |
$paleta-fluida-leve $light-fluent-excel-paleta $light-fluent-palavra-paleta |
Fluente Escuro | $dark-fluent-schema |
$paleta-escuro-fluente $dark-fluent-excel-paleta $dark-fluent-palavra-paleta |
Luz de inicialização | $light-bootstrap-schema |
$light-bootstrap-paleta |
Bootstrap escuro | $dark-bootstrap-schema |
$paleta-de-bootstrap-escuro |
Luz Índigo | $light-indigo-schema |
$paleta-indigo-claro |
Índigo Escuro | $dark-indigo-schema |
$paleta-de-índigo-escuro |
Additional Resources
Aprenda a criar temas de componentes individuais:
Nossa comunidade é ativa e sempre acolhedora para novas ideias.