Skip to content

Conversor de Maiúsculas — UPPER, lower, camelCase

Converta texto entre UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE e mais 6 formatos instantaneamente. Grátis, no navegador, sem cadastro.

Sem rastreamento Roda no navegador Grátis
Toda a conversão de caixa acontece localmente no seu navegador. Nenhum dado é enviado a servidor algum.

Caixas de texto

lowercase

Todas as letras em minúsculas. Espaço em branco preservado.

hello world example

UPPERCASE

Todas as letras em maiúsculas. Espaço em branco preservado.

HELLO WORLD EXAMPLE

Title Case

Primeira letra de cada palavra capitalizada.

Hello World Example

Sentence case

Primeira letra de cada frase capitalizada.

Hello world example

iNVERSE cASE

Troca maiúscula/minúscula para cada letra.

hELLO wORLD eXAMPLE

aLtErNaTiNg cAsE

Alterna minúscula/maiúscula por letra.

hElLo WoRlD eXaMpLe

RaNdOm CaSe

Cara-ou-coroa para cada letra de forma independente.

HeLLo WorLd eXamPLe

Caixas de programação

camelCase

Primeira palavra em minúscula, restante capitalizado, sem separadores.

helloWorldExample

PascalCase

Cada palavra capitalizada, sem separadores.

HelloWorldExample

snake_case

Minúsculas, unidas por underscores.

hello_world_example

kebab-case

Minúsculas, unidas por hífens.

hello-world-example

CONSTANT_CASE

Maiúsculas, unidas por underscores.

HELLO_WORLD_EXAMPLE

dot.case

Minúsculas, unidas por pontos.

hello.world.example

path/case

Minúsculas, unidas por barras.

hello/world/example

Header-Case

Cada palavra capitalizada, unida por hífens.

Hello-World-Example
Revisado para paridade com lodash / change-case, correção do mapeamento de caixa Unicode, estabilidade do round-trip de acrônimos e o conjunto de funcionalidades de sete caixas de texto + oito caixas de programação. — Equipe de Engenharia Go Tools · May 26, 2026

O que é um conversor de maiúsculas e minúsculas?

Um conversor de maiúsculas e minúsculas é uma pequena utilidade que pega um trecho de texto e o renderiza em uma convenção de caixa de letras diferente. As formas mais simples são UPPERCASE e lowercase — vire cada letra para uma caixa. As formas mais ricas aplicam regras linguísticas (Title Case capitaliza a primeira letra de cada palavra, Sentence case capitaliza a primeira letra de cada frase) ou regras de nomenclatura de programação (camelCase une palavras capitalizando cada uma depois da primeira; snake_case deixa tudo em minúsculas e une com underscores). Conversores de caixa online existem desde que a web tem textareas, porque a conversão é mecanicamente simples mas tediosa de fazer à mão para qualquer quantidade não-trivial de texto.

A família de caixa de texto é a que escritores, editores, marketeiros e jornalistas costumam buscar. UPPERCASE e lowercase são úteis para casar com o estilo da casa ou remover o ALL-CAPS gritado de um e-mail encaminhado. Title Case é para títulos e nomes de livros. Sentence case é o padrão web moderno para corpo de texto, microcopy de UI, rótulos de botão e legendas — Google, Apple e os guias de estilo da Microsoft convergiram para ele na última década. As variantes zombeteiras (iNVERSE cASE, aLtErNaTiNg cAsE, RaNdOm CaSe) vêm da cultura da internet, particularmente o "meme do bob esponja" usado para citar alguém com sarcasmo; alternating case é a variante estrita determinística, random case é a caótica.

A família de caixa de programação é a que desenvolvedores usam todo santo dia. camelCase é o padrão para identificadores em JavaScript, Java, Swift e Kotlin. PascalCase é o padrão para nomes de classe na maioria das linguagens orientadas a objeto e nomes de componentes em React, Vue e Angular. snake_case é o padrão para Python, Ruby, Rust e Elixir, mais a maioria dos nomes de coluna de banco de dados. kebab-case é o padrão para nomes de classe CSS, slugs de URL e atributos HTML. CONSTANT_CASE é o padrão para variáveis de ambiente, constantes de nível superior e nomes de macro. dot.case é usada para namespacing (pacotes Java, caminhos de campo do MongoDB). path/case é usada para URLs e caminhos de sistema de arquivos. Header-Case é a convenção canônica de cabeçalhos HTTP/1.1 (Content-Type, Access-Control-Allow-Origin).

Por baixo do capô, a engenharia interessante é o tokenizador que divide uma string de entrada em suas palavras semânticas. É fácil dividir por espaço em branco; a parte difícil é reconhecer fronteiras de palavra que não têm um separador de espaço em branco. A convenção padrão — usada pelo lodash, pelo pacote npm change-case, pela PEP 8 do Python e pela maioria das bases de código do mundo real — insere uma fronteira em três transições: minúscula para maiúscula (parseHTML → parse / HTML), maiúscula para maiúscula para minúscula (XMLHttpRequest → XML / Http / Request) e letra para dígito / dígito para letra (file2x → file / 2 / x). Mais os separadores explícitos: hífen, underscore, ponto, barra, contrabarra. Com esse único tokenizador, você pode colar um identificador em qualquer caixa — camelCase, snake_case, kebab-case, misto — e converter para qualquer outra caixa de forma limpa sem limpeza manual.

A ferramenta que você está usando roda o tokenizador e todas as 15 transformações inteiramente no seu navegador usando JavaScript. Não há chamada de rede, sem servidor, sem registro, sem cookie que grave o que você digita. A saída para cada caixa atualiza a cada tecla sem atraso de debounce. O botão Copiar em cada card escreve só aquela única caixa na sua área de transferência. Re-shuffle re-roleia a caixa aleatória sem perturbar as outras saídas. Tudo é projetado para a velocidade do trabalho real — colar, escanear, copiar, colar em outro lugar.

Para ferramentas de texto relacionadas, o contador de palavras lida com métricas de comprimento e tempo de leitura, o text diff compara dois trechos de texto linha por linha, e o regex tester verifica correspondências de padrão contra entrada de exemplo. Juntas elas cobrem a maior parte do trabalho de modelagem de texto que um desenvolvedor ou trabalhador de conteúdo faz em um navegador.

// The tokenizer that powers every programming-case conversion
function tokenize(input) {
  return input
    .replace(/([a-z0-9])([A-Z])/g, '$1 $2')      // lower→upper: parseHTML → parse HTML
    .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')   // acronym boundary: XMLHttp → XML Http
    .replace(/([A-Za-z])(\d)/g, '$1 $2')          // letter→digit: file2 → file 2
    .replace(/(\d)([A-Za-z])/g, '$1 $2')          // digit→letter: 2x → 2 x
    .replace(/[\s\-_./\\]+/g, ' ')                // collapse separators
    .split(' ').filter(Boolean);
}

// Then each case is a one-liner over the tokens
const camelCase  = (s) => tokenize(s).map((t, i) => i === 0 ? t.toLowerCase() : cap(t)).join('');
const snakeCase  = (s) => tokenize(s).map(t => t.toLowerCase()).join('_');
const kebabCase  = (s) => tokenize(s).map(t => t.toLowerCase()).join('-');
const PascalCase = (s) => tokenize(s).map(cap).join('');

function cap(t) {
  return t.charAt(0).toUpperCase() + t.slice(1).toLowerCase();
}

Principais recursos

Todas as 15 caixas visíveis ao mesmo tempo

Cole seu texto e cada caixa renderiza instantaneamente em uma grade de duas colunas. Sem precisar escolher um formato primeiro ou passar por um dropdown — escaneie a grade, copie a que precisa. As caixas de texto e as caixas de programação são divididas em seções separadas para você achar o card certo em uma olhada.

Tokenizador inteligente para caixas de programação

Reconhece fronteiras de minúscula para maiúscula (camelCase), fronteiras de maiúscula para maiúscula para minúscula (XMLHttpRequest → XML/Http/Request), fronteiras de letra para dígito (file2x) e todos os separadores comuns (-, _, ., /, \, espaço em branco). Bate com as convenções do lodash e do pacote npm change-case, então a saída faz round-trip da forma que bases de código reais esperam.

Cópia por card com feedback ao vivo

Cada card de saída tem seu próprio botão Copiar — clique uma vez e só aquela caixa cai na sua área de transferência. O rótulo muda brevemente para "Copiado!" para você saber que funcionou. Sem precisar selecionar texto ou clicar com o botão direito.

Atualizações em tempo real a cada tecla

Cada caixa re-renderiza a cada tecla sem atraso de debounce. Sem botão Converter para clicar, sem recarregar a página, sem espera. Feito para a velocidade da edição real — colar, escanear, copiar, pronto.

Re-Shuffle para Random Case

A saída Random Case pode ser re-roletada independentemente com o botão Re-shuffle, sem perturbar nenhuma outra saída ou o texto de entrada. Útil quando você quer uma variante diferente do meme do bob esponja para o mesmo texto de origem.

Preserva espaço em branco e pontuação

Transformações de caixa de texto (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm) preservam cada espaço, quebra de linha e marca de pontuação por design. Cole um documento de vários parágrafos e a formatação sobrevive intacta — só a capitalização das letras muda.

Mapeamentos de caixa cientes de Unicode

Usa os métodos `toLocaleLowerCase` e `toLocaleUpperCase` cientes de Intl para que İ/ı com e sem ponto do turco, ß alemão, sigma final do grego e outras caixas sensíveis à locale sejam tratadas corretamente. O tokenizador reconhece letras de qualquer script (Unicode \p{L}).

Privacidade 100% no navegador

Toda a conversão roda localmente no seu navegador. Seu texto nunca é enviado, nunca é registrado, nunca é armazenado, nunca é analisado. Seguro para nomes de produtos não anunciados, esquemas internos de variáveis, rascunhos de press releases e qualquer material confidencial. Zero requisições de rede enquanto você digita — verifique na aba Network do seu navegador.

Round-trip que preserva acrônimos

Converta XMLHttpRequest → xml_http_request → XmlHttpRequest e a estrutura faz round-trip de forma limpa. A mesma convenção da PEP 8 para Python e do pacote change-case para JS — sem precisar dividir manualmente letra por letra ao migrar uma base de código entre convenções de caixa.

Alternativas comparadas ao conversor de caixa

lodash (_.camelCase, _.snakeCase, _.kebabCase, _.startCase)

biblioteca JavaScript

A implementação de referência para a maioria das bases de código JS. Produz saída idêntica a esta ferramenta para os casos comuns. O lodash usa um tratamento ligeiramente diferente de Unicode para casos de borda. Use lodash no seu código; use esta ferramenta para conversões pontuais ou verificações rápidas durante uma refatoração.

Pacote npm change-case

biblioteca JavaScript

Biblioteca de conversão de caixa modular e tree-shakable — uma função por caixa. O tokenizador desta ferramenta bate exatamente com a convenção do change-case v5+, então as saídas são idênticas byte a byte para entradas ASCII. Use change-case quando você quer só camelCase ou só snake_case no seu bundle; use esta ferramenta para conversão interativa.

Comandos de caixa embutidos do VS Code

comando de editor

O VS Code já vem com os comandos `Transform to Uppercase`, `Transform to Lowercase` e `Transform to Title Case` (Cmd-Shift-P → buscar). Sem camelCase, snake_case ou outras caixas de programação de fábrica; extensões como "change-case" as adicionam. Melhor quando seu texto já está no editor; esta ferramenta é mais rápida para conversões com fluxo de área de transferência.

convertcase.net

ferramenta de navegador

O conversor de caixa online original — só caixas de texto (UPPERCASE, lowercase, Sentence, Title, alternating, inverse). Sem caixas de programação. Existe desde o início dos anos 2000 e ainda é o top de muitas buscas por caixa de texto. Esta ferramenta cobre as mesmas caixas de texto e adiciona as oito caixas de programação também.

Alterar Maiúsculas e Minúsculas do Microsoft Word (Página Inicial > Alterar Maiúsculas e Minúsculas)

app desktop

O Word tem um botão Alterar Maiúsculas e Minúsculas na faixa Página Inicial: Sentence case, lowercase, UPPERCASE, Capitalize Each Word, tOGGLE cASE. Sem caixas de programação. O fluxo exige estar no Word com o arquivo aberto. Use o Word quando seu texto já está em um documento; use esta ferramenta quando você está em uma aba do navegador.

Transformações do Pages / TextEdit da Apple

app desktop

macOS Pages e TextEdit têm Edit > Transformations: Make Upper Case, Make Lower Case, Capitalize. Sem camelCase, snake_case ou outras variantes de programação. Rápido para texto curto nesses apps; não foi feito para trabalho com identificadores de código.

Conversores online de caixa de programação (ex.: camelcasse.com)

ferramenta de navegador

Conversores dedicados de única caixa que focam em uma transformação (só camelCase, só snake_case). Menos caixas para escanear, UI mais focada. Esta ferramenta mostra todas as 15 ao mesmo tempo, o que é mais rápido para refatorar entre múltiplas caixas — mas se você só precisa de uma, uma ferramenta de única caixa serve.

Exemplos de conversão de caixa

Assunto de e-mail em CAIXA-ALTA → Sentence case

URGENT: PLEASE REVIEW THE Q4 BUDGET PROPOSAL BEFORE FRIDAY

Saída Sentence case: "Urgent: please review the q4 budget proposal before friday" — remove instantaneamente o tom gritado de caixa-alta para encaminhar ou responder com cortesia. Saída Title Case: "Urgent: Please Review The Q4 Budget Proposal Before Friday" — se você prefere manter o estilo de manchete formal. As duas acontecem ao mesmo tempo; escolha a que se encaixa na sua resposta.

Variável snake_case → camelCase

user_profile_image_url

Saída camelCase: "userProfileImageUrl" — solte direto em JavaScript, Java ou Swift. PascalCase: "UserProfileImageUrl" — para nomes de propriedades em C# / .NET ou nomes de componentes React. kebab-case: "user-profile-image-url" — para classes CSS ou slugs de URL. CONSTANT_CASE: "USER_PROFILE_IMAGE_URL" — para variáveis de ambiente ou constantes de nível superior. Um paste, quatro identificadores prontos para usar.

Nome de classe com acrônimo pesado (XMLHttpRequest)

XMLHttpRequest

O tokenizador reconhece a fronteira XML / Http / Request. Saídas: snake_case → "xml_http_request", kebab-case → "xml-http-request", CONSTANT_CASE → "XML_HTTP_REQUEST", Header-Case → "Xml-Http-Request". Essa é exatamente a convenção que o lodash, o pacote change-case e o tratamento de acrônimos da PEP 8 do Python usam — sua refatoração do nome de uma classe JS para um nome de módulo Python leva um paste, não uma divisão manual letra por letra.

Título de página para slug de URL (Title → kebab-case)

10 Tips for Faster JavaScript: A Complete Guide

Saída kebab-case: "10-tips-for-faster-javascript-a-complete-guide" — o slug seguro para URL que a maioria dos CMS (WordPress, Ghost, Hugo) gera por padrão. snake_case: "10_tips_for_faster_javascript_a_complete_guide" — para convenções de nome de arquivo. O tokenizador descarta os dois-pontos e outras pontuações de forma limpa; você não precisa limpar o título antes.

Nome de cabeçalho HTTP a partir de Camel-Case (Header-Case)

accessControlAllowOrigin

Saída Header-Case: "Access-Control-Allow-Origin" — a grafia exata que a spec HTTP usa, pronta para soltar em um objeto de opções do fetch() ou em uma resposta do lado do servidor. kebab-case: "access-control-allow-origin" — a mesma forma canônica, em minúsculas (algumas bibliotecas HTTP usam isso internamente). Esta é a forma mais rápida de traduzir uma propriedade de objeto JS para um nome real de cabeçalho.

Constante a partir de uma configuração legível (CONSTANT_CASE)

max retries per request

Saída CONSTANT_CASE: "MAX_RETRIES_PER_REQUEST" — solte em um arquivo de config como `const MAX_RETRIES_PER_REQUEST = 3` ou em um arquivo `.env` como `MAX_RETRIES_PER_REQUEST=3`. snake_case: "max_retries_per_request" — para constantes de nível de módulo no estilo Python ou chaves YAML. Mesma origem, dois destinos, sem edição manual.

Frase para meme do Bob Esponja (aLtErNaTiNg cAsE)

this is fine, everything is going great

Saída aLtErNaTiNg cAsE: "tHiS iS fInE, EvErYtHiNg iS gOiNg GrEaT" — o formato canônico de zoeira do bob esponja. A alternância é um toggle global ao longo das letras, não por palavra, batendo com o que o convertcase.net e outros geradores de meme fazem. RaNdOm CaSe: vira cada letra independentemente — útil quando você quer a mesma energia sarcástica com mais caos.

Como usar o conversor de maiúsculas e minúsculas

  1. 1

    Cole ou digite seu texto

    Clique no editor e digite, ou cole qualquer texto — uma frase, um parágrafo, um identificador, um título. Cada saída de caixa atualiza instantaneamente. Clique em Exemplo para carregar uma frase representativa se você só quer ver como as caixas diferem.

  2. 2

    Escaneie a grade

    As sete caixas de texto (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm) estão na seção superior. As oito caixas de programação (camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Header-Case) estão na seção inferior. Cada card mostra o rótulo da caixa, uma descrição de uma linha e a saída convertida.

  3. 3

    Clique em Copiar na caixa que quer

    Cada card de saída tem seu próprio pequeno botão Copiar. Clique uma vez — a caixa cai na sua área de transferência, o botão pisca "Copiado!" e você está pronto para colar em outro lugar. Sem precisar selecionar primeiro o texto de saída.

  4. 4

    Re-shuffle a caixa aleatória se necessário

    Se você quer uma variante RaNdOm CaSe diferente para o mesmo texto, clique em Re-shuffle na barra de ações. Só a saída de Random Case muda; o texto de entrada e todas as outras saídas permanecem iguais.

  5. 5

    Limpe quando terminar

    Clique em Limpar para esvaziar o editor e resetar cada saída. Exemplo recarrega o texto de demonstração. Todas as ações são instantâneas e nunca enviadas para um servidor.

Erros comuns de conversão de caixa

Tentar converter um parágrafo inteiro para snake_case

Colar uma frase de várias palavras na saída snake_case a colapsa em um identificador gigante — tecnicamente o snake_case correto da entrada, mas nunca o que você realmente quer para um identificador. Use snake_case para um identificador por vez (um único nome de variável ou frase composta). Para texto do tamanho de um parágrafo, use as transformações de caixa de texto.

✗ Incorreto
Entrada: "the quick brown fox jumps over the lazy dog"
Saída snake_case: the_quick_brown_fox_jumps_over_the_lazy_dog
Resultado: um identificador de 50 caracteres que ninguém quer.
✓ Correto
Entrada: "quickBrownFox"
Saída snake_case: quick_brown_fox
Resultado: um identificador limpo de três tokens.

Esperar regras de Title Case APA

O Title Case desta ferramenta capitaliza cada palavra — `Hello A World Of Examples` em vez do estilo AP `Hello a World of Examples`. Guias de estilo APA, Chicago e AP todos deixam artigos e preposições curtas em minúscula em manchetes. Se você precisa especificamente de manchetes no estilo APA, use uma ferramenta de title-case dedicada. Para capitalização geral (capitalizar cada palavra), este Title Case está correto.

✗ Incorreto
Entrada: "a tale of two cities"
Title Case desta ferramenta: A Tale Of Two Cities
Esperado (estilo AP): A Tale of Two Cities
✓ Correto
Use esta ferramenta para capitalização geral.
Use uma ferramenta de manchete no estilo AP para títulos editoriais.
Ferramentas diferentes, convenções diferentes.

Assumir que round-trips de PascalCase preservam capitalização de acrônimo

XMLHttpRequest tokeniza para XML / Http / Request e re-PascalCase para XmlHttpRequest. Essa é a convenção (ela permite que o tokenizador faça round-trip de forma limpa), mas se sua base de código preserva a capitalização do acrônimo (mantendo XMLHttpRequest como XMLHttpRequest), o resultado não vai bater. Confira antes de fazer uma renomeação no projeto inteiro.

✗ Incorreto
Entrada: XMLHttpRequest
Saída PascalCase: XmlHttpRequest
Esperado (acrônimo preservado): XMLHttpRequest
✓ Correto
Aceite o acrônimo em title-case, OU
Preserve manualmente o acrônimo depois da conversão, OU
Use um tokenizador que respeite dicas de acrônimo.

Colar URLs e perder as barras

Colar `https://example.com/api/users` em snake_case retira todas as barras e pontos e produz `https_example_com_api_users` — tecnicamente correto mas inútil como URL. URLs já estão em formato path/case; não as passe por transformações de caixa de programação. Se você quer retirar o protocolo ou host de uma URL, use uma ferramenta de parsing de URL primeiro.

✗ Incorreto
Entrada: https://example.com/api/users
Saída snake_case: https_example_com_api_users
Resultado: não é mais uma URL.
✓ Correto
Entrada: https://example.com/api/users
Deixe URLs em paz — elas já estão no formato certo.
Para extração de slug, faça o parse do path da URL manualmente.

Confundir dot.case com notação de identificador pontuado

A saída dot.case é `user.profile.image` — tokens em minúscula unidos por pontos literais, adequada para namespacing (pacotes Java, caminhos de campo do MongoDB, chaves TOML). Não é a mesma coisa que a notação de acesso a propriedade do JavaScript (`user.profile.image` parece idêntico mas significa "a propriedade image da propriedade profile de user"). Se você precisa de um caminho de acesso a propriedade, dot.case por coincidência produz a string certa; se você precisa de um identificador de programação, use camelCase ou snake_case em vez disso.

✗ Incorreto
Objetivo: "definir a variável user.profile.image"
Usando a saída dot.case como nome de variável: `user.profile.image`
Na maioria das linguagens isso é acesso a propriedade, não um identificador.
✓ Correto
Para uma única variável: userProfileImage (camelCase).
Para uma chave com namespace: user.profile.image (dot.case está certo).
Combine a caixa com a sintaxe alvo.

Esperar que Sentence case trate abreviações

Sentence case trata cada `.` seguido por espaço em branco como uma fronteira de frase, incluindo `Mr. Smith arrived.` que vira `Mr. Smith arrived.` corretamente, mas `e.g. this example` vira `E.g. This example` (o `g.` é mal interpretado como terminador de frase). Falsos positivos em abreviações são uma limitação conhecida de todo detector de frase baseado em regex; para precisão editorial, edite a saída à mão.

✗ Incorreto
Entrada: "e.g. this is an example. Read more."
Saída Sentence case: "E.g. This is an example. Read more."
O `g.` foi tratado erroneamente como terminador de frase.
✓ Correto
Rode sentence case primeiro, depois conserte à mão os poucos casos de borda de abreviação.
Ou reformule para evitar pontos no meio da frase.
(Detecção de frase de nível NLP é uma categoria de ferramenta separada.)

Quem usa esta ferramenta

Desenvolvedores renomeando identificadores entre linguagens
Migrando uma variável JS para um nome snake_case Python, ou uma classe CSS para um componente React PascalCase, ou uma variável de ambiente para uma constante de configuração. Cole o nome de origem uma vez, copie a saída certa — sem conversão manual letra por letra.
Devs backend traduzindo nomes de cabeçalho
Cabeçalhos HTTP como Content-Type, Access-Control-Allow-Origin, X-Forwarded-For têm grafias Header-Case específicas. Cole um nome de propriedade JS camelCase, copie a forma canônica do cabeçalho — funciona para opções do fetch(), middleware do servidor e configs de proxy.
Escritores removendo o tom ALL-CAPS de e-mails
E-mails encaminhados e mensagens de chat em caixa-alta são lidos como gritaria. Cole-os em Sentence case para desarmar o tom, ou em Title Case para manter um ar de manchete polida. Espaço em branco e pontuação sobrevivem intactos.
Marketeiros rascunhando manchetes
Title Case para manchetes, Sentence case para corpo de texto e legendas — a convenção que a maioria dos guias de estilo modernos (AP, Google, Apple) recomenda. Veja os dois ao mesmo tempo para comparar qual se encaixa no local.
Especialistas SEO gerando slugs de URL
kebab-case é a convenção de slug de URL que todo CMS espera. Cole um título de página com pontuação e capitalização, copie a saída kebab-case — pronta para soltar em um campo de slug do WordPress, Ghost ou Hugo. O tokenizador retira a pontuação de forma limpa.
DBAs nomeando colunas e tabelas
snake_case para nomes de coluna e tabela é a convenção universal em PostgreSQL, MySQL, SQLite e na maioria dos ORMs. Cole um rótulo legível ou um nome de campo de API em camelCase, copie a versão snake_case.
Devs frontend escrevendo classes CSS
kebab-case para nomes de classe é a convenção da spec CSS (BEM, utilitários Tailwind e a maioria dos design systems). Cole um nome de componente JS em camelCase, copie a versão kebab-case para o módulo CSS correspondente.
Fazedores de memes e entusiastas de sarcasmo
aLtErNaTiNg cAsE e RaNdOm CaSe são os formatos do meme do bob esponja usados para zombar ou citar com sarcasmo. Re-shuffle re-roleia a variante aleatória sem mudar a entrada — gere algumas até uma parecer certa.

Regras de tokenização e conversão

Regras de tokenização
Tokens são extraídos inserindo um espaço em quatro fronteiras: minúscula para maiúscula (parseHTML → parse HTML), maiúscula para maiúscula para minúscula (XMLHttp → XML Http), letra para dígito (file2 → file 2) e dígito para letra (2x → 2 x). Depois separadores comuns (espaço em branco, hífen, underscore, ponto, barra, contrabarra) são colapsados em espaços únicos. Os tokens resultantes são divididos, aparados e os vazios descartados. Isso bate com as convenções do lodash e do pacote change-case.
Saídas de caixa de programação retiram pontuação
camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case e Header-Case todos produzem identificadores limpos — pontuação na entrada (vírgulas, pontos, parênteses) é descartada porque não pode aparecer na maioria dos identificadores de linguagem. Se você precisa preservar a pontuação, use uma das saídas de caixa de texto (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm).
Saídas de caixa de texto preservam tudo
UPPERCASE, lowercase, Title Case, Sentence case, iNVERSE cASE, aLtErNaTiNg cAsE e RaNdOm CaSe todos preservam espaço em branco, quebras de linha e pontuação. Cole um documento de vários parágrafos e a estrutura sobrevive — só a capitalização das letras muda. Essas transformações operam caractere a caractere sem tokenização.
Title Case (variante ingênua)
Title Case nesta ferramenta capitaliza a primeira letra de cada palavra separada por espaço em branco e deixa o resto em minúscula. Guias de estilo APA, Chicago e AP recomendam deixar artigos e preposições curtas (a, an, the, of, in, for) em minúscula; essas variantes são diferentes o bastante para merecer uma ferramenta dedicada. Use este Title Case para capitalização geral; use uma ferramenta específica de manchete para manchetes no estilo AP.
Detecção de fronteira de Sentence case
Sentence case deixa tudo em minúsculas, depois capitaliza a primeira letra da entrada e a primeira letra após qualquer terminador de frase (. ! ? 。 ! ?) seguido por espaço em branco. O detector não tenta desambiguar abreviações como Mr. ou U.S.A. — falsos positivos ali são mais barulhentos do que a caixa raramente perdida.
Alternating Case usa um toggle global
aLtErNaTiNg cAsE vira entre minúscula e maiúscula para cada letra, com um toggle global que segue entre fronteiras de palavra. Caracteres não-letra não avançam o toggle. Isso bate com a convenção usada pelo convertcase.net e outros geradores de meme — previsível e reproduzível para a mesma entrada.
Random Case usa Math.random()
RaNdOm CaSe roda um cara-ou-coroa independente por letra usando Math.random(). Cada clique de Re-shuffle produz um resultado diferente. A fonte aleatória não é criptograficamente forte; serve para texto casual mas não use para geração de senha (use o gerador de senha dedicado para isso).
Mapeamentos de caixa cientes de Unicode e locale
Usa `toLocaleLowerCase()` e `toLocaleUpperCase()` para que İ/ı com e sem ponto do turco, ß alemão (em maiúscula vira SS no tratamento padrão) e outros mapeamentos de caixa sensíveis à locale sejam tratados corretamente. A tokenização usa \p{L} para reconhecer letras de qualquer script. Saídas de caixa de programação usam por padrão caracteres de identificador ASCII para compatibilidade entre linguagens.

Boas práticas para escolher uma caixa

Escolha a caixa que combina com sua base de código
A caixa certa para um nome de variável não é a mais bonita — é a que sua base de código já usa. JavaScript e Java: camelCase para variáveis e métodos, PascalCase para classes. Python, Ruby, Rust: snake_case para tudo exceto nomes de classe (que são PascalCase). CSS e URLs: kebab-case. Variáveis de ambiente e constantes: CONSTANT_CASE. Combine com a convenção local; consistência ganha de correção teórica.
Use Sentence case para microcopy de UI
Os design systems do Google, Apple e Microsoft todos padronizaram em Sentence case para rótulos de botão, itens de menu, texto de diálogo e outros microcopy de UI na última década. Title Case em UI agora se lê como antiquado e levemente gritado. Reserve Title Case para manchetes principais, títulos de página e títulos de livro.
Retire aspas inteligentes antes de colar
Colar do Microsoft Word, Google Docs ou Apple Notes pode trazer aspas inteligentes (“”), travessões (—) e outros caracteres tipográficos que parecem idênticos ao ASCII mas codificam diferente. As transformações de caixa lidam com eles corretamente, mas se você está convertendo para um identificador de caixa de programação, substitua manualmente pelos equivalentes ASCII primeiro para evitar surpresas no seu editor de código.
Converta um identificador por vez para caixas de programação
camelCase, snake_case, kebab-case etc. produzem um único identificador a partir da entrada inteira. Se você cola uma frase em snake_case, recebe um identificador longão — tecnicamente correto mas raramente o que você quer. Para conversão de identificador, cole uma palavra ou composto por vez. Para texto do tamanho de um parágrafo, use as transformações de caixa de texto.
Verifique os round-trips de acrônimos antes de refatorar
XMLHttpRequest → xml_http_request → XmlHttpRequest é o round-trip padrão; o acrônimo vira title-case no caminho de volta. Se sua base de código preserva a capitalização original do acrônimo (XmlHttpRequest fica como XMLHttpRequest), o round-trip não vai bater exatamente. Confira algumas conversões antes de fazer uma renomeação no projeto inteiro.
Use Header-Case para HTTP/1.1, kebab-case para HTTP/2
HTTP/1.1 é case-insensitive para nomes de cabeçalho, mas Header-Case (Content-Type, X-Forwarded-For) é a grafia legível convencional que todo mundo usa. HTTP/2 exige explicitamente nomes de cabeçalho em minúsculas — use kebab-case para esses (content-type, x-forwarded-for). Na dúvida, kebab-case funciona nos dois protocolos.
Re-shuffle Random Case por variedade, não por segurança
Random Case é divertido para memes mas não é aleatório no sentido criptográfico — usa Math.random(), que serve para variedade visual mas não para qualquer coisa onde aleatoriedade importa (geração de senha, tokens de segurança, teste A/B). Use o gerador de senha dedicado para aleatoriedade criptográfica.

Perguntas frequentes

O que um conversor de maiúsculas e minúsculas faz?
Um conversor de maiúsculas e minúsculas pega um trecho de texto e o renderiza em uma caixa diferente — UPPERCASE, lowercase, Title Case, Sentence case ou uma das caixas de nomenclatura de programação como camelCase, PascalCase, snake_case, kebab-case e CONSTANT_CASE. Esta ferramenta mostra todas as 15 variantes comuns de uma vez para você não ter que escolher qual conversão quer antes de colar; você cola, escaneia a grade e copia a que precisa. Roda inteiramente no seu navegador usando JavaScript — sem cadastro, sem upload, sem ida e volta ao servidor e sem analytics no texto que você cola.
Qual é a diferença entre camelCase, PascalCase e snake_case?
As três são convenções para nomear identificadores de múltiplas palavras em código. camelCase começa com uma letra minúscula e capitaliza cada palavra subsequente sem separador: `userProfileImage`. PascalCase capitaliza cada palavra incluindo a primeira: `UserProfileImage` — usada para nomes de classe na maioria das linguagens e nomes de componentes em React. snake_case deixa tudo em minúsculas e une palavras com underscores: `user_profile_image` — a convenção para Python, Ruby, Rust e a maioria dos nomes de coluna de banco de dados. kebab-case é a mesma ideia com hífens: `user-profile-image` — usada para nomes de classe CSS, slugs de URL e atributos HTML. CONSTANT_CASE é maiúscula com underscores: `USER_PROFILE_IMAGE` — para constantes e variáveis de ambiente. Escolha a que combina com o estilo existente da sua base de código.
Como o tokenizador trata acrônimos como XMLHttpRequest ou parseHTML?
O tokenizador reconhece a fronteira de maiúscula-para-maiúscula-para-minúscula (XMLHttp → XML / Http) e a fronteira de minúscula para maiúscula (parseHTML → parse / HTML). Então `XMLHttpRequest` vira os tokens `XML`, `Http`, `Request` e converte de forma limpa para `xml_http_request`, `xml-http-request`, `XML_HTTP_REQUEST` ou `Xml-Http-Request`. Isso bate com a convenção usada pelo lodash, pelo pacote npm change-case e pela PEP 8 do Python — o padrão de fato para tratamento de acrônimos entre linguagens. A única troca: ao converter de volta para PascalCase, o acrônimo vira title-case (`XMLHttpRequest` faz round-trip para `XmlHttpRequest`), que também é a convenção padrão para evitar ambiguidade na re-tokenização.
O que é Title Case versus Sentence case?
Title Case capitaliza a primeira letra de cada palavra, deixando todo o resto em minúscula: `Hello World Example`. Esta ferramenta usa a variante ingênua — toda palavra capitalizada — que é o que a maioria das pessoas quer dizer com "title case" no uso casual. Alguns guias de estilo (APA, Chicago, AP) recomendam deixar artigos e preposições curtas como `a`, `an`, `the`, `of`, `in`, `for` em minúscula; essas variantes são diferentes o bastante para merecerem uma ferramenta de "headline" separada. Sentence case capitaliza apenas a primeira letra de cada frase (e a primeira letra da entrada): `Hello world example. This is a sentence.` Use Title Case para títulos e nomes de livros, Sentence case para descrições, legendas e corpo de texto.
Meu texto é enviado para algum lugar?
Não. Toda transformação de caixa roda 100% no seu navegador usando JavaScript. Seu texto nunca é transmitido, nunca é armazenado em nenhum servidor, nunca é registrado e nunca é analisado por humanos ou IA. Você pode verificar na aba Network do seu navegador — digitar no editor ou clicar em Copiar dispara zero requisições de rede. Isso torna a ferramenta segura para nomes de produtos não anunciados, esquemas internos de variáveis, rascunhos de textos jurídicos, anotações de fontes jornalísticas e qualquer outro material confidencial. A ferramenta também não usa cookies para o texto digitado.
Como converto texto para camelCase a partir de qualquer outra caixa?
Cole seu texto no editor acima e copie o card de saída camelCase. Funciona a partir de qualquer formato de origem: uma frase com espaços (`hello world` → `helloWorld`), snake_case (`hello_world` → `helloWorld`), kebab-case (`hello-world` → `helloWorld`), PascalCase (`HelloWorld` → `helloWorld`), CONSTANT_CASE (`HELLO_WORLD` → `helloWorld`) ou até um acrônimo misto (`XMLHttpRequest` → `xmlHttpRequest`). O tokenizador inteligente reconhece todas as fronteiras comuns automaticamente, então você não precisa pré-limpar a entrada.
A ferramenta suporta Unicode e letras não-inglesas?
Sim. As transformações de caixa usam os métodos `toLocaleLowerCase()` e `toLocaleUpperCase()` cientes de Intl do JavaScript, que tratam corretamente o `İ`/`ı` com e sem ponto do turco, o `ß` alemão (que em maiúscula vira `SS` no tratamento padrão), o sigma final do grego e outros mapeamentos de caixa sensíveis à locale. A tokenização usa padrões regex cientes de Unicode que reconhecem letras de qualquer script (`\p{L}`). Para saídas de caixa de programação (camelCase, snake_case etc.), o tokenizador trata por padrão apenas letras e dígitos ASCII como caracteres de identificador — o que bate com as restrições da maioria das linguagens de programação — então letras não-latinas na entrada passam inalteradas dentro dos tokens.
Qual é a diferença entre dot.case e path/case?
Ambas são identificadores em minúsculas, unidos por separador — a única diferença é o separador. `dot.case` usa pontos: `hello.world.example`. É comum para namespacing (pacotes Java, métodos do Lodash, caminhos de campo do MongoDB) e chaves de arquivo de configuração (TOML, INI). `path/case` usa barras: `hello/world/example`. É a convenção para caminhos de URL, caminhos de sistema de arquivos e refs do Git. Ambas são produzidas a partir da mesma tokenização, então converter entre elas é só trocar o separador. Use dot.case quando o identificador representa uma chave hierárquica dentro de dados; use path/case quando representa uma localização literal.
Por que o tokenizador divide em números (file2x → file, 2, x)?
Números como fronteira de token é a convenção que a maioria das bases de código modernas segue — `parseUTF8` deve fazer round-trip para `parse_utf_8` (ou `parseUtf8` em PascalCase), não `parseutf_8`. O tokenizador trata cada transição de letra para dígito e dígito para letra como uma fronteira, então `file2x` vira `file / 2 / x`. Se você preferir manter os dígitos colados às letras precedentes, cole uma versão tokenizada manualmente (`file 2x` com um espaço literal) e o tokenizador vai respeitar o espaço. Essa convenção bate com o pacote change-case e com a PEP 8 do Python.
Como alternating case é diferente de random case?
Alternating case (aLtErNaTiNg cAsE) alterna entre minúscula e maiúscula de forma determinística — cada letra ímpar é maiúscula, cada letra par é minúscula, independentemente da fronteira de palavra. O resultado é o mesmo toda vez para a mesma entrada. Random case (RaNdOm CaSe) vira cada letra independentemente com um cara-ou-coroa, então cada paste produz um resultado diferente. Clique em Re-shuffle para re-roletar a saída aleatória sem limpar o editor. Ambos são formatos de texto zombeteiro (o chamado "meme do bob esponja"); alternating é a variante estrita, random é a caótica. Outras saídas de caixa não são afetadas pelo Re-shuffle.
Isto converte nomes de cabeçalhos HTTP?
Sim — use a saída Header-Case. Ela capitaliza cada token e une com hífens, produzindo grafias canônicas de cabeçalhos HTTP como `Content-Type`, `Access-Control-Allow-Origin` e `X-Forwarded-For`. Cole um nome de propriedade JS camelCase (`accessControlAllowOrigin`) e você obtém a grafia exata do cabeçalho que a spec HTTP/1.1 usa, pronta para soltar em um objeto de opções do `fetch()` ou em uma resposta do lado do servidor. Note que HTTP/2 prefere nomes de cabeçalho em minúsculas (use kebab-case para essa variante); HTTP/1.1 é case-insensitive, mas a grafia Header-Case é a forma legível convencional.
Posso converter um parágrafo inteiro de uma vez?
Sim — para as transformações de caixa de texto (UPPERCASE, lowercase, Title Case, Sentence case, iNVERSE, aLtErNaTiNg, RaNdOm), a ferramenta preserva todo espaço em branco, quebras de linha e pontuação por design, então você pode colar um parágrafo inteiro ou até um documento de várias páginas. As transformações de caixa de programação (camelCase, snake_case etc.) deliberadamente retiram pontuação, já que produzem identificadores; colar um parágrafo em camelCase vai colapsá-lo em um identificador gigante, o que tecnicamente é a transformação correta mas raramente é útil. Para texto do tamanho de um documento, use apenas as saídas de caixa de texto; para conversão de identificador, cole um identificador por vez.
Quão preciso isso é comparado ao lodash, change-case ou outras bibliotecas de caixa?
O tokenizador e as transformações de caixa produzem saída idêntica byte a byte ao pacote npm change-case (`change-case` v5+) para todas as entradas comuns — mesmo tratamento de acrônimos, mesma regra de número como fronteira, mesmo reconhecimento de letras Unicode. `_.camelCase`, `_.snakeCase`, `_.kebabCase` e `_.startCase` do lodash usam um tokenizador um pouco diferente (ele divide em mais caracteres e trata algumas classes Unicode de forma diferente), mas para entradas ASCII as saídas batem nos casos comuns. O Title Case nesta ferramenta é a variante ingênua (cada palavra capitalizada); o `_.startCase` do lodash faz o mesmo. Se você precisa de regras de title-case APA ou Chicago (preposições curtas em minúsculas), use uma biblioteca dedicada de title-case — esta ferramenta otimiza para a caixa que a maioria das pessoas busca.
Por que existem tanto Sentence case quanto Title Case se eles parecem similares?
Eles divergem assim que a entrada tem mais de uma palavra. Sentence case deixa tudo em minúsculas e capitaliza apenas a primeira letra de cada frase: `hello world. this is a sentence.` vira `Hello world. This is a sentence.` Title Case capitaliza cada palavra: `Hello World. This Is A Sentence.` Sentence case é a convenção para corpo de texto, legendas e microcopy de UI na maioria dos guias de estilo modernos (Google, Microsoft, Apple). Title Case é a convenção para títulos, títulos de página, títulos de livro e títulos de janelas de diálogo na tipografia clássica. O estilo web moderno cada vez mais prefere Sentence case para tudo exceto manchetes principais.

Ferramentas relacionadas

Ver todas as ferramentas →

Testador Regex Grátis — Depure e Combine Padrões Online

Processamento de Texto

Teste padrões de expressões regulares instantaneamente contra qualquer texto. Destaque ao vivo, grupos de captura, prévia de substituição, divisão e explicador. Regex JavaScript, 100% privado, sem cadastro, grátis e online.

Comparar dois textos — Diff

Processamento de Texto

Compare dois textos na hora no seu navegador. Vista lado a lado, destaque palavra a palavra, exportação para diff unificado, opções para ignorar maiúsculas/espaços/linhas vazias. 100 % navegador — sem upload.

Contador de Palavras e Caracteres Grátis

Processamento de Texto

Conte palavras, caracteres, frases, parágrafos e tempo de leitura instantaneamente. Contador em tempo real com verificação de limites do Twitter, meta description e Instagram. Grátis, privado, sem cadastro.

Conversor de Base Numérica — Binário, Hex, Decimal e Octal

Ferramentas de Conversão

Converta números entre binário, hexadecimal, decimal, octal e qualquer base personalizada (2-36) instantaneamente. Gratuito, privado, sem cadastro — todo o processamento acontece no seu navegador.

Decodificador e Codificador Base64

Codificação e Formatação

Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.

Gerador Crontab e Construtor de Expressão Cron

Data e Hora

Crie, valide e decodifique expressões cron no navegador. Pré-visualização ao vivo da próxima execução em horário local ou UTC. Sintaxe POSIX de 5 campos, presets, descrição em linguagem clara. Grátis, privado, sem cadastro.