Lorem Ipsum Generator
Fill a layout with neutral Latin placeholder text. Choose how many paragraphs, sentences or words you need, keep or drop the classic opening, and optionally wrap each paragraph in <p> tags for pasting into a rich-text editor.
Filling the body position in a mock-up, a typesetting check or a front-end test is a small nuisance: typing something by hand repeats itself, and copying a passage from elsewhere raises questions of provenance. Lorem Ipsum has been the trade's neutral placeholder for centuries — it reads as text without meaning, so attention stays on size, leading and white space.
The first decision is the basis: paragraphs for a full layout, sentences for a few lines, words when a fixed height has to be filled. It is worth keeping the distinction from the mock data an API hands back — mock data cares about field formats being realistic, while placeholder text cares only about typography and carries no business meaning at all.
Did this tool solve your problem?
Submitting sends the tool name, your input and the current result to the server. Please do not include ID numbers, phone numbers or other private data.
AI assistant It answers using your current input and result
Asking again sends your current input and result to the server once more. Please do not include private data.
How to use
- Choose the basis: paragraphs, sentences or words.
- Enter how many, and whether to open with the classic beginning.
- Choose plain text, or HTML with paragraph tags.
- Copy the generated text.
How it works
Choosing among the three bases
Choose by "how much space to fill": paragraphs for whole page sections, sentences for a few lines, words when you must hit a count (e.g. controlling layout height by word count). All three bases report paragraph, sentence, word and character counts for checking against the design comp item by item.
Why placeholder text is Latin
Lorem Ipsum comes from a passage of Cicero's De finibus bonorum et malorum; the printing trade has used it to fill pages since the 16th century. It deliberately reads like no modern natural language — reviewers aren't distracted into reading, so attention lands on type size, leading and whitespace. That's why it beats "just typing some filler".
Why every click gives different text
The text is assembled in random order from a fixed 70-word Latin word list, so every click of "generate" differs. For design specs or deliverable documents, generate once and copy it down — otherwise the same instruction shows different text at different times and reviews won't line up.
Code example
JavaScript Filling a front-end component with placeholder text
// Fill by paragraph count from an array, instead of hard-coding long strings in the template
const LOREM = [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
'Ut enim ad minim veniam, quis nostrud exercitation ullamco.',
];
const Placeholder = ({ lines = 3 }) => (
<div className="placeholder-text">
{LOREM.slice(0, lines).map((t, i) => <p key={i}>{t}</p>)}
</div>
);
Shell Generating a fixed number of paragraphs on the command line
# Generate with python3 so you can drop it into a build script
python3 - <<'PY' > placeholder.txt
import textwrap
para = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'
for _ in range(3):
print(textwrap.fill(para, 76), end='\n\n')
PY
wc -m placeholder.txt # check that the character count fills the layout
FAQ
Is Lorem Ipsum the same as fake data from a backend?
No. Lorem Ipsum only makes a layout "have something to set" — meaningless Latin with no field structure. Integration-test fake data needs correct field names, types and formats (11-digit phone numbers, valid timestamps) — that's the fake-data generator's job. Both are common; neither replaces the other.
Any copyright concerns with the Latin text?
None. The source is a 1st-century BC Latin work, long in the public domain; and every typesetting tool uses the same word list and same opening — industry-common material, not infringement. The real caution is against using sample copy bearing real brand names in final layouts.
Why does the first sentence always read Lorem ipsum dolor sit amet…?
It's the trade's conventional opening: anyone recognizing it knows the text is placeholder, not real content. If you don't want it (testing how layouts handle arbitrary Latin openings), turn off "start with the classic opening" and everything becomes random.
What are the generation limits?
Up to 20 paragraphs, 50 sentences or 1,000 words. The caps prevent generating hundreds of thousands of characters and dragging the page. To fill a whole booklet, generate in batches and concatenate, or expand from the words mode with other tools.
Can the HTML output go straight into a rich-text editor?
Yes. With "output HTML paragraphs" on, each paragraph is wrapped in <p>…</p> separated by newlines — a form most rich-text editors, email templates and CMS bodies accept directly. For Markdown files or plain-text fields, keep it off and you get paragraph-separated plain text.
Can it generate Chinese placeholder text?
This tool deliberately outputs Latin only. The usual Chinese fillers — repeated filler words or classic passages — tempt readers into actually reading, which defeats layout judgment; and Chinese's uniform character width misrepresents how mixed English text, hyphenation and line breaks behave. For Chinese filler, use a real business copy paragraph.
Is the generated text sent to a server?
No. The word list and assembly logic live in the browser; generating fires no network requests, and with no history section nothing is written to localStorage. It works fully offline — verify yourself.
The paragraph count changed after pasting elsewhere — now what?
The target editor probably dropped the blank lines between paragraphs or converted them to <br>. This tool separates paragraphs with blank lines (two consecutive newlines); confirm the destination truly inserted them. For HTML destinations, turning on HTML output and expressing paragraphs with <p> tags is more robust.