Skip to main content
ZEKILO Dev

Case Converter

Type or paste a name and see it in ten naming cases at once. Each result has its own copy button.

Stays in your browserUnicode case mappingAs of 2026.10.03

Input

Press Esc, then Tab to leave the editor.

Output

Converted cases
camelCase—
PascalCase—
snake_case—
CONSTANT_CASE—
kebab-case—
Title Case—
Sentence case—
lower case—
UPPER CASE—
dot.case—

How to use Case Converter

  1. 1Type or paste text into the input panel, or press Sample.
  2. 2Ten cases appear in the table at once. If the input has several lines, each line is converted separately.
  3. 3Press the Copy button at the end of the row you need.

Case Converter options

Convert each line separately
On (default): every line of the input is converted on its own, and each result keeps the same line breaks. Off: a line break is just another word boundary, so the whole input becomes one name.

How the cases are built

The input is first split into words, and every word is lowercased. Each case then joins the words in its own way: camelCase and PascalCase capitalize word beginnings and join without a separator, snake_case and CONSTANT_CASE join with an underscore, kebab-case with a hyphen, dot.case with a dot, and Title Case and Sentence case with a space.

Upper and lower case are converted with the default Unicode case mappings (Unicode case mapping), the same ones behind toLowerCase and toUpperCase in ECMAScript. Locale-specific rules, such as the Turkish dotless i, are not applied, so the result is the same in every browser language.

Results that cannot be reversed

Converting to a case drops information: user profile ID and userProfileId both become user_profile_id. Going back from snake_case to camelCase gives userProfileId, not the original spelling of an acronym. If the original capitalization matters, keep the source text.

Case Converter examples

  • Words separated by spaces, with an acronym

    The acronym ID is lowercased first, then each case rule is applied.

    Input

    user profile ID

    Output

    camelCase: userProfileId
    snake_case: user_profile_id
    kebab-case: user-profile-id
    CONSTANT_CASE: USER_PROFILE_ID
  • A run of capitals followed by a capitalized word

    XMLHttp is split into XML and Http.

    Input

    XMLHttpRequest

    Output

    camelCase: xmlHttpRequest
    snake_case: xml_http_request
    kebab-case: xml-http-request
    CONSTANT_CASE: XML_HTTP_REQUEST
  • A digit inside a name

    The digit 2 stays attached to the word before it.

    Input

    get_user2_name

    Output

    camelCase: getUser2Name
    snake_case: get_user2_name
    kebab-case: get-user2-name
    CONSTANT_CASE: GET_USER2_NAME

Examples use the reference cases this tool is tested against.

Case Converter: frequently asked questions

Is my input sent to a server?

No. Your input and the result are processed only in this browser and are not stored. Reloading the page clears them.

How are words split?

At spaces, underscores, hyphens, and dots; where a lowercase letter is followed by an uppercase letter (userName gives user and Name); and inside a run of capitals, before a capital that is followed by a lowercase letter (XMLHttp gives XML and Http). Other punctuation also separates words and is not carried into the result.

What happens to acronyms such as ID or XML?

They are lowercased first, and then the rule of each case is applied. That is why user profile ID becomes userProfileId and XMLHttpRequest becomes xmlHttpRequest, not userProfileID or xMLHttpRequest.

How are digits handled?

A digit stays attached to the word before it, so get_user2_name is split into get, user2, and name. An uppercase letter that comes right after a digit starts a new word.

What about Korean, Japanese, and other text without upper and lower case?

Those characters are kept exactly as they are. A boundary is placed where they meet letters that do have case, so they form words of their own.

Do the lower case and UPPER CASE rows split words too?

No. Those two rows only change the case of each letter. Spaces, punctuation, and separators stay as you wrote them.

How it works · Standards

  • Processed in: this browser (your device). Nothing is sent or stored.
  • Standards: Unicode case mapping
  • Engine: ZEKILO Dev case converter (in-house code)
  • Case mapping does not depend on your browser language. The same input gives the same result everywhere.
  • Empty input is not an error. The table simply stays empty.
  • As of 2026.10.03
  • Changelog: 2026.10.03 First release
Open-source licenses →
Something wrong with the result? Report an issue(Your input is not attached)