Paletas em Ignite UI for Web Components

    Ignite UI for Web Components expõe variáveis CSS que permitem atualizar as cores em seu aplicativo de forma consistente.

    Visão geral

    As paletas em Ignite UI for Web Components fornecem mais de 80 variantes de cores como variáveis CSS para 8 cores básicas -,,,,,, success, warn e error. info​ ​gray​ ​surface​ ​secondary​ ​primary

    As cores primary, secondary e gray seguem a Paleta de Cores do Material Design de 2014. Isso significa que essas cores incluem as seguintes variantes:

    Todo Somente primário e secundário
    50 100 200 300 400 500 600 700 800 900 A100 A200 A400 A700

    Como mostra a tabela acima, a gray cor não inclui as A100 variantes secondary​ ​primary, A200, A400, e A700 Incluímos 5 cores adicionais que não fazem parte da Paleta de Cores do Material Design 2014 -info, success, warn, error, e surface.

    Além das cores mencionadas, também incluímos Nível AA WCAG compatível contrast cores para cada variante de cor. Isso significa que você pode usar com segurança o correspondente contrast variantes de cor como cores de primeiro plano para a variante de cor base.

    [!Note] Contrast colors are generated at build-time therefore overriding the CSS variables will not update the corresponding contrast colors.

    Aqui está um trecho da primary cor conforme declarado na paleta Light Bootstrap:

    :root {
      //...
      --ig-primary-500: #09f;
      --ig-primary-500-contrast: black;
      --ig-primary-600: hsl(from var(--ig-primary-500) h calc(s * 1.26) calc(l * 0.89));
      --ig-primary-600-contrast: black;
      --ig-primary-700: hsl(from var(--ig-primary-500) h calc(s * 1.26) calc(l * 0.81));
      //...
      --ig-secondary-400: hsl(from var(--ig-secondary-500) h calc(s * 0.875) calc(l * 1.08));
      --ig-secondary-400-contrast: black;
      --ig-secondary-500: #df1b74;
      --ig-secondary-500-contrast: white;
      --ig-secondary-600: hsl(from var(--ig-secondary-500) h calc(s * 1.26) calc(l * 0.89));
      --ig-secondary-600-contrast: white;
      //...
    }
    

    Todas as variantes de cores primárias são derivadas de uma variante de cor de variável base--ig-primary-500. O mesmo vale para as outras variáveis de cor--ig-secondary-500,--ig-surface-500, etc. As outras variantes são geradas por meio da função de cor relativa hsl() que pega a variante de cor da variável principal 500 e altera sua staturation e lightness de acordo com a variante de variável que é atribuída em (600, 700, etc.). Decidimos usar essa abordagem, pois ela nos permite modificar todas as variantes das cores primary, secondary, surface e outras cores em tempo de execução.

    [!WARNING] Because the contrast colors are not generated at CSS runtime like the rest, if we change the main color variant(500), the contrast color would not be updated. We would need to change them manually. This behavior will be improved upon in an upcoming release, where the contrast colors will also be calculated at CSS runtime.

    Defining Palettes

    Se você quiser alterar as variantes de cor para uma cor da paleta, você pode fazer isso substituindo sua variante de 500 cores. Por exemplo, alterar as cores primárias é tão fácil quanto escrever:

    :root {
      --ig-primary-500: #09f;
    }
    

    Isso atualizará automaticamente todas as outras variantes primárias.

    Você notará que as variantes de cor para cada cor são monocromáticas. Isso ocorre porque todas as variantes de cor são geradas com a função de cor relativa hsl().

    :root {
      --ig-primary-600: hsl(from var(--ig-primary-500) h calc(s * 1.26) calc(l * 0.89));
    }
    

    Scoping

    Vimos que substituir cores na paleta é relativamente fácil. A paleta global pode ser atualizada definindo o escopo das variantes de cores para o:root seletor no styles.css arquivo do nosso aplicativo.

    Digamos que sua cor primária corporativa seja #9f349c e você queira criar variantes primárias para ela. Tudo o que você precisa fazer é substituir a variável--ig-primary-500 pela cor desejada em qualquer tipo de valor de cor - RGB, HEX, etc.

    :root {
      --ig-primary-500: #9f349c;
    }
    

    Isso alterará automaticamente cada variante de cor primária.

    Além de ter uma única paleta global, você também pode criar várias paletas com escopo para outros seletores CSS. Por exemplo, podemos ter uma paleta azul e vermelha com escopo para seletores de classe:

    /* styles.css */
    
    .blue-theme {
      --ig-primary-500: #0008ff;
    }
    
    .red-theme {
      --ig-primary-500: #ff0400;
    }
    

    Então você pode simplesmente reformular as cores no seu aplicativo alterando o valor do atributo class de blue-theme para red-theme.

    Dark vs. Light

    As paletas em Ignite UI for Web Components ditam se um tema será claro ou escuro. As duas cores que têm o maior impacto nisso são gray e surface. Veja, as gray variantes de cores em todos os temas são baseadas em um tom de cor muito claro, tipo #fff, ou um tom muito escuro, como #222. Os temas claros têm gray variantes baseadas em tons escuros de cinza, enquanto os temas escuros são o oposto - todas as gray variantes são um tom de branco. Essas gray cores serão exibidas contra outra cor, geralmente a surface cor. A surface cor deve estar sempre na extremidade oposta da escala de cinza para garantir que os gray temas tenham uma boa aparência.

    Para deixar isso um pouco mais claro, abaixo está a lista completa de todas as gray​ ​surface variantes de cores em um tema claro e escuro.

    Bootstrap Light:

    :root {
      //...
      /* surface is set to light color*/
      --ig-surface-500: white;
      //...
      /* grays are based on dark gray to contrast the surface color */
      --ig-gray-500: hsl(0, 0%, 62%);
      //...
    }
    

    Bootstrap Dark:

    :root {
      //...
      /* surface is set to dark color*/
      --ig-surface-500: #222;
      //...
      /* grays are based on light gray to contrast the surface color */
      --ig-gray-500: hsl(0, 0%, 74%);
      //...
    }
    

    Tenha cuidado ao alterar as variantes de cor gray e surface, pois elas são usadas na maioria dos componentes e têm um grande impacto na aparência geral.

    Other Colors

    Até agora, surface cobrimos as primary variantes de cores e secondary​ ​gray como você pode substituí-las. Existem mais quatro cores -info, success, warn, e error. Eles geralmente são usados para definir as cores em diferentes estados. Por exemplo, o igc-input-group componente usa essas cores em seus estados de validação de entrada. Eles podem ser alterados como as outras variantes de cores, tudo o que precisamos fazer é definir a 500 variante e todas as outras variantes serão geradas.

    :root {
      --ig-info-500: #1377d5;
      --ig-success-500: #4eb862;
      --ig-warn-500: #faa419;
      --ig-error-500: #ff134a;
    }
    

    API References

    • Palettes