Skip to main content
Interface design

Designed tobe built.

Interfaces that survive contact with engineering: designed in systems, specified in tokens, tested with real users, and shipped to production rather than to a slide deck.

0
Components in one shipped system
1:1
Figma variables to CSS tokens
WCAG AA
Accessibility floor, not ceiling
0+
Lighthouse score to ship
One screen, three fidelities

The layout never moves.The system resolves.

This is the same screen at every stage of the work. Watch what changes and, more importantly, what does not: the structure is settled at wireframe, so polish is a resolution pass, not a redesign.

fig. 01 · wireframe · same grid, same hierarchy, same screen

The specimen sheet

A system youcan print.

Tokens and core components on one page, measured like an engineering drawing. Nothing below is a mood board: every value ships as a Figma variable and a CSS token, and this sheet is set in the same system as the page you are reading.

01 · Type scale
Inter · single family
AgDisplay52 / 300 / -0.032em
AgTitle26 / 300 / -0.02em
AgBody15 / 400 / 0
AgCaption12 / 500 / 0.04em
02 · Spacing
4px base unit
4
8
12
16
24
32
48
03 · Colour roles
one accent per page
Ink
Headings
Body
Running text
Muted
Annotations
Accent
One per page
Hairline
Rules
Canvas
Ground
04 · Core components
44px minimum touch target
Primary action
button · h 52 · r 6 · weight 600
Work email
field · h 44 · focus ring on token
table row · h 48 · zebra on token
ActiveDraft
badge · non-colour redundancy built in
24
Design tokens
16
Atoms in system
94%
Component coverage
0%
Design drift
Sky-blue construction lines sketching an interface skeleton
Plate 01 · Construction
A finished frosted-glass interface surface with sky-blue accents
Plate 02 · Finish

Hard-coded hex values do not pass review. If a colour, size, or spacing is not a token, it does not enter the system, which is how the drift figure stays at zero.

The crit wall

Three rounds,pinned and argued.

Iteration is the method, not a failure of it. Every engagement runs structured rounds: a heuristic pass, usability sessions with real users, then an accessibility scan. Each round leaves its annotations on the wall.

Round 1Heuristic review

The first pass argues with heuristics, not opinions. Every zone is checked against its cognitive budget before anyone debates a colour.

  • Choice count per zone brought inside budget
  • One primary action per screen, not three
  • Navigation flattened a level
Round 2Usability sessions

Five to eight real users work the prototype while we watch. What they stumble on gets rebuilt; what they ignore gets removed.

  • Friction taken out of the sign-up path
  • Progress made visible mid-flow
  • Labels rewritten in the users' own words
Round 3Accessibility scan

The scan runs with screen readers and keyboards, not just a browser plugin. Issues are ranked, and the top fixes ship as mockups, not memos.

  • Contrast brought up to WCAG AA
  • 44px touch targets enforced throughout
  • Focus order made keyboard-sane

The wall is shared with your team round by round. Nothing is unveiled; everything is argued while it is still cheap to change.

The audit, instrumented

What getsmeasured.

Inherited an interface that fights its users? An audit runs two to three weeks at a fixed price scoped up front, and it measures rather than opines: real users in session, a heuristic review, and an accessibility scan, returned as work engineering can start.

audit instrumentationRanked issues, not impressions
5 to 8
Real users per testing round

Watched working the product, not surveyed about it.

2 to 3
Weeks, kick-off to roadmap

A fixed price, scoped before we start.

WCAG AA
Accessibility scan floor

Tested by users on screen readers, not just axe DevTools.

Top 0
Fixes mocked, not just listed

A ranked issue list with the mockups attached.

0 days
Improvement roadmap

Sequenced so engineering can start on Monday.

The deliverable is a ranked issue list, the top ten fixes mocked, and a 90 day roadmap.

From Figma to production

No redlinepurgatory.

Handoff is where most design dies: exported PDFs, guessed paddings, a build that drifts a little further every sprint. Ours is engineered so there is nothing left to translate.

01

Tokens, not redlines

Colour, type, and spacing leave Figma as variables and arrive in code as CSS tokens. One source of truth, zero transcription.

02

Parity in Storybook

Every component ships with a working Storybook story beside its Figma frame, so review compares running code, not screenshots.

03

One room, one cadence

Designers and engineers share the same channel, the same tickets, and the same sprints. Questions get answered before they become drift.

04

Live is the deliverable

The engagement ends when the interface is in production and your team can extend the system without us.

Zero “it looks different in production.” Because production is where the design was headed all along.

The makeover era

Vibe-coded is notdesigned.

Agentic coding tools changed who can ship an app. A working product now takes a weekend, and it arrives wearing the same face as every other app shipped that weekend. Functional is no longer the bar. Distinct is.

How it arrives
  • The same component library, untouched defaults
  • A gradient hero, three feature cards, emoji bullets
  • Spacing that drifts from section to section
  • Dark mode as an afterthought, contrast by luck
  • No type scale, no tokens, no system underneath
How it leaves
  • A token system the next engineer cannot break
  • A type scale with intent, not defaults
  • Layouts with a point of view and a grid
  • Motion that earns its place
  • A surface that looks like you, not like the tool that built it

If your product was built fast and looks it, that is not a failure. It is a starting point: the makeover is a scoped engagement like any other, and the system it leaves behind is one the next prompt cannot undo.

FAQ

Common questions about interface design.

What teams ask before they hand us their product surface.

AI products have probabilistic output, high latency, and frequent failure modes. Good AI UX acknowledges all three: transparent confidence, progressive disclosure of generation, graceful fallback when the model refuses or errors. We design for AI's actual behavior, not idealized behavior.

Design systems by default. Every engagement produces atomic components (Radix or shadcn-based), token definitions (colors, spacing, typography), Figma libraries, and Storybook documentation. Your team can extend the system long after BearPlex exits the engagement.

WCAG 2.1 AA as a floor, not a ceiling. Streaming text needs screen-reader-friendly rendering. Model confidence indicators need non-color redundancy. Tool-calling UIs need keyboard navigation. Every BearPlex design ships with accessibility tested by actual users on screen readers, not just axe DevTools.

Both by default. Mobile-first for consumer AI. Desktop-first for enterprise AI tooling (CTOs don't configure RAG pipelines on their phones). Responsive doesn't mean identical. We design distinct affordances for each context.

Figma with dev-ready components, auto-generated CSS tokens, and live component specs via Figma Dev Mode. We deliver working Storybook alongside Figma. Zero 'it looks different in production' because designers and engineers work in the same Slack channel, the same ticket system, and the same sprint cadence.

Yes. Audit engagements are 2-3 weeks: usability testing with 5-8 real users, heuristic review, accessibility scan, design system health check. Deliverable: ranked list of issues, mockups of the top 10 fixes, and a 90-day improvement roadmap, at a fixed price scoped up front.

Put it in production

Make it feelinevitable.

The best interfaces look obvious in hindsight. Bring us the screen your team keeps arguing about; we will design the system that settles it, test it with real users, and hand engineering something they can build without guessing.