Text
LOREM IPSUM
Generate placeholder lorem ipsum text by paragraphs, sentences, or words. Copy with one click.
Type
Click Generate to create lorem ipsum text.
Words: —
Chars: —
Developer Reference
Core Algorithm & Standalone Script
Standalone, zero-dependency JavaScript implementation powering this tool. Free to inspect, copy, and build upon.
const WORDS = 'lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua enim ad minim veniam quis nostrud exercitation ullamco laboris nisi aliquip ex ea commodo consequat duis aute irure in reprehenderit voluptate velit esse cillum eu fugiat nulla pariatur excepteur sint occaecat cupidatat non proident sunt culpa qui officia deserunt mollit anim id est laborum pellentesque habitant morbi tristique senectus netus malesuada fames ac turpis egestas vestibulum tortor quam finibus mattis pulvinar nunc posuere cubilia curae praesent commodo cursus magna vel scelerisque nisl volutpat condimentum ligula porttitor lacus accumsan viverra orci varius natoque penatibus magnis dis parturient montes nascetur ridiculus mus mauris blandit aliquet arcu eleifend augue fringilla pretium sapien iaculis congue libero rhoncus ultricies dapibus interdum purus fermentum bibendum pharetra diam maecenas gravida'.split(' ');
const CLASSIC = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.';
let currentType = 'paragraphs';
function setType(t) {
currentType = t;
['Para','Sent','Word'].forEach(x => document.getElementById('btn' + x).classList.remove('active'));
const map = { paragraphs: 'Para', sentences: 'Sent', words: 'Word' };
document.getElementById('btn' + map[t]).classList.add('active');
}
function rand(arr) { return arr[Math.floor(Math.random() * arr.length)]; }
function makeSentence() {
const len = 8 + Math.floor(Math.random() * 12);
const w = [];
for (let i = 0; i < len; i++) w.push(rand(WORDS));
return w[0].charAt(0).toUpperCase() + w[0].slice(1) + ' ' + w.slice(1).join(' ') + '.';
}
function makeParagraph() {
const n = 4 + Math.floor(Math.random() * 4);
const sents = [];
for (let i = 0; i < n; i++) sents.push(makeSentence());
return sents.join(' ');
}
function generate() {
const count = Math.max(1, Math.min(50, parseInt(document.getElementById('countInput').value) || 3));
const classic = document.getElementById('classicStart').checked;
let result = '';
if (currentType === 'paragraphs') {
const paras = [];
for (let i = 0; i < count; i++) paras.push(i === 0 && classic ? CLASSIC + ' ' + makeParagraph() : makeParagraph());
result = paras.join('\n\n');
} else if (currentType === 'sentences') {
const sents = [];
for (let i = 0; i < count; i++) sents.push(i === 0 && classic ? CLASSIC : makeSentence());
result = sents.join(' ');
} else {
const ws = classic ? CLASSIC.replace(/[.,]/g, '').toLowerCase().split(' ') : [];
while (ws.length < count) ws.push(rand(WORDS));
result = ws.slice(0, count).join(' ');
}
document.getElementById('outputText').textContent = result;
document.getElementById('statW').textContent = result.trim().split(/\s+/).length;
document.getElementById('statC').textContent = result.length;
}
function copyOutput() {
const text = document.getElementById('outputText').textContent;
navigator.clipboard.writeText(text).catch(() => {});
const btn = document.getElementById('copyBtn');
btn.textContent = 'copied!'; btn.classList.add('copied');
setTimeout(() => { btn.textContent = 'copy'; btn.classList.remove('copied'); }, 2000);
}
generate();