Naming conventions and where they are used
Programming languages and file formats each have a preferred way of joining words into a single identifier. Following the convention of the ecosystem you are in makes code easier to read and avoids linter warnings, and converting between them is a constant chore when data crosses a boundary: a JSON API in camelCase feeding a Python service in snake_case, or a database column becoming a CSS class.
| Style | Example | Conventional for |
| camelCase | userAccountId | JavaScript and Java variables and functions, JSON keys from JS APIs |
| PascalCase | UserAccountId | Classes and types in most languages, C# methods and properties, React components |
| snake_case | user_account_id | Python, Ruby and Rust variables, PostgreSQL columns |
| CONSTANT_CASE | USER_ACCOUNT_ID | Constants and environment variables everywhere |
| kebab-case | user-account-id | URLs, CSS classes, HTML attributes, CLI flags, npm package names |
| Train-Case | User-Account-Id | HTTP header names such as Content-Type |
| dot.case | user.account.id | Configuration keys (Java properties, Spring), log field names |
The converter splits input into words before joining them in the target style, and it understands the boundaries inside identifiers: XMLHttpRequest becomes XML · Http · Request, getUserID2FA becomes get · User · ID · 2 · FA, and underscores, hyphens, dots and spaces all count as separators. That is what lets it turn XMLHttpRequest into xml_http_request rather than x_m_l_http_request. Each line is converted separately, so a pasted column of field names converts as a column.
Title case rules
Title case is not simply capitalising every word. The major style guides, including AP and Chicago, keep short articles, conjunctions and prepositions lowercase unless they are the first or last word or follow a colon: "The Lord of the Rings: The Return of the King". This converter applies those rules, keeps acronyms such as NASA and API in capitals, and leaves words with deliberate inner capitals such as iPhone or McDonald untouched. Style guides differ on prepositions of four or more letters (Chicago lowercases "with", AP capitalises it), so check your house style for headlines that will be published. Sentence case, which capitalises only the first word and proper nouns, is the default for most UI text and is increasingly preferred for headings because it is easier to read.
URL slugs
The url-slug style produces lowercase words joined by hyphens with accents removed, the form search engines and humans read most easily in an address: "Crème Brûlée: A Beginner's Guide" becomes creme-brulee-a-beginners-guide. Accented letters are decomposed and their marks dropped, German ß becomes ss, and apostrophes disappear rather than splitting a word. Keep slugs short and stable; changing one later breaks every link to the old address unless you add a redirect.
How the counts are calculated
Character counts use grapheme clusters, what a reader perceives as one character, through the browser's Intl.Segmenter, so an emoji with a skin-tone modifier or a family emoji counts as one character, not four or eleven. The separate code-unit figure is what JavaScript's .length reports and what many databases and SMS limits count, and the byte figure is the UTF-8 size. Words are segmented with the same Unicode rules, which also handles languages written without spaces. Reading time uses 238 words per minute, the average for adult silent reading of non-fiction found in a 2019 meta-analysis by Brysbaert; speaking time uses 150 words per minute, a typical presentation pace. The Flesch reading-ease score is shown for English text; scores from 60 to 70 read as plain English, and higher is easier.