SW Core
SW Core / CSS / Zoom

Zoom CSS

Foto que cresce de leve quando o mouse passa, ou um elemento em escala fixa (metade, 10% maior…) — uma classe só.

O que é

O zoom é o efeito de vitrine: a pessoa passa o mouse na foto do produto e ela aproxima um pouquinho, convidando ao clique. Com zm-hov isso acontece sozinho, com transição suave. As classes zm-50 a zm-150 deixam o elemento parado numa escala fixa (menor ou maior) — útil para destacar um item ou diminuir um ícone decorativo.

É só CSS. O elemento é ampliado "por cima" dos vizinhos, sem empurrar ninguém nem mexer no resto da página. Para a foto crescer dentro da moldura (sem vazar), a moldura em volta precisa cortar o que sobra: ov-hi no pai.

Quando usar

  • Foto de produto, imóvel ou portfólio que aproxima no hover: zm-hov na foto + ov-hi na moldura.
  • Card inteiro que cresce um pouco quando o mouse passa: zm-hov no card.
  • Destacar um item numa fileira (o plano recomendado um pouco maior): zm-110.
  • Diminuir um elemento decorativo sem mudar o tamanho real dele: zm-75 ou zm-50.

Comece aqui

  1. 1

    Coloque o SW Core no <head>. As classes de zoom estão no arquivo principal.

    <link rel="stylesheet" href="swcore/swcore.min.css">
  2. 2

    Moldura com ov-hi (corta o que sobra) e a foto com zm-hov. Passe o mouse.

    Morangos frescos
    <div class="ar-4-3 ov-hi r-m">
      <img src="/morangos.jpg" alt="Morangos frescos" class="zm-hov media-fill">
    </div>

Todas as variações

Cada quadro abaixo é o componente de verdade, rodando. O código embaixo é exatamente o que está no quadro: copie e cole.

1. Zoom ao passar o mouse

zm-hov aumenta 5% quando o mouse entra e volta suave quando sai. Passe o mouse nos quadros.

Prato do dia
zm-hov na foto, moldura com ov-hi (fica dentro) <div class="ar-4-3 ov-hi r-m"> <img src="/prato.jpg" alt="Prato do dia" class="zm-hov media-fill"> </div>
Prato do dia
zm-hov sem ov-hi no pai (a foto vaza da moldura) <div class="ar-4-3 r-m"> <img src="/prato.jpg" alt="Prato do dia" class="zm-hov media-fill"> </div>
Plano Loja

R$ 129/mês

zm-hov no card inteiro <div sw-card="sha" class="zm-hov"> <div class="sw-card-bdy"> <strong>Plano Loja</strong> <p class="m-0 t-mut t-p">R$ 129/mês</p> </div> </div>

2. Escala fixa

O elemento fica parado naquele tamanho. O espaço que ele ocupa na página não muda — só o desenho encolhe ou cresce a partir do centro.

Oferta
zm-50 — metade <span class="zm-50" sw-badge="pri xg">Oferta</span>
Oferta
zm-75 — três quartos <span class="zm-75" sw-badge="pri xg">Oferta</span>
Oferta
zm-100 — tamanho original <span class="zm-100" sw-badge="pri xg">Oferta</span>
Oferta
zm-110 — 10% maior <span class="zm-110" sw-badge="pri xg">Oferta</span>
Oferta
zm-125 — 25% maior <span class="zm-125" sw-badge="pri xg">Oferta</span>
Oferta
zm-150 — 50% maior <span class="zm-150" sw-badge="pri xg">Oferta</span>

Tabela de opções

PalavraO que fazExemplo
No hover
zm-hovCresce 5% quando o mouse passa, com transição suave (0,3 s). Ponha ov-hi no pai para não vazar.<img class="zm-hov">
Escala fixa
zm-50Metade do tamanho.<div class="zm-50">
zm-75Três quartos do tamanho.<div class="zm-75">
zm-100Tamanho original. Serve para desligar outra escala fixa.<div class="zm-100">
zm-11010% maior.<div class="zm-110">
zm-12525% maior.<div class="zm-125">
zm-15050% maior.<div class="zm-150">

Receitas prontas — usos reais

Situações que aparecem em quase todo site. Copie a que servir.

Vitrine de loja: só a foto aproxima, o texto fica parado Ao vivo
Sapato social
Sapato social

R$ 239,00

Kit viagem
Kit viagem

R$ 149,00

Relógio
Relógio

R$ 389,00

<div sw-card>
  <div class="ar-4-3 ov-hi">
    <img src="/sapato.jpg" alt="Sapato social" class="zm-hov media-fill">
  </div>
  <div class="sw-card-bdy">
    <strong>Sapato social</strong>
    <p class="m-0 t-mut t-p">R$ 239,00</p>
  </div>
</div>
Tabela de planos com o recomendado em destaque Ao vivo
Básico

R$ 49/mês

Mais escolhido

Loja

R$ 129/mês

Completo

R$ 199/mês

<div sw-card>…Básico…</div>
<div sw-card="pri sha" class="zm-110">
  <div class="sw-card-bdy t-ct">
    <span sw-badge="pri">Mais escolhido</span>
    <p class="m-0 mt-2"><strong>Loja</strong></p>
    <p class="m-0 t-mut">R$ 129/mês</p>
  </div>
</div>
<div sw-card>…Completo…</div>
Galeria de portfólio com zoom em todas as fotos Ao vivo
Trabalho 1
Trabalho 2
Trabalho 3
Trabalho 4
<div class="l l-4 gap-3">
  <div class="ar-sq ov-hi r-m">
    <img src="/trabalho-1.jpg" alt="Trabalho 1" class="zm-hov media-fill">
  </div>
  <!-- …uma moldura por foto… -->
</div>

Precisa de quê

  • swcore.min.css — todas as classes desta página.

Cuidados — erros comuns

  • Foto "vazando" da moldura no hover: faltou ov-hi no pai. O zm-hov vai na foto, o corte vai na moldura em volta dela.
  • zm-hov junto de uma escala fixa soma: zm-110 zm-hov fica 10% maior parado e cresce mais 5% no hover.
  • Escala fixa não muda o espaço ocupado: um zm-150 fica por cima dos vizinhos, e um zm-50 deixa um buraco em volta. Deixe folga (gap) ao redor.
  • Foto pequena ampliada fica borrada. Use uma imagem com resolução para o tamanho final.
  • No celular não existe "passar o mouse": o zm-hov só aparece no toque, rapidamente. Não coloque informação importante que só aparece no hover.

O que ele não faz

  • O zoom no hover é fixo em 5% e 0,3 s. Não há classe para outra intensidade.
  • O zoom usa a propriedade scale, separada do transform: funciona junto de abs-mid, pin-mid, do botão sw-btn (que sobe no hover) e das animações, sem um apagar o outro.