As funções de cores CSS fornecem aos desenvolvedores um kit de ferramentas robusto para definir e manipular cores em web design. Essas funções oferecem flexibilidade e precisão, permitindo criar designs dinâmicos e visualmente atraentes. Este artigo irá aprofundar a história das funções de cores CSS, os problemas que elas pretendem resolver e como utilizá-las de forma eficaz.
Inicialmente, CSS fornecia um conjunto limitado de métodos para definir cores, como cores nomeadas e notação hexadecimal. Embora esses métodos fossem simples e eficazes, faltavam-lhes a flexibilidade e a precisão necessárias para necessidades de design mais sofisticadas. À medida que o web design evoluiu, também evoluiu a necessidade de técnicas mais avançadas de manipulação de cores.
A introdução das funções rgb() e hsl() marcou o início de definições de cores mais versáteis em CSS. Essas funções permitiram maior controle sobre as propriedades das cores, facilitando a criação de designs dinâmicos e responsivos. No entanto, a crescente complexidade do web design continuou a ultrapassar os limites, levando ao desenvolvimento de funções de cores ainda mais avançadas, como lab(), lch() e oklch().
1. Uniformidade Perceptiva: Modelos de cores tradicionais como RGB e HSL não levam em conta a percepção humana das diferenças de cores. Funções modernas como lab(), lch() e oklch() são projetadas para serem perceptualmente uniformes, o que significa que as mudanças nos valores das cores correspondem mais de perto à forma como percebemos essas mudanças.
2. Ajustes dinâmicos de cores: Funções como color-mix() e color-contrast() fornecem ferramentas para ajustar dinamicamente as cores com base no ambiente, garantindo melhor legibilidade e harmonia visual.
3. Consistência e Previsibilidade: Funções modernas oferecem resultados mais consistentes e previsíveis ao misturar e combinar cores, o que é crucial para criar designs coesos.
4. Acessibilidade: Funções de cores aprimoradas ajudam na criação de designs acessíveis, tornando mais fácil garantir contraste suficiente e distinção de cores.
CSS suporta uma variedade de cores nomeadas predefinidas, como "vermelho", "verde", "azul", etc.
.element { background-color: red; }
Notação hexadecimal para cores RGB.
.element { background-color: #ff6347; /* Tomato */ }
Define as cores usando o modelo de cores Vermelho-Verde-Azul.
.element { background-color: rgb(255, 99, 71); /* Tomato */ background-color: rgba(255, 99, 71, 0.5); /* 50% transparent Tomato */ }
Usa o modelo Matiz-Saturação-Luminosidade.
.element { background-color: hsl(9, 100%, 64%); /* Tomato */ background-color: hsla(9, 100%, 64%, 0.5); /* 50% transparent Tomato */ }
Usa o valor atual da propriedade color.
.element { color: #ff6347; border: 2px solid currentColor; /* Border color matches text color */ }
Uma cor nomeada introduzida em homenagem a Rebecca Alison Meyer.
.element { background-color: rebeccapurple; /* #663399 */ }
Define uma cor usando o modelo de cores Ciano-Magenta-Amarelo-Preto.
.element { background-color: cmyk(0, 1, 1, 0); /* Red */ }
Ajusta o matiz de uma cor em um grau especificado.
.element { background-color: adjust-hue(hsl(120, 100%, 50%), 45deg); /* Adjusted hue */ }
Aumenta a saturação de uma cor.
.element { background-color: saturate(hsl(120, 50%, 50%), 20%); /* More saturated */ }
Reduz a saturação de uma cor.
.element { background-color: desaturate(hsl(120, 50%, 50%), 20%); /* Less saturated */ }
Torna a cor mais clara.
.element { background-color: lighten(hsl(120, 50%, 50%), 20%); /* Lighter */ }
Torna a cor mais escura.
.element { background-color: darken(hsl(120, 50%, 50%), 20%); /* Darker */ }
Permite usar cores de diferentes espaços de cores.
.element { background-color: color(display-p3 1 0.5 0); /* Display P3 color space */ }
Combina duas cores.
.element { background-color: color-mix(in srgb, blue 30%, yellow 70%); }
Usa o modelo de cores CIE LAB para uniformidade perceptiva.
.element { background-color: lab(60% 40 30); /* Lightness, a*, b* */ }
Uma representação cilíndrica do modelo de cores CIE LAB.
.element { background-color: lch(70% 50 200); /* Lightness, Chroma, Hue */ }
Concentra-se na quantidade de branco e preto adicionada à cor.
.element { background-color: hwb(260 30% 40%); /* Hue, Whiteness, Blackness */ }
Cria tons de cinza usando uma porcentagem.
.element { background-color: gray(50%); /* Medium gray */ }
Seleciona uma cor que fornece contraste suficiente em relação ao fundo.
.element { background-color: color-contrast(white vs black, blue, red); }
Usa Luminância, Croma e Matiz Oklab para uniformidade perceptiva.
.element { background-color: oklch(80% 0.5 200); /* Luminance, Chroma, Hue */ }
1. Efeitos de foco: Use rgba() ou hsla() para criar efeitos sutis de foco com transparência.
.button { background-color: rgb(0, 123, 255); } .button:hover { background-color: rgba(0, 123, 255, 0.8); }
2. Tema: Utilize currentColor para criar componentes com reconhecimento de tema.
.theme-dark { color: #ffffff; } .theme-light { color: #000000; } .themed-element { border: 1px solid currentColor; }
3. Cores dinâmicas: Aproveite hsl() para ajustes dinâmicos de cores, como alteração de luminosidade ou saturação.
.lighten { background-color: hsl(220, 90%, 70%); } .darken { background-color: hsl(220, 90%, 30%); }
4. Mistura consistente de cores: Use oklch() para misturar cores de uma forma que pareça mais natural e consistente.
.box { background-color: oklch(75% 0.3 90); /* Soft, bright color */ } .highlight { background-color: oklch(75% 0.3 120); /* Slightly different hue */ }
5. Harmonias de cores: Crie esquemas de cores harmoniosos ajustando o matiz enquanto mantém a luminância e o croma constantes.
.primary { background-color: oklch(70% 0.4 30); } .secondary { background-color: oklch(70% 0.4 60); } .accent { background-color: oklch(70% 0.4 90); }
6. Cores acessíveis: Use oklch() para criar cores perceptualmente distintas, melhorando a legibilidade e acessibilidade.
.text { color: oklch(20% 0.1 30); /* Dark color for text */ } .background { background-color: oklch(90% 0.1 30); /* Light background color */ }
As funções modernas de cores CSS ampliam os recursos do web design, oferecendo um nível mais alto de precisão e flexibilidade. Ao incorporar funções como lab(), lch(), hwb(), gray(), color-contrast() e oklch(), você pode obter manipulações de cores mais sofisticadas e acessíveis. Mantenha-se atualizado com os desenvolvimentos mais recentes em CSS para continuar aproveitando todo o potencial dessas ferramentas poderosas em seus projetos de web design.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3