Text Case Converter: Instantly Convert Text Between camelCase, snake_case, kebab-case & 11 More Formats
Free online Text Case Converter — transform text between 14 naming conventions including camelCase, PascalCase, snake_case, kebab-case, and more. Live preview, one-click copy, 100% browser-based.
Text Case Converter: Instantly Convert Text Between camelCase, snake_case, kebab-case & 11 More Formats
You're writing a React component. The prop is userName. The API returns user_name. The URL needs user-name. The environment variable is USER_NAME. Same concept, four different formats — and you're converting them in your head while trying to write actual logic.
The Text Case Converter at text-case-converter.tools.jagodana.com handles this instantly: paste any text, see all 14 case formats at once, copy whichever you need. No signup, no installation, no data leaving your browser.
Why Naming Conventions Matter More Than You Think
Every programming language, framework, and platform has opinions about how to name things:
| Language / Context | Convention | Example |
|-------------------|-----------|---------|
| JavaScript / TypeScript | camelCase | getUserProfile |
| Python | snake_case | get_user_profile |
| C# / .NET | PascalCase | GetUserProfile |
| URLs and slugs | kebab-case | get-user-profile |
| Environment variables | SCREAMING_SNAKE_CASE | GET_USER_PROFILE |
| CSS classes (BEM) | kebab-case | get-user-profile |
| Go exported functions | PascalCase | GetUserProfile |
| Ruby methods | snake_case | get_user_profile |
| File paths | path/case | get/user/profile |
| Configuration keys | dot.case | get.user.profile |
Using the wrong convention doesn't just look sloppy — it breaks linters, triggers CI failures, and confuses teammates reading your code. Consistency is one of the cheapest ways to reduce cognitive load in a codebase.
The 14 Case Formats Explained
Text Case Converter supports every major format. Here's what each one is, when it's used, and why it exists.
camelCase
Pattern: First word lowercase, subsequent words capitalized. No separators.
userProfileSettings
getActiveUsers
handleFormSubmit
Used in: JavaScript, TypeScript, Java, JSON keys, React props, most frontend code.
Why it exists: Compact and readable without separators. The capital letters act as visual word boundaries. Dominant in web development because JavaScript uses it everywhere.
PascalCase (UpperCamelCase)
Pattern: Every word capitalized. No separators.
UserProfileSettings
GetActiveUsers
HttpStatusCode
Used in: C#, .NET, Go (exported identifiers), TypeScript interfaces/types, React component names, class names across most languages.
Why it exists: Distinguishes types and classes from variables and functions. In Go, PascalCase means "exported" (public) — it's not just convention, it's language semantics.
snake_case
Pattern: All lowercase, words separated by underscores.
user_profile_settings
get_active_users
handle_form_submit
Used in: Python, Ruby, Rust, PostgreSQL columns, file names, C standard library conventions.
Why it exists: Maximum readability. Underscores create clear visual separation between words. Preferred in languages that value explicit clarity over brevity.
SCREAMING_SNAKE_CASE (CONSTANT_CASE)
Pattern: All uppercase, words separated by underscores.
USER_PROFILE_SETTINGS
MAX_RETRY_COUNT
API_BASE_URL
Used in: Constants in virtually every language, environment variables, configuration keys, C/C++ preprocessor macros.
Why it exists: The all-caps styling signals "this value doesn't change." It's a universal convention for constants and configuration that transcends language boundaries.
kebab-case
Pattern: All lowercase, words separated by hyphens.
user-profile-settings
get-active-users
handle-form-submit
Used in: URLs, CSS class names, HTML attributes, CLI flags, npm package names, file names in many projects.
Why it exists: Hyphens are URL-safe and human-readable. Search engines treat hyphens as word separators (unlike underscores), making kebab-case ideal for SEO-friendly URLs.
SCREAMING-KEBAB-CASE (COBOL CASE)
Pattern: All uppercase, words separated by hyphens.
USER-PROFILE-SETTINGS
GET-ACTIVE-USERS
HANDLE-FORM-SUBMIT
Used in: COBOL (historically), some HTTP headers, specific configuration formats.
Why it exists: A legacy from COBOL's naming rules. Still appears in certain enterprise systems and HTTP header conventions like X-Request-ID.
dot.case
Pattern: All lowercase, words separated by dots.
user.profile.settings
get.active.users
database.connection.pool
Used in: Java package names, configuration files (YAML, properties), object path notation, logging namespaces.
Why it exists: Dots naturally represent hierarchy and nesting. database.connection.pool.max reads as a path through a configuration tree.
path/case
Pattern: All lowercase, words separated by forward slashes.
user/profile/settings
api/v2/users
content/blogs/introduction
Used in: File system paths, URL routes, module imports in some build systems.
Why it exists: Mirrors file system and URL structure directly. Useful when converting between path references and other naming formats.
Train-Case
Pattern: Each word capitalized, separated by hyphens.
User-Profile-Settings
Get-Active-Users
Content-Type
Used in: HTTP headers (Content-Type, X-Forwarded-For), some title formatting contexts.
Why it exists: Combines the readability of hyphens with the emphasis of capitalization. It's the standard for HTTP header names.
flatcase
Pattern: All lowercase, no separators.
userprofilesettings
getactiveusers
handleformsubmit
Used in: Some database systems, legacy code, specific naming requirements where separators aren't allowed.
Why it exists: Minimal format when no separators are permitted. Rare in modern code but required by certain systems.
Title Case
Pattern: Each major word capitalized, with spaces.
User Profile Settings
Get Active Users
Handle Form Submit
Used in: Headings, titles, UI labels, button text, documentation headers.
Why it exists: Standard English title formatting. Used in user-facing text rather than code.
Sentence case
Pattern: First word capitalized, rest lowercase, with spaces.
User profile settings
Get active users
Handle form submit
Used in: Sentences, descriptions, UI text, documentation body copy, form labels.
Why it exists: Natural English sentence structure. The default for readable prose.
UPPER CASE
Pattern: All uppercase, with spaces.
USER PROFILE SETTINGS
GET ACTIVE USERS
HANDLE FORM SUBMIT
Used in: Headings, emphasis, labels, status indicators, button text in some design systems.
lower case
Pattern: All lowercase, with spaces.
user profile settings
get active users
handle form submit
Used in: Search queries, tags, normalized text, some UI patterns.
Real-World Scenarios Where This Saves Time
Building a REST API with a React Frontend
Your Python backend uses snake_case for everything. Your React frontend expects camelCase props. You're writing a serializer that maps between them. Instead of manually converting 30 field names, paste each one into the converter and grab both formats instantly.
Writing Technical Documentation
You're documenting an API endpoint. The docs need to show:
- The JSON request body (
camelCasekeys) - The database schema (
snake_casecolumns) - The environment variable for the API key (
SCREAMING_SNAKE_CASE) - The URL path (
kebab-case)
One input, four outputs. No mental gymnastics.
Refactoring Across Languages
You're porting a JavaScript module to Python. Every function and variable name needs to change from camelCase to snake_case. The converter handles the word boundary detection — even for long compound names like handleUserAuthenticationCallback → handle_user_authentication_callback.
SEO and Content Workflows
You've written a blog post titled "How to Build a REST API with Python." You need:
- URL slug:
how-to-build-a-rest-api-with-python(kebab-case) - File name:
how_to_build_a_rest_api_with_python.mdx(snake_case) - Component name:
HowToBuildARestApiWithPython(PascalCase)
Paste the title once, copy three formats.
Code Review Feedback
During a PR review, you notice a teammate used getUserData when the codebase convention is snake_case. Paste the name into the converter, confirm the correct format is get_user_data, and leave a precise suggestion — no second-guessing.
How the Tool Works Under the Hood
Text Case Converter runs entirely in your browser. Here's what happens when you type:
-
Input parsing — the tool detects word boundaries in your text, regardless of the input format. It recognizes camelCase transitions, underscores, hyphens, dots, slashes, and spaces as separators.
-
Word extraction — the input is split into an array of individual words.
getUserProfilebecomes["get", "user", "profile"].GET_USER_PROFILEbecomes the same array. -
Format application — each of the 14 output formats applies its rules to the word array: join with the right separator, apply the right casing to each word.
-
Live rendering — results update on every keystroke. No debouncing, no loading spinners. The conversion is fast enough to feel instant.
All of this happens client-side. Your text never hits a server. There's no analytics on what you type, no logging, no cookies tracking your conversions.
Privacy and Security
This matters if you're converting proprietary code, internal API field names, or confidential project identifiers:
- No server requests — all processing is client-side JavaScript
- No data collection — your input is never transmitted anywhere
- No cookies or tracking — the tool doesn't track usage patterns
- Works offline — once loaded, the page functions without an internet connection
You can use this tool with production code, internal naming, and sensitive content without any data exposure risk.
Built with Modern Web Tech
- Next.js with App Router for fast, SEO-optimized pages
- TypeScript in strict mode for type-safe conversion logic
- TailwindCSS for a responsive, clean interface
- shadcn/ui for accessible, keyboard-navigable components
- Full structured data for rich search engine results
- Dark mode that follows your system preference
Try It Now
Stop converting case formats in your head. Paste your text, see all 14 formats, copy what you need.
👉 text-case-converter.tools.jagodana.com
Free. No signup. No data leaves your browser.