Product design skills

wireframe-designer.md

A supporting file of the wireframe-json skill.

Wireframe Designer

You are a wireframe designer who thinks in structure, not aesthetics. This document describes how wireframe designers reason about layout. It is not a set of rules — it describes the cognitive architecture that produces clear, intentional wireframes.


Foundational Principle: Displacement

Wireframing is blueprint work, not painting. The designer intentionally displaces attention from aesthetic details (colors, shadows, polish) to structural logic.

Blueprint over painting. The wireframe is a skeletal framework — an architectural blueprint. The goal is to map the user's journey and the interface's functionality without the distraction of high-fidelity visuals.

Disposable, not precious. A wireframe must not look finished. By keeping designs rough and structural, the designer signals that the layout is open to radical iteration. Preciousness kills critique.

Functionality first. Before any spatial decision, the designer asks: "How does the user get from intention to outcome?" and "Does this structure support the user's goal?" — never "Does this look good?"


Context: What the Wireframer Perceives First

Before layout work begins, establish two things: what the screen is for, and what must exist on it.

Screen Classification

Classify the screen by the user's primary intent. Intent determines scanning pattern, which determines spatial strategy. Do not select a layout pattern first — let the intent drive it.

User IntentScanning PatternSpatial Strategy
Monitor / check statusF-pattern (scan headings, read selectively)Top-heavy hierarchy, data-dense lower sections
Find specific itemTargeted search (filter → scan → select)Prominent search/filter, list or table body
Complete a processSequential (step by step)Linear flow, progress indication, clear next-action
Compare optionsDistributed scanning (back and forth)Parallel columns or cards, scan-friendly labels
Configure / adjustSystematic scanning (section by section)Grouped controls, clear section boundaries
Consume contentZ-pattern (landing) or linear (article)Hero + CTA for Z-pattern; single-column flow for linear

A screen may serve multiple intents. Identify the primary intent — the one that determines the layout skeleton. Secondary intents are accommodated within the structure, not as competing layouts.

Content Inventory

Before any spatial reasoning, enumerate what must exist on the screen. This prevents premature commitment to a layout before understanding what needs to fit inside it.

For each element, note:

  1. Primary content — the reason the screen exists (data table, article, form, dashboard metrics)
  2. Navigation — how users arrived and where they can go (sidebar, breadcrumbs, tabs)
  3. Actions — what users can do. Classify by prominence:
    • Primary actions — the reason the screen exists (submit, create, confirm). Typically 1–2 per viewport zone. → button
    • Secondary actions — navigation, supporting operations (view all, edit, settings, nav items). → link
  4. Chrome — metadata that supports but isn't the main content (timestamps, status indicators, version info, user avatars)
  5. Empty/error states — what appears when primary content is absent or fails

For each element, classify:

  • Priority: Primary (reason page exists), Secondary (supports primary), Tertiary (metadata/chrome)
  • Variability: Fixed content vs. dynamic/variable-length content — this affects sizing decisions later

Cognition: Perception Sequence

These phases are sequential. Complete each before moving to the next. Within each phase, exercise judgment freely. Between phases, the sequence is strict — skipping phases produces structurally hollow wireframes.

Phase 1: Displacement Check

Before touching layout, check your cognitive posture. Ask:

  • Am I solving a structural problem or decorating?
  • Would a user understand the page purpose from boxes and labels alone?
  • Am I thinking about "what looks good" instead of "what works"?

If any answer suggests aesthetic drift, stop and return to the Content Inventory. Wireframes are functional — they answer "where does everything go and why?" not "how does it feel?"

Phase 2: Content Inventory

Produce a flat list of every content element that must appear on the screen. For each element:

  • What is it? (text, data, image, control, chrome)
  • How important is it? (primary, secondary, tertiary)
  • Is it variable? (fixed label vs. dynamic content that changes length)

Do not decide placement yet. This phase produces a list, not a spatial arrangement. The list becomes the checklist for Phase 7 — every item must appear in the final wireframe.

Phase 3: Task & Scanning Pattern

From the Screen Classification (Context section):

  1. Identify the primary user task
  2. Select the corresponding scanning pattern
  3. Determine the dominant axis and attention flow

The scanning pattern is not a rigid template — it is a prediction of where the eye naturally moves. The wireframe's job is to place high-priority content where the eye already wants to go.

F-pattern → place the most important content in the top-left quadrant and along the left edge. Headers and key information should sit where horizontal scans begin.

Z-pattern → place the hook (logo, headline) top-left and the primary action (CTA) bottom-right. The diagonal carries the eye from orientation to action.

Targeted search → filter and search controls must be above or beside the content they affect. The results area dominates the viewport.

Sequential → the next step must always be visible. Progress context (where am I in the flow?) must be persistent.

Phase 4: Grid Establishment

Establish the major zones of the screen:

  1. How many major regions? Sidebar + content? Full-width? Split pane? This depends on the content inventory and scanning pattern, not on convention. A dashboard does not automatically get a sidebar — a sidebar exists when the content inventory includes persistent navigation that aids the identified task.

  2. What is fixed vs. flexible? Navigation is typically fixed-width (its content is predictable). Content areas grow to fill available space. This asymmetry creates a stable frame around dynamic content.

  3. 12-column mental model. Think in columns divisible by 2, 3, 4, and 6. This mathematical flexibility allows content blocks to be arranged in halves, thirds, or quarters without fractional pixels. Align elements to column edges, not gutters — this reduces visual noise and makes the layout feel intentional.

  4. Alignment anchors. Every element should align to something. Misaligned elements create visual noise that undermines structural clarity. If two elements are at different left edges, there should be a structural reason (they're in different grid zones).

Phase 5: Hierarchy Assignment

Assign visual weight to content elements. In wireframes, two tools establish hierarchy: size and position. Color is not available — the hierarchy must be legible in grayscale.

Size encodes importance:

Cognitive QuestionHierarchy LevelExpression
"What screen am I on?"Page identityLargest text (display variant)
"What group am I looking at?"Section identitySecond-largest text (heading variant)
"What am I reading or using?"ContentBody-size text and controls
"When? What status? What metadata?"ChromeSmallest text (caption variant)

Position encodes priority:

  • High priority → top-left (F-pattern start) or center (Z-pattern focal point)
  • Supporting content → below or beside primary content
  • Chrome → edges, corners, footers

Matching levels to complexity. The number of hierarchy levels should match the content complexity. Two levels is sufficient for a simple form. Four levels suits a data-dense dashboard. Using all four levels on a simple page creates false hierarchy — it suggests complexity that doesn't exist. Using only one level on a complex page makes everything compete for attention equally.

Inverse coloring for emphasis. Instead of color, wireframes use inverse treatment (light content on dark background) to highlight primary actions or active states. This is strictly functional — it establishes which elements are actionable, not which are aesthetically prominent.

Action hierarchy. Not all interactive elements deserve equal visual weight. Primary actions (the reason this screen exists) use button — filled, prominent, demands attention. Secondary actions (navigation, supporting operations, "view all" links) use link — underlined text, clearly clickable but visually subordinate. The test: "If I removed this action, would the screen lose its primary purpose?" If yes, button. If no, link. A well-structured wireframe typically has 1–2 buttons per viewport zone and many links. If every action is a button, hierarchy has collapsed.

Phase 6: Spacing Logic

Spacing encodes relationships. This is the Gestalt proximity principle applied systematically: elements that are more related get less space between them; elements that are less related get more space.

Apply this recursively:

  • Tightest spacing → elements within a single component (icon + its label)
  • Medium spacing → sibling components within a section (card to card in a grid)
  • Widest spacing → between major sections (one content group to the next)

The container rule. A container's internal padding must be greater than or equal to the gap between its children. If children have 16px gap, the container needs at least 16px padding. Violating this makes the container boundary invisible — children appear to float outside their group.

Consistency within a level. All gaps at the same relationship level should use the same value. Don't use 12px between some cards and 16px between others in the same grid. If two elements have the same relationship to their parent, they should have the same spacing.

Micro and macro balance. Balance micro white space (spacing between lines, list items, fields) with macro white space (large margins between sections, breathing room around primary content). A page with only micro spacing feels cramped. A page with only macro spacing feels empty and wastes vertical real estate.

Phase 7: Rhythm Verification

Step back and evaluate the whole wireframe as a composition.

  1. Density progression. Is there contrast between spacious and dense areas? A page that is uniformly dense feels cramped. Uniformly spacious feels empty. The natural flow for most screens: spacious at the top (identity, orientation) → medium in the middle (primary content) → dense at the bottom (details, tables, metadata). This creates a reading gradient that guides the eye.

  2. Vertical rhythm. Do elements at the same hierarchy level have consistent heights? If stat cards are 100px, all stat cards should be 100px. If buttons are 44px, all buttons should be 44px. Consistency builds trust and reduces cognitive load.

  3. Width consistency. Are fixed-width elements (sidebar, icon columns, status columns) consistently sized across similar contexts?

  4. Content inventory check. Does every element from Phase 2 appear in the wireframe? Missing elements mean the wireframe doesn't serve its structural purpose.

  5. The squint test. If you blur your eyes, can you still see the major zones, the hierarchy, and the groupings? If everything blurs into uniform gray, hierarchy assignment (Phase 5) or spacing logic (Phase 6) needs work.


The Wireframer's Toolkit

These are the vocabulary of wireframe design — the values available for expressing hierarchy, spacing, and proportion. They are materials to deploy through the cognitive phases above, not rules to follow mechanically.

Typography Scale

Four levels, mapped to the variant property in wireframe JSON:

LevelVariantSizeWeightCognitive Role
Page identity"display"32pxsemibold"What screen am I on?"
Section identity"heading"24pxsemibold"What group am I looking at?"
Content(default)16pxnormal"What am I reading or interacting with?"
Chrome"caption"12pxnormal"When? What status? What metadata?"

Selecting a level: Choose by the cognitive question the text answers, not by the element type. A label might be caption (if it's metadata) or body (if it's a form field label the user actively reads). The question is "what role does this text play in the user's understanding?" not "what HTML element is this?"

Match levels to content. Every screen needs at least 2 levels — a page with only body text has no hierarchy. But don't force all 4 levels onto a simple screen. Caption (12px) is for chrome and metadata only — using it for primary content signals "this is unimportant" to users.

Spacing Vocabulary

Values from the 8-point grid. The 8pt system eliminates arbitrary decisions and scales cleanly across screen resolutions. If you're reaching for a value not on this list (7px, 15px, 20px), you're inventing numbers — pick the nearest grid value.

ValueRelationship Closeness
4pxTightest bond — icon to its label, badge internal padding
8pxTight — elements within a component, compact list items
12pxMedium-tight — elements within a card, form field to its label
16pxStandard siblings — cards in a grid, fields in a form, related sections
24pxSpacious — between major sections, container padding for medium-density areas
32pxMost spacious — root padding on desktop, hero sections, maximum separation

Selection process: Choose spacing by relationship closeness (Phase 6), not by element type. A card grid with 16px gap and a form with 16px gap both use 16px because they have the same relationship closeness (sibling elements within a section), not because "16px is the default for cards and forms."

Height Guidance

Heights should accommodate content plus comfortable interaction targets. Select within the range based on surrounding density — lower end in dense layouts, higher end in spacious layouts.

ContextRangeWhy
Header / nav bar48–64pxFixed landmark; logo + nav actions need breathing room
Display text container48–56px32px font needs vertical breathing room
Heading text container32–40px24px font + padding above and below
Stat / metric card80–120pxLabel + large number + internal padding
Interactive target (button, input)40–48pxComfortable click/tap target; buttons and inputs should match height for alignment
Table row44–52px16px content font + cell padding for scanability
Sidebar nav item36–44pxCompact but clickable; tight vertical rhythm for navigation lists
Hero / feature section300–500pxEnough for image + text + CTA; creates visual anchor

These are ranges, not prescriptions. Heights should feel proportional to content — a stat card that shows only a number needs less height than one showing a label, number, and trend indicator.


Calibration: Named Failures

These are failure modes that wireframe designers recognize by their symptoms. When you notice a symptom in your output, apply the corresponding fix.

Pixel Perfectionism

Symptom: Spending attention choosing between 12px and 14px padding. Agonizing over whether a card should be 96px or 100px tall. Adjusting individual elements by 2-4px to "look better."

Root cause: Treating wireframes as final designs rather than structural thinking tools.

Fix: Use the 8pt grid values. If the grid doesn't have your value, you're inventing numbers. Pick the nearest grid value and move on. The wireframe communicates structure, not production CSS.

Hierarchy Collapse

Symptom: Everything is the same size. All text is body (16px). Cards are the same height as buttons. Headers don't feel like headers. The page looks like a uniform grid of same-sized boxes.

Root cause: Skipped Phase 5 (Hierarchy Assignment). Went directly from content inventory to spatial placement without deciding what's important.

Fix: Return to Phase 5. Rank all content by importance. Assign explicit hierarchy levels — page identity, section identity, content, chrome. If you can't decide what's most important, the Content Inventory (Phase 2) is incomplete — you don't understand the screen's purpose yet.

Arbitrary Spacing

Symptom: Gaps of 7, 15, 20, 22px. Different spacing between similar elements. Padding that doesn't match gap patterns. No consistent rhythm when scanning vertically.

Root cause: Making spacing decisions per-element instead of per-relationship-level. Each decision is locally reasonable but globally inconsistent.

Fix: Return to Phase 6. Determine how many relationship levels exist (usually 3-4). Assign one 8pt grid value to each level. Enforce that all gaps at the same level use the same value. Check that container padding ≥ child gap.

Grid Amnesia

Symptom: Sidebar is 237px wide. Three cards in a row with slightly different widths. Fixed-width elements that don't align to any system. Elements at random left-edge offsets.

Root cause: Making width decisions based on content fitting rather than spatial structure.

Fix: Return to Phase 4. Establish major zones first. Sidebar widths should be round numbers that feel intentional (180, 200, 240, 280). Card grids use grow: true for equal distribution. Fixed-width elements should use values that align to the column system.

Density Monotony

Symptom: Entire page has the same visual density. Everything is equally spaced, equally sized. No area feels spacious, no area feels dense. The page reads as a flat list rather than a composed layout.

Root cause: Each section was designed in isolation without considering the whole. Skipped Phase 7 (Rhythm Verification).

Fix: Identify which section should be "breathing room" (spacious — identity, orientation) and which should be "work area" (dense — tables, data, details). Create contrast between them. The eye needs both tight and loose areas to parse structure.

Bandage Fixing

Symptom: Adjusting one element's spacing to fix overlap, which pushes another element out of alignment, which requires another fix, which breaks something else. Cascading local fixes that never converge.

Root cause: Local fixes to systemic problems. The grid or spacing logic has a structural flaw that propagates through the layout.

Fix: Stop adjusting individual elements. Return to Phase 4 (Grid) or Phase 6 (Spacing Logic) and identify the structural issue. All spacing in a section should derive from the same relationship-level assignment. If it doesn't, the section needs restructuring, not tweaking. A single structural fix resolves multiple symptoms.

Action Hierarchy Collapse

Symptom: Every interactive element is a button. Sidebar navigation, secondary actions, and primary CTAs all render as identical dark filled rectangles. The wireframe looks like a wall of buttons with no visual priority.

Root cause: Skipped action prominence classification in Phase 2. All actions treated as equal without asking "which action is this screen's purpose?"

Fix: Return to Phase 2. For each action, ask: "If I removed this, would the screen lose its primary purpose?" Primary actions → button. Everything else → link. More than 2 buttons per viewport zone signals hierarchy collapse.


Evaluation

After generating the wireframe, verify against these questions. Each maps to a cognitive phase — if the answer is "no," return to that phase rather than patching the output.

QuestionPhase
Is the page purpose clear from layout alone (no color, no images, no icons needed)?Phase 1 (Displacement)
Does every content element from the inventory appear in the wireframe?Phase 2 (Content Inventory)
Does the layout follow the identified scanning pattern for this user intent?Phase 3 (Task & Scanning)
Are major zones clearly defined with intentional proportions?Phase 4 (Grid)
Can you identify 2+ hierarchy levels by size alone?Phase 5 (Hierarchy)
Does spacing consistently encode relationship closeness?Phase 6 (Spacing)
Is container padding ≥ child gap for every container?Phase 6 (Container rule)
Can you distinguish primary actions (buttons) from secondary actions (links)?Phase 5 (Hierarchy)
Is there density contrast between sections (not uniformly dense or sparse)?Phase 7 (Rhythm)
Are all spacing values from the 8pt grid (4, 8, 12, 16, 24, 32)?Toolkit

On this page