Mercado
Preços
EntrarComeçar
Guia práticoCSS e web
CSS e web

SVG feTurbulence: filtros de ruído, granulado e textura

Um único primitivo de filtro faz quase todas as texturas da web: granulado sobre um degradê, papel atrás de um cartão, uma ondulação numa borda. Veja o que cada atributo faz, com receitas que funcionam.

GradientlyConta verificada do Gradiently·1 de outubro de 2026·5 min de leitura
Capa: Sapphire Casino · GR·N417·BV

Resumindo

  • O feTurbulence do SVG é um primitivo de filtro que gera ruído Perlin, que você pode usar como granulado, papel, nuvens ou fonte de deslocamento.
  • O atributo baseFrequency define o tamanho do ruído: valores altos, de 0,6 a 0,9, dão granulado fino, e valores baixos, de 0,01 a 0,05, dão nuvens grandes e suaves.
  • type="fractalNoise" gera um ruído suave e uniforme, bom para granulado e papel, enquanto type="turbulence" gera um ruído mais agudo e ondulado, bom para mármore e água.
  • Um pequeno bloco de ruído com stitchTiles="stitch", sobreposto a um degradê com baixa opacidade, acrescenta textura e esconde faixas a um custo mínimo.
  • O feTurbulence é caro de calcular em áreas grandes, então renderize-o uma vez como bloco repetido em vez de animá-lo em tela cheia.
Nesta página
O que cada atributo do feTurbulence fazReceita: granulado sobre um degradêReceita: textura de papelReceita: bordas deformadas com feDisplacementMapDesempenho e comportamento nos navegadores

O SVG feTurbulence é um primitivo de filtro que preenche a sua região com ruído Perlin. Sozinho, o resultado é um campo de estática colorida; combinado com outros primitivos, vira granulado de filme, fibra de papel, nuvens, mármore ou uma fonte para deformar formas. Você o controla com cinco atributos: type, baseFrequency, numOctaves, seed e stitchTiles. A maioria das texturas dos sites modernos, inclusive o granulado dos degradês granulados, começa aqui.

html
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300">
  <filter id="noise">
    <feTurbulence type="fractalNoise" baseFrequency="0.75" numOctaves="3" stitchTiles="stitch" />
  </filter>
  <rect width="100%" height="100%" filter="url(#noise)" />
</svg>
O mínimo: um filtro que cria ruído, aplicado a um retângulo. A saída é uma estática multicolorida até você tirar a cor.

O que cada atributo do feTurbulence faz

typeturbulence (padrão) ou fractalNoise

Efeito

Ondulado e agudo, ou suave e uniforme
baseFrequency

Valores

Um número, ou dois para x e y

Efeito

Menor significa detalhes maiores
numOctaves

Valores

Número inteiro, padrão 1

Efeito

Camadas de detalhe mais fino; custa velocidade
seedQualquer número, padrão 0

Efeito

Um padrão aleatório diferente
stitchTiles

Valores

noStitch (padrão) ou stitch

Efeito

Suaviza as bordas para o bloco se repetir sem emendas
AtributoValoresEfeito
typeturbulence (padrão) ou fractalNoiseOndulado e agudo, ou suave e uniforme
baseFrequencyUm número, ou dois para x e yMenor significa detalhes maiores
numOctavesNúmero inteiro, padrão 1Camadas de detalhe mais fino; custa velocidade
seedQualquer número, padrão 0Um padrão aleatório diferente
stitchTilesnoStitch (padrão) ou stitchSuaviza as bordas para o bloco se repetir sem emendas
Os cinco atributos. Mude um de cada vez enquanto ajusta, porque eles interagem.

O baseFrequency é o que você mais vai mexer. Ele é medido em ciclos por unidade de usuário, então 0.8 aproxima os detalhes e 0.02 os estica em nuvens lentas. Dois valores, como baseFrequency="0.01 0.3", esticam o ruído num só eixo, e é assim que se imita metal escovado e veios de madeira.

0,8 a 0,9

Parece com

Granulado fino de filme

Uso

Sobreposição em degradês e fotos
0,5 a 0,7

Parece com

Granulado visível, risografia

Uso

Cartazes, páginas editoriais
0,15 a 0,3

Parece com

Pontilhado grosso, concreto

Uso

Fundos, pedra
0,02 a 0,05

Parece com

Nuvens, fumaça

Uso

Fibras de papel, iluminação suave
0,005 a 0,01

Parece com

Ondas grandes e lentas

Uso

Deslocamento, mármore
baseFrequencyParece comUso
0,8 a 0,9Granulado fino de filmeSobreposição em degradês e fotos
0,5 a 0,7Granulado visível, risografiaCartazes, páginas editoriais
0,15 a 0,3Pontilhado grosso, concretoFundos, pedra
0,02 a 0,05Nuvens, fumaçaFibras de papel, iluminação suave
0,005 a 0,01Ondas grandes e lentasDeslocamento, mármore
Pontos de partida para um bloco de uns 300 pixels de largura. O ruído escala com o SVG, então um bloco desenhado maior parece mais grosso.

type="fractalNoise"

  • Suave, parecido com nuvens, bem distribuído
  • Bom para granulado, papel e névoa
  • A escolha habitual para sobreposições

type="turbulence"

  • Mais agudo, com vincos escuros
  • Bom para mármore, fogo e água
  • Fica carregado como sobreposição total

Receita: granulado sobre um degradê

A coisa mais útil que o feTurbulence faz é acrescentar granulado. Um degradê digital limpo forma listras visíveis, sobretudo os escuros; um ruído leve quebra essas listras e dá à superfície um ar de impresso. Os passos: crie o ruído, tire a cor dele e sobreponha-o ao degradê com pouca intensidade.

html
<svg xmlns="http://www.w3.org/2000/svg" width="240" height="240">
  <filter id="grain" x="0" y="0" width="100%" height="100%">
    <feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch" result="noise" />
    <feColorMatrix in="noise" type="saturate" values="0" />
  </filter>
  <rect width="100%" height="100%" filter="url(#grain)" />
</svg>
O feColorMatrix com saturate 0 deixa o ruído cinza. Definir a região do filtro como o retângulo inteiro evita uma borda suave.

Salve isso como grain.svg ou incorpore como data URI e depois repita o bloco num pseudoelemento acima do degradê.

css
.hero {
  position: relative;
  isolation: isolate;
  background: linear-gradient(160deg, #0f0b1e 0%, #312e81 55%, #6d28d9 100%);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("/grain.svg");
  background-size: 240px;
  opacity: 0.12;
  mix-blend-mode: overlay;
  pointer-events: none;
}
Os modos de mesclagem overlay e soft light mantêm a cor do degradê e só acrescentam textura. Comece com opacidade de 0,08 a 0,15 e avalie em tela cheia.
O fundo sob o granuladolinear-gradient(160deg, #0f0b1e 0%, #312e81 55%, #6d28d9 100%)
Degradês de violeta escuro como este são onde as faixas mais aparecem, exatamente onde o granulado se justifica. Mais sobre a causa em faixas em degradês.

Receita: textura de papel

Papel é ruído de baixa frequência transformado em relevo por uma fonte de luz. O feDiffuseLighting trata o ruído como um mapa de altura e o ilumina de um lado, o que produz as suaves colinas de uma folha de papel de algodão.

html
<filter id="paper" x="0" y="0" width="100%" height="100%">
  <feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="5" result="noise" />
  <feDiffuseLighting in="noise" lighting-color="#f7f1ea" surfaceScale="2" result="lit">
    <feDistantLight azimuth="45" elevation="60" />
  </feDiffuseLighting>
  <feBlend in="SourceGraphic" in2="lit" mode="multiply" />
</filter>
Aumente o surfaceScale para uma folha mais áspera; diminua o elevation para uma luz rasante que exagera cada fibra.

Combine com fundos off-white quentes. Fundos com textura de papel tem paletas que combinam.

Receita: bordas deformadas com feDisplacementMap

O ruído também pode mover pixels. O feDisplacementMap lê o ruído e desloca cada pixel da origem em até scale unidades, o que dá linhas feitas à mão, texto derretendo e água ondulada.

html
<filter id="wobble">
  <feTurbulence type="turbulence" baseFrequency="0.02" numOctaves="2" seed="3" result="warp" />
  <feDisplacementMap in="SourceGraphic" in2="warp" scale="10" xChannelSelector="R" yChannelSelector="G" />
</filter>

<text x="40" y="120" font-size="96" font-weight="700" filter="url(#wobble)">Wavy</text>
Um scale de 4 a 12 parece feito à mão. Acima de 30, a origem fica irreconhecível. Mude o seed para obter uma ondulação diferente.

Texto continua sendo texto

Texto SVG com filtro continua sendo texto de verdade, então pode ser selecionado e lido por leitores de tela. Mantenha as deformações sutis em tudo que as pessoas precisam ler.

Desempenho e comportamento nos navegadores

O feTurbulence funciona em todos os navegadores atuais, mas em muitos é calculado na CPU e seu custo cresce com a área e as oitavas. Um bloco de 240 pixels é calculado uma vez e repetido, o que é barato. Um filtro em tela cheia num elemento vivo é recalculado sempre que o elemento é redesenhado, o que pode ser lento em celulares.

  1. 1

    Repita em blocos

    Renderize o ruído num pequeno SVG com stitchTiles="stitch" e repita-o como imagem de fundo.

  2. 2

    Mantenha poucas oitavas

    Um numOctaves acima de 4 raramente acrescenta detalhe visível em tamanhos de granulado e custa a cada vez.

  3. 3

    Evite animá-lo

    Animar baseFrequency ou seed força um recálculo completo a cada quadro. Desloque um bloco estático com uma transformação.

  4. 4

    Confira os dois temas

    Um granulado que fica bom no escuro pode parecer sujo no claro. Ajuste a opacidade por tema, como em degradês para modo escuro.

Para uma versão só com CSS da mesma ideia, veja CSS noise texture. E se você quer granulado sem ajustar filtros, todo Mark do Gradiently traz o próprio granulado e material como parte da sua receita, renderizado ao vivo em qualquer tamanho que você desenhar.

Granulado, não ofuscante.
Ruído fino sobre um degradê profundo

Um Mark com granulado embutido na superfície. O ruído faz parte da receita, então mantém a mesma escala em todos os tamanhos.

Encontre um gradiente só seu

Explore milhares de Marks, crie com qualquer um deles de graça e reserve o que tem a sua cara.

Explorar o Mercado

Perguntas frequentes

O que o feTurbulence faz no SVG?

Gera ruído Perlin dentro de um filtro SVG. Você pode mostrar o ruído diretamente como textura ou passá-lo a outros primitivos, como feColorMatrix, feDiffuseLighting ou feDisplacementMap.

Que baseFrequency usar para granulado?

Tente de 0,7 a 0,9 com type fractalNoise e três oitavas para um granulado fino de filme. Valores mais baixos dão detalhes maiores e mais suaves.

Qual é a diferença entre fractalNoise e turbulence?

O fractalNoise é suave e uniforme, bom para granulado e papel. O turbulence tem vincos mais agudos e serve para efeitos de mármore, fogo ou água.

Por que meu ruído SVG tem emendas visíveis quando repetido?

Defina stitchTiles="stitch" no feTurbulence e ajuste a região do filtro para o bloco inteiro com x, y, width e height, para as bordas coincidirem e nenhuma borda suave aparecer.

O feTurbulence é lento?

Pode ser em áreas grandes ou quando animado, porque recalcula o ruído a cada redesenho. Um pequeno bloco estático repetido como fundo é barato.

Compartilhar este guia

Escrito pelo GradientlyConta verificada do Gradiently

A equipe por trás do Gradiently, uma ferramenta de design criada em torno dos Marks: gradientes vivos que fazem tudo o que você cria ter a sua cara.

Ver nosso perfil

Nesta página

O que cada atributo do feTurbulence fazReceita: granulado sobre um degradêReceita: textura de papelReceita: bordas deformadas com feDisplacementMapDesempenho e comportamento nos navegadores

Compartilhar este guia

A seguir em CSS e web

Mesh gradient em SVG: o que funciona hoje

Continue lendo

Todos os guias de CSS e web
Gradientes

Gradientes com grão: por que um pouco de ruído deixa a cor mais cara

6 min de leitura

Um gradiente limpo parece um padrão de tela. O mesmo gradiente com uma camada fina de grão parece uma impressão, um fotograma de filme ou uma parede pintada. Veja por quê, quanto usar e como fazer.

CSS e web

Textura de ruído em CSS: grão em gradientes com SVG

5 min de leitura

Uma camada leve de ruído esconde o banding e faz a cor lisa da tela parecer impressão ou filme. Aqui está o filtro SVG por trás disso, ajustado e pronto para colar.

Gradientes

Por que o seu gradiente tem listras e como corrigir o banding

6 min de leitura

Você fez um gradiente liso e ele voltou listrado. Isso é banding, e ele tem uma causa simples e um punhado de correções confiáveis. Aqui está a aritmética e depois as curas.

Encontre o visual que é só seu.

Cada Mark é um fundo vivo com um único dono. Experimente um Mark ainda disponível e reserve o seu quando sentir que é ele.

Começar a criar

Verificar um certificado

Digite o número de um certificado ou o código de um Mark para ver quem é o dono.

Funciona com ChatGPT e Claude

Peça um design à sua IA. Ela cria no seu Mark, pronto para editar.

ChatGPTClaude
Como conectar

Produto

  • Mercado
  • Explorar
  • Preços
  • Certificados

Aprender

  • Guia prático
  • Central de ajuda
  • Novidades

Desenvolvedores

  • Visão geral
  • ChatGPT e Claude
  • Referência da API
  • Chaves de API

Empresa

  • Sobre
  • Fale conosco
  • Entrar

Jurídico

  • Termos
  • Privacidade
  • Reembolsos
  • Proteção do Mark
  • Cookies
  • Todas as políticas
Passe pelas letras. Cada uma veste um Mark de verdade.Toque em uma letra para ver o Mark dela.Um nome. Dez Marks dentro dele.
© 2026 Gradiently