Pular para o conteúdo
🛠️ToolsShed

Typography Unit Converter

Converta unidades de tipografia: pt, px, em, rem, pica e mais com configurações de DPI.

UnidadeValor Convertido
px16
pt12
em1
rem1
pica1
mm4.2333
cm0.42333
in0.16667
ex2
ch2

Valores de Referência Comuns

12pt = 16px @ 96dpi1in = 96px @ 96dpi1pica = 16.0px1rem = 16px1em = 16px72pt = 1in

Sobre esta ferramenta

As unidades de tipografia são a base do design digital e impresso, mas converter entre elas—pontos, pixels, em, rem, paicas e muito mais—pode ser tedioso e propenso a erros. Seja você um designer traduzindo especificações de impressão para designs web, um desenvolvedor ajustando tamanhos de fonte em diferentes contextos de renderização, ou um criador de conteúdo gerenciando documentos em várias plataformas, a precisão é essencial. Este conversor elimina o trabalho de adivinhação ao traduzir instantaneamente qualquer unidade de tipografia em qualquer outra, levando em conta as configurações de DPI que afetam significativamente as conversões de pixels para pontos.

Para usar a ferramenta, basta selecionar suas unidades de origem e destino nos menus suspensos, digitar o valor que deseja converter e, opcionalmente, ajustar a configuração de DPI se estiver trabalhando com mídia de saída específica. O conversor lida com unidades relativas como em e rem, que são dimensionadas com base nos tamanhos de fonte dos elementos pai ou raiz, bem como com unidades absolutas como pontos e pixels. Por exemplo, converter 16 pixels para rem assumindo uma base de 16px resulta em 1rem, o que é útil ao construir designs web responsivos que se adaptam perfeitamente entre dispositivos.

Perguntas Frequentes

Implementação de Código

def typography_converter(value: float, from_unit: str, to_unit: str,
                           dpi: float = 96, base_font_px: float = 16) -> float:
    """Convert between typography units. Returns converted value."""
    # Convert to px first
    to_px = {
        'px':   lambda v: v,
        'pt':   lambda v: v * dpi / 72,
        'pc':   lambda v: v * dpi / 6,
        'em':   lambda v: v * base_font_px,
        'rem':  lambda v: v * base_font_px,
        'mm':   lambda v: v * dpi / 25.4,
        'cm':   lambda v: v * dpi / 2.54,
        'in':   lambda v: v * dpi,
        'ex':   lambda v: v * base_font_px * 0.5,
        'ch':   lambda v: v * base_font_px * 0.5,
    }
    from_px = {
        'px':   lambda v: v,
        'pt':   lambda v: v * 72 / dpi,
        'pc':   lambda v: v * 6 / dpi,
        'em':   lambda v: v / base_font_px,
        'rem':  lambda v: v / base_font_px,
        'mm':   lambda v: v * 25.4 / dpi,
        'cm':   lambda v: v * 2.54 / dpi,
        'in':   lambda v: v / dpi,
        'ex':   lambda v: v / (base_font_px * 0.5),
        'ch':   lambda v: v / (base_font_px * 0.5),
    }
    px = to_px[from_unit](value)
    return from_px[to_unit](px)

# Examples
print(f"16px = {typography_converter(16, 'px', 'pt'):.4f}pt at 96dpi")
print(f"1em = {typography_converter(1, 'em', 'px'):.4f}px at base 16px")
print(f"12pt = {typography_converter(12, 'pt', 'px'):.4f}px at 96dpi")
print(f"1in = {typography_converter(1, 'in', 'pt'):.4f}pt")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.