A lightweight, offline-capable Chrome extension that converts any text into 13 casing formats simultaneously.
- 13 output formats — camelCase, PascalCase, snake_case, SCREAMING_SNAKE, kebab-case, COBOL-CASE, dot.case, path/case, Title Case, Sentence case, lowercase, UPPERCASE, tOGGLE cASE
- Smart tokenizer — correctly splits camelCase, PascalCase, acronyms (e.g.
XMLParser), and any separator-delimited string - One-click copy per format with visual confirmation
- Dark / light mode toggle, persisted across sessions
- Respects OS theme on first launch
- Escape to clear keyboard shortcut
- 100% offline — no network requests, no external dependencies
- Clone or download this repository
- Open Chrome and navigate to
chrome://extensions - Enable Developer mode (toggle in the top-right corner)
- Click Load unpacked
- Select the
text-case-converter/folder - The extension icon will appear in your toolbar
Coming soon.
- Click the extension icon to open the popup
- Type or paste any text into the input field
- All 13 case formats update instantly
- Click Copy on any card to copy that format to your clipboard
- Press Escape to clear the input
The tokenizer intelligently handles any of these input styles:
| Input | Words detected |
|---|---|
hello world |
hello, world |
hello-world |
hello, world |
hello_world |
hello, world |
helloWorld |
hello, world |
HelloWorld |
hello, world |
XMLParser |
xml, parser |
hello.world/foo |
hello, world, foo |
HELLO WORLD |
hello, world |
text-case-converter/
├── manifest.json # MV3 extension manifest (no permissions required)
├── popup.html # Extension popup markup
├── popup.js # All conversion logic, rendering, and theme handling
├── popup.css # Styles with CSS custom properties for dark/light theming
├── icons/
│ ├── icon16.png
│ ├── icon32.png
│ ├── icon48.png
│ └── icon128.png
└── README.md
| Permission | Required | Reason |
|---|---|---|
storage |
✅ Yes | Persists the dark/light theme preference across sessions via chrome.storage.local |
No host permissions, no activeTab, no scripting. The extension never reads or modifies any web page.
No build step required. Edit the files directly and reload the extension at chrome://extensions using the ↺ reload button.
- Open
popup.js - Add a new entry to the
CONVERSIONSarray:
{
id: 'myformat', // unique string, used as data-id on the card
label: 'myFormat', // display label shown in the UI
fn: words => words./* your transform here */
}That's it — the card will appear automatically in the grid.
Pull requests are welcome! Please keep changes minimal and avoid adding dependencies.
If this extension saved you time, consider buying me a coffee ☕
| Platform | Link |
|---|---|
| ☕ Buy Me a Coffee | https://buymeacoffee.com/ejcenteno |
| 💖 GitHub Sponsors | https://github.com/sponsors/ejcenteno |
| 🍵 Ko-fi | https://ko-fi.com/ejcenteno |
| 💸 PayPal | https://paypal.me/ejcenteno |
MIT — free to use, modify, and distribute.