Guias
30 de agosto de 2026

Por que os ícones somem quando você importa uma página web para o Figma

Chega tudo menos os ícones. Caixas vazias, quadrados pretos ou retangulozinhos onde estavam as setas. São quatro causas, e qual delas é a sua decide se dá para consertar.

Você leva uma página para o Figma e chega tudo menos os ícones. Onde estavam as setinhas, a lupa e os indicadores de link externo, há quadrados vazios, manchas pretas ou nada.

Não é um bug só. Na web, ícones são desenhados de quatro maneiras completamente diferentes, e cada uma quebra de um jeito. Saber qual você tem na frente diz se dá para consertar e como.

As quatro formas de desenhar ícones na web, cada uma ao lado da sua falha típica de importação: SVG inline sobrevive, sprites viram caixas vazias, fontes de ícones viram quadrados sem glifo e máscaras CSS viram quadrados de cor sólida.
A mesma página, quatro técnicas de ícone. À esquerda de cada par, o que o navegador mostra; à direita, o que produz um conversor que não trata aquela técnica.

Os quatro tipos e como cada um falha

1. SVG inline

O caso fácil. O ícone está escrito direto no HTML como um elemento <svg> com os paths ali dentro. Qualquer conversor que leia o DOM enxerga a geometria e entrega um vetor para o Figma.

Quando falha, geralmente é porque o conversor achatou alguma coisa: uma referência <use> a um símbolo definido em outro lugar, um filter de CSS, ou um preenchimento currentColor que fica sem cor ao sair da cascata.

2. Sprites SVG

Um arquivo guarda todos os ícones como <symbol>, e cada lugar onde um ícone aparece contém apenas uma referência.

<svg class="icon"><use href="/icons.svg#chevron-down" /></svg>

Eficiente na web, invisível para um conversor ingênuo. O elemento no DOM não tem paths. Lido ao pé da letra, sai um <svg> vazio, e é por isso que sprites chegam tantas vezes como caixas em branco do tamanho certo.

Resolver significa seguir a referência, buscar o arquivo de sprites, achar o símbolo pelo id e embutir a geometria. E se o sprite estiver em outra origem, essa busca precisa antes ser permitida.

3. Fontes de ícones

O ícone é um caractere numa fonte. Font Awesome, Material Icons e qualquer fonte de ícones interna funcionam assim: um elemento com uma classe, um pseudo-elemento ::before e uma propriedade content com um codepoint da área de uso privado do Unicode.

.fa-search::before { content: "\f002"; }

Duas coisas dão errado. Primeiro, o ícone mora num pseudo-elemento, que não está no DOM: por mais que você percorra a árvore de elementos, ele não aparece. Segundo, se um conversor até capturar como texto, ele chega no Figma como o caractere literal, e sem a fonte de ícones instalada o Figma desenha o que tiver de reserva: uma caixa vazia ou um glifo qualquer.

Daí vem o sintoma clássico de uma página importada cheia de retangulozinhos onde deveriam estar os ícones.

4. Ícones com máscara CSS

Merece um tópico próprio porque vem se tornando comum e falha de um jeito que parece sucesso. O elemento não tem conteúdo nenhum; tem uma cor de fundo e uma máscara.

.icon {
  background-color: currentColor;
  -webkit-mask-image: url(/icons/search.svg);
  mask-size: contain;
}

A forma mora na imagem de máscara e a cor mora no elemento. Um conversor que lê o fundo obtém um retângulo sólido na cor do ícone. Por isso esses chegam como quadrados pretos ou coloridos em vez de nada: a cor está certa e a forma sumiu.

Sites de documentação feitos com VitePress usam bastante esse padrão. Foi assim que topamos com isso: alguém avisou que num site de doc todos os ícones tinham sido importados como quadrados pretos.

Por que os conversores perdem esses casos

Porque cobrir os quatro significa fazer quatro coisas diferentes, e três delas exigem mais do que ler o DOM.

Um conversor que só percorre o DOM e copia o que encontra acerta o primeiro caso e falha em silêncio nos outros. É o comportamento comum, não a exceção.

Como saber qual é o seu caso

Abra a página, clique com o botão direito no ícone, inspecionar. Trinta segundos resolvem.

O que aparece no inspetorTipoComo costuma falhar
<svg> com <path> dentroSVG inlineGeralmente ok
<svg> com <use href="…#id">SpriteCaixa vazia
<i> ou <span> com classe de ícone e sem filhosFonte de íconesRetângulo de glifo ausente
Elemento com mask-image nos estilos computadosMáscara CSSQuadrado de cor sólida

O que o Snapture faz com cada um

Os quatro são tratados, e vale ser específico, porque «damos suporte a ícones» toda ferramenta diz.

Na medição publicada na página de medições, a home do Linear produziu 215 nós vetoriais e a da Stripe 153. Quase tudo isso é trabalho de ícone, e é aí que se decide a diferença entre um arquivo editável e um arquivo furado.

O teste rápido para qualquer conversor. Ache uma página que use fonte de ícones ou máscaras CSS — a maioria dos sites de doc em VitePress ou Docusaurus serve — e importe. Se os ícones voltarem como retângulos ou quadrados coloridos, a ferramenta lê o DOM e para por aí.

Se os ícones já estão quebrados num arquivo

Não há conserto para um quadrado preto rasterizado; a informação da forma nunca entrou no arquivo. Reimporte com uma ferramenta que resolva o seu caso.

A única exceção são as fontes de ícones. Se entraram como caracteres de texto e você tem a fonte instalada, o Figma vai desenhar certo na sua máquina — mas quebra para qualquer um que abrir sem essa fonte. Vale reimportar mesmo assim, em vez de entregar um arquivo que só funciona com você.

Teste nas suas próprias páginas Cinco capturas grátis com tudo incluído. Sem cartão, sem cadastro.

English · 한국어 · 日本語 · 简体中文 · 繁體中文 · Español · Português · Français · Deutsch · Русский · Italiano · Bahasa Indonesia

Relacionado

Por que o Auto Layout do Figma desalinha depois de importar uma página web
Início Guias O que produz Suporte