PerfectVector
Por Irene Kim

Evite saltos do logo SVG reservando espaço na página

Reserve espaço para logos SVG com width e height ou proporção CSS. Compare o movimento real no navegador e confira a imagem entregue e o layout responsivo.

8 min de leitura
Nesta página

Um logo SVG pode continuar nítido e ainda empurrar o conteúdo próximo quando aparece. Para um SVG externo carregado por um elemento HTML de imagem, dê ao navegador informação suficiente para reservar sua caixa antes de conhecer as dimensões intrínsecas do arquivo. Atributos width e height correspondentes são um bom ponto de partida; o CSS pode tornar a caixa responsiva.

Isso corrige um problema de layout da página. Não muda caminhos do logo nem remove espaço vazio dentro de sua área de desenho. Mantenha um vetor original utilizável. Se a única origem é PNG ou JPG, recupere a arte editável separadamente e dê ao SVG entregue um lugar intencional na página.

Separe o desenho da caixa reservada

Há três dimensões relacionadas para conferir:

ItemO que descreveOnde inspecionar
Arte SVG e viewBoxRetângulo de coordenadas de origem e desenho internoCódigo SVG ou editor vetorial
Dimensões ou proporção naturais da imagem carregadaInformação obtida pelo navegador a partir da imagemElemento de imagem carregado
Caixa de layout HTMLEspaço que a página oferece à imagemEstilos calculados e limites do elemento

Um viewBox="0 0 300 100" descreve um retângulo de origem 3:1. Em arquivo externo, essa informação está dentro do recurso que a página precisa buscar. Isso difere de colocar uma proporção correspondente no HTML ao redor antes de o recurso estar disponível.

A referência de elemento de imagem da MDN recomenda ambos os atributos para fornecer espaço antes do carregamento. A orientação do Google sobre deslocamento de layout também identifica dimensões ausentes de imagens como causa comum de movimento e descreve reservar espaço com dimensões ou proporção CSS.

Se o problema é como o desenho se ajusta a um viewport já estabelecido, use o guia de ajuste de proporção SVG. Reservar a caixa e ajustar a arte a ela são verificações distintas.

Comece com atributos width e height correspondentes

Para uma marca 3:1, uma entrega simples pode ser:

<img
  class="brand-logo"
  src="/assets/brand-logo.svg"
  width="300"
  height="100"
  alt="Example brand"
>
.brand-logo {
  display: block;
  width: 300px;
  max-width: 100%;
  height: auto;
}

Os atributos fornecem a proporção pretendida. O CSS define a largura exibida e permite redução proporcional quando o contêiner fica mais estreito. Não obrigam o logo a ocupar 300 pixels físicos de tela em todo dispositivo.

Use as dimensões da área de desenho real da imagem, incluindo áreas livres intencionais. Não coloque os limites das letras visíveis se o SVG entregue tem retângulo de origem maior. Essa divergência faz a reserva inicial discordar do recurso carregado.

Os valores precisam coincidir porque a proporção natural pode assumir o controle quando disponível. Uma proporção inicial errada ainda pode causar correção de tamanho depois. Confira marcação e arquivo entregue ao substituir o logo, em vez de presumir que o mesmo nome implica a mesma geometria.

Use uma proporção CSS quando o layout define o espaço

Uma proporção CSS é útil quando um componente define uma forma específica de caixa. Para uma imagem proporcional 3:1:

.brand-logo {
  display: block;
  width: 300px;
  max-width: 100%;
  height: auto;
  aspect-ratio: 3 / 1;
}

A referência aspect-ratio da MDN explica que a propriedade participa do dimensionamento automático. Pelo menos uma dimensão deve continuar automática para a proporção preferida afetar os cálculos. Se largura e altura são fixas, esses valores explícitos são a primeira coisa a inspecionar.

Escolha o comportamento pretendido quando a proporção de origem difere. Um espaço de formato permanente pode precisar de contêiner próprio e regra deliberada de ajuste da imagem. Um logo proporcional normalmente deve usar a proporção correta da origem. Evite forçar um logo quadrado na antiga geometria 3:1 da assinatura apenas para manter o CSS anterior.

A forma auto 3 / 1 tem outro significado: pode oferecer proporção provisória para um elemento substituído e depois usar a proporção natural quando disponível. É útil quando ambas coincidem; não garante que dimensões conflitantes nunca moverão nada.

O que mostrou nosso exemplo controlado no navegador

Criamos um SVG original de 300 × 100 contendo marca em F, ponto e seta. Três imagens HTML inicialmente não tinham URL de origem. Após o primeiro layout, um botão atribuiu o mesmo SVG local às três. Isso tornou os estados anterior e posterior observáveis sem fingir medir uma rede lenta.

Todas usaram largura CSS de 300px e altura automática. Uma não tinha proporção reservada, outra tinha width="300" height="100" e outra aspect-ratio: 3 / 1.

CasoAltura antesAltura depoisMovimento do texto seguinte
Sem proporção reservada0px100px100px para baixo
Dimensões HTML correspondentes100px100px0px
Proporção CSS correspondente100px100px0px
Comparação no navegador mostrando conteúdo descendo 100 pixels quando um SVG aparece sem proporção reservada, enquanto dimensões HTML e proporção CSS correspondentes mantêm a posição
Marcadores tracejados registram a posição anterior do texto. Os três SVGs carregados têm caixas idênticas de 300 por 100 pixels; suas reservas iniciais de espaço diferem.

A coordenada superior do texto mudou de 358.1875 para 458.1875 no caso sem reserva. Permaneceu em 458.1875 nos dois reservados. Cada imagem carregada informou dimensões naturais de 300 × 100, e sua largura e altura exibidas também permaneceram em 300 × 100.

São medidas reais de posição em uma página controlada e um navegador. O experimento usou atribuição manual de URL. Não registrou rastreamento com rede limitada, pontuação de Core Web Vitals ou comportamento entre navegadores. Em particular, 100px de movimento é distância, não uma pontuação CLS.

Confira o componente entregue, não apenas o arquivo

Use o posicionamento real do logo para verificar a correção:

  1. Confirme a origem. Abra o SVG entregue e confira a proporção da área de desenho. Mantenha um original inalterado para comparar.
  2. Inspecione o dimensionamento inicial. Veja se HTML ou CSS fornecem a caixa pretendida antes de as dimensões da imagem estarem disponíveis.
  3. Compare posições de elementos. Observe um título ou item de navegação próximo, não apenas a nitidez do logo.
  4. Confira após carregar. Verifique largura, altura e proporções finais em relação à reserva.
  5. Teste contêineres estreitos e largos. As regras responsivas devem reduzir proporcionalmente e manter controles vizinhos utilizáveis.

Para conferir o carregamento, recarregue a página real com cache desativado e configuração de rede adequada nas ferramentas de desenvolvedor. Isso testa outra condição, diferente do nosso botão. Se a imagem usa carregamento adiado, role até essa posição também.

Se ainda houver movimento, identifique o que mudou naquele momento. Troca de fonte, banner inserido, linha de navegação que cresce ou outra imagem podem mover o logo mesmo com sua caixa estável. O guia web.dev separa dimensionamento de imagem de outras causas; reservar um logo não é uma auditoria completa de desempenho do site.

Separe outros problemas próximos de SVG

Uma caixa de imagem inalterada com pequena faixa embaixo pode ter um problema de linha de texto inline. Inspecione display e alinhamento vertical separadamente das dimensões reservadas. Mover um elemento na linha e alocar espaço para uma imagem indisponível tratam de momentos diferentes do layout.

Um SVG que fica no lugar, mas mostra grandes margens vazias, precisa de uma verificação da área de desenho ou do ajuste da imagem. Recortar a origem para removê-las muda sua proporção, portanto atualize a reserva depois. A explicação de SVG inline e imagem também ajuda a identificar se você estiliza elementos do documento ou uma imagem externa.

Se a marca original só existe em pixels, use o vetorizador de logos do PerfectVector para preparar formas editáveis candidatas. Compare silhueta e aberturas com a origem antes de escolher a área de desenho da imagem a entregar; a ficha de qualidade de vetorização cobre essa verificação geométrica. A vetorização não configura dimensões HTML, proporção CSS ou comportamento de carregamento do site.

FAQ

O viewBox SVG impede sozinho deslocamentos de layout? Em uma imagem externa, o viewBox está dentro do recurso buscado. Forneça ao HTML informações correspondentes de tamanho para reservar espaço antes das dimensões intrínsecas estarem disponíveis e verifique o componente final.

Um logo SVG pode ser responsivo mantendo width e height? Sim. Atributos correspondentes podem oferecer a proporção pretendida enquanto CSS controla a largura exibida e mantém altura automática. Confira se arquivo e regras responsivas preservam as proporções.

Um SVG nítido garante uma boa pontuação CLS? Não. Nitidez descreve a renderização da arte. CLS trata da instabilidade de layout na página, que também pode envolver fontes, conteúdo inserido e outras mídias. A distância de movimento de um exemplo controlado não é uma pontuação CLS.

Fontes

  1. web.dev — Otimizar Cumulative Layout Shift — Dimensões ausentes, reserva de espaço, outras causas e diferença entre movimento e a métrica CLS.
  2. MDN — Elemento HTML de imagem — Atributos de largura e altura, dimensões naturais e layout da imagem.
  3. MDN — aspect-ratio — Dimensionamento automático e diferença entre proporção especificada e forma auto mais proporção.

Só tem um logo raster? Prepare um SVG editável com o PerfectVector, verifique os contornos e a área de desenho e reserve espaço correspondente na página que irá exibi-lo.

Mais do blog

PerfectVector

Transforme seu logo ou arte em um
SVG limpo e editável

Sem cartão de crédito