📄 Lorem Ipsum Generator
A lorem ipsum generator using the real 186-word Cicero vocabulary: paragraphs, sentences, words or list items, optional HTML tags, live word count.
Placeholder text
169 words · 1,224 characters · about 1 min to read at 200 wpm
What Lorem Ipsum Generator Does
Lorem Ipsum is scrambled Latin, and the scrambling is the point. It comes from Cicero's De finibus bonorum et malorum, written in 45 BC, and the familiar opening is a fragment of "dolorem ipsum quia dolor sit amet" — "pain itself, because it is pain". The passage is a discussion of why pain is sometimes worth enduring. The words are genuine Latin; the sequence is not.
It survives because it does a specific job well. Placeholder text has to look like text without being readable, so that a reviewer judges the layout instead of the copy — and so that a designer is not fooled by the particular rhythm of English. Lorem Ipsum has roughly the right distribution of word lengths and letter frequencies to read as texture at a glance.
The tradition is much older than the internet. Typesetters used the passage from at least the 1500s, and it spread through Letraset dry-transfer sheets in the 1960s and desktop publishing software in the 1980s, which is how it reached the web.
This generator uses the standard 186-word vocabulary rather than a short list, produces paragraphs, sentences, words or list items, and can wrap the output in HTML tags. It is deterministic for a given seed, which is a technical detail with a practical consequence explained below.
How to Use Lorem Ipsum Generator
- Choose how much you need, and whether in paragraphs, sentences, words or list items
- Keep the classic "Lorem ipsum dolor sit amet" opening, or turn it off for a plain block
- Tick HTML if you want p or li tags around the output
- Copy it, or press Regenerate for a different version
Formula Used by Lorem Ipsum Generator
How the text is assembled
Words are drawn from the vocabulary, grouped into sentences, then into paragraphs
- Sentence
- 6 to 16 words, capitalized, ending in a full stop
- Paragraph
- 4 to 6 sentences
- Commas
- Inserted in longer sentences only, so the rhythm varies
Worked example
Three paragraphs with the classic opening
- First sentence is the canonical "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
- Remaining sentences drawn from the vocabulary
- Grouped and separated by blank lines
Result: Around 180 to 250 words, depending on the draw
Why a seeded generator rather than a random one
same seed → same text, on the server and in the browser
- The problem
- Math.random() during render gives the build one text and the browser another
- The consequence
- React reports a hydration mismatch and throws away the server-rendered markup
Worked example
A statically exported page
- Build renders text A into the HTML
- Browser hydrates and renders text B
- React sees a mismatch and re-renders the whole subtree
Result: Fixed by seeding: the seed is state, so both sides compute the same text
Estimating how much you need
roughly 5.5 characters per word including the space
- Words per paragraph
- About 60 to 80 in this generator
- Reading time
- About 200 words per minute for average adult reading
Worked example
Filling a layout that needs about 500 characters
- 500 ÷ 5.5 ≈ 91 words
- That is a little over one paragraph
Result: The word and character count under the output makes this exact rather than estimated
What each amount gives you
Approximate, because sentence lengths vary by design. The live counter under the output gives the exact figures for what you generated.
| Amount | Words | Characters | Roughly |
|---|---|---|---|
| 1 paragraph | 60 – 80 | 400 – 550 | A card or a short intro |
| 3 paragraphs | 180 – 250 | 1,200 – 1,600 | A blog post body |
| 5 paragraphs | 300 – 400 | 2,000 – 2,700 | An article section |
| 10 sentences | 90 – 130 | 600 – 900 | Mixed short content |
| 50 words | 50 | ~275 | A meta description or teaser |
| 5 list items | 15 – 35 | 100 – 240 | A feature or nav list |
Where the passage comes from
The original Cicero text against the scrambled version. The familiar opening is a fragment cut mid-word from "dolorem".
| Text | |
|---|---|
| Cicero, 45 BC | "Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet…" |
| Translation | "Nor is there anyone who loves pain itself because it is pain…" |
| The placeholder | "Lorem ipsum dolor sit amet, consectetur adipiscing elit." |
| What changed | Cut mid-word from "dolorem", reordered, and mixed with words from elsewhere in the text |
When Lorem Ipsum is the wrong tool
Placeholder text hides certain problems. These are the cases where using it costs you more than it saves.
| Situation | Why it misleads | Better approach |
|---|---|---|
| Headlines and buttons | Latin word lengths differ from real labels | Write the actual words, even roughly |
| Names and addresses | Real ones are far more variable in length | Use realistic sample data |
| Testing truncation | Placeholder is uniform; real content is not | Test with your longest realistic case |
| Non-Latin interfaces | CJK and Arabic have different metrics entirely | Use text in the target script |
| Client presentations | Reviewers ask what the Latin says | Use plausible draft copy |
| Anything about to ship | It escapes into production regularly | Search for "lorem" before launch |
How to Read Your Result
The point is that it cannot be read
Real copy in a mockup pulls attention to itself. Reviewers start editing sentences instead of assessing the layout, and designers start unconsciously arranging the page around specific words that will not survive to launch. Nonsense text with the right visual texture keeps the conversation on spacing, hierarchy and rhythm. That is also why it should not be used where the words genuinely matter — a button labeled "Lorem ipsum" tells you nothing about whether the real label fits.
It escapes into production more often than you would think
Placeholder text has appeared in printed brochures, retail signage, live product pages and published newspapers. The failure mode is always the same: a block gets filled early, everyone stops seeing it, and no one greps for it before launch. A search for "lorem" across templates and content is a ten-second check that catches it. The related and slightly worse failure is shipping a layout that was only ever tested against uniform placeholder text and breaks on the first real headline.
Design with realistic lengths, not just realistic-looking text
Lorem Ipsum is uniform in a way real content never is. Real names run from two characters to forty, real headlines refuse to fit on one line, real product descriptions are inconsistent, and real users leave fields empty. A layout that looks correct filled with even paragraphs of Latin can fall apart on its first day. The useful discipline is to test the extremes deliberately — the longest plausible string, the shortest, and the empty state — rather than only the comfortable middle that placeholder text represents.
Why this generator is deterministic
Producing random text during render seems harmless and is not, on a page rendered ahead of time. The build generates one version into the HTML; the browser generates a different one when it takes over; React finds the two do not match and discards the server-rendered markup, which costs a re-render and produces a console warning. Driving generation from a seed makes both sides compute the same text, and pressing Regenerate simply changes the seed after the page is live, which is perfectly safe.
The 1500s claim is plausible but not firmly evidenced
The widely repeated story is that an unknown typesetter scrambled the Cicero passage in the sixteenth century to make a type specimen. The Cicero source is certain; the sixteenth-century origin rests largely on a 1980s investigation by a Latin scholar and is not documented from the period itself. What is well attested is the twentieth-century route: Letraset dry-transfer sheets carried it in the 1960s, and desktop publishing software carried it from the 1980s, which is why it is everywhere now.
The themed alternatives are a real option
Bacon ipsum, hipster ipsum and their relatives substitute a themed vocabulary for the Latin. They read as more obviously fake, which is genuinely useful — placeholder text that is unmistakably placeholder is far less likely to ship by accident, and reviewers are less likely to try reading it. The trade-off is that English word-length distribution differs from the Latin, so the texture is slightly less neutral. For internal work the visibility usually outweighs that.
Limitations & Accuracy Notes
- The output is nonsense by design and must never reach production. Search your project for "lorem" before any launch.
- The vocabulary is Latin, so word lengths and letter frequencies suit Latin-script layouts. Designs intended for Chinese, Japanese, Arabic or Devanagari should be tested with text in those scripts, whose metrics are entirely different.
- Sentence and paragraph lengths are uniform compared with real writing. That makes the placeholder flatter than real content and can hide layout problems that only appear with genuine copy.
- Text is deterministic for a given seed rather than random on every load. Press Regenerate for a different version; the same seed will always give the same text.
- HTML output wraps paragraphs in p tags and list items in a ul. It does not produce headings, nested lists or any other structure.
- The Cicero attribution is well established. The claim that a sixteenth-century typesetter first scrambled it is widely repeated but rests on limited period evidence.
Frequently Asked Questions
What does Lorem Ipsum actually mean?
Why use nonsense text instead of real copy?
Should I ever ship a design with Lorem Ipsum in it?
Can I generate HTML-ready paragraphs?
Is the generated text different every time?
Are there alternatives to Lorem Ipsum?
References & Further Reading
- Cicero — De finibus bonorum et malorum, Book 1 (Perseus Digital Library, Tufts) — The Latin source text the passage is drawn from, in a scholarly edition — the "dolorem ipsum quia dolor sit amet" line is in section 1.10.32
- Lipsum.com — The original and still #1 generator for this term, and the source of the widely cited 1500s typesetter account
- React — Hydration mismatch errors — Documents why non-deterministic output during render breaks hydration, which is the defect this generator was rewritten to fix