Generate Lorem ipsum placeholder text by paragraph, sentence, word or list item, plain or wrapped in HTML. Use it to fill a layout while the real copy is still being written.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Use Lorem ipsum when you want feedback on the design. The text is a scrambled passage from Cicero that a printer cut up in the 1500s for a type specimen. It has the letter distribution and word lengths of real prose without meaning anything. Put readable English in a mockup and the review turns into a discussion of the copy; with Lorem ipsum, people look at the layout.
Swap in real text before sign-off. Real copy runs longer than expected, has awkward headings and rarely fills the box neatly, so a design tested only with tidy Latin can break at launch. Use Lorem ipsum early, then test with one very long and one very short real example.
Paragraphs for body copy, sentences for a card or a tooltip, words for a headline, and list items for a menu or a bullet list. Count goes up to 200.
With Start with "Lorem ipsum" ticked, the output opens with the familiar line. Untick it for text that looks less like an unfilled template.
Wrap in HTML tags puts each paragraph in a p element and list items in li inside a ul, ready to paste into a template or a CMS field.
Each sentence has 8 to 18 words and each paragraph 3 to 6 sentences, so the block does not look machine-uniform.
const VOCAB = "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua".split(" ");
const rand = (min, max) => min + Math.floor(Math.random() * (max - min + 1));
const word = () => VOCAB[Math.floor(Math.random() * VOCAB.length)];
function sentence() {
const text = Array.from({ length: rand(8, 18) }, word).join(" ");
return text[0].toUpperCase() + text.slice(1) + ".";
}
const paragraph = () => Array.from({ length: rand(3, 6) }, sentence).join(" ");
console.log(paragraph());
// In a React app, faker is the usual choice:
// import { faker } from "@faker-js/faker";
// faker.lorem.paragraphs(3); <?php
// composer require fakerphp/faker
$faker = Faker\Factory::create();
echo $faker->paragraph(), PHP_EOL;
echo $faker->paragraphs(3, true), PHP_EOL;
echo $faker->sentence(12), PHP_EOL;
// Which is mostly used inside a factory rather than on its own:
// Post::factory()->count(20)->create();
// In a Laravel factory definition:
// 'title' => fake()->sentence(6),
// 'body' => fake()->paragraphs(5, true), # pip install faker
from faker import Faker
fake = Faker()
print(fake.paragraph())
print(fake.text(max_nb_chars=400))
print(fake.sentence(nb_words=10))
# Faker also produces realistic-looking data, which is usually
# more useful than Latin when you are testing a table layout:
print(fake.name(), fake.company(), fake.email()) Names and companies from Faker look real but are not. Do not seed a staging database with them and then email it.
The text comes from Cicero's De finibus bonorum et malorum, written in 45 BC, which an unknown printer cut up in the 1500s to make a type specimen. The first word is a fragment: "dolorem ipsum" was split across a line break, leaving "lorem ipsum", which means nothing in Latin.
This tool follows the specifications below. Read them when you need the exact normative wording, for example to settle an edge case between two implementations.
Because reviewers cannot read it. Placeholder text in a language they understand pulls their attention to the copy, and a layout review needs it on the layout.
Yes. Leave Start with "Lorem ipsum" ticked and the first paragraph opens with the familiar line. Untick it for text that looks less like a template.
Paragraphs, sentences, words or list items, up to 200 at a time. Set Count and you get exactly that many. Sentences run 8 to 18 words and paragraphs 3 to 6 sentences, so the block does not look mechanical.
Yes. Tick Wrap in HTML tags and each paragraph comes out inside a p element, and list items inside li elements in a ul, ready to paste into a template or a CMS field.
Only if it ships. Google will index a page of Lorem ipsum, which is embarrassing more than harmful, but the page then has nothing to rank for. Strip it before launch, for example with a CI step that fails the build on "lorem".
The panel header shows the word and character count, and the word counter adds a reading time estimate. If the placeholder goes into a Markdown file, the Markdown editor previews it, and the UUID generator makes the fake ids your fixtures need.