Gradientes em CSS: Guia Completo

Os gradientes permitem criar transições suaves entre cores. No CSS, você pode aplicar gradientes como plano de fundo usando as funções linear-gradient() e radial-gradient().


Tipos de Gradientes

1. Gradiente Linear (linear-gradient())

Cria uma transição em linha reta.

Sintaxe:

background-image: linear-gradient(direção, cor1, cor2, ..., corN);  
    

Direções:

Exemplo:

div {  
      background-image: linear-gradient(45deg, red, yellow);  
    }  
    

2. Gradiente Radial (radial-gradient())

Cria uma transição circular ou elíptica.

Sintaxe:

background-image: radial-gradient(formato tamanho posição, cor1, cor2, ..., corN);  
    

Parâmetros:

Exemplo:

div {  
      background-image: radial-gradient(circle, red, yellow);  
    }  
    

Controlando a Distribuição das Cores

Use porcentagens após as cores para definir onde cada uma começa/termina:

div {  
      background-image: linear-gradient(to right, red 20%, yellow 80%);  
    }  
    

Altura do Elemento

Gradientes só são visíveis se o elemento tiver altura definida:

div {  
      height: 200px; /* Altura fixa */  
      /* ou */  
      min-height: 100vh; /* Altura mínima da tela */  
    }  
    

Exemplos Avançados

1. Gradiente com Múltiplas Cores

div {  
      background-image: linear-gradient(  
        to right,  
        red,  
        orange 30%,  
        yellow 60%,  
        green  
      );  
    }  
    

2. Gradiente Radial com Posição Customizada

div {  
      background-image: radial-gradient(  
        circle at top left, /* Centro no canto superior esquerdo */  
        red,  
        yellow 70%  
      );  
    }  
    

Dicas Práticas

  1. Use Ferramentas Visuais:

  2. Transparência:
    Use rgba() para cores translúcidas:

    background-image: linear-gradient(to bottom, rgba(255,0,0,0.5), rgba(0,0,255,0.5));  
        
  3. div {  
          background-image: repeating-linear-gradient(  
            45deg,  
            red,  
            red 10px,  
            blue 10px,  
            blue 20px  
          );  
        }