Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] px x em x vw x etc

Não entendo muito bem qual o critério para usar em, px ou vw como unidade de tamanho para estilização do .css, se tudo no Figma está em px.

1 resposta
solução!

Oi Artur!

Entendo sua dúvida, e é algo que muitos desenvolvedores enfrentam ao trabalhar com CSS. Vamos lá:

px (Pixels)

  • Definição: Unidade fixa que representa um ponto na tela.
  • Uso: Ideal para quando você quer um tamanho fixo e preciso, como bordas finas, ícones ou elementos que não precisam ser responsivos.
  • Exemplo: width: 200px;

em

  • Definição: Unidade relativa ao tamanho da fonte do elemento pai.
  • Uso: Útil para criar layouts flexíveis e responsivos. Por exemplo, se o tamanho da fonte do elemento pai mudar, os elementos filhos que usam em se ajustarão proporcionalmente.
  • Exemplo: Se o tamanho da fonte do elemento pai é 16px, 1em será igual a 16px. Então, width: 2em; será igual a 32px.

vw (Viewport Width)

  • Definição: Unidade relativa à largura da viewport (janela do navegador). 1vw é igual a 1% da largura da viewport.
  • Uso: Excelente para layouts responsivos que se ajustam ao tamanho da tela do usuário.
  • Exemplo: width: 50vw; significa que o elemento terá 50% da largura da viewport.

Critério de Escolha

  • Figma em px: Quando o design está em pixels no Figma, você pode começar usando px para manter a precisão. No entanto, para tornar seu layout responsivo, é interessante converter algumas dessas unidades para em ou vw.
  • Responsividade: Para elementos que precisam ser responsivos, em e vw são mais adequados. em é ótimo para tamanhos de texto e espaçamentos que devem escalar com o tamanho da fonte. vw é excelente para larguras e alturas de elementos que devem se ajustar ao tamanho da tela.

Exemplo Prático

Se você tem um botão no Figma com largura de 200px e deseja que ele seja responsivo:

/* Usando px */
button {
  width: 200px;
}

/* Usando vw para responsividade */
button {
  width: 20vw; /* Aproximadamente 20% da largura da viewport */
}

/* Usando em para responsividade relativa ao tamanho da fonte */
button {
  width: 12.5em; /* Se o tamanho da fonte for 16px, 12.5em será 200px */
}

Espero ter ajudado e bons estudos!