Skip to content

Web Designer interview questions

100 real questions with model answers and explanations for Middle candidates.

See a Web Designer resume example

Practice with flashcards

Spaced repetition · Hunter Pass

Questions

componentsdesign-systemsystem-design

A design system should layer reusable decisions from low-level foundations up to complete interaction patterns.

  • Foundations define shared color, type, spacing, elevation, and motion rules without prescribing a whole interface.
  • Primitives turn those rules into focused building blocks such as text, icon, button, and input components.
  • Composed components combine primitives into stable units such as search fields, cards, or dialogs.
  • Patterns document how components work together in flows such as authentication or filtering without becoming rigid page templates.

Why interviewers ask this: The interviewer is checking whether you understand system architecture as layers with different responsibilities and rates of reuse.

componentsdesign-systemsystem-design

A useful component boundary encloses one recognizable responsibility with a stable contract.

  • Repeated structure, behavior, and accessibility semantics are stronger reasons for a component than visual similarity alone.
  • Content that changes independently should enter through properties or slots rather than require detaching the component.
  • A component that exposes every internal layer becomes fragile because consumers can create unsupported combinations.
  • Splitting too far creates assembly overhead, while one large component becomes difficult to reuse outside its original context.

Why interviewers ask this: A strong answer balances encapsulation and composition instead of treating every repeated frame as a component.

components

A difference belongs in a variant when it changes a finite, supported axis of the same component contract.

  • Size, emphasis, and interaction state are typical variant axes because the component keeps the same purpose and anatomy.
  • A structural change with different semantics, such as a checkbox versus a switch, deserves a separate component despite visual similarity.
  • Independent options should use properties or composition so multiplying them does not create a variant for every combination.
  • Each allowed combination needs a real use case; technically possible combinations are not automatically part of the API.

Why interviewers ask this: The interviewer is evaluating whether you can control variant growth while preserving meaningful component distinctions.

componentssystem-design

Interaction states should represent distinct user or system conditions with explicit visual and behavioral rules.

  • Hover, focus-visible, and pressed describe different input moments and should not be collapsed into one darker style.
  • Selected, checked, and expanded persist after an action, while pressed normally lasts only during activation.
  • Loading should preserve context and prevent duplicate actions without being confused with disabled, which communicates unavailability.
  • Invalid and success states need text or another non-color cue, not only a border hue.

Why interviewers ask this: A strong answer distinguishes transient, persistent, availability, and validation states rather than listing screenshots.

componentsdesign-systemdesign

The three layers move from raw values to meaning and then to a component-specific decision.

  • A primitive such as blue-600 or space-300 names a value without saying where it belongs.
  • A semantic token such as color-action-primary or space-content-gap names a role that can survive a theme change.
  • A component token such as button-primary-background resolves a local need and usually aliases a semantic token.
  • Components should consume the highest meaningful layer so raw palette changes do not leak across every design and code file.

Why interviewers ask this: The interviewer is checking whether you can explain token abstraction and why each layer reduces a different kind of coupling.

tokens

Aliases let stable role names resolve to different values for each supported context.

  • color-text-primary can point to gray-950 in light mode and gray-050 in dark mode while component references stay unchanged.
  • A brand mode can redirect action roles to another palette without duplicating every button or link token.
  • Alias chains should remain short enough to trace from a component value to its source during debugging.
  • Modes should represent orthogonal contexts such as theme or density, not become a store for unrelated one-off exceptions.

Why interviewers ask this: A strong answer connects aliases to maintainable theming and recognizes the cost of opaque dependency chains.

design-systemdesigntokens

A durable token name describes role and hierarchy without embedding a temporary visual value.

  • Names such as color-text-muted remain valid if muted text changes from gray to a tinted neutral.
  • A consistent order such as category, concept, property, state makes tokens searchable and predictable.
  • State suffixes should be explicit, for example action-primary-background-hover rather than action-blue-dark.
  • The taxonomy must work in Figma and code, so separators and reserved words need an agreed transformation rule.

Why interviewers ask this: The interviewer is assessing whether your naming choices can survive visual changes and tool boundaries.

system-designdesigndesign-system

Governance defines how the system accepts, changes, documents, and retires shared decisions.

  • Contribution criteria distinguish a recurring product need from a local pattern that should remain outside the core library.
  • Named owners review visual, interaction, accessibility, and implementation implications before publication.
  • Release notes and migration guidance tell consumers what changed and whether adoption requires work.
  • Adoption feedback and usage data reveal missing capabilities, duplicate components, and rules that teams routinely bypass.

Why interviewers ask this: A strong answer treats governance as a practical lifecycle rather than a committee or a static style guide.

system-designdesigndesign-system

A deprecation policy lets the system evolve without silently breaking existing products.

  • The replacement should be published before the old component or token stops receiving normal use.
  • A deprecation notice names the reason, supported migration path, and removal date or review point.
  • Figma assets, code packages, and documentation need matching status so teams do not adopt an obsolete source.
  • Immediate removal is reserved for severe risks; ordinary cleanup should allow consumers time to migrate.

Why interviewers ask this: The interviewer is checking whether you understand change management across many design system consumers.

componentsa11y

Accessibility should be part of the component contract rather than an optional note applied by each screen designer.

  • The component defines keyboard behavior, focus order, target size, and visible states alongside its visual anatomy.
  • Text, icons, boundaries, and focus indicators are checked against every supported surface and state.
  • Properties should make the accessible path easiest, for example requiring a label while exposing icon-only use deliberately.
  • Documentation identifies responsibilities that remain with the consumer, such as meaningful button copy or dialog titles.

Why interviewers ask this: A strong answer separates built-in component guarantees from accessibility decisions that depend on usage context.

A modular scale derives related sizes by multiplying a base size by a chosen ratio.

  • A 16-pixel base with a 1.25 ratio yields steps near 16, 20, 25, and 31 pixels before rounding.
  • A small ratio provides more subtle roles for dense interfaces, while a large ratio creates dramatic hierarchy with fewer usable intermediate sizes.
  • The calculated values are starting points that can be rounded to render cleanly and assigned to semantic text roles.
  • Captions, data tables, or marketing display type may need controlled exceptions instead of forcing every text size onto one sequence.

Why interviewers ask this: The interviewer is evaluating whether you can use mathematical consistency without treating the ratio as an aesthetic law.

typographycss

Combining units lets type respond to available width without making the viewport its only source of scale.

  • A pure vw value can become illegibly small or excessively large unless separate limits contain it.
  • clamp() can pair rem minimum and maximum values with a preferred calc() term that mixes rem and viewport units.
  • The rem contribution preserves more response to browser text settings, while the viewport term provides gradual layout adaptation.
  • Body copy should use a narrow range, and every role still needs zoom, wrapping, and intermediate-width checks.

Why interviewers ask this: A strong answer explains the accessibility and predictability trade-off inside a fluid formula rather than merely naming clamp().

typography

Optical sizing uses glyph drawings adjusted for their intended rendered size rather than geometrically scaling one outline.

  • Small optical sizes may use more open counters, sturdier strokes, and wider spacing to remain clear.
  • Display sizes can support finer detail, stronger stroke contrast, and tighter proportions where more pixels are available.
  • A variable font with an opsz axis can interpolate these changes, and font-optical-sizing: auto lets a supporting browser derive the setting from font size.
  • The effect depends on the typeface, so designers should compare actual specimens instead of assuming every optical axis improves the chosen role.

Why interviewers ask this: The interviewer is checking whether you understand size-specific letterform design and its variable-font implementation.

typography

A variable font stores continuous design axes in one font resource, enabling finer control than a few static files.

  • Standard axes include weight, width, slant, italic, and optical size, while a family may add custom axes.
  • Intermediate weights can tune hierarchy without synthesizing a style the typeface did not draw.
  • One variable file can replace several static files, but a broad glyph set and many axes may still make that file large.
  • Browser support, fallback styles, axis ranges, and the font license must be verified before the design depends on them.

Why interviewers ask this: A strong answer recognizes variable fonts as both a typographic capability and a delivery trade-off.

Vertical rhythm coordinates line boxes and block spacing so related text forms a repeatable reading cadence.

  • Body line height establishes the densest recurring interval, while heading line height can be tighter because display text wraps less often.
  • The space above a heading should signal a stronger section break than the space below it toward its paragraph.
  • Paragraph, list, and caption spacing can use multiples or related steps without forcing every element onto an exact baseline grid.
  • Controls and mixed media may need optical adjustment because strict baseline alignment can damage their internal balance.

Why interviewers ask this: The interviewer is evaluating whether you can build systemic text spacing while allowing justified optical exceptions.

layout

An intrinsic layout lets content and available space determine more of the result than fixed viewport-specific dimensions.

  • min-content represents the smallest width content can take without avoidable overflow, while max-content represents its ideal unwrapped width.
  • Flexible tracks and wrapping allow a composition to adapt before a media query is necessary.
  • min(), max(), and clamp() can express boundaries that combine content, container, and viewport constraints.
  • Intrinsic behavior reduces breakpoint count, but explicit structural changes still need queries when the composition itself must change.

Why interviewers ask this: A strong answer explains content-driven responsiveness and its boundary rather than presenting it as a replacement for all breakpoints.

cssgridresponsive

The combination creates as many tracks as fit while protecting each track's usable minimum.

  • repeat(auto-fit, minmax(16rem, 1fr)) collapses empty tracks and distributes remaining width among present columns.
  • The minimum controls when another column no longer fits, so it should reflect card content rather than a device label.
  • The 1fr maximum lets tracks share extra space instead of leaving an arbitrary gap at the container edge.
  • auto-fill preserves empty track slots, which is useful only when that reserved grid structure is intentional.

Why interviewers ask this: The interviewer is checking whether you understand the mechanics and design implications of an intrinsic card grid.

csscontainersqueries

Container queries let a component respond to the space its parent provides rather than the size of the whole browser window.

  • The same card can use a compact layout in a sidebar and a richer layout in main content at one viewport width.
  • A parent must establish an appropriate query container, commonly with container-type: inline-size.
  • Query thresholds should mark where the component's own content or anatomy stops working.
  • Viewport queries remain appropriate for page-level changes tied to the overall screen or environment.

Why interviewers ask this: A strong answer distinguishes component responsiveness from page responsiveness and knows when each query belongs.

layoutsystem-designcss

Subgrid lets a nested grid reuse track definitions from its parent instead of creating an unrelated internal grid.

  • Card titles, descriptions, and actions can align across siblings even when their content lengths differ.
  • The nested element participates in the parent row or column tracks chosen for the subgrid axis.
  • Shared alignment becomes structural rather than dependent on duplicated pixel values or fixed heights.
  • Subgrid is unnecessary when the nested content needs independent tracks and no cross-component alignment.

Why interviewers ask this: The interviewer is evaluating whether you understand how nested content can preserve a larger grid relationship.

layoutcss

Logical properties express spacing and size by text flow instead of hard-coding physical sides.

  • margin-inline-start follows the start of an LTR or RTL line, while margin-left always targets the physical left side.
  • inline-size and block-size map to the inline and block axes, including vertical writing modes.
  • Logical padding, borders, and inset values reduce locale-specific overrides when direction changes.
  • A physical property still belongs where the physical edge is intentional, such as a viewport-fixed control.

Why interviewers ask this: The interviewer is checking whether your layout specifications can follow language direction and writing mode without unnecessary overrides.

Locked questions

  • 21

    Why should visual reordering in responsive layouts be used cautiously?

    responsivelayout
  • 22

    How do WCAG AA and AAA text contrast requirements differ?

    a11ycolorwcag
  • 23

    What does WCAG non-text contrast require for interface components?

    componentsa11ytypes
  • 24

    What does WCAG 2.2 Focus Appearance add beyond simply showing a focus indicator?

    wcaga11y
  • 25

    What is the difference between Focus Not Obscured at AA and AAA in WCAG 2.2?

    wcaga11y
  • 26

    How do sequential, diverging, and categorical color scales differ in data visualization?

    datavizcolor
  • 27

    Why should a web design be checked in forced-colors or high-contrast modes?

    colordesigna11y
  • 28

    What does OKLCH offer when building a web color scale?

    color
  • 29

    Why can transparency make color contrast unreliable?

    colora11y
  • 30

    How should the duration of a microinteraction relate to its purpose?

    animation
  • 31

    How do easing curves change the meaning of interface motion?

    animationmotiontypes
  • 32

    What should a reduced-motion version preserve?

    motion
  • 33

    Why are transform and opacity usually safer animation properties than layout properties?

    animationcsslayout
  • 34

    What are the core parts of a microinteraction?

  • 35

    How does motion support spatial continuity in an interface?

    motionanimationtypes
  • 36

    What systems make up information architecture?

    system-design
  • 37

    How do open, closed, and hybrid card sorting differ?

    algorithms
  • 38

    What is the trade-off between navigation breadth and depth?

  • 39

    Why does recognition usually place less cognitive load on users than recall?

  • 40

    When is progressive disclosure useful, and what can it hide too aggressively?

  • 41

    When should form validation run?

    formsvalidation
  • 42

    What makes an effective inline validation error?

    validation
  • 43

    How should required and optional fields be communicated?

    communication
  • 44

    How do input type, inputmode, and autocomplete improve form design?

    formsdesign
  • 45

    How should Figma variable collections, modes, scopes, and aliases work together?

    figma
  • 46

    How do minimum and maximum dimensions interact with Hug contents and Fill container in nested Auto Layout?

    layoutcontainers
  • 47

    What does exposing nested instance properties in a Figma component achieve?

    figmacomponents
  • 48

    What can variables and conditional logic add to a Figma prototype?

    figmaprototypesprototyping
  • 49

    How should design tokens map from Figma to code?

    figmadesigntokens
  • 50

    What should cross-browser and cross-device design coverage include?

    designcoverage
  • 51

    A product has dozens of visually similar controls but no design system; how would you start building one without pausing feature work?

    system-designdesigndesign-system
  • 52

    A token library mixes raw palette names, semantic roles, and component names in one layer; how would you refactor it?

    colorlayerscomponents
  • 53

    The Figma library and the implemented component library have drifted apart; how would you bring them back into sync?

    figmacomponentsiac
  • 54

    How would you add a dark theme to a product that was designed only for light backgrounds?

    renderingcompositiondesign
  • 55

    A team asks for a new design-system component that looks like an existing card with one extra action; what would you do?

    system-designdesigncomponents
  • 56

    How would you add compact and comfortable density modes to an existing component library?

    components
  • 57

    A brand refresh changes type, corner radius, and accent color across a legacy product; how would you apply it safely?

    colorbranding
  • 58

    How would you replace a deprecated input component across many existing screens?

    components
  • 59

    A spacing token update makes some Storybook components look wrong while Figma looks correct; how would you debug it?

    componentsstorybooktokens
  • 60

    How would you design status colors that remain consistent and accessible across light, dark, and brand themes?

    colorbrandingrendering
  • 61

    A service page has low conversion; how would you approach its redesign without assuming the visual design is the cause?

    design
  • 62

    Users abandon checkout, but the team only knows the final completion rate; how would you redesign the flow?

  • 63

    A dashboard feels overloaded after several teams added widgets; how would you restore a clear hierarchy?

    hierarchy
  • 64

    How would you redesign a settings page where users cannot tell which changes affect the whole account and which affect only them?

  • 65

    A search page has filters, sorting, saved views, and bulk actions competing for space; how would you simplify it?

    algorithms
  • 66

    Support tickets show that users cannot find past invoices; how would you redesign that part of the account area?

  • 67

    A redesigned application page gets fewer CTA clicks but more completed applications; how would you judge the result?

  • 68

    Users often leave a multi-step onboarding flow halfway through; how would you improve it?

    onboarding
  • 69

    How would you design a responsive operations table with sorting, row actions, and many columns?

    responsivedesignschema
  • 70

    How would you adapt a desktop analytics dashboard with charts, KPI cards, and a filter rail to smaller screens?

  • 71

    Engineering has three static heading sizes and asks for one fluid rule; how would you derive it?

  • 72

    A chart works on desktop but its legend and tooltip cover the data on mobile; how would you redesign it?

  • 73

    How would you handle a sidebar that is useful on wide screens but squeezes the main task at medium widths?

  • 74

    How would you make a responsive card grid survive much longer translated text?

    gridresponsive
  • 75

    A desktop app loses controls or starts horizontal scrolling at 200% browser zoom; how would you fix the design?

    scalingdesign
  • 76

    How would you adapt a desktop master-detail inbox with a message list and reading pane to tablet and mobile?

    rendering
  • 77

    How would you design a sticky action bar for a long mobile form without covering content or the on-screen keyboard?

    formsdesign
  • 78

    How would you fix a modal that works with a mouse but is confusing with a keyboard?

  • 79

    A screen reader announces form errors poorly after submit; how would you redesign the error experience?

    formsa11y
  • 80

    How would you design an accessible autocomplete combobox for selecting a customer from a large list?

    design
  • 81

    A kanban board relies on drag and drop; how would you make moving a card accessible without removing drag?

    agile
  • 82

    After a user deletes an item, focus jumps to the top of the page; how would you define the correct behavior?

  • 83

    How would you design toast notifications so they work for keyboard and screen-reader users?

    design
  • 84

    How would you design loading, empty, error, and partial-data states for an accessible dashboard panel?

    design
  • 85

    How would you make a complex data table understandable to screen-reader users?

  • 86

    A tooltip contains instructions required to use an icon button; how would you fix the interaction?

  • 87

    How would you split a long business application form into steps?

    forms
  • 88

    How would you design save-and-resume behavior for a multi-step form?

    formsdesign
  • 89

    How would you design conditional form fields without making the layout and keyboard order confusing?

    layoutdesignforms
  • 90

    A submit action can take several seconds and users create duplicates by clicking again; how would you fix the flow?

  • 91

    How would you design a file-upload step that accepts several documents and may fail partway through?

    design
  • 92

    How would you redesign a payment form that returns both field errors and a general card-declined message?

    forms
  • 93

    How would you design an address form for multiple countries without showing every possible field?

    formsdesign
  • 94

    How would you design a review step where users can edit earlier sections without losing their place?

    design
  • 95

    A developer says a proposed interaction is expensive to build within the release; how would you respond?

  • 96

    How would you hand off a component with responsive layout, asynchronous states, and several themes?

    componentsresponsiveasync
  • 97

    The implemented page differs from Figma at several breakpoints; how would you run design QA with the developer?

    figmadesignresponsive
  • 98

    How would you modernize a legacy account section while keeping an old brand header and fixed backend fields?

    branding
  • 99

    How would you prioritize design debt when the backlog contains inconsistent spacing, inaccessible controls, and duplicate components?

    backlogdesigncomponents
  • 100

    A rushed feature introduced local styles and detached Figma components; how would you clean it up without delaying the next release?

    figmacomponentsstyle