Cores e fundos

Você quer que um botão tenha um tom específico de azul. Encontra a cor em um arquivo de design, cola #1b2130 em sua folha de estilos e funciona, mas não tem ideia do que esses caracteres significam ou como você ajustaria um pouco o tom para ficar mais claro. Cor em CSS parece um monte de códigos criptografados até que você aprende os poucos sistemas que estão por trás deles. Uma vez que você consegue ler uma cor e pintá-la em um fundo, a maior parte do caráter visual de uma página está em suas mãos.
Nomeando uma cor
CSS permite que você escreva a mesma cor de algumas maneiras diferentes. A mais simples é uma palavra-chave: um nome em inglês simples que o navegador já conhece.
.tag {
color: rebeccapurple; /* uma cor nomeada, sem códigos necessários */
}Existem cerca de 140 desses nomes, o que é prático para trabalhos rápidos, mas muito poucos para designs reais. As outras maneiras permitem que você descreva qualquer cor. Um código hex é um # seguido por seis caracteres, e rgb() mistura vermelho, verde e azul por quantidade. Todos apontam para cores exatas; palavras-chave são o atalho para as comuns.
.tag {
color: #1b2130; /* o mesmo azul-marinho escuro, escrito como um código hex */
}rebeccapurple, um código hex como #1b2130, ou com rgb(). Palavras-chave são rápidas, mas existem apenas cerca de 140 delas, então a maioria do trabalho real usa os códigos. Não tente ler um código hex a olho ainda; copiar valores exatos é completamente normal nesta fase. Transparência
Às vezes você quer uma cor que você pode ver parcialmente através, então o que quer que se sente atrás dela mostre um pouco. Isto é transparência, e você a adiciona com um quarto valor chamado alpha: 0 é completamente transparente, 1 é completamente sólido.
.overlay {
background-color: rgb(27 33 48 / 0.5); /* o azul-marinho, mas meio transparente */
}O / 0.5 no final significa "metade da opacidade". Existe também uma propriedade chamada opacity que desvanece um elemento inteiro, texto e tudo, de uma vez:
.faded {
opacity: 0.5; /* desvanece o elemento inteiro, não uma cor */
}A diferença importa: alpha afeta apenas essa cor, enquanto opacity desvanece tudo sobre o elemento.
0 é invisível, 1 é sólido, e algo como / 0.5 é meio. Esse alpha apenas toca essa cor. A propriedade opacity separada desvanece o elemento inteiro, texto incluído, então escolha alpha quando você só quer um fundo mais suave. Cor de fundo e imagens
A propriedade background-color preenche a área atrás de um elemento, até sua borda. Você pode usar qualquer cor que conseguir nomear.
.hero {
background-color: hsl(219 28% 15%); /* um azul-marinho sólido atrás do conteúdo */
}Você também pode colocar uma imagem atrás de um elemento com background-image, apontando para o arquivo com url(...):
.hero {
background-image: url("mountains.jpg");
background-size: cover; /* dimensiona a imagem para preencher toda a área */
}background-size: cover dimensiona a imagem para que ela preencha completamente a caixa, cortando qualquer excesso. É a configuração que você quer a maioria das vezes para não haver espaços vazios.
background-color preenche o espaço atrás de um elemento, e background-image: url(...) coloca uma imagem lá em vez disso. Emparelhe uma imagem com background-size: cover para que ela preencha a caixa inteira sem deixar espaços. Essa combinação cobre a maioria do que você alcançará cedo. Gradientes
Um gradiente é uma mistura suave de uma cor para outra. CSS o trata como um tipo de imagem, então vai em background-image em vez de background-color.
.banner {
background-image: linear-gradient(hsl(219 28% 15%), hsl(219 40% 35%));
}Isso mistura da primeira cor no topo para a segunda no fundo. Você pode listar mais de duas cores, e você pode mudar a direção:
.banner {
background-image: linear-gradient(to right, hsl(340 80% 55%), hsl(30 90% 60%));
/* mistura esquerda para direita em vez de cima para baixo */
}Nenhum arquivo de imagem necessário; o navegador desenha a mistura para você.
background-image. linear-gradient() mistura em uma linha reta, de cima para baixo por padrão, ou adicione to right para mudar direção. Nenhum arquivo necessário, o navegador desenha a mistura em si. Cor que se adapta e permanece legível
Uma palavra-chave útil é currentColor. Ela representa qual quer que seja a cor do texto do elemento, então uma borda ou ícone pode corresponder ao texto automaticamente:
.chip {
color: hsl(219 28% 15%);
border: 2px solid currentColor; /* a borda corresponde à cor do texto */
}Mude a cor do texto mais tarde e a borda segue por conta própria, sem uma segunda edição.
Uma coisa mais a manter em mente: certifique-se de que o texto se destaca de seu fundo. Texto escuro em um fundo escuro é difícil de ler, e cinza pálido em branco força os olhos. Aponte para uma diferença clara em brilho entre os dois.
currentColor é uma palavra-chave que copia a cor do texto do elemento, então uma borda pode corresponder ao texto e segui-lo se você mudá-lo mais tarde. Além disso, mantenha o texto legível: certifique-se de que ele é claramente mais brilho ou mais escuro do que o que fica atrás dele. Baixo contraste é a razão mais comum para uma página ser difícil de ler. 
