Everything you design with. Plus how it behaves.

Vectors, components, Flex and Grid, multiplayer: the tools you already know. Then the part static design tools leave out: interactions that run as real HTML. Bring your work with you. Import .fig, .sketch, or .xd files up to 500 MB, or paste straight from Figma.

Try now

Feels like home.

Everything you reach for in a design tool is here, so you can start designing, not relearning.

Canvas & vectors

  • Vector and line tools
  • Union, subtract, intersect, exclude
  • Masks
  • Lasso selection
  • Corner rounding
  • Custom rotation origin

Fills & effects

  • Linear and elliptical radial gradients
  • Blend modes on fills and strokes
  • Inside, outside, and center strokes
  • Dashed and per-side strokes
  • Color adjustment effects
  • Image cropping and SVG

Type

  • Custom fonts
  • Text lists
  • Content assistant

Layout

  • Flex layout
  • Grid layout
  • Fill and hug sizing
  • Min and max sizes
  • Snapping and equal-spacing guides

Components

  • Components and instances
  • Nested instances
  • Variants and component sets
  • Overrides, with highlight and reset
  • Component inputs
  • Slots

Collaboration

  • Real-time multiplayer
  • Live cursors and follow mode
  • Threaded comments
  • View, Edit, and Edit & Share access

Getting around

  • Map view
  • Search
  • Deep select
  • Multi-object rename
  • QWERTZ and AZERTY layouts

Import & export

  • .fig, .sketch, and .xd import
  • Paste from Figma
  • PNG, JPEG, and SVG export
  • Copy as PNG or SVG

It runs as real HTML

Hit preview and your artboard renders as HTML and CSS. Flex becomes CSS flex, Grid becomes CSS grid, and text stays real text. Drag the viewport anywhere from 100 to 5000 pixels wide and watch the layout respond.

Real inputs, really typed

Give a component a predefined behavior and it works in preview. Type into an input or textarea, drag a slider, flip a toggle, tick a checkbox, pick a color. Eight built-in behaviors, nothing to wire up.

Oh, behave!

Make a layer draggable, sortable, resizable, scrollable, or pannable. Reorder a list by dragging it, resize a panel, pan around a map. It acts like the real thing in preview. No code, no mojo required.

Lists that come from data

Point a Repeater at an array and it shows one component per item. Filter and sort the list with an expression, add and remove items with an action, and drag items from one list to another in preview. Every change lands in the data.

Logic without the handoff

Keep values in variables, compute new ones with JavaScript expressions, and bind controls both ways so a slider and a price stay in sync. Then branch with a Conditional: if the email field is empty, the button stays disabled.

Change it once, it changes everywhere

Variables belong to the whole document, so every page and every component reads the same ones. Expression variables recalculate like spreadsheet formulas, all the way down the chain: change a quantity in one card, and the subtotal, the delivery fee, the cart badge, and the button label all follow.

Components that behave

Components carry interactive states like hover, focus, and checked, animate smoothly between them with state transitions, and emit their own events for the rest of the design to react to.

Responsive behavior, not just layout

Flex and Grid handle the layout. Size range events handle the rest: when the viewport crosses a breakpoint, change what the design does, not just where things sit.

Designs you can debug

The preview comes with a debug console and a validation console, so when an interaction doesn’t do what you expected, you can see why instead of guessing.

Your coding agent can see the design

Connect Claude Code, Cursor, Codex, or GitHub Copilot in VS Code over MCP, and your agent can read and edit the documents you have open. Design it by hand, then let the agent take it from there. Or the other way round.

Review the running thing

Threaded comments work in the preview as well as on the canvas, so feedback lands on the working prototype, not on a screenshot of it.

A form that validates

In a static prototype

Draw an enabled and a disabled button, link them with a click, and explain the rule in a comment.

In Moio

Type into the email field. A Conditional enables Submit once it’s filled in.

A list you can reorder

In a static prototype

Mock up three frames of the list mid-drag and hope the developer gets the idea.

In Moio

Make the list sortable, then drag the items into a new order in preview.

A pricing slider

In a static prototype

Make a frame for each price point and jump between them.

In Moio

Bind a slider to a variable and compute the price with an expression. Every position works.

We’d rather you hear it from us. A few things you might be used to that Moio doesn’t do yet.

Shared libraries

Components live in one document. Pasting them into another makes an independent copy.

Code export

Designs already run as HTML in preview, and downloadable code is on the way.

The thing in your head. On screen. Before any code exists. Ready when you are.