Skip to main content

Release notes

2026.10.09​

  • Component state switches can animate in preview: a component set's Properties panel gets a transition row per interaction (hover and press, focus, placeholder, check, select or switch) whose dialog sets a duration, an easing and what to animate: everything, or categories such as position and size, fill and stroke, opacity, effects, shape and text (→ Transitions between states).
  • AI agents such as Claude Code, Codex, Cursor and GitHub Copilot can read and edit the documents you have open, with everything the properties panel sets, interactive components, variables and interactions: create an agent token under Settings → Agents and register Moio as an MCP server (→ Connecting AI agents).
  • A new Color input component behavior turns a component set into a color chooser: in preview a click on an instance opens the browser's color picker, and the picked color drives every layer bound to the set's built-in Color input (→ Color input).
  • A new Slider component behavior makes a horizontal slider: in preview the viewer drags a thumb along a track, or clicks the track to jump to a value. Slider).
  • A new Textarea component behavior makes a text field of several lines: in preview Enter breaks the line and the field grows or scrolls with its lines. String inputs can be marked Multiline to hold values with line breaks (→ The Textarea behavior).
  • Variables bound to a control's built-in input are two-way in preview: typing into an Input or Textarea field, clicking a Checkbox, Toggle or Radio button, or picking a color in a Color input writes the bound value variable as it happens, and everything that reads the variable follows. A group of radio buttons binds to one variable through each button's Selected value and is checked where the variable equals its Option value (→ Two-way binding on controls).
  • A new Appear event runs an artboard's actions each time the preview shows it: when the preview opens on it, after a Go To Artboard transition to it, or as a modal. Use it to reset a form or set up a screen as the viewer arrives (→ Appear).
  • A variable can be renamed without updating the expressions that use it (→ Naming and renaming).
  • A variable's menu lists what uses it, and a bound field's menu goes to its variable or input (→ Going to the source).
  • Components can report what happens inside them: an Emit Event action inside a component sends a named event, and each instance handles it with a Component Event that runs that instance's own actions, so a dialog's confirm and cancel can close it in one place and navigate in another (→ Component events).

2026.09.20​

  • Added variables: define value and expression variables in the Variables panel, bind them to design properties, and use variable actions and conditionals to build interactive previews.
  • Expression fields now suggest names as you type: a . after Color, Math or a collection lists its members with a description, Ctrl + Space lists every variable, collection and namespace visible at the caret, and the function's signature shows while the caret is inside its parentheses.
  • Added color functions for expressions: the Color namespace lightens, darkens, saturates, mixes, rotates and fades colors (Color.darken(brand, 0.2)), picks readable contrast, compares colors (Color.equals(a, b)), and prints colors in any accepted format (Color.format(c, 'hsl')).
  • Color fields accept more formats: hsl(), hwb(), hsb(), modern rgb() with spaces and percentages, and the Variables panel's #RRGGBB 50% form; a pasted color that states an alpha (e.g. #FF000080) now sets the fill or stroke opacity instead of dropping it.
  • Added a Set Component Input action: interactions can now set a component instance's input to a new value in the preview.
  • Added multi-object rename: with several objects selected, Rename (Ctrl/Cmd + R) opens a dialog that renames them all at once; component variants keep their pseudoclass states (renaming foo:hover and foo:active to bar produces bar:hover and bar:active).

2026.08.18​

  • Improved snapping across the editor, including equal-spacing snapping with gap highlighting; hold S to temporarily disable snapping.
  • Radial gradients now have a third handle on canvas for deforming the gradient into an ellipse
  • Recoloring text inside a component instance no longer disconnects it from the component's text; the text keeps following component edits
  • Components support a new Color input type: bind a layer's Fill or Stroke to a color input

2026.07.19​

  • Keyboard shortcuts now work with international keyboard layouts (German QWERTZ and French AZERTY initially, more coming). Layout is detected automatically where the browser supports it and can be changed in the editor's settings menu; menus and tooltips show shortcut keys as printed on the keyboard.
  • Added commenting: pin threaded comments to designs in both the editor (comment tool, Shift+C) and the preview.
  • Vector paths now support inside and outside stroke positions (previously center only).

2026.06.26​

2026.05.20​

  • Improved rendering of masked objects in preview.
  • Added support for fill and stroke blend modes.
  • New vector features:
    • Hold Shift while drawing or dragging vertices to constrain to 45° angles.
    • Added lasso and freehand lasso selection methods.
    • Added support for corner rounding
    • Snap to other vertices when drawing or dragging vertices, with snap line indicators. Hold Ctrl/Cmd to temporarily disable snapping.
  • Corner rounding now works on ovals when the arc sweep is less than 360°.
  • Sketch import improvements for edited shapes, boolean operations, and bitmaps with color overlays

2026.05.12​

2026.05.02​

  • Major performance improvements
  • Added option to show/hide layout helpers (Shift+G), available in editor's settings menu

2026.04.24​

  • Added dashboard search for documents and folders by name across the active workspace and items shared with you.

2026.04.16​

  • Properties panel now highlights overridden instance fields and lets you reset individual overrides directly from the field context menu.
  • Added debug console in Preview - see events and actions as they fire
  • Search dialog for finding objects and text within documents
  • Added "map view". Press M to zoom out and see all content; click anywhere to zoom back in at that location, or draw a lasso to zoom into a specific area.
  • Added Tab and Shift+Tab shortcuts in the editor to move the selection to the next or previous sibling within each selected container.
  • Added Ctrl/Command+right-click on the canvas to list all objects under the pointer in stack order so you can pick the exact overlapping object.
  • AI text editing now supports refining the current selection and inserting generated text at the caret; available as context menu options while editing a text layer.

2026.04.08​

2026.03.16​

2026.03.09​


Older release notes