Placeholders
The heart of a wireframe: boxes that say "content goes here".
Media .wf-media
Text skeleton .wf-text / .wf-line
Avatar · icon · logo · chart
Markup
<div class="wf-media"></div> <!-- X box, 16:9 (or -square -4x3 -wide -tall) --> <div class="wf-text" style="--lines: 4"></div> <!-- skeleton paragraph --> <div class="wf-line wf-w-50"></div> <!-- one skeleton line --> <span class="wf-avatar"></span> <span class="wf-icon"></span> <span class="wf-logo"></span> <div class="wf-chart"></div> <div class="wf-media" data-wf-label="Hero image"></div> <!-- label any region -->
Layout
.wf-row, .wf-stack, .wf-grid (auto-responsive),
.wf-cols-2/3/4, .wf-container, plus .wf-between,
.wf-grow, .wf-right, .wf-tight/.wf-loose.
Typography
Heading 1
Heading 2
Heading 3
Heading 6 / eyebrow
Paragraph with a link, inline code and small muted text.
"Wireframes should look unfinished — that's the point."
npx serve . # no build step, ever
.wf-muted for secondary text.
Forms
Bare inputs are already styled. Wrap label + control in .wf-field.
Components
| User | Role | Status | |
|---|---|---|---|
| Ada Lovelace | Admin | active | |
| Alan Turing | Member | invited |
Frames
.wf-browser and .wf-phone wrap a prototype in device chrome.
Theming
Dark mode
Follows prefers-color-scheme automatically. Force it with
.wf-dark / .wf-light on the root — or on any subtree:
Sketch mode
Add .wf-sketch next to .wf for the hand-drawn look
(wobbly borders, handwritten font). Try the toggle in the navbar ↑
Tokens
.wf { --wf-ink: #1c1c1c; --wf-radius: 6px;
--wf-gap: 1rem; /* … override any of them */ }
Prototype with your AI agent
Paste this into Claude Code, Cursor, or any coding agent:
Build my prototype as static HTML pages using wireframe-ui-lite: add <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/wireframe-ui-lite@2/wireframe.css"> and class="wf" on <body>. Class reference: https://marcosdocanto.github.io/wireframe-ui-lite/llms.txt Use semantic HTML + wf-* placeholders (wf-media, wf-text, wf-avatar) instead of real content.