search

Found

info Visão geral

Calcula a caixa delimitadora via getBBox com fallback em rect/circle, reescreve o viewBox e remove width/height.

📘 Como usar

  1. Colar o código-fonte do SVG no campo de entrada
  2. Visualizar o novo viewBox calculado e a pré-visualização do vetor ajustado

Recortador de viewBox SVG

Cálculo automático
-
No Preview
Copiado!
Article

Cortador e Ajustador Automático de viewBox SVG | Otimizar e Cortar SVGs

Ferramenta voltada para desenvolvedores front-end e designers de UI/UX que precisam remover espaços em branco desnecessários de arquivos SVG. O script calcula automaticamente a área de renderização ideal (Bounding Box) e reescreve a tag principal, tornando o vetor totalmente responsivo.

💡 Sobre a Ferramenta

Esta utilidade resolve o problema comum de SVGs exportados de softwares de design (como Figma ou Illustrator) que possuem "artboards" maiores que o desenho real, dificultando o alinhamento no CSS.

  • Cálculo preciso via DOM: Analisa os nós internos do SVG e utiliza métodos nativos (como getBBox()) para encontrar as coordenadas exatas e as dimensões (largura e altura) da arte renderizada.
  • Refatoração para layouts responsivos: Remove automaticamente os atributos estáticos width e height da tag <svg>, inserindo apenas o novo atributo viewBox. Isso permite que o tamanho do ícone seja controlado puramente via CSS.
  • Privacidade total (Client-side): Ideal para lidar com assets de projetos corporativos sob NDA (Acordo de Confidencialidade). Os dados não são enviados para nenhum servidor e todo o processamento ocorre localmente no seu navegador.
  • Feedback visual em tempo real: Apresenta instantaneamente os valores do novo viewBox, o código minificado pronto para uso e um preview com um grid de fundo (padrão xadrez) para evidenciar a eliminação de margens.

🧐 Perguntas Frequentes

Q. O que significam os quatro valores gerados para o viewBox?

A. O atributo adota o formato min-x min-y width height. Os dois primeiros valores (min-x e min-y) estabelecem a coordenada do canto superior esquerdo onde a renderização do vetor começa, corrigindo o deslocamento (offset). Os dois últimos (width e height) representam a largura e altura exatas que os elementos visuais ocupam. Trabalhar com esses valores gerados (com precisão de duas casas decimais) é o padrão ideal para garantir a proporção (aspect ratio) perfeita.

Q. Por que o código de saída não inclui mais "width" e "height"?

A. No desenvolvimento web moderno, manter dimensões fixas no código inline do SVG prejudica a fluidez do layout. A prática recomendada (especialmente em ambientes que usam Tailwind CSS, Styled Components ou frameworks baseados em componentes) é delegar o dimensionamento ao CSS, usando propriedades genéricas. O viewBox por si só fornece as informações proporcionais necessárias para que os navegadores renderizem o vetor sem distorção em qualquer resolução.

📚 Curiosidades: A Ciência por Trás do viewBox e Desafios de Front-end

Na rotina acelerada das squads de desenvolvimento no Brasil, gastar tempo ajustando manualmente as dimensões internas de ícones vetoriais é um desperdício de produtividade. Muitas vezes, os desenvolvedores recebem do time de design um SVG de um ícone de 24x24px, mas o desenho real ocupa apenas uma área de 16x16px no centro. Ao tentar alinhar esse ícone junto a um texto em botões, o espaço "fantasma" causa inconsistências de layout.

O motor desta ferramenta utiliza a interface SVGGElement.getBBox(), uma API poderosa dos navegadores modernos que retorna a menor caixa delimitadora possível capaz de conter todos os elementos gráficos filhos. Como os testes automatizados (Headless browsers) ou certas renderizações fora da tela (off-screen) às vezes falham ao calcular o getBBox(), esta ferramenta emprega um mecanismo inteligente de fallback que lê as propriedades geométricas brutas (como cx, cy, r de círculos, e x, y, width de retângulos) iterativamente, garantindo consistência e robustez na extração da área desenhada. Adotar SVGs com viewBox perfeitamente recortado é o alicerce para construir interfaces escaláveis e manuteníveis.