Lorem Ipsum Summary
{{ summaryHeadline }}
{{ summarySubline }}
{{ paragraphCount }} paragraph{{ paragraphCount === 1 ? '' : 's' }} {{ sentenceCount }} sentence{{ sentenceCount === 1 ? '' : 's' }} {{ wordCount }} words ~{{ readingTime }} read {{ case_style }} case {{ wrapStyleLabel }}
Lorem Ipsum Generator
{{ countLabel }}
Min
Max
Min
Max
{{ randomness }}%
%
No data yet. Adjust the fields above and generate placeholder copy.
Rendered text
No data yet. Adjust the fields above and generate placeholder copy.
{{ generatedText }}
Waiting for generated text. Use the form above to create paragraphs.
# Preview Sentences Words Chars Copy
{{ p.index }} {{ p.preview }} {{ p.sentenceCount }} {{ p.wordCount }} {{ p.charCount }}
Vocabulary metrics appear after generating text.
Word Count Share Copy
{{ row.word }} {{ row.count }} {{ row.share }}
Generate text to view sentence length distribution.
JSON export will appear once text is generated.
:

Introduction:

Lorem ipsum text is placeholder prose used to preview layout and typography when real copy for a page or screen is not ready yet. A lorem ipsum generator for design mockups lets you control how dense the writing feels, so spacing and rhythm look realistic during early reviews. Because the words carry no meaning, readers focus on hierarchy, alignment, and the overall flow instead of getting pulled into the message.

You choose how much text you need, then shape it into short or flowing sentences and group it into paragraphs that resemble real product copy. You can nudge the vocabulary toward classic Latin, a friendlier voice, a playful feel, or a more technical flavor, and you can also push in your own topic terms. The result is ready to paste into drafts, wireframes, and templates, with quick counts that tell you how long it is at a glance.

Imagine a landing page hero, three feature blurbs, and a short footer note that all need different lengths but should still sound like they belong together. Generate a few paragraphs with tighter sentences for cards, then switch to longer sentences for a body section and reuse the same settings when the layout changes. That way you test real looking variation without writing final copy too soon.

Placeholder text can hide problems that only show up with real language, such as long words, numbers, or a dense list of links. Treat the output as a sizing aid, not as a quality check for readability or tone. As soon as you have representative content, swap it in and confirm that the design still holds up.

If you add topic terms or custom words, consider whether they include personal names or confidential project details before you paste the result into shared documents. Keeping your test vocabulary generic helps you share mockups more comfortably across teams.

Use this generator when you want controlled variety, and use a fixed lorem block when you just need a quick neutral filler. For repeatable reviews, keep the same settings and set a seed so the text stays stable across versions.

Technical Details:

Placeholder copy is most useful when its volume matches the space you are testing, so this tool tracks how much text it produces as paragraphs, sentences, words, and characters. It also derives a rough reading time and basic distribution views, which helps you spot sections that are unusually dense or unusually sparse.

Generation is word based and range driven. Sentences are assembled from small internal word pools, then finished with configurable casing and punctuation, and paragraphs are built by repeating that sentence process. A tone choice biases the vocabulary toward a themed list, while a Latin blend ratio biases the base pool toward Latin roots versus modern filler.

Metrics are descriptive rather than judgmental. Word frequency shows which tokens repeat most often, and the sentence length chart shows how tightly your sentence sizes cluster around your chosen range. The reading time is a simple estimate and is best used for comparisons across drafts with the same settings.

For comparability, you can provide a seed string to drive a reproducible pseudo-random stream, so identical settings can yield identical text across runs. Without a seed, word choice uses a fresh random stream each time.

Core calculations

tread = max ( 0.1 , wtotal 200 )
sword = cword wtotal × 100 %
Symbols used in the generator metrics
Symbol Meaning Unit or Datatype Source
wtotal Total words across all sentences integer Derived
tread Estimated reading time, lower bounded minutes Derived
cword Count of a specific token in the vocabulary table integer Derived
sword Share of a token relative to the total word count percent Derived
Smin, Smax Sentences per paragraph bounds integer Input
Wmin, Wmax Words per sentence bounds integer Input
R Punctuation randomness level 0 to 100 Input
L Latin blend ratio for the base word pool 0 to 100 Input

Generation process

  1. Validate numeric ranges and apply caps for safety.
  2. Initialize the random stream from the seed or from fresh randomness.
  3. Extract topic and custom terms by splitting on spaces, commas, and semicolons.
  4. Build paragraphs until the requested paragraph, sentence, or word target is reached.
  5. For each sentence, pick words from weighted pools and optionally add a comma.
  6. Apply case style, choose a sentence ending, then assemble the final output wrapper.

Parameters and defaults

Main generator parameters and how they affect output
Parameter Meaning Unit or Datatype Typical range Sensitivity Notes
Output focus Targets paragraphs, an exact sentence total, or a word budget enum paragraphs, sentences, words High Word focus stops when the budget is met or when the paragraph count exceeds 48, which can yield up to 49 paragraphs.
Amount How many units to target for the selected focus integer ≥ 1 High Coerced to an integer using floor rounding.
Sentences per paragraph Range used to choose how many sentences each paragraph contains integer 1 to 24 Medium In sentence focus, each paragraph uses a fixed sentence count per block.
Words per sentence Range used to choose the number of words in each generated sentence integer 3 to 36 Medium Commas are only considered when a sentence has at least 8 words and randomness is at least 25.
Tone Biases word choice toward a themed vocabulary list enum classic, friendly, playful, technical Medium When no topic or custom words are provided, the tone list is used often.
Latin blend Biases the base pool toward Latin roots versus modern filler percent 0 to 100 Low Does not override tone words or your custom and topic terms.
Randomness Controls punctuation variety and the chance of an inserted comma 0 to 100 0 to 100 Low At higher values, question marks, exclamation marks, and semicolons can appear.
Seed Replays the same pseudo-random stream for repeatable text string optional High The generator uses a linear congruential generator (LCG) over a 32 bit state.

Constants used by the logic

Constants and fixed configuration used by the generator
Constant Value Unit Source Notes
Latin base pool size 58 words Constant Lowercase Latin roots used when the base pool is selected.
Modern base pool size 34 words Constant Modern filler words used when the base pool is selected.
Tone list size 9 words Constant Each tone provides nine themed words.
Sentences per paragraph cap 24 sentences Constant Values above the cap trigger an error message.
Words per sentence cap 36 words Constant Values above the cap trigger an error message.
Reading speed 200 words per minute Constant Used to estimate reading time.
Minimum reading time 0.1 minutes Constant Prevents very small outputs from showing as 0 minutes.
Word focus stop threshold 48 paragraphs Constant Heads-up Generation stops once the paragraph count exceeds 48, so up to 49 paragraphs may be produced.
LCG multiplier 1664525 integer Constant Used for each step of the seeded generator.
LCG increment 1013904223 integer Constant Used for each step of the seeded generator.
LCG modulus 232 states Constant State is maintained as an unsigned 32 bit value.

Validation and bounds

Input validation rules and error messages
Field Type Min Max Step or pattern Error text Placeholder
Output focus enum paragraphs | sentences | words Invalid values fall back to paragraphs
Amount integer 1 step 1 Amount must be at least 1. 3, 8, or 120 depending on focus
Sentences per paragraph min integer 1 step 1
Sentences per paragraph max integer 1 24 step 1, must be at least min Sentences per paragraph capped at 24. Max sentences per paragraph must be at least the minimum.
Words per sentence min integer 3 step 1
Words per sentence max integer 3 36 step 1, must be at least min Words per sentence capped at 36. Max words per sentence must be at least the minimum.
Topic focus text split on whitespace, commas, semicolons e.g., design system, onboarding, API docs
Custom vocabulary text split on whitespace, commas, semicolons accessibility, analytics, workshop, cohort
Seed text trimmed string e.g., brand-alpha

Input and output formats

Supported output wrappers and downloadable artifacts
Input Accepted families Output Encoding and precision Notes
Wrap style plain, HTML paragraphs, Markdown paragraphs, bulleted list Single text block Text output; casing and punctuation applied per sentence HTML paragraph mode escapes < and > in the text.
Downloads TXT, CSV, JSON, DOCX, PNG, WebP, JPEG Files generated from the current output and metrics Reading time shown to 2 decimals, word share shown to 1 decimal Chart images are derived from a rendered bar chart and may be cached by the browser.

Units, precision, and rounding

  • Amounts and ranges are coerced to integers using floor rounding.
  • Reading time is computed as words divided by 200, lower bounded at 0.1, and displayed with 2 decimals.
  • Vocabulary share is computed as count divided by total words, multiplied by 100, and displayed with 1 decimal.
  • JSON includes a numeric reading time rounded to 2 decimals.

Randomness, seeds, and reproducibility

  • With a seed, the generator uses a deterministic LCG stream over a 32 bit unsigned state.
  • Without a seed, the generator uses a non-deterministic random stream for word choice.
  • Word selection is with replacement, so repetition is expected and is reflected in the frequency table.
  • Topic terms are given a dedicated per word chance, so they can appear often.
  • Punctuation variety depends on the randomness level, and higher values can introduce semicolons.

Networking and storage behavior

  • Text generation and metrics run locally in the page logic.
  • The sentence length chart may fetch a charting script if it is not already available.
  • No API requests are made to submit your generated text.

Performance and complexity

  • Generation cost is proportional to the total number of words produced.
  • Vocabulary counting walks every produced token once, so it scales with the total words.
  • Sentence length chart data scales with the total number of sentences.

Diagnostics and determinism

  • Identical inputs and a stable seed produce the same text sequence across runs.
  • Heads-up If the seed hashes to a zero state, the generator falls back to a time based state.
  • When inputs are invalid, the tool clears output and shows error messages instead of partial results.

Security considerations

  • HTML paragraph output escapes special characters, reducing the risk of accidental markup injection.
  • Plain text, Markdown, and list outputs are not escaped, so treat them as text when embedding in HTML.
  • Word extraction strips non-alphanumeric characters at the edges only, so internal punctuation can survive.
  • Avoid placing secrets into topic terms or custom words if the output will be shared widely.

Assumptions and limitations

  • The output is synthetic filler and is not intended to be meaningful or fully grammatical.
  • Tone changes vocabulary bias, not sentence structure, and it does not guarantee a consistent style.
  • Latin blend only affects the base word pool and does not override tone words or injected terms.
  • Word focus is a best effort target and stops once the paragraph count exceeds 48.
  • If the classic opener is enabled, the first sentence uses a fixed word count and can exceed a small word budget.
  • Tokenization is ASCII oriented, so accented letters and non Latin scripts may be dropped or altered.
  • Reading time assumes 200 words per minute and should be used for relative comparisons only.
  • Vocabulary shows the top 50 tokens only, so long tails are not displayed by default.

Edge cases and error sources

  • Non-numeric inputs are coerced to 0, then clamped to minimums, which can surprise when fields are blank.
  • NaN and Infinity values become 0 through numeric coercion, then are clamped.
  • Signed zero is treated as zero and then clamped to a minimum amount.
  • Sentences per paragraph above 24 are capped, and values above the cap also trigger an error message.
  • Words per sentence above 36 are capped, and values above the cap also trigger an error message.
  • Very small word budgets combined with the classic opener can overshoot the requested word count.
  • Title casing splits only on spaces, so tokens like api-docs keep internal punctuation.
  • Unicode normalization can change seeded results when visually identical strings use different code points.
  • Grapheme clusters are not considered in word splitting, so some emojis and combining marks may behave oddly.
  • Markdown output may be interpreted by downstream renderers when your injected terms contain symbols like * or _.
  • The first classic sentence contributes capitalized tokens to vocabulary counts, even if you pick lowercase output.
  • Chart availability can vary if the charting script is blocked or not cached.

Standards and references

Text handling aligns with common browser behavior for Unicode strings and HTML escaping, and numeric rounding follows standard JavaScript formatting. For background reading, the Unicode Standard, the HTML Living Standard, and ECMA-262 are the most relevant references.

Privacy and compliance

Generated text and metrics are produced locally, and no server endpoint is used to transmit your content. Outputs are pseudo-random and have no monetary value.

Step-by-Step Guide:

Placeholder text is easiest to use when you decide the target length first and then tune the texture of the sentences to match your layout.

  1. Pick a Output focus to target paragraphs, sentences, or a word budget.
  2. Set the Amount for the chosen focus.
  3. Choose Sentences per paragraph and Words per sentence ranges.
  4. Select a Tone and a Case style for consistent formatting.
  5. Optionally add Topic focus and Custom vocabulary terms.
  6. Use the Seed when you want the same output again later.
  7. Review the summary counts, then copy or download the text and any metrics you need.
Use shorter sentences for cards and longer sentences for body sections to test contrast.
Add a few domain nouns in custom vocabulary to make screens feel more realistic.
Scan the sentence length chart to spot accidental extremes before you paste.
If you need neutral filler, lower randomness and keep tone set to classic.

Pro tip: lock a seed early in a project so layout reviews compare like with like across iterations.

You will end up with consistent filler that matches your layout, plus repeatable settings you can reuse whenever you need the same sample again.

Troubleshooting:

  • If you see validation errors, lower the maximum values or raise the minimum values so max is at least min.
  • If sentence counts feel off, remember that sentence focus targets a total sentence count, not a fixed paragraph count.
  • If word totals feel off in word focus, disable the classic opener or use a larger word budget.
  • If vocabulary looks repetitive, add topic terms, expand your custom vocabulary, or increase the ranges slightly.
  • If Markdown renders oddly after pasting, remove or escape symbols in your injected terms.
  • If the chart panel is blank, generate text first and ensure the charting script is available.

Advanced Tips:

  • Tip Use a fixed seed for screenshots so diffs stay meaningful.
  • Tip Keep randomness low when you want consistent periods and fewer punctuation surprises.
  • Tip Push Latin blend upward for classic filler, but remember tone words can still shift the feel.
  • Tip Use custom vocabulary for proper nouns that should repeat, then verify repetition with the frequency table.
  • Tip In word focus, widen the word range to reduce the number of paragraphs needed for a large budget.
  • Tip When pasting into HTML, prefer the escaped paragraph wrapper to avoid accidental markup interpretation.

FAQ:

Is my data stored?

Generated text and metrics are produced locally and are not submitted to a server. The chart view may load a charting script, but it does not upload your content.

How accurate is reading time?

It is an estimate based on 200 words per minute with a minimum of 0.1 minutes, shown with two decimal places. Use it to compare drafts, not as a personal speed measure.

Why do word totals vary?

Word choice is random unless you set a seed, and the classic opener always uses its fixed length. In word focus, the last paragraph can stop mid paragraph when the remaining budget is reached.

If you need strict word budgets, disable the classic opener.
Can I recreate the same text?

Yes. Use the same seed and keep the same ranges, tone, case, and wrapper settings. Most runs will match exactly, although a rare seed that hashes to zero can fall back to a time based state.

Does HTML output allow tags?

No. The paragraph wrapper escapes the text, so any <tag> characters become plain text. This keeps pasted output safer when inserted into templates.

What output formats are supported?

You can wrap the text as plain paragraphs, HTML paragraphs, Markdown paragraphs, or a bulleted list. Downloads include TXT, CSV tables for metrics, a JSON snapshot, DOCX documents, and chart images.

How do I add keywords?

Enter terms separated by spaces, commas, or semicolons. Punctuation at the edges is removed, single character tokens are ignored, and the remaining words are added as a weighted option during word selection, so they can repeat regularly.

What does randomness change?

At low values, sentences end with periods only. At 35 and above, question marks can appear, at 55 and above exclamation marks can appear, and at 75 and above semicolons can appear. For sentences of 8 words or more, randomness also controls the chance of inserting one comma.

Will it work offline?

Text generation does not rely on a server call. The sentence length chart can require a charting script to be present, so that view may be unavailable if it is not cached and the network is blocked.

What about cost or license?

This package does not include licensing terms in its files, and it contains no payment logic. Any cost or usage policy is determined by the site that hosts the tool.

Glossary:

Lorem ipsum
Traditional placeholder Latin like text used to test layouts.
Placeholder text
Temporary copy that stands in for real content.
Tone
A vocabulary bias that nudges the feel of the filler.
Case style
A casing rule applied to every generated sentence.
Seed
A string that makes pseudo-random choices repeatable.
Word frequency
A count of how often each token appears in the output.
Sentence length
Words per sentence, shown as a per sentence distribution.
Latin blend
A ratio that biases base pool selection toward Latin roots.