TT · TEXT TIDY

TEXT TIDY

How the transformations work

By ShengFeng · Published 2026-09-23 · Last updated: 2026-10-15

Every button on the home page applies one deterministic operation to the text in the input panel and writes the result to the output panel. Nothing is inferred, nothing is guessed and nothing leaves your device. This page states the rule behind each action, so you can predict the result instead of discovering it.

The design rule: one action, one deterministic change

A transformation that sometimes reflows paragraphs, sometimes splits fields and sometimes silently normalizes characters is impossible to reason about. So the design rule here is narrow: each action does exactly one thing, applies it to every line, and never touches the input. That makes the result predictable, and it makes the failures predictable too — when an action cannot do what you wanted, it is because the operation is defined not to, not because it made a guess.

Two consequences follow. First, the order in which you apply actions matters, because each one reads the current input and replaces the output. Second, the input panel is never modified, so you can always compare the result against the original and run a different sequence if the first one was wrong.

What each action does

The nine transformations, their rules and their limits
Action Rule Limit
Sentence case Lowercase everything, then capitalize the first letter of the text and the first letter after a full stop, exclamation mark or question mark followed by whitespace A line break is not a sentence boundary, so a wrapped second line stays lowercase; acronyms are lowercased
Title Case Lowercase everything, then capitalize the first letter of every word, where a word starts at the beginning of the text or after any character that is not a letter or a digit Does not know your style guide, brand names or acronyms; hyphenated compounds are treated as two words
UPPERCASE Convert every letter to uppercase Reads as shouting in long text; has no effect on scripts without case
lowercase Convert every letter to lowercase Destroys capitalization that carries meaning, such as acronyms and identifiers
Clean spacing Trim each line, then collapse each run of spaces or tabs inside the line to a single space Does not join lines, does not remove email quote markers, and does not collapse non-breaking spaces inside a line
Remove blank lines Remove every line whose trimmed content is empty Removes lines rather than cleaning them, so a row containing only spaces is not caught until spacing is cleaned first
Remove duplicate lines Compare the trimmed text of each line exactly, keep the first occurrence, drop later copies Case, internal spacing and encoding differences are not treated as equal; no fuzzy matching
Sort lines A–Z Sort whole lines using the browser's locale-aware comparison, with case and accent marks ignored Numbers sort as text, so 10 comes before 2; padding is not trimmed before comparison
Reverse line order Reverse the sequence of lines and change nothing else None, other than that it is the wrong operation when the list is a lookup

Why the output panel is separate

The input and output panels are deliberately separate rather than in place. Editing in place makes it impossible to check a transformation, because the original is gone the moment the result appears. With two panels you can read the result, compare it against what you started with, and decide whether to keep it. Copy and download both read from the output panel, so nothing is transferred until you ask for it.

Privacy by design: everything runs in your browser

The transformations are implemented in a small JavaScript module that the page loads once. When you press a button, that module reads the value of the input textarea, computes a new string, and writes it to the output textarea. There is no request to a server, no queue, no background job and no application database holding your text. If you open your browser's network panel and apply a transformation, you will see no traffic generated by the action itself.

This is a design constraint rather than a feature bolted on afterwards, and it shapes the tool in three visible ways. It explains why the actions are instant regardless of length. It explains why there is no history, no saved documents and no account — there is nowhere for them to live. And it explains why clearing the page removes the text: it existed only in the textarea, so removing the textarea's content removes the text.

The honest limits of that claim are worth stating. Text Tidy itself does not transmit your text, but the page is served over the network and loads analytics and, if advertising is enabled, advertising scripts. Those are described in the privacy policy, including how to opt out of personalized advertising. Your browser, any extensions you have installed, and your device or network administrator may also keep their own records, which is outside anyone's control but yours.

What the tool deliberately does not do

How the guides relate to the tool

The reference on this page states what each action does. The guides state when to use it and what goes wrong when people reach for the wrong one: the order of operations for cleaning pasted text, why an identical-looking duplicate will not deduplicate, why numbers sort the way they do, and how the major title-case guides differ. Reading the reference tells you what will happen; reading the guide tells you whether you wanted it to.

Corrections

If a described behavior does not match what the tool actually does, that is a bug in the documentation or in the code, and it should be fixed. Write to citysoulsound@gmail.com with the action, the input you used and the output you received.

← Return to Text Tidy