What this generator builds, and why hand-typed filler misleads
The page holds the short list of Latin words that centuries of typesetters have reused, picks from it at random, and joins 8 to 16 of them into a sentence with a capital at the front and a period at the end. As many sentences as you ask for make a paragraph, and the paragraphs are separated by a blank line. Tick Start with "Lorem ipsum dolor sit amet" and the first sentence becomes the familiar opening line, with the rest still random. Nothing is fetched and nothing is stored: every press of Regenerate produces a fresh block in your own browser.
The reason to use Latin rather than something you type yourself is that hand-made filler lies about the shape of the text. A row of asdf asdf asdf gives every word the same length, so the ragged right edge of a column comes out unnaturally even and you never see the awkward break that a real ten-letter word will cause. Repeating one paragraph five times is worse, because every card in the grid ends up exactly the same height and the layout looks stable when it is not. The Latin list has mostly short words with a scattering of long ones, which is close enough to English prose that line breaks, hyphenation and the last line of a paragraph behave plausibly.
Pasting real marketing copy fails for the opposite reason. The moment there are readable sentences on the screen, the review turns into an argument about the words, and nobody looks at the leading again.
Which mode, format and size to pick
- Latin Lorem Ipsum: the default, and the right choice for any interface that will ship in a European language.
- Chinese filler: random common words of two to four characters, with full-width punctuation. Latin badly misrepresents a CJK block, which has no spaces between words and breaks lines between characters, so use this when you are checking line height and measure in a Chinese, Japanese or Korean layout.
- Plain text: design tools, slide decks and documents, where the app applies its own formatting.
- Markdown: a CMS field, a README, an MDX file. Tick Add a "## Lorem Ipsum" heading when you also need a heading to style.
- HTML: paragraphs already wrapped in
<p>for a static prototype or an email template. - JSX: the same paragraphs inside a fragment, ready to paste into a React component without reformatting.
- Sizes worth memorizing: 1 paragraph of 1 sentence for a card subtitle or a hero deck, 1 by 2 for a list item, 3 by 4 for a typical article intro, and 15 by 6 when you want a long scroll to test sticky headers and a table of contents.
How to fill a mock-up or a component
- Decide roughly how long the real copy will be, then set the paragraph and sentence counts a little above it. Designing against the shortest plausible text is how layouts break in production.
- Pick the output format for wherever the text is going: plain text for a design tool, JSX for a component, Markdown for a content file.
- Press Copy and paste it in. The output box is read-only, so select a single paragraph by hand when you want less than the whole block.
- Press Regenerate once per card or column rather than pasting the same block into each one, so the grid gets uneven heights and you find the alignment bug now instead of after launch.
- Leave one real string in the design: an actual product name, an actual price, an actual date. Those are the values that overflow, and filler will never tell you.
How to stress test a layout with it
- Start at the length you expect, confirm the component looks right, then raise the sentence count until the text is three times as long. A container with a fixed height will clip, and a card with a
min-heightbut nooverflowrule will spill over its neighbor. - Now go the other way: 1 paragraph of 1 sentence. Short text exposes collapsed cards, a footer that rides up the page and buttons that no longer line up across a row.
- Narrow the browser to about 360px. Latin words are short, so if they already break badly here, a real German compound noun or a long URL certainly will.
- Switch to Chinese filler and look again. CJK glyphs are full width and sit on a taller visual line, so a row that fitted in Latin often needs more line height.
- Replace the filler with the longest real string you can find before you call the component done.
Getting the text where you need it
The Copy button puts the formatted block on your clipboard exactly as shown, including the blank lines between paragraphs and the tags if you chose HTML or JSX.
- Figma and other design tools: paste into a text layer with the layer in edit mode, otherwise the paragraph breaks are dropped. Fixed size text boxes need to be set to auto height first or the block is clipped silently.
- Code editors: paste JSX or HTML and let the formatter reindent it. If your editor is set to format on paste, the fragment will be reflowed to your line width automatically.
- A CMS or rich text field: choose Markdown or plain text. Pasting HTML into a rich text editor usually produces escaped tags shown as literal text.
- Desktop: use Ctrl+Shift+V or Cmd+Shift+V to paste without formatting when the destination is trying to be helpful.
The same job in editors, code and word processors
Placeholder text is built into more tools than people expect, and reaching for the one already in front of you is usually faster than a round trip through a browser tab.
VS Code and any editor with Emmet expands lorem in an HTML file when you press Tab. A number sets the word count and the abbreviation composes with the rest of Emmet, so one line gives you a whole block:
lorem -> 30 words
lorem10 -> 10 words
p*3>lorem20 -> three <p> elements, 20 words eachJavaScript and TypeScript projects that already have a fake data library get filler from the same import, which is the right answer for seed scripts and test fixtures:
import { faker } from '@faker-js/faker'
faker.lorem.paragraphs(3, '\n\n')
faker.lorem.sentences(4)Python has the same idea in the Faker package, and paragraphs() returns a list rather than one string:
from faker import Faker
fake = Faker()
"\n\n".join(fake.paragraphs(nb=3))LaTeX ships the classic passage as a package, where \lipsum[1-3] prints the first three paragraphs of the canonical text rather than a random one:
\usepackage{lipsum}
\lipsum[1-3]Microsoft Word has hidden it in the autotext functions for years: type =lorem(3,4) on an empty line and press Enter for three paragraphs of four sentences, or =rand(3,4) for the same structure in English. The exact wording varies by Word version and language, so check what you get before you build a template around it.
Limits and privacy
What leaves your browser: nothing. The words are assembled on your device with Math.random() and the result is never uploaded, logged or stored. Math.random() is the wrong source for anything that needs to be unguessable, so never reuse this output as a password, token or test key.
Filler in an alt attribute is an accessibility bug. WCAG 2.1 asks for text alternatives that serve the same purpose as the image. Latin pasted into an alt, aria-label or page title is read aloud word by word by a screen reader, which is worse than an empty alt="" on a decorative image. The same applies to a lang attribute: a page marked lang="en" full of Latin or Chinese filler will be pronounced with the wrong voice.
It hides content-shaped problems. Lorem Ipsum has no links, no numbers, no names and no empty state. It will not tell you that a user with no bio leaves a hole in the card, that a price of 1,299.00 breaks the column alignment, or that a real headline is twice as long as the space you gave it. Filler is for typography and grid work; content design needs real or realistic strings.
The Chinese mode makes words, not sentences. It strings common two- to four-character words together at random, so the words are real but the grammar is not, and the output is unreadable to a Chinese speaker by design. It is fine for measuring layout and wrong as sample data for search, sorting, translation work or anything a reviewer is meant to read.
Make sure it does not ship. Filler escapes into production regularly, most often through a meta description, an image caption or a seeded database row. Grep the repository for lorem as part of your release checklist, and check the rendered page source rather than only the screen.
Frequently asked questions
What does Lorem Ipsum actually mean?
Almost nothing, and that is the point. The passage is garbled Latin usually traced back to Cicero, De finibus bonorum et malorum, written in 45 BC. The famous opening starts mid-word: "Lorem" is what is left of "dolorem" in the original line "Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet". Words have been cut, shuffled and invented over centuries of typesetting, so the result looks like language without reading as language.
Why use placeholder text at all instead of real copy?
Because real copy pulls attention to what the words say rather than how the page behaves. Filler text lets you check line length, line height, paragraph spacing, widows and how a column reflows at phone width, without anyone in the room starting an argument about the headline. It is also simply available: you can test a layout before the copywriter has written a word.
Is it true that designers should never use Lorem Ipsum?
That argument has real force but it is usually stated too strongly. Filler text hides the fact that a real product name is 34 characters, that a real address block runs to five lines, or that half your users have no bio at all. Use Lorem Ipsum for typography and grid work, where only the shape of the text matters, and switch to real or realistic content before you sign off on any component whose length, tone or empty state is part of the design.
How much text does each setting produce?
Each generated sentence is 8 to 16 Latin words picked at random, so a paragraph of 4 sentences runs roughly 32 to 64 words. The default of 3 paragraphs by 4 sentences gives you somewhere around 100 to 190 words. If you need an exact count, generate a little more than you think you need, paste it into a character and word counter, and trim.
Can the text start with "Lorem ipsum dolor sit amet"?
Yes. Tick Start with "Lorem ipsum dolor sit amet" and the first sentence of the first paragraph becomes "Lorem ipsum dolor sit amet, consectetur adipiscing elit." The box is off by default because the generator shuffles the classic Latin word list rather than reproducing the fixed historical passage, so every other sentence is new each time. Turn it on when a reviewer expects that opening or you want the block to be instantly recognizable as placeholder.
What is the Chinese filler mode for?
Latin text is a poor stand-in for Chinese, Japanese or Korean layout. CJK characters are full width, there are no spaces between words, and lines break between characters rather than at word boundaries, so a Latin paragraph badly misrepresents how dense the same block will look. The Chinese filler mode strings random common words together with full-width punctuation so you can judge line height, measure and wrapping in a CJK interface.
Does Lorem Ipsum hurt SEO if it reaches production?
There is no specific penalty aimed at Latin filler, but a published page whose visible text is placeholder gives a search engine nothing meaningful to match a query against, and it can be treated as thin content. The bigger risk is leakage: filler regularly ends up in a meta description, an alt attribute or a social preview card, where it is quoted back at readers long after the page itself was fixed.
Is the text different every time, and can I reproduce it?
Every press of Regenerate draws new random words, so you will not get the same block twice and there is no seed field to force a repeat. If a test or a screenshot needs stable text, copy one result and keep it in the repository as a fixture instead of generating fresh filler each run. The randomness comes from the ordinary Math.random(), which is right for placeholder text and wrong for anything security related.
Can I use the generated text in commercial work?
Yes. The output is randomly ordered fragments of a Latin text from antiquity, generated in your own browser, and nothing about it is claimed or licensed by this site. Treat it as scaffolding rather than content: the only rule worth enforcing is that it does not survive into a release, which is easiest if you search the codebase for "lorem" as part of your launch checklist.
Sources
- W3C, Web Content Accessibility Guidelines (WCAG) 2.1 (success criterion 1.1.1 Non-text Content, on text alternatives that serve an equivalent purpose).
- W3C, CSS Text Module Level 3 (line breaking and word separation, including why text without spaces breaks between characters).
- MDN, Math.random() (the randomness this page uses, and its explicit warning against cryptographic use).
- The attribution of the passage to Cicero, De finibus bonorum et malorum, is the account given by Richard McClintock and repeated by the long-standing Lorem Ipsum reference sites. Emmet abbreviations, the Faker libraries, the LaTeX lipsum package and the Microsoft Word autotext functions are documented by each project and can change between versions.
More tools
When a field has a character limit and you need to know exactly what you pasted, the word and character counter counts the block for you. For the other half of a realistic fixture, the UUID generator gives you identifiers that look like the real thing instead of id: 1.
Related tools
- Word Counter & Character Count
Word counter and character count as you type, with and without spaces, sentences and paragraphs.
- UUID Generator (v4 and v7)
UUID generator for v4 (random) and v7 (time-ordered) identifiers in bulk, with one-click c…
- JSON Formatter and Validator
JSON formatter and validator: format or minify with 2-space, 4-space or tab indentation; i…
- Color Converter (HEX, RGB, HSL)
Color converter for HEX, RGB and HSL with a color picker, live preview and one-click copy,…
Privacy: the text is generated entirely in your browser with Math.random(). Nothing is sent to a server, stored or logged, and the tool has no analytics event of its own beyond the standard page view.
