Components in Formo
What is a component?
A component is a reusable definition: build something once — an icon, a prop, a repeated background element — turn it into a component, and place as many instances of it as you need. Redraw the original definition, and every instance updates with it automatically, except any instance you've deliberately changed yourself, which keeps its own override intact instead of snapping back.
Creating a component
There are two ways to make one:
1. Select the Component tool from the toolbar, or press K, then click and drag to start a new one from scratch.
2. Select an existing object or group and press Ctrl+Shift+K. It converts directly into a component definition — the fastest route when you already have something drawn that you want to make reusable. Like reparenting into a frame or group, this conversion doesn't move anything visually: whatever you selected stays exactly where it was on screen, now simply reclassified as a component definition rather than a plain object or group.
Placing instances
Once a component exists, drag it out of the Library panel (under Components) onto the canvas to place a new instance. Every instance starts out visually identical to the definition, positioned wherever you drop it.
Unlike a frame or a group, you can't freely drag arbitrary objects into an instance's interior the way you would into those two; an instance's contents come from its shared definition, not something assembled ad hoc per placement. If you want every instance to have an additional piece, that addition belongs in the definition itself, via component-edit mode, not dragged individually into one instance at a time.
Editing the original definition
Double-click any instance on the canvas to enter a dedicated component-edit mode. This doesn't edit just that one instance, it opens the original definition every instance is drawn from. Change something here — recolor a shape, resize an element, redraw a detail — and every instance across your document updates to match, automatically, the moment you leave edit mode.
Using per-instance overrides
Change something directly on a single instance instead (without entering the definition's edit mode) and that becomes a local override specific to that one instance. Edit the original definition afterward, and every other instance still updates, but the overridden instance keeps your specific change instead of snapping back to match. This is what lets you build one base component and still have each placed copy diverge exactly where you need it to: ten instances of the same icon component, nine following the definition's color exactly and one recolored to stand out, all coexisting from the same shared source.
Using component slots
While editing a component's definition, you can add a custom named property to it (a color, a piece of text, a number, or something more structured), the same mechanism as adding a custom property to the whole document, just scoped to this one component instead. Once a slot exists, every instance can set its own independent value for it, without breaking the shared definition underneath: a "label text" slot on a button component, for instance, letting each placed instance show its own distinct text while every other visual detail still follows the shared definition exactly.
Using multiple animation clips per component
A component can hold more than one named animation clip internally. Think of it as several different states or poses baked into one definition (an "idle" clip and a "walk" clip on the same character symbol, for example). Each placed instance gets its own Timeline section in the right panel to choose which clip that specific instance is currently showing:
- Clip: which of the definition's named clips this instance plays.
- Play Mode: clip default, loop, play once, or single frame.
- Initial Frame: which frame of the chosen clip this instance starts on.
Two instances of the same component can be showing entirely different clips, at different play modes, at the same time, independent of each other, all still drawing from the one shared definition. A crowd scene built from ten instances of one character component, some set to "idle" and others to "walk," is exactly this: one definition, ten independently-configured playbacks.
Locking an instance
A component instance can be locked from its layers-panel row too, the same as any other object. See "Pinning and locking elements".