Conversor kebab-case
Hello World Example vira hello-world-example, e getUserId vira get-user-id. Espaços, sublinhados e pontuação viram um único hífen, então nunca sobram hifens duplos. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello World Example
- Resultado
- hello-world-example
- Entrada
- Hello World Example
- Formato kebab
- hello-world-example
- Caso kebab
- hello-world-example
Desenvolvedores front-end, mantenedores de design system, scripts de codegen e testes unitários precisam do mesmo mapeamento de um colar misto para um token kebab-case previsível.
O que kebab-case significa e como as palavras são divididas
Kebab-case é o estilo de nomes que escreve identificadores de várias palavras em letras minúsculas com um único hífen entre cada palavra: hello-world, user-profile-settings, convert-to-kebab-case. É a forma convencional para nomes de classes CSS, muitos atributos personalizados HTML, nomes de pacotes no estilo npm e segmentos de caminho de URL legíveis quando você prefere hífens em vez de underscores. Este conversor monta essa forma a partir de texto livre.
A entrada restante é dividida em tokens: sequências de espaços, underscores, hífens e outros caracteres não alfanuméricos atuam como separadores; limites camelCase e PascalCase inserem uma quebra extra para que getUserId vire get, user e id em vez de um token opaco. Cada token é colocado em minúsculas e segmentos vazios são descartados; depois os tokens são unidos com um único hífen para que separadores repetidos nunca produzam hífens duplos. Pontuação pura sem letras ou dígitos também falha na validação, porque não restaria nada para unir.
Dicas práticas, limites e quando usar esta ferramenta
Use esta capacidade quando a intenção de busca for converter para kebab-case, fazer hyphen-case ou transformar uma frase em palavras minúsculas unidas por hífens. Lembre-se de identificadores não ASCII intencionais: só letras e dígitos ASCII permanecem dentro dos tokens, então caracteres fora desse conjunto atuam como separadores em vez de serem transliterados—se precisar de slugificação Unicode completa com remoção de diacríticos, prefira uma ferramenta dedicada de slug de URL.
Esta landing não é um conversor title-case que capitaliza palavras principais para manchetes, nem um formatador sentence-case, nem um serviço SEO de slug completo com tabelas de transliteração por locale. Prefira uma ferramenta title-case quando humanos lerem a string como manchete; prefira esta capacidade quando máquinas tratarem a string como identificador hifenizado.
Casos de uso
Nomes de classes CSS e tokens de design
Transforme rótulos de componentes ou tokens em nomes de classe kebab-case estáveis antes de gerar folhas de estilo ou docs do design system.
Identificadores de rota e atributos data
Normalize títulos de produto ou página em caixa mista em segmentos de caminho hifenizados e valores data-testid.
Perguntas frequentes
O que é kebab-case?
Kebab-case escreve identificadores de várias palavras em minúsculas com um único hífen entre palavras, por exemplo hello-world ou user-profile-settings.
Como as palavras são divididas?
Espaços, underscores, hífens e outras sequências não alfanuméricas separam palavras. Limites camelCase e PascalCase também inserem quebras antes de minúsculas e junção.
O que acontece com entrada vazia?
Entrada sem letras ou dígitos após a divisão também falha na validação.
É o mesmo que um gerador de slug de URL?
Relacionado, mas não idêntico. Esta ferramenta foca em tokens minúsculos hifenizados a partir de uma frase. Ferramentas de slug dedicadas também podem remover diacríticos ou aplicar transliteração por locale.
O conversor kebab-case é grátis?
A ferramenta do navegador é grátis e roda localmente.
Ferramentas relacionadas
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/kebab-case \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World Example"}'const res = await fetch("https://api.kit.forhosting.com/str/kebab-case", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World Example"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/kebab-case",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World Example"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/kebab-case", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World Example"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World Example"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/kebab-case", 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": "Hello World Example"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.kebab_case",
"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.
Limites
max_chars | 100000 |
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. |
Notas técnicas
Um conversor kebab-case transforma uma frase em um identificador em minúsculas separado por hífens, o formato que classes CSS, atributos data de HTML, nomes de pacotes e muitos segmentos de rota de API esperam. Digite qualquer string não vazia—títulos, identificadores camelCase, campos snake_case ou rótulos de várias palavras—e a ferramenta devolve um resultado kebab-case determinístico com as palavras em minúsculas unidas por hífens simples. Entrada vazia ou só com espaços é rejeitada com um erro claro invalid_input para que pipelines nunca tratem uma string em branco como conversão bem-sucedida. O caminho é lógica pura de string—sem rede, sem sementes aleatórias, sem dependência de relógio—assim o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON sempre que você chama.
O que kebab-case significa e como as palavras são divididas
Espaços iniciais e finais são removidos primeiro; se nada restar, a chamada falha com invalid_input em vez de devolver uma string de sucesso vazia.
Como chamar a API e o que a resposta contém
Prefira enviar a frase bruta em vez de pré-hifenizar à mão quando quiser o conjunto de regras fixo; o conversor colapsa separadores e estilos de caixa mistos em uma forma normalizada. Envie um corpo JSON com um campo de string obrigatório text (aliases input, value, string, s e phrase). O valor deve ser uma string não vazia após aparar espaços e não pode exceder cem mil caracteres para que uma única requisição não esgote a memória do Worker ou do navegador com colagens enormes. Em caso de sucesso a resposta ecoa input como a string original enviada, text como a string de trabalho aparada, result como a saída kebab-case, kebab e kebab_case como a mesma string sob nomes alternativos para clientes que preferem essas chaves, word_count como o número de tokens após divisão e filtro, e message como um resumo curto que informa quantas palavras foram convertidas. Validação falha—text ausente, valor que não é string, payload excessivo, conteúdo vazio após o aparo, ou entrada sem caracteres alfanuméricos—retorna invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida com unidade item e preço marginal unitário zero.
Dicas práticas, limites e quando usar esta ferramenta
Cole um nome de componente, um título ou um campo snake_case legado, converta uma vez e coloque o resultado em uma classe de módulo CSS, um atributo data-testid ou um segmento de rota. Checagens de ida e volta para testes são fáceis: envie Hello World Example e espere hello-world-example com word_count três; envie getUserId e espere get-user-id; envie de propósito string vazia ou espaços para confirmar invalid_input e a mensagem que pede uma string não vazia. Tarefas que falham e retornam invalid_input não consomem saldo pré-pago, o que mantém barata a validação de formulários e testes negativos de CI. Ao ensinar convenções de nomes, compare a mesma frase como camelCase, snake_case e kebab-case para que os alunos vejam por que ecossistemas front-end e CSS padronizam hífens em vez de maiúsculas ou underscores.
Casos de integração
Testes unitários de formatadores de string
Gere fixtures kebab-case de referência e asserte que entrada em branco levanta invalid_input no CI.