Skip to main content

kebab-case Converter

kebab-case writes a name in lowercase letters with a hyphen between words, as in main-navigation-menu. This converter turns plain words or names in another case, such as camelCase or snake_case, into kebab-case, splitting acronyms and dropping punctuation, with one name per line of input.

Universal Text Transformer

Skip to text input
Try an example:

Input

0/100,000characters0lines

Type or paste text. The output updates as you type.

Output

The converted text appears here as you type.

Words
0
Characters
0
Without spaces
0
Lines
0
Sentences
0
Reading time
0 sec

Each line is converted as its own title, so you can paste a list of headlines.

kebab-case Converter examples

CaseInputOutput
WordsMain Navigation Menumain-navigation-menu
From camelCasebackgroundColorbackground-color
PunctuationHow to Bake Bread!how-to-bake-bread
From CONSTANT_CASEMAX_WIDTHmax-width
AcronymIOStream readerio-stream-reader
One name per linedry run log leveldry-run log-level

kebab-case Converter rules

  1. Every letter is lowercase, and words are joined with one hyphen.
  2. Each line becomes one name, so you can convert a list in one pass. Blank lines are kept.
  3. Spaces, punctuation, symbols, emoji, and the separators of other cases (_ - . /) split words and are removed.
  4. A new word also starts where a lowercase letter or digit meets a capital (getUser is get and User) and at the end of a run of capitals (XMLHttp is XML and Http).
  5. Digits stay with the letters before them, so utf8 and h264 stay whole words. In a name written in capitals, a capital after a digit does not start a new word, so 2FA, MP3, and IPV6 stay whole words.
  6. Acronyms are treated as ordinary words (HTML becomes html or Html), so their capitals are not kept.
  7. An apostrophe inside a word is dropped (don't becomes dont). Accented letters and other alphabets are kept.

How kebab-case differs from snake_case

Both are lowercase. kebab-case joins words with hyphens (max-width) and snake_case with underscores (max_width). Most programming languages read a hyphen as a minus sign, so kebab-case names suit CSS, URLs, and files rather than variables. Try the same text in the snake_case Converter.

How to use

  1. 1

    Type or paste your words, or names in another case, into the editor. Put each name on its own line.

  2. 2

    The kebab-case version appears in the output as you type.

  3. 3

    Copy the result into your code, configuration, or file name.

That's it! Your text is transformed and ready to use.

Three simple steps to use kebab-case Converter

When to use kebab-case Converter

  • CSS and HTML

    Class names, custom properties, and attributes such as data-user-id. CSS property names are themselves kebab-case (background-color).

  • URLs and file names

    Readable page slugs and file names without spaces or capital letters.

  • Command-line flags and packages

    Long option names such as --dry-run, and npm package names, which cannot contain capital letters.

FAQ

Is kebab-case the same as a URL slug?

Close, but not identical. This converter keeps accented letters and other alphabets (café-menu). If your URLs must be plain ASCII, remove or replace those letters afterward.

Why can’t I use kebab-case for variable names?

Most languages, including JavaScript, Python, and Java, read user-id as user minus id. Use camelCase or snake_case for variables.

Can I convert many names at once?

Yes. Put each name on its own line. Every line converts to one name, and blank lines stay where they are.

Is my text uploaded anywhere?

The conversion runs in your browser, so your text is not uploaded to a server to be converted.