Figma broke web design

Figma won by being the easiest design tool of its generation, but its canvas-first architecture has quietly held the web back for over a decade. The handoff isn't a workflow, it's a bug. And a whole generation of designers is now siloed inside a tool that drifted away from the medium it was supposed to design for.

The canvas was the right choice a decade ago

When Figma launched, the web was a different place. CSS was painful, layout was a fight, browsers disagreed on basics, and a vector canvas with shared editing felt like magic. Designing in a tool that ignored the platform was a reasonable trade because the platform itself was hard to design against. That trade made sense in 2016. It stopped making sense years ago, and somehow the industry never noticed.

A few things the web can do that Figma can't

The list is long and it keeps getting longer. Real CSS Grid with named areas, subgrid, and intrinsic sizing. Flexbox with gap, wrap, and alignment that responds to content. Container queries, so components adapt to their context instead of the viewport. Logical properties for writing modes that aren't left-to-right. The full color story: oklch, color-mix, wide-gamut display-p3, relative color syntax, color spaces that match how human vision actually works. :has(), :is(), :where(), and the rest of modern selectors. View transitions. Anchor positioning. Scroll-driven animations. clamp() and fluid typography. Custom properties that cascade. aspect-ratio. :focus-visible. The accessibility tree, ARIA, semantic elements, reading order, keyboard navigation. Forms with validation. Native <dialog> and popover. SVG that's actually part of the DOM. Variable fonts, OpenType features, real kerning. Media queries for prefers-reduced-motion, prefers-contrast, prefers-color-scheme, hover, pointer.

Figma supports approximations of maybe a tenth of this. The rest either doesn't exist in the canvas or had to be reinvented in a worse, frame-bound version: auto-layout instead of flexbox, variants instead of states, modes instead of media queries, a constraints system instead of intrinsic sizing. Every reinvention is a different shape than the real thing, which is why nothing crosses the handoff cleanly.

The handoff is the bug, it should have never existed

This is the part nobody wants to say out loud. The handoff isn't a phase of the process. It's a symptom of the tool being wrong. A design tool for the web should produce something the web can run. Figma produces a picture, and then someone rebuilds the picture in the actual medium, and we call that collaboration. It's not collaboration, it's reconstruction. Every project pays this tax, every team negotiates the same gap, and the gap exists for one reason: the tool refuses to speak the language of the platform.

Designers are siloed in a tool that drifted away from the web

This is what the canvas really did. It built a room and locked designers in it. Inside that room, life goes on: pretty pictures of products, polished mockups, neat little component libraries, frames inside frames inside frames. Outside the room, the web kept moving. New layout primitives, new color spaces, new interaction models, new accessibility expectations, new everything. The room didn't notice. Designers spend their days perfecting artifacts that have less and less to do with the medium they're supposedly designing for, and because everyone in the room is doing the same thing, it feels like the work. It isn't. It's a parallel craft about making images that resemble websites, practiced by people who used to be web designers and now are something else.

A generation of designers who don't know the medium

Designers came up inside Figma and never had to think in HTML or CSS. They design hover states without knowing what triggers them, typography that doesn't reflow, layouts that ignore intrinsic sizing, components with no relationship to the DOM. Ask them about the cascade, focus order, container queries, or why a button should be a button and not a div, and you mostly get blank stares. This isn't their fault. The tool capped what they could imagine, and an entire profession adapted to the cap instead of pushing past it.

"Communication tool" is just a polite word for waste

The defense is always the same: Figma isn't supposed to ship code, it's a communication tool, a delivery tool, a source of truth. None of that holds up. A communication tool that requires every message to be translated by a second person isn't communicating, it's generating work. A delivery tool that delivers nothing the platform can actually run isn't delivering. A source of truth that disagrees with the implementation in a hundred small ways isn't a source of truth. It's a parallel artifact that exists in addition to the real thing, and maintaining both is pure overhead. Two teams, two tools, two mental models, one website. The math doesn't work.

Figma could have been Claude design

The opportunity was right there. A design tool for the web that was actually a browser. Real CSS, real semantics, real states, real components, real accessibility. Designers and developers working in the same medium, on the same artifact, with no translation layer between them. Figma had the talent, the funding, and the moment to build it. They didn't. They stayed on the canvas, optimized the canvas, sold the canvas, and now the whole industry is stuck inside it. Someone is going to build the tool that should have existed. It just won't be them.