Função radial-gradient
A função radial-gradient define um gradiente
radial. Esta função é aplicada a propriedades que
definem uma imagem de fundo: background,
background-image
ou uma imagem de borda: border-image,
background-image-source.
Sintaxe
seletor {
background: radial-gradient([forma tipo posição], cor1 tamanho1, cor2 tamanho2...);
}
Valores
| Valor | Descrição |
|---|---|
| forma |
Valores aceitos:
ellipse gradiente elíptico (padrão),
circle gradiente circular.
|
| tipo |
Define a extensão do gradiente.
Valores aceitos:
closest-side, closest-corner,
farthest-side, farthest-corner.
|
| posição |
Após a palavra-chave at
é especificada uma posição em quaisquer unidades de tamanho
ou usando as palavras-chave top, bottom,
left, right, center
em várias combinações.
|
| cor1 | Cor inicial do gradiente em quaisquer unidades de cor. |
| cor2 | Cor final do gradiente em quaisquer unidades de cor. |
| tamanho | Define a extensão de uma cor específica do gradiente em quaisquer unidades de tamanho. |
Valores para tipo
| Valor | Descrição |
|---|---|
closest-side |
A forma do gradiente coincide com o lado mais próximo do bloco. |
closest-corner |
A forma do gradiente é calculada com base na informação da distância até o canto mais próximo do bloco. |
farthest-side |
O gradiente se estende até o lado mais distante do bloco. |
farthest-corner |
A forma do gradiente é calculada com base na informação da distância até o canto mais distante do bloco. |
Observação
O tipo e a forma podem ser trocados, mas a posição deve vir no final do primeiro parâmetro. O tipo de gradiente e seu tamanho não funcionam um com o outro (logicamente, pois eles entram em conflito). O tamanho prevalece.
Exemplo . A variante mais simples
Vamos simplesmente definir a cor inicial e a cor final:
<div id="elem"></div>
#elem {
background: radial-gradient(red, blue);
width: 200px;
height: 200px;
}
:
Exemplo . Adicionando posição
Vamos definir a posição do centro:
30px - recuo à esquerda, 100px - recuo superior:
<div id="elem"></div>
#elem {
background: radial-gradient(at 30px 100px, red, blue);
width: 200px;
height: 200px;
}
:
Exemplo . Posição em porcentagem
Vamos definir a posição do centro em porcentagem:
30% - recuo à esquerda, 50% - recuo superior:
<div id="elem"></div>
#elem {
background: radial-gradient(at 30% 50%, red, blue);
width: 200px;
height: 200px;
}
:
Exemplo . Posição por palavra-chave
Podem ser usadas as palavras-chave
top, bottom, left,
right, center em várias
combinações. Vamos colocar, por exemplo, o gradiente
à direita e centralizado:
<div id="elem"></div>
#elem {
background: radial-gradient(at right center, red, blue);
width: 200px;
height: 200px;
}
:
Exemplo . Tamanho do gradiente
Neste caso, o gradiente funcionará assim:
de 0px a 20px será cor
vermelha pura, de 20px a 60px - gradiente
de vermelho para azul, após 60px - cor
azul pura:
<div id="elem"></div>
#elem {
background: radial-gradient(red 20px, blue 60px);
width: 200px;
height: 200px;
}
:
Exemplo . Várias cores em sequência
Neste caso, o gradiente funcionará assim:
de 0px a 20px será cor
vermelha pura, de 20px a 40px
será cor azul pura, de 40px
a 60px - gradiente de azul para verde,
após 60px - cor verde pura:
<div id="elem"></div>
#elem {
background: radial-gradient(red 20px, blue 20px, blue 40px, green 60px);
width: 200px;
height: 200px;
}
:
Exemplo . Tamanho + posição
Vamos definir simultaneamente os tamanhos para cores diferentes e a posição do centro do gradiente:
<div id="elem"></div>
#elem {
background: radial-gradient(at 30px 60px, red 20px, blue 60px);
width: 200px;
height: 200px;
}
:
Exemplo . Forma do gradiente
A forma do gradiente é definida pelo primeiro parâmetro
e pode aceitar 2 valores: circle
(gradiente circular) ou ellipse (gradiente
elíptico, padrão). Por que então até agora
não vimos gradientes elípticos, embora
seja o padrão? Porque até agora
a forma dos blocos era quadrada. Se mudarmos
a forma para retangular, veremos o gradiente elíptico:
<div id="elem"></div>
#elem {
background: radial-gradient(red 20px, blue 60px);
width: 300px;
height: 200px;
}
:
Exemplo . Gradiente circular
Vamos fazer um gradiente circular em um bloco
retangular. Para isso, definiremos a forma do gradiente
como primeiro parâmetro usando a palavra-chave
circle:
<div id="elem"></div>
#elem {
background: radial-gradient(circle, red 20px, blue 60px);
width: 300px;
height: 200px;
}
:
Exemplo . Adicionando posição
Vamos adicionar também a posição do gradiente ao código anterior:
<div id="elem"></div>
#elem {
background: radial-gradient(circle at 30px 60px, red 20px, blue 60px);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo farthest-corner + circle
A forma do gradiente é calculada com base na informação da distância até o canto mais distante do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(circle farthest-corner at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo farthest-corner + ellipse
A forma do gradiente é calculada com base na informação da distância até o canto mais distante do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(ellipse farthest-corner at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo farthest-side + circle
O gradiente se estende até o lado mais distante do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(circle farthest-side at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo farthest-side + ellipse
O gradiente se estende até o lado mais distante do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(ellipse farthest-side at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo closest-corner + circle
A forma do gradiente é calculada com base na informação da distância até o canto mais próximo do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(circle closest-corner at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo closest-corner + ellipse
A forma do gradiente é calculada com base na informação da distância até o canto mais próximo do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(ellipse closest-corner at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo closest-side + circle
A forma do gradiente coincide com o lado mais próximo do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(circle closest-side at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Exemplo . Tipo closest-side + ellipse
A forma do gradiente coincide com o lado mais próximo do bloco:
<div id="elem"></div>
#elem {
background: radial-gradient(ellipse closest-side at 60px 80px, red, blue);
width: 300px;
height: 200px;
}
:
Veja também
-
a função
linear-gradient,
que cria um gradiente linear -
a função
repeating-linear-gradient,
que cria um gradiente linear repetitivo -
a função
repeating-radial-gradient,
que cria um gradiente radial repetitivo