wireframe-ui-lite
v2.0.0
Published
Lo-fi wireframes in plain HTML. One CSS file, zero JS, zero dependencies — semantic-first wireframe kit for rapid (and AI-assisted) prototyping.
Maintainers
Readme
wireframe-ui-lite
Lo-fi wireframes in plain HTML. One CSS file, zero JS, zero dependencies.
Drop one stylesheet into any page and prototype screens in minutes. Deliberately grayscale and unfinished-looking, so feedback stays on structure and flow — not on colors and fonts.
Live demo & docs → · Landing example · Dashboard · Mobile
Quick start
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/wireframe-ui-lite@2/wireframe.css">
<body class="wf">That's it — no build step. Or install it:
npm i wireframe-ui-lite # then import "wireframe-ui-lite"Everything is scoped under .wf, so you can also wireframe a single region inside an existing app without affecting the rest of the page.
Why it's fast
1. Semantic HTML is already styled. Inside .wf, plain button, input, select, table, details, dialog, progress, headings and text come out wireframe-styled. You mostly just write HTML.
2. Placeholders for everything you don't have yet:
<div class="wf-media" data-wf-label="Hero image"></div> <!-- image box with an X -->
<div class="wf-text" style="--lines: 4"></div> <!-- skeleton paragraph -->
<span class="wf-avatar"></span> <!-- person silhouette -->
<span class="wf-logo"></span> <!-- renders "LOGO" -->
<div class="wf-chart"></div> <!-- rising-bars chart -->3. Layout in three classes. wf-row, wf-stack, wf-grid (auto-responsive) — plus wf-shell for instant sidebar-app layouts and wf-phone / wf-browser device frames.
A complete card is this much markup:
<div class="wf-card">
<div class="wf-row">
<span class="wf-avatar"></span>
<strong class="wf-grow">Card title</strong>
<span class="wf-badge">new</span>
</div>
<div class="wf-text"></div>
<button class="wf-btn-sm">Action</button>
</div>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.The llms.txt file is a compact machine-readable reference of every class — agents one-shot entire flows with it.
Class reference
| Group | Classes |
|---|---|
| Placeholders | wf-media (-square -4x3 -wide -tall), wf-text, wf-line, wf-avatar (-sm -lg), wf-icon (-lg), wf-logo, wf-chart, data-wf-label="…" |
| Layout | wf-container (-narrow -wide), wf-row, wf-stack, wf-grid, wf-cols-2/3/4, wf-between, wf-center, wf-end, wf-top, wf-grow, wf-right, wf-tight, wf-loose |
| App structure | wf-navbar, wf-hero, wf-footer, wf-shell + wf-sidebar + wf-main |
| Components | wf-card (-fill), wf-badge (-solid), wf-dot, wf-alert, wf-note, wf-tabs, wf-crumbs, wf-menu, wf-field, wf-check, wf-toggle, wf-dropdown |
| Buttons | button / wf-btn + -solid -ghost -sm -lg |
| Frames | wf-browser, wf-phone + wf-screen |
| Utilities | wf-muted, wf-small, wf-bold, wf-divider, wf-pop, wf-dashed, wf-hidden, wf-scroll, wf-w-25/33/50/66/75/100 |
| States | wf-active (tabs, menus, navbar links) |
Interactive pieces use native HTML — <details> for accordions and dropdowns, <dialog> for modals — so the kit ships no JavaScript at all.
Theming
Dark mode follows prefers-color-scheme automatically; force it with .wf-dark / .wf-light on the root or any subtree. Add .wf-sketch next to .wf for the hand-drawn look (wobbly borders + handwritten font). Every color and size is a token you can override:
.wf { --wf-ink: #1c1c1c; --wf-paper: #fff; --wf-radius: 6px; --wf-gap: 1rem; }Philosophy
- Grayscale on purpose. Color invites bikeshedding; boxes invite feedback on flow.
- Semantic-first. If HTML has an element for it, the kit styles the element — classes are for what HTML doesn't have.
- Lite means lite. One file, ~13 KB, no build, no JS, scoped so it can't leak.
