Case Converter

Transform strings and code identifiers across 10 standard naming conventions with deterministic token boundary detection and client-side processing.

Text Input
camelCaselowerCamelCase
helloWorldExample
PascalCaseUpperCamelCase
HelloWorldExample
snake_casec_case
hello_world_example
kebab-casespinal-case
hello-world-example
SCREAMING_SNAKE_CASECONSTANT_CASE
HELLO_WORLD_EXAMPLE
dot.casedot-notation
hello.world.example
Title CaseHeadline Style
Hello World Example
Sentence caseProse Style
Hello world example
UPPERCASEALL CAPS
HELLO WORLD EXAMPLE
lowercaseminuscule
hello world example

Quick Controls Reference

Live Reactive Parsing

Input strings are parsed on every keystroke, synthesizing all 10 formats simultaneously without manual execution.

Preserve Numbers

Separates numeric fragments as distinct tokens (e.g. converting "item2List" into "item_2_list").

Preserve Acronyms

Retains consecutive capital letters (e.g. "XMLParser" or "HTTP") as unified tokens instead of single letters.

Multiline Batch Mode

Processes each row independently, preserving line structures for lists of variables, SQL columns, or enums.

Understanding Case Styles and Naming Conventions

In programming languages and data systems, whitespace is syntactically significant and serves as a token separator. Consequently, multi-word identifiers (such as variable names, database column definitions, CSS class selectors, and REST API routes) cannot contain raw spaces. Software engineering has evolved distinct letter casing and separator conventions to encode multi-word semantics without introducing syntax errors or lexical ambiguity.

Modern polyglot applications routinely cross lexical boundaries: a PostgreSQL database table defined in snake_case communicates with a Go or C# backend utilizing PascalCase and camelCase, which in turn serializes JSON payloads for a React frontend, before rendering HTML elements styled via kebab-case CSS classes. A reliable, deterministic case converter automates these structural transitions.

The 10 Standard Letter Case Specifications

Each format enforces specific rules regarding word capitalization, letter downcasing, and delimiter characters:

camelCaselowerCamelCase

The initial word begins with a lowercase letter. Every subsequent word begins with an uppercase letter, with no delimiter characters between tokens.

Example: getUserAccountData

Standards: JavaScript/TypeScript variables, functions, and object properties; Java and Swift method declarations.

PascalCaseUpperCamelCase

Every word begins with an uppercase letter, joined directly without separators or whitespace.

Example: GetUserAccountData

Standards: Classes, interfaces, and type aliases in TypeScript and C#; React component names; Go exported identifiers.

snake_casec_case

All letters are converted to lowercase, with words separated by single underscore (_) characters.

Example: get_user_account_data

Standards: Python PEP 8 variables and functions, Rust identifiers, SQL table and column names, C libraries.

kebab-casespinal-case

All letters are lowercase, joined together with hyphens (-).

Example: get-user-account-data

Standards: CSS class names and custom properties, URL path slugs, HTML custom elements, npm package names, CLI flags.

SCREAMING_SNAKE_CASECONSTANT_CASE

All letters are capitalized, with words separated by underscore (_) delimiters.

Example: GET_USER_ACCOUNT_DATA

Standards: POSIX environment variables, global immutables, enum keys in C/C++, TypeScript, and Java.

dot.casedot-notation

All letters are lowercase, separated by period (.) delimiters.

Example: get.user.account.data

Standards: Java package definitions, configuration key paths (YAML/Properties), metric namespaces (Graphite, StatsD).

Title CaseHeadline Style

The initial character of every word is capitalized, with whitespace preserved between words.

Example: Get User Account Data

Standards: Documentation headings, article titles, application modal dialog headers, navigation menus.

Sentence caseProse Style

Only the first character of the string is capitalized. All subsequent characters and words are converted to lowercase.

Example: Get user account data

Standards: UI button text, notification banners, helper tooltips, descriptive field labels.

UPPERCASEALL CAPS

Converts every alphabetical character to its uppercase glyph while preserving original spacing and symbols.

Example: GET USER ACCOUNT DATA

Standards: SQL statements (SELECT, WHERE), acronym indicators, terms and conditions headings.

lowercaseminuscule

Converts all characters to lowercase while maintaining existing whitespace and structural symbols.

Example: get user account data

Standards: Text normalization, case-insensitive string indexing, search query canonicalization.

Naming Conventions Across Programming Ecosystems

Major programming languages establish official style guides that dictate casing conventions for various language constructs:

Language / EcosystemVariables & FunctionsClasses & TypesConstantsFiles & Modules
JavaScript / TypeScriptcamelCasePascalCaseSCREAMING_SNAKE_CASEkebab-case / camelCase
Python (PEP 8)snake_casePascalCaseSCREAMING_SNAKE_CASEsnake_case
Go (Golang)camelCase / PascalCase*PascalCasecamelCase / PascalCasesnake_case
Rustsnake_casePascalCaseSCREAMING_SNAKE_CASEsnake_case
C# (.NET)camelCase (var) / PascalCase (fn)PascalCasePascalCasePascalCase
SQL (Postgres, MySQL)snake_casesnake_caseUPPERCASE (Keywords)snake_case
HTML / CSSkebab-case (Custom props)kebab-case (Classes)kebab-casekebab-case

*In Go, casing controls identifier visibility: an initial uppercase letter exports the symbol from its package, while an initial lowercase letter restricts access to package-private scope.

Mechanics of Word Tokenization and Boundary Detection

Accurate case conversion requires two deterministic steps: breaking input strings into atomic semantic units (tokenization), followed by reassembling those units using the target convention's capitalization and separator rules.

Delimiter Splitting

Strings are segmented across explicit punctuation patterns matching regex [\s_\-.,;:!?/\\()[\]]+. Consecutive delimiters are coalesced to prevent empty tokens.

Numeric Boundary Detection

When enabled, alphanumeric strings (e.g. user123Name) separate alphabetical runs from digit sequences, producing ['user', '123', 'Name'] to preserve clear numeric boundaries.

Acronym Cohesion

When acronym preservation is active, consecutive capital letters matching /^[A-Z]+$/ are retained as atomic blocks, preventing strings like XMLParser from decomposing into fragmented single letters.

Common Engineering Workflows and Transformations

Database Schema to TypeScript DTOs

Relational databases conventionally use snake_case for column definitions (such as created_at, billing_address_id). Multiline batch conversion enables instant translation of schema dumps into camelCase property signatures required by frontend TypeScript interfaces.

Component Names to CSS and File Slugs

When creating UI component libraries, PascalCase identifiers (such as UserNavigationMenu) map directly to kebab-case CSS classes (user-navigation-menu) and kebab-case file paths on case-sensitive Linux build servers.

Environment Variables and Config Keys

Transform nested configuration paths written in dot.case (server.http.port) into SCREAMING_SNAKE_CASE (SERVER_HTTP_PORT) for 12-factor application deployment in Docker containers and CI/CD pipelines.

Frequently Asked Questions

How do I convert snake_case to camelCase (and vice versa)?

To convert snake_case to camelCase, delimiters like underscores are removed and the initial character of each subsequent word is capitalized (e.g., "user_profile_id" becomes "userProfileId"). In reverse, every uppercase letter is preceded by an underscore and converted to lowercase ("userProfileId" becomes "user_profile_id"). This converter computes both bidirectional formats instantly as you type.

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

The key differences lie in the initial letter casing and word delimiters. camelCase starts with a lowercase letter and capitalizes subsequent words without separators (e.g., "myVariableName"). PascalCase capitalizes the first letter of every word without separators (e.g., "MyClassName"). kebab-case downcases all letters and joins words using hyphens (e.g., "my-css-class").

When should CONSTANT_CASE (SCREAMING_SNAKE_CASE) be used?

CONSTANT_CASE (all-uppercase letters separated by underscores, such as "MAX_RETRY_COUNT" or "API_BASE_URL") is the standard convention for environment variables, global immutables, POSIX system configurations, and enum values across Python, TypeScript, Java, C/C++, and Docker.

How does the tool handle acronyms like API, HTTP, or URL during case conversion?

With the "Preserve Acronyms" toggle enabled, consecutive uppercase letters are kept as unified lexical units instead of being fractured into single-letter tokens. For example, "fetchHTTPResponse" converts to snake_case as "fetch_HTTP_response" instead of "fetch_h_t_t_p_response".

How do I convert multiple lines or lists of identifiers in batch?

Toggle "Multiline Mode" in the options bar. The tool parses and converts each line independently while preserving original line breaks in the copied output. This allows fast batch conversion of database schema dumps, TypeScript interface properties, or CSV headers.