O que é a conversão de caixa de texto?
A conversão de caixa de texto recebe uma string de entrada e emite as mesmas palavras numa convenção de capitalização diferente. Os alvos mais comuns são camelCase e PascalCase (usados para identificadores na maioria das linguagens com chaves), snake_case e CONSTANT_CASE (Python, Ruby, Rust, macros de C), kebab-case (URLs, nomes de classe CSS, atributos HTML, nomes de pacote npm), dot.case (chaves de configuração, caminhos de objeto JavaScript), path/case (identificadores estilo sistema de arquivos), Title Case e Sentence case (manchetes e prosa), além de lower case e UPPER CASE integrais. Este conversor detecta os limites naturais de palavra na sua entrada — espaços, hífens, sublinhados, pontos, barras e as transições minúscula→maiúscula que marcam identificadores como helloWorld — e os remonta com o separador e o padrão de capitalização que cada caso destino exige.
Como funciona a conversão de caixa?
Sua entrada é processada inteiramente no seu navegador usando um pequeno tokenizador em JavaScript puro e onze formatadores de caixa. Os passos principais são:
- Sua entrada é lida do textarea como está — cada byte que você colou é mantido em memória localmente.
- Um tokenizador divide a entrada por espaços, sublinhados, hífens, pontos e barras, e depois subdivide cada pedaço pelos limites minúscula→maiúscula (de modo que
helloWorldvira["hello", "World"]) e pelos limites letra↔dígito (de modo quev2APIvira["v", "2", "API"]). - Tokens vazios são filtrados e os sobreviventes são passados para minúsculas com
String.prototype.toLocaleLowerCasepara que letras Unicode em turco, alemão e outras línguas sejam preservadas corretamente. - Onze formatadores então montam os tokens em cada caso destino: camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (com uma lista de palavras curtas para que
and,the,of, etc. permaneçam em minúsculas exceto como primeira ou última palavra), Sentence case, lower case e UPPER CASE. - A saída é escrita uma linha por caso na grade de resultados; cada linha tem seu próprio botão de cópia que usa a Clipboard API assíncrona com um fallback síncrono
document.execCommand('copy')para navegadores antigos.
Por que usar um conversor de caixa?
- Refatorar identificadores: renomeie uma variável JavaScript de
user_idparauserId, uma função Python dehelloWorldparahello_world, ou uma constante Rust demaxBufferparaMAX_BUFFERsem editar à mão um caractere de cada vez. - Converter chaves de configuração: vire um JSON cheio de chaves camelCase para YAML em snake_case para um serviço Python, ou para kebab-case num chart Helm, com uma única colagem.
- Escrever manchetes: cole um rascunho de manchete e leia a forma Title Case (com as exceções de palavras curtas do Chicago Manual of Style) ao lado da forma Sentence case (AP Stylebook) — escolha aquela que sua publicação usa.
- Gerar slugs de URL: cole o título de um post de blog e copie a forma kebab-case direto no campo de slug do seu CMS — o tokenizador trata pontuação e frases multi-palavra sem deixar separadores soltos.
Quais são as aplicações comuns da conversão de caixa?
Trocar entre convenções de capitalização aparece em engenharia de software, criação de conteúdo e engenharia de dados:
- Refatoração de código: renomeie identificadores em uma base de código quando um guia de estilo muda (ex. JavaScript camelCase → Python snake_case durante uma reescrita do backend) sem introduzir erros de digitação.
- Remodelagem de payload de API: converta chaves JSON camelCase para snake_case antes de alimentar um backend Ruby on Rails ou Django, ou para kebab-case num nome de classe CSS-in-JS.
- Redação de manchetes e slugs: produza títulos de página em Title Case, meta descrições em Sentence case e slugs de URL em kebab-case a partir da mesma manchete-fonte em um único passo.
Como é um exemplo de conversão de caixa?
Cole Hello World API na entrada. A grade de resultados renderiza onze linhas simultaneamente: helloWorldApi (camelCase), HelloWorldApi (PascalCase), hello_world_api (snake_case), HELLO_WORLD_API (CONSTANT_CASE), hello-world-api (kebab-case), hello.world.api (dot.case), hello/world/api (path/case), Hello World Api (Title Case), Hello world api (Sentence case), hello world api (lower case) e HELLO WORLD API (UPPER CASE). A mesma entrada colada como helloWorldAPI é tokenizada para as mesmas três palavras — o detector de limite minúscula→maiúscula trata também essa forma.
Isto roda no meu navegador?
Sim. O tokenizador e os onze formatadores de caixa têm cerca de 120 linhas de JavaScript puro rodando dentro da aba do navegador. Nada é enviado, nenhum service worker faz proxy da sua entrada e a página não faz nenhuma requisição de rede para o passo de conversão em si. O único tráfego de saída são os ativos padrão de carregamento de página (CSS, fontes, analytics) — o seu texto nunca chega à Ultim8Soft.
Qual formato de caixa devo usar para nomes de variáveis?
Depende da linguagem e do guia de estilo da equipe. As bases de código JavaScript e TypeScript usam predominantemente camelCase para variáveis e funções, PascalCase para classes e componentes React, e CONSTANT_CASE para nomes de variáveis de ambiente e constantes em nível de módulo — tanto o guia de estilo JavaScript do Google quanto o do Airbnb fixam essas escolhas. Python (PEP 8), Ruby e Rust preferem snake_case para variáveis e funções, PascalCase para classes e CONSTANT_CASE para constantes de módulo. As bases de código C e C++ (kernel Linux, LLVM) se apoiam em snake_case para funções e CONSTANT_CASE para macros do pré-processador. Em caso de dúvida, rode o linter ou formatador da sua equipe — ele dirá qual convenção é aplicada.
Como a entrada é tokenizada?
O tokenizador primeiro divide a entrada por qualquer sequência de espaço em branco, sublinhado (_), hífen (-), ponto (.) ou barra (/). Cada pedaço resultante é então dividido novamente pelos limites minúscula→maiúscula (de modo que helloWorld vira ["hello", "World"]) e pelos limites letra↔dígito (de modo que v2API vira ["v", "2", "API"]). Tokens vazios são filtrados e os sobreviventes são passados para minúsculas via String.prototype.toLocaleLowerCase. Os formatadores então re-capitalizam e re-juntam os tokens com o separador que cada caso destino exige. A estratégia trata as seis formas comuns de identificador — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE e prosa separada por espaços — de fábrica.
E quanto a caracteres Unicode / não ASCII?
As letras Unicode sobrevivem ao ciclo. O tokenizador usa String.prototype.toLocaleLowerCase e toLocaleUpperCase, que honram regras de caixa específicas do locale — o i turco pontuado vs. sem ponto, o ß alemão que vira SS, letras latinas acentuadas em francês e espanhol, e assim por diante. Os caracteres não letra que NÃO estão no conjunto de separadores (espaço em branco, _, -, ., /) — por exemplo dígitos, letras acentuadas ou caracteres CJK — permanecem dentro do token em que aparecem e os formatadores os reemitem inalterados. Isso significa que uma entrada como nœud_principal é tokenizada para ["nœud", "principal"] e converte limpamente para nœudPrincipal (camelCase) ou NœudPrincipal (PascalCase).
Este conversor de caixa é uma única página estática que roda o tokenizador e os onze formatadores inteiramente no seu navegador — sem biblioteca de terceiros, sem chamada de rede por conversão, sem conta. Cole qualquer texto acima, percorra as onze saídas lado a lado e copie a que precisar.