Kebab Case Converter

Runs in browser Formatting

Turn text into lowercase words joined by hyphens, with optional transliteration of accented characters for clean URL slugs.

Privacy: This tool runs entirely in your browser. Your input never leaves your device.
Loading tool…

What is the difference between camelCase, snake_case, kebab-case and PascalCase?

They are four ways of joining the words of an identifier: camelCase starts lower and capitalises each following word (userId), PascalCase capitalises every word (UserId), snake_case separates with underscores (user_id) and kebab-case with hyphens (user-id). None is "correct" — each language and format has its convention: JSON and JavaScript lean to camelCase, Python and SQL to snake_case, URLs and CSS to kebab-case, class names to PascalCase. A mismatch between an API contract and its consumer (userId vs user_id) is one of the most common integration defects.

How to use Kebab Case Converter

  1. Paste titles or identifiers, one per line.
  2. Choose kebab-case for code identifiers (it splits camelCase), URL slug for titles, or Train-Case.
  3. For slugs, decide whether to keep non-Latin letters and set a maximum length.
  4. Copy the results.

Kebab Case Converter features

  • kebab-case, URL slug and Train-Case modes
  • Transliteration of accented Latin characters and ligatures (café → cafe, straße → strasse)
  • Optional preservation of Arabic, Hindi and other non-Latin letters in slugs
  • Maximum slug length with clean truncation
  • Batch conversion with a result table and warnings for empty slugs

Kebab Case Converter example

Blog post slugs

Input:

Café Straße & Crème Brûlée Menu
10 Tips for Better APIs!

Output:

cafe-strasse-creme-brulee-menu
10-tips-for-better-apis

Frequently asked questions about Kebab Case Converter

What is the difference between kebab-case and a URL slug?

kebab-case mode splits identifiers at case changes, underscores and spaces and joins the lowercase words with hyphens (userFirstName → user-first-name). URL slug mode, the default, treats each line as a title: it does not split camelCase (userFirstName → userfirstname), but it strips accents (café → cafe), expands ligatures (straße → strasse), drops punctuation and can cap the length — producing safe, readable URLs. Use kebab-case mode for code identifiers.

What happens to Arabic or Hindi text in slug mode?

With "Keep non-Latin letters" enabled the words are kept (مرحبا-بالعالم), which modern browsers display correctly in URLs. Disable it to allow only ASCII letters and digits.

Why did a line produce an empty result?

It contained no letters or digits after cleaning — for example only punctuation, or non-Latin text with "Keep non-Latin letters" disabled.

What is Train-Case?

Hyphen-separated words with each word capitalised (Content-Type, X-Request-Id) — the style used for HTTP header names.