Case Converter transforms text across thirteen capitalization formats: UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, alternating case, and inverse case. The whole engine is built on native JavaScript String methods (toUpperCase, toLowerCase, split, replace) plus a small set of RegExp patterns — there is no heavy NLP library or cloud round-trip involved.
Conversions run on a 250 ms debounce inside a useMemo hook, so each keystroke does not retrigger thirteen passes over the input. For text above three thousand characters, the UI automatically switches from a render-everything grid to a single-format dropdown to keep the main thread responsive on lower-powered devices.
Title Case applies an English style guide: the first and last word are always capitalized, while a small set of articles, conjunctions, and short prepositions (a, an, the, and, but, or, for, on, at, to, from, by, with, in, of, up, as, vs, via) stay lowercase when they appear in the middle. You can disable that rule with a switch if your style guide prefers strict capital-each-word.
The developer-style conversions (camel, Pascal, snake, kebab, dot, path, CONSTANT) work by stripping non-word characters, splitting on whitespace and existing case boundaries, then re-joining with the target separator. Because they rely on toLowerCase and toUpperCase, they inherit JavaScript's locale-insensitive Unicode behavior — fine for ASCII identifiers but worth knowing if you feed it Turkish text, where the dotted-i and dotless-i rules differ from the default mapping.
An optional accent-folding pass maps roughly fifty Latin diacritics (a-acute, e-grave, c-cedilla, n-tilde, German sharp-s, ae and oe ligatures, and so on) to their ASCII equivalents using a hand-curated lookup table. This is useful when generating slugs or filenames from titles that originally contained French, Spanish, or Scandinavian characters. Non-Latin scripts (Cyrillic, Arabic, CJK) are left untouched.
Output can be copied per format, copied all together, or exported as a JSON object keyed by format name (useful for piping into a build script). A plain .txt download bundles every variant with a separator. Because everything runs through navigator.clipboard and Blob URLs, no network request is ever made — confidential copy, source code, and unreleased product names stay in the tab.
Per-line mode applies the chosen converter independently to each line, which matters for spreadsheet columns or lists where each row should be capitalized on its own (otherwise sentence-case logic spans the whole blob and only the very first letter is touched).