Coloque a primeira letra de um texto em minúscula
Transforme uma inicial maiúscula em minúscula sem alterar o restante do texto. Este conversor preciso é útil quando o nome de uma classe precisa virar uma variável camelCase, quando um título deve entrar naturalmente no meio de uma frase ou quando um texto gerado exige apenas um ajuste de caixa.
Executar grátis
Ele processa o primeiro caractere Unicode e preserva exatamente todos os caracteres seguintes, incluindo maiúsculas, espaços, pontuação e quebras de linha. A operação é determinística, funciona no navegador sem acesso à rede e também está disponível pela API para fluxos automatizados.
Altere somente o caractere inicial
Cole ou envie o texto que precisa de ajuste. A ferramenta lê o primeiro caractere Unicode, aplica a ele o mapeamento padrão para minúscula e o une ao restante sem qualquer alteração. Por exemplo, HelloWorld se torna helloWorld, enquanto o W maiúsculo permanece exatamente como foi informado. Esse comportamento restrito é importante quando você não quer usar caixa de título, caixa de frase ou converter todo o conteúdo em minúsculas. Operações mais abrangentes podem destruir maiúsculas intencionais em nomes de produtos, siglas, identificadores e código. Se o primeiro caractere já for minúsculo, número, espaço ou pontuação, o texto visível normalmente permanece igual. O conversor não remove espaços das extremidades, não normaliza espaços, não apaga pontuação nem interpreta palavras. Um espaço inicial continua sendo um espaço inicial, e o caractere seguinte não passa a ser tratado como primeiro. Isso torna o resultado previsível para modelos e programas que dependem de posições exatas.
Use em identificadores e trechos gerados
Um uso comum é converter um rótulo PascalCase na primeira etapa de um identificador camelCase. Um gerador pode produzir CustomerRecord a partir de um esquema ou nome de tipo, enquanto uma aplicação precisa de customerRecord para uma variável ou propriedade. Colocar somente a inicial em minúscula preserva todos os limites posteriores, portanto as maiúsculas internas continuam indicando a estrutura original das palavras. A mesma regra ajuda com linguagem gerada. Um trecho reutilizável pode ser armazenado como Your account is ready porque pode aparecer sozinho, mas um modelo pode inseri-lo depois de uma oração introdutória e exigir your account is ready. Esta capacidade realiza essa mudança cirúrgica sem reescrever o trecho. Ela não tenta corrigir a gramática nem identificar nomes próprios. Você mantém o controle sobre quando a transformação é adequada. Em sistemas em lote, faça uma chamada por item e guarde a entrada original caso precise de auditoria ou reversão posterior.
Entenda o Unicode e a preservação exata
Strings JavaScript podem começar com caracteres representados por mais de uma unidade de código UTF-16. Por isso, a implementação lê o primeiro ponto de código Unicode completo em vez de pegar cegamente uma única unidade. Isso evita dividir caracteres suplementares, como muitos símbolos e letras de escritas históricas. O comportamento Unicode padrão de minúsculas é aplicado somente a esse primeiro ponto de código. Em alguns sistemas de escrita, um mapeamento para minúscula pode conter mais de um ponto de código; o resultado segue o mapeamento padrão do ambiente, enquanto o restante original ainda começa no limite correto. Nenhuma localidade é inferida do conteúdo e nenhuma reescrita específica de idioma é tentada. Essa escolha é intencional: adivinhar uma localidade tornaria uma transformação simples imprevisível e poderia gerar resultados diferentes para a mesma solicitação. O restante da entrada é copiado da string original; assim, maiúsculas internas, marcas combinadas, emoji, quebras de linha, tabulações e espaços finais são preservados. Entradas vazias e valores que não sejam strings geram um erro de entrada.
Casos de uso
Crie nomes camelCase
Converta um nome PascalCase de tipo ou componente em uma variável camelCase sem perder maiúsculas posteriores.
Insira um trecho em uma frase
Ajuste uma expressão reutilizável iniciada em maiúscula para colocá-la após uma oração sem mudar o restante.
Normalize chaves geradas
Aplique uma regra consistente à inicial de chaves produzidas por esquemas, código ou modelos.
Perguntas frequentes
A ferramenta converte todo o texto em minúsculas?
Não. Ela aplica o mapeamento apenas ao primeiro caractere Unicode e deixa o restante inalterado.
O que ocorre se o primeiro caractere já for minúsculo?
A saída permanece igual, pois colocar esse caractere em minúscula não o modifica.
Espaços ou pontuação no início são ignorados?
Não. A operação usa o primeiro caractere real e preserva sua posição, sem procurar uma letra adiante.
Há suporte para texto Unicode?
Sim. O primeiro ponto de código Unicode completo é lido e recebe o mapeamento padrão do ambiente.
Quanto custa uma solicitação da API?
Cada solicitação da API custa US$ 0,002. A versão no navegador roda localmente sem enviar o texto a um servidor.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/str/uncapitalize-first \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HelloWorld"}'const res = await fetch("https://api.kit.forhosting.com/str/uncapitalize-first", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HelloWorld"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/uncapitalize-first",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HelloWorld"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/uncapitalize-first", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HelloWorld"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HelloWorld"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/uncapitalize-first", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "HelloWorld"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.uncapitalize_first",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |