Tutorial — direto para a área de transferência
Como copiar um SVG de um site
Às vezes você não quer arquivo nenhum — quer o markup no editor, ou a figura numa mensagem do Slack. Os dois são um clique, e são cliques diferentes.
Assista — 19 segundos
As duas áreas de transferência, numa rodada
Repare na linha de status mudando entre os dois cliques — o popup diz exatamente qual das duas áreas de transferência você acabou de preencher.
O que a gravação mostra
- Abra o popup na página que você está lendo
- Chegue no ícone que você quer
- Copiar código — o markup, direto para a área de transferência
- Cole num componente e simplesmente funciona
- Ou Copiar imagem — um PNG, para documentos e chats
- Duas áreas de transferência, um ícone. Sem arquivo em disco em nenhum dos casos.
Escolha o certo
Copiar código e Copiar imagem não são alternativas — são coisas diferentes
Eles ficam um ao lado do outro no popup e vale deixar claro o que cada um põe na sua área de transferência, porque colar o errado são cinco minutos de confusão.
- Copiar código põe o markup na área de transferência como texto:
<svg viewBox="0 0 24 24">…</svg>, sanitizado, com o namespacexmlnsjá adicionado. Cole num componente React, num template Vue, num arquivo HTML ou num editor de texto. Cole no Slack e você verá uma parede de sinais de menor e maior, porque é texto. - Copiar imagem rasteriza o vetor para um PNG e põe isso na área de transferência como figura. Cole no Google Docs, Notion, Figma, Slack, num e-mail — em qualquer lugar que aceite imagem colada. Ele é renderizado em 2× no mínimo para não chegar como uma miniatura borrada.
Regra prática: se o destino é código, use Copiar código. Se o destino é um documento, use Copiar imagem.
Copiando um ícone
Os dois caminhos compartilham os dois primeiros passos.
- Abra o popup e ache o ícone. Clique no botão da barra de ferramentas e percorra com Ant. e Próx. até a prévia mostrar o que você quer.
- Para código, aperte Copiar código. A linha de status diz Código SVG copiado para a área de transferência. Você agora tem markup sanitizado, com namespace incluído, pronto para colar num componente.
- Para uma figura, aperte Copiar imagem. A linha de status diz Imagem PNG copiada para a área de transferência. O vetor é renderizado na sua máquina em 2× ou melhor e posto na área de transferência como imagem.
- Cole onde ele vai. Markup no seu editor; o PNG no seu documento, apresentação ou chat. Nada foi escrito em disco em nenhum dos casos.
O que já foi feito com o markup copiado
Essa é a parte que torna isso melhor do que copiar do DevTools. Antes de chegar à sua área de transferência, o markup passa pelo mesmo sanitizador que todo download usa: o namespace xmlns é adicionado se estava faltando, para o fragmento se sustentar como documento válido; e elementos script, atributos de manipulador de evento e referências externas são removidos, para você não colar o comportamento da página de outra pessoa no seu código. O que você cola são as formas, e só as formas.
Colando num componente
Duas coisinhas vão te morder no JSX. Atributos como stroke-width e fill-rule precisam virar strokeWidth e fillRule; a maioria dos editores e codemods faz isso por você. E se o ícone usa currentColor — a maioria usa — ele vai pegar a cor do texto que estiver em escopo, que normalmente é exatamente o que você quer. Se renderizar preto e você esperava cor, é por isso: a cor morava no CSS da página, não na forma.
Por que a área de transferência não precisa de permissão extra
Os dois botões escrevem na área de transferência de dentro de um clique que você deu, numa página de extensão em foco. É exatamente a condição em que os navegadores permitem escrita na área de transferência, então a extensão não pede permissão nenhuma — ela só usa o gesto que você já deu.
- Copiar código
- Markup sanitizado, com
xmlnsincluído — para editores e componentes. - Copiar imagem
- Um PNG em 2× ou melhor — para documentos, apresentações, chats e e-mail.
- Sanitização
- Scripts, manipuladores e referências externas são removidos antes de qualquer uma das cópias.
- Permissões
- Nenhuma permissão de área de transferência é pedida — ela pega carona no clique que você deu.
Vale saber
Perguntas frequentes
Qual a diferença entre Copiar código e Copiar imagem?
Copiar código põe o markup SVG na área de transferência como texto, para colar num editor ou componente. Copiar imagem rasteriza para PNG e põe isso na área de transferência como figura, para colar em documentos, apresentações e chats.
Colei no Slack e veio uma parede de código.
Você usou Copiar código, que é texto. Use Copiar imagem — ela põe um PNG na área de transferência, e o Slack cola como figura.
É seguro colar o markup copiado no meu código?
Ele é sanitizado antes: elementos script, atributos de manipulador de evento e referências externas são removidos, e o namespace xmlns é adicionado. Você está colando formas, não o comportamento da página de outra pessoa.
Por que o ícone colado está preto no meu app?
Porque ele usa currentColor, então herda a cor do CSS em vez de carregar a própria. Defina uma cor no elemento ou no pai dele e o ícone acompanha.
Preciso conceder permissão de área de transferência?
Não. Os dois botões escrevem a partir de um clique seu numa página de extensão em foco, algo que os navegadores permitem sem permissão extra, então nenhuma é pedida.
Duas áreas de transferência, nenhum arquivo
Markup para o editor, um PNG para o documento. Escolha um botão.