Conversor gratuito de PX para REM

Converta pixels em rem e vice-versa, com tamanho de fonte base configurável.

px (valor padrão do navegador : 16)

Tabela de referência

PXREM

Como funciona

REM significa « root em » e é relativo ao tamanho de fonte do elemento raiz. Por padrão, os navegadores usam 16 px. A fórmula é simples : rem = px ÷ base e px = rem × base. Altere o tamanho base acima se o seu projeto usar uma raiz diferente.

Perguntas frequentes

Por que usar rem em vez de px ?

As unidades REM se adaptam à configuração de tamanho de fonte do usuário em seu navegador, melhorando a acessibilidade. Se um usuário aumenta seu tamanho de fonte padrão, layouts baseados em rem se ajustam automaticamente, diferentemente dos valores em pixels que permanecem fixos.

Qual a diferença entre em e rem ?

EM é relativo ao tamanho de fonte do elemento pai e pode se acumular em elementos aninhados. REM é sempre relativo ao tamanho de fonte do elemento raiz (<html>), o que o torna mais previsível.

Qual base usar ?

A maioria dos projetos usa o valor padrão do navegador de 16 px. Alguns desenvolvedores definem html { font-size: 62.5%; } (10 px) para cálculos mais simples. Use o tamanho de fonte raiz definido para seu projeto.

O que o rem realmente é

«Rem» significa root em. A spec W3C CSS Values Level 3 o define como «igual ao valor computado de font-size no elemento raiz», ou seja, no elemento <html>. Os navegadores usam <html> como padrão de 16px a menos que seja sobrescrito, então em uma página comum 1rem = 16px, 0.5rem = 8px, 1.5rem = 24px, 2rem = 32px.

Se uma folha de estilo declara html { font-size: 20px }, então 1rem = 20px para o resto do documento. Se o usuário aumentou o padrão do navegador para 24px (um ajuste comum para baixa visão), 1rem = 24px mesmo sem nenhuma sobrescrita na folha de estilo, e esse é todo o argumento de acessibilidade do rem em uma frase.

Por que o rem importa: o argumento da acessibilidade

Os navegadores expõem dois mecanismos de escalonamento diferentes aos usuários, e eles se comportam de forma diferente em relação às unidades:

É por isso que um layout construído em rem respeita a preferência de acessibilidade do usuário e um layout construído em px não. O Critério de Sucesso 1.4.4 da WCAG 2.2 (Redimensionar Texto, Nível AA) exige que o texto possa ser ampliado para pelo menos 200% sem perda de conteúdo ou funcionalidade. O zoom do navegador sozinho passa nisso tecnicamente, mas os layouts baseados em rem passam de forma mais limpa porque respeitam o mecanismo mais granular de tamanho de fonte padrão, que é o que os usuários de baixa visão realmente ajustam no dia a dia.

A cilada de acúmulo do em que motiva o rem

Antes do rem, a única forma de obter uma tipografia escalável no CSS era o em, que é relativo ao tamanho de fonte do elemento pai, não da raiz. O problema clássico: elementos aninhados com tamanhos de fonte baseados em em se acumulam.

.list { font-size: 1.2em; }
.list .list { font-size: 1.2em; } /* renders at 1.44× the grandparent */
.list .list .list { font-size: 1.2em; } /* now 1.728× */

Três listas aninhadas incham para quase o dobro do tamanho do corpo, o que quase nunca é a intenção. O rem resolve isso ancorando à raiz toda vez, três elementos aninhados em 1.2rem são todos 19,2px independentemente da profundidade de aninhamento. É por isso que a maioria das folhas de estilo modernas usa rem para font-size e reserva em para proporções internas de componente (tamanhos de ícone que devem combinar com o texto do botão, padding dentro de um botão que escala com o seu rótulo).

O truque dos 62.5%: matemática conveniente, acessibilidade discutível

Um padrão popularizado por Jonathan Snook no seu artigo de maio de 2011: defina html { font-size: 62.5% }. Como 62.5% × 16 = 10, isso faz 1rem = 10px por padrão, uma conta mental conveniente. 1.6rem = 16px, 2.4rem = 24px, 4.8rem = 48px. Os designers gostavam disso porque remove a aritmética desajeitada de «dividir por 16» de cada valor.

A crítica de acessibilidade (levantada na época e reforçada em textos posteriores): definir o tamanho de fonte da raiz para 62.5% encolhe, na prática, o que quer que o usuário tenha escolhido nas preferências do navegador. Um usuário que definiu o seu padrão para 24px porque tem baixa visão veria o texto do corpo em 15px, anulando todo o propósito de usar rem. A refutação moderna é definir a raiz para 62.5%, mas declarar explicitamente o tamanho de fonte do corpo em 1.6rem (de volta a 16px), para que a sobrescrita do usuário ainda se propague corretamente. Muitas equipes pulam o truque inteiramente e convivem com a matemática um pouco menos elegante.

Quando usar rem, quando usar px: o enquadramento de Comeau

O artigo «px or rem?» de Josh W. Comeau (maio de 2022, atualizado em maio de 2025) oferece a heurística de pergunta única mais útil para essa decisão. Pergunte: «Este valor deveria aumentar conforme o usuário aumenta o tamanho de fonte padrão do navegador?» Se sim, use rem. Se não, use px.

Por esse teste:

O teste de pergunta única produz respostas consistentes ao longo de milhares de decisões em uma base de código, o que é a verdadeira vitória: as folhas de estilo resultantes se comportam da forma que os usuários esperam tanto sob o zoom quanto sob a personalização do tamanho de fonte.

O Tailwind CSS 4 adotou rem em todo lugar

O Tailwind CSS v4.0 (janeiro de 2025) chegou com uma escala padrão totalmente baseada em rem. Todo token de tipografia (text-xs 0.75rem até text-9xl 8rem) e todo token de espaçamento (p-1 0.25rem, p-4 1rem, m-8 2rem) está em rem de fábrica. O Tailwind 4 deliberadamente deixa a raiz <html> no padrão do navegador de 16px (eles deliberadamente não aplicam o truque dos 62.5%), para que as preferências de acessibilidade do usuário se propaguem de forma limpa. Dezenas de milhões de projetos agora entregam sistemas de design baseados em rem por padrão, o que é o argumento mais forte de que o ecossistema convergiu.

Tabela de conversão na raiz padrão de 16px

PixelsRemUso comum
8 px0.5 remMetade da unidade base, espaçamento pequeno
12 px0.75 remLegenda / letra miúda
14 px0.875 remTexto secundário
16 px1 remPadrão do corpo do texto
18 px1.125 remCorpo levemente enfatizado
20 px1.25 remParágrafo de abertura
24 px1.5 remTítulo H4; texto de UI grande
32 px2 remTítulo H3
48 px3 remTítulo H2 / hero
64 px4 remTítulo H1 / display

Onde o rem se encaixa no kit de ferramentas moderno

O rem é o padrão certo para o tipo e o espaçamento ancorado ao tipo, mas não é a resposta para todo problema de layout. A caixa de ferramentas moderna também inclui:

Para todo o resto (texto do corpo, títulos, paddings, larguras de botão, breakpoints), o rem é o caminho de menor resistência e o padrão mais acessível.

Mais perguntas

E se o meu projeto usa um tamanho de fonte base não padrão?

Mude o campo Tamanho de fonte base acima para o que quer que o html { font-size: … } do seu projeto resolva. A matemática da conversão continua sendo rem = px ÷ base, independentemente da base. Se a sua base de código usa 18px, 32px vira 1.78rem; em 10px (o truque dos 62.5%) vira 3.2rem. Esteja ciente de que sobrescrever o tamanho de fonte da raiz tem implicações de acessibilidade para usuários que personalizam o padrão do navegador, veja a discussão sobre o truque dos 62.5% acima.

Por que 0.625rem não renderiza exatamente para 10px?

Renderiza, sim, matematicamente, na raiz padrão de 16px, 0.625 × 16 = 10. Mas os navegadores renderizam com precisão de subpixel e podem ajustar os valores finais para pixels inteiros do dispositivo, então uma borda 0.625rem pode ocasionalmente parecer ligeiramente diferente de uma borda 10px codificada à mão, dependendo do DPR do monitor. Para linhas finas de 1 pixel com precisão perfeita, use 1px diretamente; para todo o resto, o valor baseado em rem está bom.

Posso misturar rem e px na mesma folha de estilo?

Sim, e você deveria. Use rem para coisas que devem escalar com a preferência de tamanho de fonte do usuário (tipografia, ritmo vertical, breakpoints) e px para coisas que não devem (bordas, detalhes de ícones, sombras decorativas). A pergunta «isto deveria escalar?» de Comeau é o filtro prático; a resposta mapeia de forma limpa para uma unidade ou a outra quase toda vez.

As ferramentas de build convertem px para rem automaticamente?

Sim, plugins do PostCSS como o postcss-pxtorem e o postcss-rem-to-responsive-pixel podem reescrever os valores em px do seu CSS para rem durante a etapa de build, com limiares configuráveis (por exemplo, «converter qualquer coisa ≥ 12px»). Eles são úteis ao migrar uma base de código existente com muitos px. Um conversor ao vivo como esta página ainda é útil para casos pontuais, consultas de especificação de design e para aprender a conta à mão.

Algo é enviado a um servidor?

Não. A conversão é uma divisão, aritmética JavaScript pura rodando localmente no seu navegador. Nada sobre a sua entrada sai da página; a ferramenta funciona offline depois de carregada.

Ferramentas relacionadas