How to convert between cases
Type or paste any text into the input box — a phrase, a sentence, a variable name, a file name — and every case style updates instantly below, each with one-click copy. There are no options to fiddle with: the converter splits your text into words, then rebuilds each style from those words. That means it round-trips cleanly, so myHTMLParser, my-html-parser and My HTML Parser all produce the same set of outputs. It is built for the everyday friction of moving an identifier from one convention to another — renaming a database column to a JSON key, turning a heading into a URL slug, or converting a constant to a config key.
The case styles explained
Different ecosystems settled on different conventions, and the same idea often needs a different spelling depending on where it lives. This tool covers the eleven you actually meet:
- camelCase — first word lowercase, later words capitalised, no separators (
userFirstName). The default for variables and functions in JavaScript, Java and Swift. - PascalCase — every word capitalised, no separators (
UserFirstName). Used for classes, types and components. - snake_case — lowercase words joined by underscores (
user_first_name). The Python and SQL staple. - kebab-case — lowercase words joined by hyphens (
user-first-name). The shape of URL slugs, CSS classes and CLI flags. - CONSTANT_CASE — uppercase words joined by underscores (
USER_FIRST_NAME). Constants and environment variables. - dot.case — lowercase words joined by dots (
user.first.name). Config keys and namespaces. - path/case — lowercase words joined by slashes (
user/first/name). Route and file-path fragments. - Title Case — every word capitalised, spaces between (
User First Name). Headings and labels. - Sentence case — only the first word capitalised (
User first name). Prose and UI copy. - UPPERCASE and lowercase — the raw text forced to one register, separators preserved.
How words are split
Good recasing depends entirely on getting the word boundaries right, and that is the part naïve converters get wrong. This tool tokenises on the obvious separators — spaces, hyphens, underscores, dots and slashes — and also on two subtler boundaries: the camelCase hump, where a lowercase letter is followed by an uppercase one (firstName → first, Name), and the boundary between letters and digits (base64 → base, 64). Runs of capitals are handled too, so an acronym followed by a word splits correctly: HTMLParser becomes HTML, Parser rather than H, T, M, L, Parser. The result is that mixed, messy input still produces clean, predictable output in every style.
Why recase locally
Recasing is pure, deterministic string manipulation — the textbook case for a real tool over an AI assistant, which can drop a word, mis-split an acronym or quietly normalise something you wanted left alone. A deterministic converter applies the same tokenising and joining rules every time and is right every time. Running it in the browser also means it is instant and works offline, and although identifiers are rarely secret, keeping everything local is simply the gitime.dev default: nothing you type is uploaded or logged.
- Eleven styles at once — copy whichever you need.
- Smart splitting — camel humps, acronyms and digit boundaries.
- Clean round-trips — any style converts to any other.
- Local — exact, instant, nothing uploaded.
Frequently asked questions
- Which cases does it convert to?
- camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Title Case, Sentence case, UPPERCASE and lowercase — all at once.
- How does it split words?
- On spaces, hyphens, underscores, dots and slashes, plus camelCase humps and letter-to-digit boundaries; acronym runs are kept together.
- What is the difference between snake_case and CONSTANT_CASE?
- Both join words with underscores; snake_case is all lowercase, CONSTANT_CASE is all uppercase.
- Is anything uploaded?
- No. All recasing runs locally in your browser.