Temas
Ignite UI for Angular permite que você modifique os estilos de todos os temas de componentes usando variáveis CSS. Se você realmente quiser se aprofundar, nós fornecemos um poderoso mecanismo de temas Sass que permite que você crie temas de componentes globais adaptados à sua linguagem de design específica que funcionam em todos os navegadores modernos.
Note
Este documento descreve o sistema de temas no Ignite UI for Angular da versão 12 em diante. A partir da versão 12, as variáveis CSS são a maneira recomendada de modificar os temas globais e de componentes. Você ainda pode usar a biblioteca de temas Sass como faria antes da versão 12.
Basic Usage
Ignite UI for Angular inclui os seguintes temas como parte de seu pacote:
- Material
- Bootstrap
- Fluente
- Anil
Todos os temas possuem variantes claras e escuras, além de suporte por padrão para conteúdo da esquerda para a direita (LTR) e da direita para a esquerda (RTL). A maneira mais fácil de começar a usar qualquer um dos temas incluídos na sua aplicação é especificando o caminho para um arquivo de tema CSS na suaangular.json configuração. Por exemplo, se você quiser usar o tema Dark Material, incluiria o caminho para o arquivo de tema assim:
"styles": [
"node_modules/igniteui-angular/styles/igniteui-angular-dark.css",
"src/styles.css"
]
Note
Se você instalou o pacote Ignite UI for Angular usandong add igniteui-angular, deve ter notado que já adicionamosigniteui-angular.css ao array de estilos.
Aqui está a lista completa de temas incluídos na pasta de estilos:
| Nome do tema | Caminho |
|---|---|
| Luz material | node_modules/igniteui-angular/styles/igniteui-angular.css |
| Material Escuro | node_modules/igniteui-angular/styles/igniteui-angular-dark.css |
| Luz de inicialização | node_modules/igniteui-angular/styles/igniteui-bootstrap-light.css |
| Bootstrap escuro | node_modules/igniteui-angular/styles/igniteui-bootstrap-dark.css |
| Material Verde Escuro | node_modules/igniteui-angular/styles/igniteui-dark-green.css |
| Luz Fluente | node_modules/igniteui-angular/styles/igniteui-fluent-light.css |
| Fluente Escuro | node_modules/igniteui-angular/styles/igniteui-fluent-dark.css |
| Fluente Luz Excel | node_modules/igniteui-angular/styles/igniteui-fluent-light-excel.css |
| Excel escuro fluente | node_modules/igniteui-angular/styles/igniteui-fluent-dark-excel.css |
| Palavra de Luz Fluente | node_modules/igniteui-angular/styles/igniteui-fluent-light-word.css |
| Palavra Escura Fluente | node_modules/igniteui-angular/styles/igniteui-fluent-dark-word.css |
| Luz Índigo | node_modules/igniteui-angular/styles/igniteui-indigo-light.css |
| Índigo Escuro | node_modules/igniteui-angular/styles/igniteui-indigo-dark.css |
Como você pode ver, nós lançamos Ignite UI for Angular com uma quantidade substancial de temas.
Mas isso não é o fim da nossa história de tematizado. Todos os temas são compilados do código-fonte Sass e construídos usando nosso poderoso motor de tematizado. Esse motor contém Sassmixins efunctions muitos dos quais são expostos publicamente, o que permite redesenhar completamente todos os componentes da sua aplicação.
Se Sass não é sua praia, tudo bem, facilitamos a modificação dos temas compilados usando propriedades CSS personalizadas, ou também conhecidas como variáveis CSS. Você ainda pode usar Sass em combinação com variáveis CSS.
Global Variables
Se você inspecionar qualquer um dos temas CSS acima, notará que há várias variáveis CSS incluídas no:root escopo; Incluímos variáveis paracolors,shadows,typography, econfiguration. Modificar qualquer uma dessas variáveis permitirá que você personalize a aparência geral do tema e, por outro lado, os componentes.
O que a maioria das pessoas procura ao modificar um tema é alterar as cores padrão usadas pelos componentes.
Se você quiser mudar as cores primária e secundária, tudo o que precisa fazer é digitar o seguinte no seustyles.css arquivo:
/* styles.css */
:root {
--ig-primary-500: #09f;
--ig-secondary-500: red;
--ig-surface-500: rgb(221 211 211);
}
Vamos analisar os nomes dessas variáveis de cor. Oig prefixo está presente como um identificador único para indicar que essa variável faz parte de um tema Ignite UI for Angular,primary é o nome da variável de cor e500 representa a variante de cor. Vamos analisar mais a fundo as paletas na seção Palettes da documentação. Por enquanto, tudo o que você precisa saber é que temos várias variáveis de cor base (primária, secundária, de superfície, sucesso, informação, etc.) que incluem diferentes tons ou variantes, todas geradas a partir das variantes de cor principal. As500 variantes de cor que definimos no exemplo acima são consideradas a cor principal da variável e todas as outras variantes para a variável de cor dada são geradas a partir da500 variante.
Alterando essas variantes, você pode reformular completamente toda a paleta.
Warning
Alguns componentes não usam cores das paletas. Nesses casos, você terá que direcionar as variáveis CSS do componente diretamente para modificar suas cores. Para descobrir quais cores de paleta são usadas por qual componente, dê uma olhada na Documentação de Componentes.
Da mesma forma, mudar aselevations sombras é tão fácil quanto. Incluímos 25 níveis de elevação (0-24). Aqui está uma versão simplificada de como essas variáveis se parecem:
/* styles.css */
:root {
--ig-elevation-0: none;
--ig-elevation-1: 0 1px 3px 0 rgba(0, 0, 0, 0.26),
0 1px 1px 0 rgba(0, 0, 0, 0.12),
0 2px 1px -1px rgba(0, 0, 0, 0.08);
/* ... */
--ig-elevation-24: 0 11px 15px -7px rgba(0, 0, 0, 0.26),
0 24px 38px 3px rgba(0, 0, 0, 0.12),
0 9px 46px 8px rgba(0, 0, 0, 0.08);
}
Essas são essencialmente declarações CSSbox-shadow empilhadas. Você pode substituí-los por qualquer outro valor válidobox-shadow. Quanto maior o número de nível de elevação, maior é a sombra. Novamente, diferentes componentes usam diferentes níveis de elevação; para descobrir quais níveis de elevação são usados por qual componente, consulte a Documentação de Componentes. Vamos analisar mais a fundo as elevações nas Elevações da documentação.
Configuração
Existem diversas variáveis que permitem configurar o comportamento global do tema:
Redondeza
Para configurar o fator de raio de todos os componentes, você pode alterar o valor da--ig-radius-factor variável. O valor padrão é 1, o que significa que o fator de raio padrão é usado entre os temas componentes.
Exemplo:
/* Makes all components appear blocky in shape */
:root {
--ig-radius-factor: 0;
}
Elevation Factor
Para configurar o fator de elevação de todos os componentes, você pode alterar o valor da--ig-elevation-factor variável. O valor padrão é 1, o que significa que as elevações padrão são usadas entre os temas componentes.
Exemplo:
/* Makes all components appear flat (no-shadows) */
:root {
--ig-elevation-factor: 0;
}
Component Variables
Todos os componentes oferecem a capacidade de modificar seus temas usando variáveis CSS específicas de cada componente. Cada componente expõe duas variáveis que modificam a mesma propriedade. As variáveis expostas podem ser consideradas comoglobal e.local Ambos modificam o tema do componente da mesma forma, a única diferença é queglobal as variáveis têm oigx-[component-name] prefixo associado ao nome da variável e podem ser usadas pelos seletores pais para estilizar componentes filhos, enquantolocal variáveis são específicas de uma instância de componente.
Vamos dar uma olhada em um exemplo. Digamos que você queira modificar o plano de fundo do avatar. O avatar procura pelas seguintes variáveis CSS que modificam seu plano de fundo:
/* styles.css */
:root {
--igx-avatar-background: black;
}
igx-avatar {
--background: orange;
}
O snippet acima definirá o fundo de todos os avatares para laranja.
O componente avatar procurará a--background variável primeiro. Se explicitamente definido, ele terá seu valor. Em outras palavras,local variáveis têm prioridade maior e só funcionarão se forem aplicadas diretamente aoigx-avatar seletor, seja usando seu seletor de tags ou qualquer outro seletor que tenhaigx-avatar como alvo. O global--igx-avatar-background pode ser considerado como uma variável de recurso. Ele só será usado se o local--background não for explicitamente sobreposto.
Para os curiosos, veja como isso é implementado internamente no avatar:
igx-avatar {
--background: var(--igx-avatar-background, var(--ig-gray-400));
background: var(--background);
}
Geralmente, você usaria variáveis globais quando quisesse aplicar alterações a todas as instâncias de um componente, enquanto as variáveis locais têm como alvo instâncias específicas do componente e sempre substituirão a variável global.
Aqui está outro exemplo:
<!-- app.component.html -->
<igx-avatar>AB</igx-avatar>
<igx-avatar>CD</igx-avatar>
<app-contacts></app-contacts>
<!-- contacts.component.html -->
<igx-avatar>EF</igx-avatar>
<igx-avatar>GH</igx-avatar>
/* styles.css */
:root {
--igx-avatar-background: lavender;
}
/* contacts.component.css */
igx-avatar {
--background: purple;
}
AvataresAB eCD usarão a cor lavanda definida globalmente como fundo, enquanto avataresEF terãoGH fundos roxos.
Cada componente tem todas as suas propriedades temáticas documentadas na seção de estilo da documentação do componente.
Isso deve ser tudo o que você precisa para começar a criar temas. Você pode modificar as cores da paleta global, elevações e alterar as propriedades do tema do componente criando temas de componentes globais e locais. Se quiser saber mais, temos uma documentação abrangente que abrange tópicos como Paletas, Elevações, Tipografia e Tematização com Sass em detalhes.
Additional Resources
Tópicos relacionados:
Nossa comunidade é ativa e sempre acolhedora para novas ideias.