# From wireframes to mockups

> Learn how to turn a grayscale wireframe into a high-fidelity mockup by layering in type, color, and imagery without breaking the hierarchy.

Source: https://uxspot.io/mockups

<section id="what-is-a-mockup">
<h2>What is a mockup?</h2>
<p class="blockquote">A mockup is a static, high-fidelity picture of the final screen: real color, real typography, real imagery, but no interactivity.</p>
<p>If a wireframe answers "what goes where and why," a mockup answers "what will this actually look like." Nothing moves yet: buttons don't respond, screens don't connect. That's the point: <strong class="highlight">a mockup lets you make every visual decision while changes are still cheap.</strong></p>
<p>Think of a checkout screen for an e-commerce app. The wireframe said the order summary sits above the payment form and the pay button anchors the bottom. The mockup decides that the button is a solid dark pill, the total is the largest number on screen, and the product thumbnail is a real photo instead of a gray box.</p>
<ul>
<span>keywords</span>
<li>#Mockup</li>
<li>#HighFidelity</li>
<li>#VisualDesign</li>
</ul>
</section>
<section id="wireframe-contract">
<h2>The wireframe is the contract</h2>
<p>The most common misunderstanding at this stage is treating the mockup as a fresh start. It isn't. Your wireframe already went through review; its structure reflects real decisions about what users need first, second, and last. <strong class="highlight">Visual design should strengthen the hierarchy the wireframe established, not renegotiate it.</strong></p>
<p>A practical test: squint at <a href="/wireframes" class="redirect">your wireframe</a> and note what stands out, in order. Then squint at your mockup. The same elements should stand out in the same order, just more clearly. If the mockup makes a decorative banner louder than the primary action, the visual layer has broken the contract.</p>
<p>That doesn't make the wireframe sacred. Sometimes real content exposes a genuine structural problem, like a headline far longer than its placeholder. When that happens, revise the wireframe deliberately rather than quietly patching the mockup. Keep structure decisions and styling decisions separate.</p>
<ul>
<span>keywords</span>
<li>#Hierarchy</li>
<li>#Structure</li>
<li>#SquintTest</li>
</ul>
</section>
<section id="layering-decisions">
<h2>Layer decisions one at a time</h2>
<p>Beginners often style everything at once: a font here, a brand color there, a photo in the corner. The result is a screen where nothing was decided, only decorated. It's more reliable to layer decisions in a fixed order, checking hierarchy after each pass.</p>
<div id="layer-grayscale">
<h3>Grayscale first</h3>
<p>Keep the entire screen in shades of gray and design the hierarchy with size, weight, and spacing alone. <strong class="highlight">If a screen works in grayscale, color can only make it better; if it doesn't, color will only hide the problem.</strong></p>
</div>
<div id="layer-type">
<h3>Then the type scale</h3>
<p>Choose a small set of text sizes and weights, one for page titles, one for section headings, one for body text, one for captions, and apply them everywhere. A limited scale forces you to decide what actually matters instead of nudging font sizes ad hoc.</p>
</div>
<div id="layer-color">
<h3>Then color</h3>
<p>Introduce color with a job to do: one accent for primary actions, one for errors or warnings, neutrals for everything else. Color applied last stays purposeful. Color applied first becomes wallpaper.</p>
</div>
<div id="layer-imagery">
<h3>Then imagery</h3>
<p>Replace placeholder boxes with real photos, illustrations, or icons. Use content that's realistic for the product: an actual dish photo in a food delivery app reveals cropping and text-over-image issues that a gray rectangle never will.</p>
</div>
<ul>
<span>keywords</span>
<li>#Grayscale</li>
<li>#TypeScale</li>
<li>#Color</li>
<li>#Imagery</li>
</ul>
</section>
<section id="where-choices-come-from">
<h2>Where visual choices come from</h2>
<p>A mockup is not the place to invent a visual language from scratch. Most of your choices should already have a source:</p>
<p><strong>Brand.</strong> The product's brand guidelines usually define the color palette, typefaces, and overall tone. Your job is to translate that identity into a usable interface, not to compete with it.</p>
<p><strong>Design system.</strong> If the team maintains <a href="/design-systems" class="redirect">a library of components</a>, buttons, form fields, cards, use them. Consistency across screens is worth more than a slightly prettier one-off button.</p>
<p><strong>Platform conventions.</strong> Mobile operating systems and the web each have established patterns for navigation, controls, and gestures. <strong class="highlight">Users bring expectations from every other product they use, and meeting those expectations is a design decision, not a lack of creativity.</strong></p>
<p>What's left for you to decide is how these ingredients combine on this particular screen, and that's plenty of design work on its own.</p>
<ul>
<span>keywords</span>
<li>#Brand</li>
<li>#DesignSystem</li>
<li>#PlatformConventions</li>
</ul>
</section>
<section id="accessibility-decided-here">
<h2>Accessibility is decided here</h2>
<p class="blockquote">Many accessibility problems are not coded into a product; they are painted into the mockup.</p>
<p>Contrast between text and its background, the size of touch targets, the minimum size of body text, whether color is the only thing distinguishing an error from a success: these are all mockup-level decisions. If a light gray label fails against a white card here, no amount of careful engineering fixes it later.</p>
<p>So check as you go: can the text be read comfortably at its actual size? Can a thumb hit that button without hitting its neighbor? Does every state communicate through more than color alone? <strong class="highlight">Accessibility handled in the mockup costs minutes; accessibility retrofitted after launch costs releases.</strong></p>
<ul>
<span>keywords</span>
<li>#Contrast</li>
<li>#TouchTargets</li>
<li>#TextSize</li>
</ul>
</section>
<section id="beginner-traps">
<h2>Common beginner traps</h2>
<p><strong>Decorating instead of communicating.</strong> Gradients, shadows, and ornaments that don't guide the eye anywhere are noise. Before adding any visual effect, ask what it helps the user notice, understand, or do. If the answer is "it looks nice," remove it; the screen usually works better without it.</p>
<p><strong>Ten shades of gray.</strong> When every text element gets its own slightly different gray, hierarchy dissolves into mush. Pick two or three text tones at most and commit to them.</p>
<p><strong>Novelty fonts.</strong> An expressive display typeface might suit a logo or a hero headline, but interface text has one job: being read quickly, at small sizes, by tired people. Choose typefaces that disappear into the reading.</p>
<ul>
<span>keywords</span>
<li>#Decoration</li>
<li>#GrayOverload</li>
<li>#Typography</li>
</ul>
</section>
<section id="mockup-feedback">
<h2>Getting mockup feedback</h2>
<p>Because mockups finally look real, feedback changes character. People who stayed quiet through wireframes suddenly have opinions about colors and photos. That's useful, but it needs steering.</p>
<p>Ask specific questions instead of "what do you think?" Try "what would you tap first?" or "what does this screen ask you to do?" If reviewers can't answer quickly, the hierarchy needs work, however polished the surface. <strong class="highlight">The most valuable mockup feedback is about what people notice and understand, not about which color they personally prefer.</strong></p>
<p>Show the mockup in context too: on an actual phone at arm's length, not only enlarged on a laptop. Screens that look elegant zoomed in often turn out cramped at real size. When the visual layer holds up under these questions, you're ready to wire screens together into <a href="/prototyping" class="redirect">an interactive prototype</a>.</p>
<ul>
<span>keywords</span>
<li>#Feedback</li>
<li>#SpecificQuestions</li>
<li>#RealContext</li>
</ul>
</section>