HomeToolsTextCase Converter

Case Converter

Convert text between camelCase, snake_case, kebab-case, PascalCase, UPPERCASE, lowercase, Title Case, and more.

Text
Bulk Convert:
Text InputLength: 0

Instant Casing Dashboard

camelCase
exampleText
PascalCase
ExampleText
snake_case
example_text
kebab-case
example-text
CONSTANT_CASE
EXAMPLE_TEXT
Title Case
Example Text
Sentence case
Example text
UPPERCASE
EXAMPLE TEXT
lowercase
example text

One phrase, nine usable forms

Naming conventions become tedious when a label moves between code, configuration, a URL, and interface copy. Enter user profile configurations manager and this case converter online shows nine transformations at once. You can copy one result from the Instant Casing Dashboard or choose a format under Bulk Convert and replace the input in place.

That distinction matters. The dashboard is safest when you are comparing alternatives: your source remains untouched while every card updates. Convert In-Place is faster when a whole pasted value should become the selected style and you intend to keep editing the result.

The conversions at a glance

Format Example Typical context
camelCase accountDisplayName JavaScript variables, object properties
PascalCase AccountDisplayName classes, types, React components
snake_case account_display_name Python names, database columns
kebab-case account-display-name URL segments, CSS classes, CLI names
CONSTANT_CASE ACCOUNT_DISPLAY_NAME environment variables, fixed constants
Title Case Account Display Name labels, headings, draft titles
Sentence case Account display name prose and interface messages
UPPERCASE ACCOUNT DISPLAY NAME normalized codes or deliberate display text
lowercase account display name normalized free text

Conventions are social rules rather than language laws. A Python project may use PascalCase for classes and snake_case for functions; a JavaScript codebase may allow SCREAMING_SNAKE_CASE only for values that are truly immutable. Follow the repository’s formatter, linter, schema, and local style instead of assuming one table applies everywhere.

How the developer-style cases find words

camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE share a word-splitting step. The converter recognizes spaces, underscores, and hyphens as separators. It also inserts a boundary between a lowercase letter or number and a following uppercase letter, which lets it turn invoice2LineItems into words. Acronym transitions are handled too: HTTPResponseCode becomes HTTP, Response, Code before normalization.

After splitting, those five formats normalize letter case and join the words with either no delimiter, _, or -. For example:

Input:   XML_http-response Code
camel:   xmlHttpResponseCode
Pascal:  XmlHttpResponseCode
snake:   xml_http_response_code
kebab:   xml-http-response-code
constant: XML_HTTP_RESPONSE_CODE

Notice XML becomes Xml in PascalCase. The transformation does not maintain an acronym dictionary, so it cannot know that your team prefers XMLHttpRequest rather than XmlHttpRequest. Copy the generated baseline, then restore domain-specific capitalization where required.

Prose conversions follow different rules

Title Case does not run through the same delimiter parser. It capitalizes the first character of each whitespace-delimited token and lowercases the remainder. This is useful for turning accidental caps into a readable heading, but it is not a publication-specific title-style engine. It will capitalize short words such as “And,” “Of,” and “The,” and it does not make exceptions for brand spellings like iPhone, eBay, or GitHub.

Sentence case lowercases the input, then capitalizes a lowercase ASCII letter at the beginning and after ., !, or ? followed by whitespace. It can quickly repair PLEASE REVIEW THIS. THANK YOU!, but lowercasing also changes proper nouns, product names, initialisms, and case-sensitive identifiers. Review NASA, TypeScript, and McDonald manually after conversion.

UPPERCASE and lowercase apply the browser’s standard string casing to the entire input. They preserve spaces and punctuation rather than joining words. Locale-sensitive casing can be nuanced, particularly for Turkish dotted and dotless I or German characters, so language-critical publishing deserves a native-speaker check.

A naming workflow that catches mistakes early

Suppose a feature begins with the product phrase “Saved Payment Methods.” The same concept may need several representations:

  • UI heading: Saved Payment Methods
  • React component: SavedPaymentMethods
  • state variable: savedPaymentMethods
  • route segment: saved-payment-methods
  • database column: saved_payment_methods
  • feature flag: SAVED_PAYMENT_METHODS

Paste the human-readable phrase once, then copy each result as you create the corresponding artifact. This reduces small inconsistencies such as payment-method in one place and payment-methods elsewhere. It does not validate whether the name is accurate, unique, reserved, or accepted by a target language. Run tests and linters after inserting generated identifiers.

For a single value, keep the source phrase in the input and use card-level Copy. For a list of identifiers, convert one per pass. The developer-style converters treat all whitespace as word boundaries and concatenate the resulting words, so multiple lines do not remain multiple lines. Pasting twenty names and selecting snake_case produces one continuous identifier, not twenty independently transformed rows.

Converting existing identifiers

The tool is also a camelCase converter, snake case converter, and kebab case converter in the reverse direction. You do not need to start with ordinary words:

customerBillingAddress
customer_billing_address
customer-billing-address
CustomerBillingAddress

Each of these can be separated into the same basic words by the shared parser. This is especially handy while translating API response keys into application properties, renaming a CSS selector as a component, or drafting migration mappings.

Numbers stay attached unless a case boundary or delimiter separates them. oauth2CallbackURL may become oauth2_callback_url; it will not infer that you wanted oauth_2_callback_url. Punctuation other than _ and - is not a general separator in the developer transformations. A slash, period, colon, or apostrophe can survive inside a word, yielding an invalid programming identifier. Clean such punctuation before copying the result into code.

Bulk Convert is intentionally destructive

Select the target format, then click Convert In-Place to overwrite the Text Input with that result. This is convenient for normalizing a heading or identifier before making another conversion. It also means the original spelling, separators, and capitalization are no longer in the box. If those distinctions matter, copy the source elsewhere or use the individual dashboard Copy controls instead.

Repeated conversions can lose information. apiURL converted to lowercase becomes apiurl; converting that back to camelCase cannot recover the boundary between “api” and “url.” Likewise, Title Case can erase intentional internal capitals. Prefer conversion from the richest, clearest source phrase rather than chaining formats.

The Length indicator reports the current input’s JavaScript string length. It is useful for a quick size check but does not claim that a name is valid for a database, route, package registry, or compiler.

Cases the converter cannot decide for you

Initialisms have competing house styles: parseURL versus parseUrl, userID versus userId. Generated output favors ordinary word capitalization, so settle acronym policy at the project level.

Some words carry punctuation as meaning. C++, .NET, node.js, and O'Reilly cannot be translated mechanically into universally accepted identifiers. The correct result depends on the ecosystem and audience.

Reserved words remain reserved. Lowercasing “Class” to class may create an invalid variable in a given language. Database identifiers can have length limits or quoting rules. URL paths can have routing semantics. Conversion handles shape, not validity.

Unicode scripts and diacritics are preserved by most casing operations, but word boundary detection is built around ASCII uppercase and lowercase ranges. Mixed-script names may not split where a human expects.

Practical questions

Can it turn a sentence into camelCase?

Yes. Spaces are treated as word separators, and punctuation that remains inside tokens may also remain in the result. Use a clean phrase such as send monthly invoice, then review the generated sendMonthlyInvoice before using it as code.

Is Title Case grammatically correct?

It is mechanically consistent, not style-guide aware. It capitalizes every whitespace-delimited word. Adjust articles, conjunctions, prepositions, proper names, and brand capitalization according to your editorial standard.

Why did my acronym change?

The parser identifies acronym boundaries but subsequent normalization treats the acronym as a regular word. APIResponse becomes ApiResponse in PascalCase. Restore an all-cap acronym manually if your convention requires it.

Does Convert In-Place process each line separately?

No. For camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE, line breaks act like other whitespace and the words are joined into one value. Uppercase, lowercase, Title Case, and Sentence case retain whitespace because they transform the original string directly.

When should I use underscores instead of hyphens?

Use the delimiter expected by the destination. Hyphens are common in readable paths and CSS but are subtraction operators in many languages. Underscores are valid in many identifiers and database fields. A convention’s compatibility matters more than its appearance.

Does the tool rename files or code automatically?

No. It transforms text and copies the chosen result. Renaming symbols safely may require an IDE refactor so imports, references, case-sensitive file paths, and tests change together.

Learn More

Read our comprehensive guide to master this utility.

Read Guide →