W3docs

Propriedade CSS text-transform

Use a propriedade text-transform para controlar os efeitos de capitalização do texto de um elemento. Veja os valores e exemplos práticos.

A propriedade CSS text-transform controla a capitalização do texto de um elemento — ela pode forçar o texto para MAIÚSCULAS, minúsculas ou Capitalizar Cada Palavra, sem alterar o HTML subjacente. Esta é uma mudança puramente visual: o texto de origem permanece exatamente como foi escrito, portanto leitores de tela, copiar e colar e envios de formulários continuam vendo a caixa original.

Esta página aborda todos os valores de text-transform, as armadilhas do valor capitalize, o mapeamento de caixa específico por idioma e exemplos executáveis para cada valor.

Por que usar text-transform em vez de digitar as letras diretamente?

Manter a capitalização no CSS em vez de na marcação mantém o conteúdo limpo e flexível:

  • Uma única fonte da verdade. Escreva títulos e rótulos em caixa de frase normal; deixe o CSS deixá-los em maiúsculas apenas onde o design exige. Altere o design depois em um único lugar.
  • Amigável à localização. Tradutores editam texto legível, não letras maiúsculas gritantes.
  • Acessibilidade e SEO. Mecanismos de busca e tecnologias assistivas leem o texto real, não os glifos estilizados. Aplicar maiúsculas visualmente a um rótulo de <button> desta forma ainda expõe um nome acessível em caixa normal.

Mapeamento de caixa específico por idioma

text-transform segue as regras de capitalização do idioma do conteúdo (o atributo lang), não uma conversão ASCII simples. Alguns casos notáveis:

  • Línguas túrquicas — turco (tr), azerbaijano (az), tártaro da Crimeia (crh), tártaro do Volga (tt) e bascortostano (ba) têm i com ponto e sem ponto, gerando dois pares de caixa: i/İ e ı/I.
  • Alemão (de) — o ß se torna SS em maiúsculas.
  • Grego (el) — quando uma palavra inteira é colocada em maiúsculas, o acento da vogal é removido (ά → Α), exceto para a eta disjuntiva (ή/Ή).

O suporte dos navegadores para essas regras específicas por idioma varia, portanto teste se o seu público depende delas.

Aviso

Os valores full-width e full-size-kana são experimentais. full-width tem suporte parcial no WebKit, enquanto full-size-kana tem suporte muito limitado.

Valor inicialnone
Aplicável aTodos os elementos. Também se aplica a ::first-letter e ::first-line.
HerdadoSim.
AnimávelNão.
VersãoCSS1
Sintaxe DOMobject.style.textTransform = "capitalize";

Sintaxe

text-transform: none | capitalize | uppercase | lowercase | full-width | full-size-kana | initial | inherit;

O valor "uppercase"

uppercase converte todos os caracteres para a forma maiúscula — o uso mais comum é em títulos, botões e rótulos. No exemplo abaixo, o parágrafo e o texto do <div> são forçados a maiúsculas enquanto o HTML mantém sua caixa normal:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        text-transform: uppercase;
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <p>This is some paragraph.</p>
    <div>
      Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
    </div>
  </body>
</html>

Resultado

Propriedade CSS text-transform

Os valores "capitalize" e "lowercase"

capitalize coloca em maiúsculas a primeira letra de cada palavra e deixa o restante de cada palavra inalterado. Um limite de "palavra" é qualquer espaço em branco, pontuação ou símbolo, portanto aspas e hifens também iniciam novas palavras (por exemplo, mother-in-law torna-se Mother-In-Law). Duas armadilhas comuns:

  • Ele afeta apenas a primeira letraiPhone permanece IPhone, não Iphone, porque a caixa existente das letras restantes é preservada.
  • Um dígito não é considerado uma letra, portanto a primeira letra após um número não é capitalizada. 3rd permanece 3rd, nunca 3Rd.

lowercase é o oposto de uppercase: força todos os caracteres para minúsculas. No exemplo abaixo, o primeiro <div> usa capitalize e o segundo usa lowercase:

<!DOCTYPE html>
<html>
  <head>
    <style>
      .a {
        text-transform: capitalize
      }
      .b {
        text-transform: lowercase
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <div class="a">"Text transform property"</div>
    <br />
    <div class="b">
      "THIS IS SOME PARAGRAPH FOR EXAMPLE".
    </div>
  </body>
</html>

O valor "none"

none é o padrão — o texto é exibido exatamente como escrito, sem nenhum efeito de capitalização. Você usa principalmente para cancelar um text-transform que um elemento herdaria de outro, já que a propriedade é herdada por padrão.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      h2 {
        text-transform: none;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>
        Example of the text-transform property with the "none" value:
    </h2>
  </body>
</html>

O valor "initial"

initial redefine a propriedade para o padrão definido pelo CSS (none), independentemente de qualquer valor herdado. O exemplo abaixo redefine text-transform em um parágrafo:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      p.text {
        text-transform: initial;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>text-transform: initial:</h2>
    <p class="text">
      Example of the text-transform property with the "initial" value:
    </p>
  </body>
</html>

Valores

ValorDescriçãoExperimente
noneNenhum efeito de capitalização. Este é o valor padrão desta propriedade.Experimente »
capitalizeColoca em maiúsculas o primeiro caractere de cada palavra.Experimente »
uppercaseColoca em maiúsculas todos os caracteres de cada palavra.Experimente »
lowercaseColoca em minúsculas todos os caracteres de cada palavra.Experimente »
full-widthColoca a escrita de um caractere (ideogramas e scripts latinos) dentro de um quadrado, permitindo alinhá-los com texto chinês ou japonês.Experimente »
full-size-kanaConverte todos os pequenos caracteres Kana para o Kana de tamanho completo, para compensar problemas de legibilidade em tamanhos de fonte pequenos usados tipicamente em ruby.Experimente »
initialFaz a propriedade usar seu valor padrão.Experimente »
inheritHerda a propriedade do elemento pai.

Propriedades relacionadas

text-transform é uma das várias ferramentas CSS para moldar como o texto aparece. Combine-a com estas propriedades relacionadas:

  • text-decoration — sublinhado, linha acima ou tachado no texto.
  • font-variant — renderiza o texto como versaletes (uma variante tipográfica real, diferente de maiúsculas visuais).
  • letter-spacing e word-spacing — combina bem com títulos em maiúsculas, que geralmente ficam mais legíveis com espaçamento extra.
  • text-align — controla o alinhamento horizontal do texto transformado.
  • ::first-letter e ::first-linetext-transform também se aplica a esses pseudo-elementos, úteis para efeitos de capitular.

Prática

Prática
Como você faz cada palavra em um texto começar com letra maiúscula?
Como você faz cada palavra em um texto começar com letra maiúscula?
Was this page helpful?