W · 23 / 26
W — Wireframe
The structure before the surface.
Boxes for pictures, lines for words, and a note on every decision.
Decide the bones while they are cheap.
The word came from computer graphics. In 1963 Ivan Sutherland’s Sketchpad drew objects as their edges alone, a frame of wire, because a frame was all the machine could afford to draw. Shape first, surface later.
Web teams took it over around 2000 for the page before the design: Jesse James Garrett published a visual vocabulary for it in 2002, Balsamiq made the hand-drawn look a product in 2008, and handoff tools turned the designer’s redlines, the sizes and gaps marked in red, into something a developer could click.
As a style it is grey on white, a box with an X for every picture, real words in one plain face, a monospaced face for sizes, and two pens on top: blue for notes, red for measurements. It looks unfinished on purpose, so that people argue about what goes where and not about the colour.
One screen, three fidelities.
Platform sells train tickets from Seoul to Busan. Slide from sketch to wireframe to finished and the whole results screen changes its surface while the layout stays put. Every step works: pick a day, sort, open a train, book it.
- 01One skeletonSketch, wireframe and finished are the same markup. Only the surface changes, so nothing jumps when the slider moves.
- 02Works at every stepPick a day, sort, open a train, add a passenger, book. The sketch is as usable as the finished screen.
- 03Notes travel with itTurn the notes on: four pins, and what each one decides changes with the fidelity.
5 trains · from ₩38,900
- Seoul09:00
- Daejeon09:58
- Busan11:24
Adults
Finished
3 / 3Type, colour, pictures and depth on the same skeleton. Nothing moved: the surface went on last.
- Layout, decided
- Content, decided
- Look, decided
- 1Route in 600 weight; the arrow is a glyph, not a picture.
- 2The chosen day is the only filled chip.
- 3Fastest and Cheapest get the one accent; everything else stays ink.
- 4Green fill, 52px tall, in reach of a thumb.
The stencil, every state.
The parts a wireframe is drawn from, in grey and ink. Each tile holds its states still above a part that works, with the notes a designer would leave beside it.
W-01Button
W-02Text field
W-03Select
W-04Switch, checkbox, radio
W-05Slider
W-06Progress
W-07Segments and tabs
14 frames · 3 flows · last edit 10:42
W-08List rows
W-09Card and loading
W-10Toast
W-11Modal
W-12Steps
- ✓ Sketch
- Wireframe
- Review
- Build
W-13Badges and avatars
Redlines and sticky notes.
The finished fare card under an inspector. Hover any layer for its size and the gaps to its parent, measured live from the page. Pin one and hover another to measure between them, then leave a note on it for the developers.
Times row is pinned. Hover another layer to measure to it; click it again to let go.
- 1 · DurationMina · designThe duration sits on the line between the times, so it reads as the gap. Keep it at 13px.
- 2 · Select buttonJoon · researchIs 44 tall enough here? The thumb zone wants 48.
- 3 · Fastest badgeSora · productOne badge per card. If a train is both, Fastest wins.
Hover, focus or pin a layer to read its size, type and colour.
The system, in numbers.
Six greys and three pens with their contrast, three typefaces, an 8-point grid, three line weights and three speeds. Copy them as custom properties, with the box, the button and the pin.
- --paper #f6f6f3Paper: the page under the frames
- --sheet #ffffffSheet: frames and panels
- --fill #ecece8Fill: placeholders, skeletons
- --line #c9c9c4Line: boxes and rules, never type
- --ink #1d1d1bInk: text and controls, 16.9:1
- --ink-2 #5b5b56Second ink: hints, meta, 6.8:1
- --blue #2f5fd0Note pen: pins, frames, focus, 5.7:1
- --red #c8321cRedline: sizes, errors, 5.3:1
- --note #ffe680Sticky: its ink on it 10.2:1
- Seoul → Busan 09:00Inter Tight 600 · headings, the product
- Seoul → Busan 09:00Inter Tight 400 · text
- Seoul → Busan 09:00Red Hat Mono 500 · specs, sizes, labels
- Seoul → Busan 09:00Kalam 400 · notes in the margin
- 4
- 8
- 16
- 24
- 32
- 48
- 64
- Box · 1pxPlaceholders, rules
- Control · 1.5pxButtons, fields, the phone
- Sketch · 2pxThe marker, at low fidelity
- Press160ms ease-outColour and 1px of travel
- Fidelity320ms ease-outOne look fading to the next
- Breathe1.4s alternateSkeletons, while loading
:root {
/* Paper and ink */
--paper: #f6f6f3;
--sheet: #ffffff;
--fill: #ecece8;
--line: #c9c9c4;
--ink: #1d1d1b;
--ink-2: #5b5b56;
/* The three pens */
--blue: #2f5fd0; /* notes, pins, focus */
--red: #c8321c; /* redlines, errors */
--note: #ffe680; /* sticky notes */
/* Type */
--font-ui: "Inter Tight", system-ui, sans-serif;
--font-spec: "Red Hat Mono", ui-monospace, monospace;
--font-hand: "Kalam", "Comic Sans MS", cursive;
/* Grid, lines, edges */
--u: 8px;
--box: 1px solid var(--line);
--control: 1.5px solid var(--ink);
--radius: 6px;
--press: 160ms ease-out;
--fidelity: 320ms ease-out;
}
/* The placeholder: a grey box with an X. */
.xbox {
background:
linear-gradient(to top right, transparent calc(50% - 0.75px), var(--line) 50%, transparent calc(50% + 0.75px)),
linear-gradient(to top left, transparent calc(50% - 0.75px), var(--line) 50%, transparent calc(50% + 0.75px)),
var(--fill);
border: var(--box);
}
/* The button: an ink line, 44 tall. */
.wbtn {
min-height: 44px;
padding: 0 18px;
font: 500 13px var(--font-spec);
background: var(--sheet);
border: var(--control);
border-radius: var(--radius);
transition: background-color var(--press);
}
.wbtn:hover {
background: var(--fill);
}
/* The note pin. */
.pin {
width: 22px;
height: 22px;
border-radius: 50%;
font: 600 11px/22px var(--font-spec);
text-align: center;
color: #fff;
background: var(--blue);
}05Do
- 1Settle the structure before the surface. Stay grey until the layout holds.
- 2Use the real words. Placeholder text hides the long name and the empty state.
- 3Annotate every decision. A box without a note is a guess.
- 4Raise fidelity on purpose, one step at a time, and say what each step decides.
06Don’t
Lorem ipsum
The copy was a guess, so the layout was too. The real station name broke the row on the first day.Polished too soon
Gradients and a brand blue in a wireframe. The review was spent on the blue, and nobody looked at the flow.Boxes with no notes
Twelve grey boxes and not one label. Nobody can say what was decided, so it gets decided again.
07In the wild
Where the style shows up outside this page.
Battlezone
Atari · 1980Tanks and mountains in green vector lines, edges only.Tron
Disney · 1982Early computer graphics on film, glowing outlines on black.Elite
David Braben and Ian Bell · 1984A whole galaxy of ships in wireframe on the BBC Micro, drawn one line at a time.Balsamiq Mockups
Peldi Guilizzoni · 2008Hand-drawn boxes on purpose, so nobody mistakes the sketch for the design.