Text Case Converter

Convert text to UPPER CASE, lower case, Capital Case, snake_case, camelCase and more.

Result will appear here.

๐Ÿ“– How to Use

1
Enter Text

Type or paste the text you want to convert.

2
Choose a Format

Click the desired format button: UPPER CASE, lower case, Capital Case, snake_case, or camelCase.

3
Copy Result

Review the converted text and click ๐Ÿ“‹ Copy to save to your clipboard.

๐Ÿ’ก Tip: snake_case is common in Python, camelCase in JavaScript. Capital Case is useful for titles and headings.

About the Case Converter

The Case Converter rewrites a string into the casing convention a given language or framework expects. Different ecosystems settled on different rules: JavaScript variables are camelCase, Python variables are snake_case, CSS classes and URLs are kebab-case, and C constants are CONSTANT_CASE. Pasting the wrong casing into a file either fails a linter or breaks naming conventions silently, so a one-click converter saves real friction when moving text between contexts.

How it works

The core casing primitives are JavaScript's toLowerCase() and toUpperCase(), which apply Unicode default case mapping. Building the multi-word conventions on top requires a word-boundary detector: the converter splits input on spaces, punctuation, and case transitions — a lowercase letter followed by an uppercase letter (as in myVar) is itself a boundary, so mixed-case identifiers can be re-emitted in any style. Each convention then rejoins the words differently:

  • camelCase — first word lowercase, every later word capitalized, no separator
  • PascalCase — every word capitalized, no separator
  • snake_case — all lowercase, words joined with _
  • kebab-case — all lowercase, words joined with -
  • CONSTANT_CASE — all uppercase, words joined with _
  • Title Case — every word capitalized, separated by spaces

Case mapping is locale-sensitive. The classic case is Turkish, whose alphabet distinguishes dotted and undotted I: the lowercase of I is ı (dotless) and the uppercase of i is İ (dotted). Default toLowerCase() ignores this, so for locale-correct output use toLocaleLowerCase('tr').

Common use cases

  • Turning a readable title into a camelCase JavaScript variable or function name
  • Generating snake_case identifiers for a Python or Ruby codebase
  • Producing kebab-case CSS class names and URL path segments
  • Normalizing database column or CONSTANT_CASE enum values
  • Converting SHOUTING text to readable Title Case

Worked example

Starting from the title Hello World Example, each convention produces a distinct identifier:

camelCase:       helloWorldExample
PascalCase:      HelloWorldExample
snake_case:      hello_world_example
kebab-case:      hello-world-example
CONSTANT_CASE:   HELLO_WORLD_EXAMPLE
Title Case:      Hello World Example

Notice that camelCase lowercases only the first word, while PascalCase capitalizes every word — the two differ solely in the treatment of the leading word.

Frequently asked questions

What is the difference between camelCase and PascalCase?

In camelCase the first word is lowercase and each following word starts uppercase, with no separators (for example myVariableName). PascalCase (also called UpperCamelCase) capitalizes the first word as well, so the same input becomes MyVariableName. camelCase is the JavaScript convention for variables; PascalCase is used for classes and React components.

How are words split apart?

Words are split on spaces, punctuation, and case transitions. A lowercase letter followed by an uppercase letter (for example myVar) is treated as a boundary, so the converter can turn mixed input into snake_case or kebab-case without manual separation.

When should I use snake_case versus kebab-case?

snake_case (underscores) is the convention in Python, Ruby, and database column names. kebab-case (hyphens) is preferred in URLs, CSS class names, and HTML data attributes because hyphens are URL-safe and never need escaping.

Is case conversion locale-dependent?

Yes. JavaScript toLowerCase and toUpperCase follow Unicode default case mapping, but some languages have special rules. The most famous is Turkish, where lowercase of I is ı (dotted) and uppercase of i is İ (dotless). Use toLocaleLowerCase with a locale argument when locale-specific output matters.

Does the tool send my text anywhere?

No. All conversions run in your browser through native string methods. Nothing is uploaded, so the tool is safe for code snippets, identifiers, and confidential content.

์ผ€์ด์Šค ๋ณ€ํ™˜๊ธฐ๋ž€?

์ผ€์ด์Šค ๋ณ€ํ™˜๊ธฐ๋Š” ๋ฌธ์ž์—ด์„ ํŠน์ • ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๋Œ€์†Œ๋ฌธ์ž ๊ทœ์น™์œผ๋กœ ๋‹ค์‹œ ์จ ์ค๋‹ˆ๋‹ค. ์ƒํƒœ๊ณ„๋งˆ๋‹ค ์ •์ฐฉํ•œ ๊ทœ์น™์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. JavaScript ๋ณ€์ˆ˜๋Š” camelCase, Python ๋ณ€์ˆ˜๋Š” snake_case, CSS ํด๋ž˜์Šค์™€ URL์€ kebab-case, C ์ƒ์ˆ˜๋Š” CONSTANT_CASE๋ฅผ ์”๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์ผ€์ด์Šค๋ฅผ ๊ทธ๋Œ€๋กœ ๋ถ™์—ฌ ๋„ฃ์œผ๋ฉด ๋ฆฐํ„ฐ๊ฐ€ ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ๋ช…๋ช… ๊ทœ์น™์ด ์กฐ์šฉํžˆ ๊นจ์ง€๋ฏ€๋กœ, ๋ฌธ๋งฅ์„ ์˜ฎ๊ธธ ๋•Œ ํ•œ ๋ฒˆ์— ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ๋„๊ตฌ๊ฐ€ ์‹ค์งˆ์ ์ธ ๋ถˆํŽธ์„ ์ค„์—ฌ ์ค๋‹ˆ๋‹ค.

์ž‘๋™ ๋ฐฉ์‹

ํ•ต์‹ฌ ๋Œ€์†Œ๋ฌธ์ž ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋Š” JavaScript์˜ toLowerCase()์™€ toUpperCase()์ด๋ฉฐ, ์œ ๋‹ˆ์ฝ”๋“œ ๊ธฐ๋ณธ ์ผ€์ด์Šค ๋งคํ•‘์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋‹จ์–ด๋กœ ์ด๋ฃจ์–ด์ง„ ๊ทœ์น™์„ ๊ทธ ์œ„์— ์˜ฌ๋ฆฌ๋ ค๋ฉด ๋‹จ์–ด ๊ฒฝ๊ณ„ ๊ฐ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€ํ™˜๊ธฐ๋Š” ๊ณต๋ฐฑ, ๊ตฌ๋‘์ , ๊ทธ๋ฆฌ๊ณ  ๋Œ€์†Œ๋ฌธ์ž ์ „ํ™˜์„ ๊ธฐ์ค€์œผ๋กœ ์ž…๋ ฅ์„ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์†Œ๋ฌธ์ž ๋’ค์— ์˜ค๋Š” ๋Œ€๋ฌธ์ž(์˜ˆ: myVar) ์ž์ฒด๊ฐ€ ๊ฒฝ๊ณ„์ด๋ฏ€๋กœ, ์„ž์—ฌ ์žˆ๋Š” ์‹๋ณ„์ž๋„ ์–ด๋–ค ์Šคํƒ€์ผ๋กœ๋“  ๋‹ค์‹œ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ทœ์น™์€ ๋‹จ์–ด๋ฅผ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ์ด์–ด ๋ถ™์ž…๋‹ˆ๋‹ค.

  • camelCase — ์ฒซ ๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž, ์ดํ›„ ๋‹จ์–ด๋งŒ ๋Œ€๋ฌธ์ž ์‹œ์ž‘, ๊ตฌ๋ถ„์ž ์—†์Œ
  • PascalCase — ๋ชจ๋“  ๋‹จ์–ด ๋Œ€๋ฌธ์ž ์‹œ์ž‘, ๊ตฌ๋ถ„์ž ์—†์Œ
  • snake_case — ๋ชจ๋‘ ์†Œ๋ฌธ์ž, ๋‹จ์–ด๋ฅผ _๋กœ ๊ฒฐํ•ฉ
  • kebab-case — ๋ชจ๋‘ ์†Œ๋ฌธ์ž, ๋‹จ์–ด๋ฅผ -๋กœ ๊ฒฐํ•ฉ
  • CONSTANT_CASE — ๋ชจ๋‘ ๋Œ€๋ฌธ์ž, ๋‹จ์–ด๋ฅผ _๋กœ ๊ฒฐํ•ฉ
  • Title Case — ๋ชจ๋“  ๋‹จ์–ด ๋Œ€๋ฌธ์ž ์‹œ์ž‘, ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„

์ผ€์ด์Šค ๋งคํ•‘์€ ๋กœ์ผ€์ผ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ ํ„ฐํ‚ค์–ด๋กœ, ์•ŒํŒŒ๋ฒณ์ด ์ ์ด ์žˆ๋Š” I์™€ ์—†๋Š” I๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. I์˜ ์†Œ๋ฌธ์ž๋Š” ı(์  ์—†์Œ), i์˜ ๋Œ€๋ฌธ์ž๋Š” İ(์  ์žˆ์Œ)์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ toLowerCase()๋Š” ์ด๋ฅผ ๋ฌด์‹œํ•˜๋ฏ€๋กœ, ๋กœ์ผ€์ผ์— ๋งž๋Š” ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•˜๋ฉด toLocaleLowerCase('tr')๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์ฃผ ์“ฐ๋Š” ๊ฒฝ์šฐ

  • ์ฝ๊ธฐ ์‰ฌ์šด ์ œ๋ชฉ์„ JavaScript ๋ณ€์ˆ˜/ํ•จ์ˆ˜ ์ด๋ฆ„์ธ camelCase๋กœ ๋ฐ”๊พธ๊ธฐ
  • Python์ด๋‚˜ Ruby ์ฝ”๋“œ์šฉ snake_case ์‹๋ณ„์ž ๋งŒ๋“ค๊ธฐ
  • CSS ํด๋ž˜์Šค๋ช…๊ณผ URL ๊ฒฝ๋กœ ์„ธ๊ทธ๋จผํŠธ์ธ kebab-case ์ƒ์„ฑ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปฌ๋Ÿผ์ด๋‚˜ CONSTANT_CASE enum ๊ฐ’ ์ •๊ทœํ™”
  • ๋Œ€๋ฌธ์ž SHOUTING ํ…์ŠคํŠธ๋ฅผ ์ฝ๊ธฐ ์‰ฌ์šด Title Case๋กœ ๋ณ€ํ™˜

์‚ฌ์šฉ ์˜ˆ

Hello World Example์ด๋ผ๋Š” ์ œ๋ชฉ์—์„œ ๊ฐ ๊ทœ์น™์ด ๋งŒ๋“œ๋Š” ์‹๋ณ„์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

camelCase:       helloWorldExample
PascalCase:      HelloWorldExample
snake_case:      hello_world_example
kebab-case:      hello-world-example
CONSTANT_CASE:   HELLO_WORLD_EXAMPLE
Title Case:      Hello World Example

camelCase๋Š” ์ฒซ ๋‹จ์–ด๋งŒ ์†Œ๋ฌธ์ž๋กœ ๋งŒ๋“ค๊ณ  PascalCase๋Š” ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•˜์„ธ์š”. ๋‘ ๊ทœ์น™์˜ ์ฐจ์ด๋Š” ์˜ค์ง ์ฒซ ๋‹จ์–ด์˜ ์ฒ˜๋ฆฌ์—๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

camelCase์™€ PascalCase์˜ ์ฐจ์ด๋Š”?

camelCase๋Š” ์ฒซ ๋‹จ์–ด๋ฅผ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์ดํ›„ ๋‹จ์–ด๋งŒ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ตฌ๋ถ„์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(์˜ˆ: myVariableName). PascalCase(UpperCamelCase๋ผ๊ณ ๋„ ํ•จ)๋Š” ์ฒซ ๋‹จ์–ด๊นŒ์ง€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ๊ฐ™์€ ์ž…๋ ฅ์ด MyVariableName์ด ๋ฉ๋‹ˆ๋‹ค. camelCase๋Š” JavaScript ๋ณ€์ˆ˜ ๊ด€๋ก€์ด๊ณ  PascalCase๋Š” ํด๋ž˜์Šค์™€ React ์ปดํฌ๋„ŒํŠธ์— ์”๋‹ˆ๋‹ค.

๋‹จ์–ด๋Š” ์–ด๋–ป๊ฒŒ ๋ถ„ํ• ํ•˜๋‚˜์š”?

๊ณต๋ฐฑ, ๊ตฌ๋‘์ , ๊ทธ๋ฆฌ๊ณ  ๋Œ€์†Œ๋ฌธ์ž ์ „ํ™˜์„ ๊ธฐ์ค€์œผ๋กœ ๋‹จ์–ด๋ฅผ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค. ์†Œ๋ฌธ์ž ๋’ค์— ์˜ค๋Š” ๋Œ€๋ฌธ์ž(์˜ˆ: myVar)๋ฅผ ๊ฒฝ๊ณ„๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ, ์„ž์ธ ์ž…๋ ฅ๋„ ์ˆ˜๋™ ๋ถ„๋ฆฌ ์—†์ด snake_case๋‚˜ kebab-case๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

snake_case์™€ kebab-case๋Š” ์–ธ์ œ ์“ฐ๋‚˜์š”?

snake_case(๋ฐ‘์ค„)๋Š” Python, Ruby, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปฌ๋Ÿผ๋ช… ๊ด€๋ก€์ž…๋‹ˆ๋‹ค. kebab-case(ํ•˜์ดํ”ˆ)๋Š” URL, CSS ํด๋ž˜์Šค๋ช…, HTML data ์†์„ฑ์— ์„ ํ˜ธ๋˜๋Š”๋ฐ, ํ•˜์ดํ”ˆ์€ URL์— ์•ˆ์ „ํ•˜๊ณ  ์ด์Šค์ผ€์ดํ”„๊ฐ€ ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ผ€์ด์Šค ๋ณ€ํ™˜์€ ๋กœ์ผ€์ผ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋‚˜์š”?

๋„ค. JavaScript์˜ toLowerCase/toUpperCase๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๊ธฐ๋ณธ ์ผ€์ด์Šค ๋งคํ•‘์„ ๋”ฐ๋ฅด์ง€๋งŒ ์ผ๋ถ€ ์–ธ์–ด์—๋Š” ํŠน๋ณ„ํ•œ ๊ทœ์น™์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์˜ˆ๊ฐ€ ํ„ฐํ‚ค์–ด๋กœ, I์˜ ์†Œ๋ฌธ์ž๋Š” ı(์  ์žˆ์Œ), i์˜ ๋Œ€๋ฌธ์ž๋Š” İ(์  ์—†์Œ)์ž…๋‹ˆ๋‹ค. ๋กœ์ผ€์ผ๋ณ„ ๊ฒฐ๊ณผ๊ฐ€ ์ค‘์š”ํ•˜๋ฉด ๋กœ์ผ€์ผ ์ธ์ž๋ฅผ ๋„˜๊ฒจ toLocaleLowerCase๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ œ ํ…์ŠคํŠธ๊ฐ€ ์™ธ๋ถ€๋กœ ์ „์†ก๋˜๋‚˜์š”?

์•„๋‹™๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ณ€ํ™˜์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์—…๋กœ๋“œ๋˜๋Š” ๊ฒƒ์€ ์—†์œผ๋ฏ€๋กœ ์ฝ”๋“œ ์กฐ๊ฐ, ์‹๋ณ„์ž, ๊ธฐ๋ฐ€ ๋‚ด์šฉ์—๋„ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.