Designers wire frames together in Figma long before anyone writes production code. What comes out is a prototype: a clickable simulation living in the same file as the design, assembled from triggers, actions, and animated transitions rather than markup.

It runs in a browser. It responds to clicks. And it never ships to real users on its own.

Figma’s own prototyping documentation lists 12 trigger types and 15 action types available inside the Prototype tab, from On Click to Change To (Figma Help Center, 2026).

What Does It Mean to Make a Figma File Interactive?

Interactivity here means the file reacts to input. Click a button, the screen changes. Hover over an icon, a tooltip shows up. None of it is coded, and none of it talks to anything real.

That puts it a step past a wireframe, which maps structure and content with no working interaction at all. A mockup gets closer, since the visual design is finished, but the screens still sit there disconnected from each other.

Triggers and actions handle the wiring. Transitions decide what the change looks like. Overlays stack content on top of a screen instead of replacing it, and variables let the prototype remember something between clicks.

Interaction Triggers and Actions in Figma

Every interaction pairs a trigger with an action. The trigger is what a person does. The action is what Figma does back.

Trigger Types

The input side breaks down into these categories:

  • On Click / On Tap
  • On Drag
  • While Hovering
  • While Pressing
  • Keyboard or Gamepad
  • Mouse Enter and Mouse Leave
  • Mouse Down and Mouse Up
  • After Delay
  • When Video Hits and When Video Ends

On Click does most of the navigation work, including the button someone taps to reach the next screen once you finish building it in Figma.

Have you seen the latest Figma statistics?

Discover comprehensive Figma statistics including revenue growth, market share, user demographics, and funding data.

Check them out →

While Hovering and While Pressing snap the view back to the starting frame the second the cursor lifts or moves away. That is precisely why they suit tooltips and short-lived states.

Action Types

The action half decides what actually happens: Navigate To, Back, Open Overlay, Close Overlay, Swap Overlay, Scroll To, Set Variable, Conditional, Change To.

Navigate To carries most of the load, and it is the same mechanism our guide on linking pages together in Figma walks through step by step.

Figma’s prototyping guide counts 12 trigger types, from On Click to When Video Ends, while the matching actions guide counts 15, from Navigate To to Change To. One behavior change worth knowing about landed on November 16, 2023: Mouse Enter and Mouse Leave now fire once per hotspot instead of continuously while the cursor moves around inside it.

Transition Styles and Easing Curves in Figma Prototyping

Once a trigger fires, the transition setting decides how one frame turns into the next.

TransitionCategoryMatches LayersCommon Use
DissolveSimple transitionNoFade between unrelated frames
Smart AnimateSimple transitionYesState changes, toggles, sliders
PushDirectional transitionOptionalScreen to screen navigation
Slide InDirectional transitionOptionalMenus and drawers entering from an edge
Scroll AnimateSimple transitionNoNative scrolling within a frame

Figma’s developer documentation lists 8 transition types and 13 easing curves. Four of those curves are spring presets built for a more physical feel, named Gentle, Quick, Bouncy, and Slow. A fifth option, Custom Spring, hands you mass, stiffness, and damping to set by hand.

Ease In, Ease Out, and Ease In and Out cover the standard shapes. The Back variants of each add a small overshoot, which reads as playful in a toggle and slightly cheap in a checkout flow, so use them selectively.

Duration sits beside every transition and easing pairing, measured in milliseconds. A quick tooltip and a slow full-screen slide can share the exact same curve at wildly different speeds.

How Smart Animate Works in Figma

Smart Animate is the animation engine for matched layers. It scans two frames for objects sharing the same name and the same position in the layer hierarchy, then interpolates the differences on its own instead of making you build the motion frame by frame. Our full guide on animating in Figma covers the setup end to end.

Figma’s help documentation recommends it for loading sequences, parallax scrolling, drag and swipe gestures, sliders, toggles, switches, and expanding content sections.

Layer Naming Requirements

Both layers need an identical name, and the match is case sensitive. Figma also checks where a layer sits relative to its parent, not just what it is called, so dragging a matched layer into a different group can break the animation while the name stays untouched.

Text behaves slightly differently. A text layer you renamed from the Layers panel has to match exactly, but one you never touched gets matched by its content instead.

Common Smart Animate Errors

Renamed layers break more Smart Animate transitions than anything else.

  • A layer named “Button” in one frame and “button” in the other, which reads as two different objects
  • A matching layer moved into a different group or frame between the two states
  • A layer present in one frame but missing from the other entirely
  • Two layers with the same name but different types, such as a rectangle matched against a text layer

When no match turns up, Figma falls back to whatever transition you selected. Usually that means the frame just dissolves or cuts, which is the tell that something upstream is misnamed.

Interactive Components and Their States

Interactive components pack multiple states into one component, so hover, pressed, and focused behavior travels with the object rather than living on separate frames scattered around the canvas.

Figma pulled interactive components out of beta in October 2021, opening the feature to every editor on the platform instead of a limited test group.

Built-in States

StateFires OnTypical Use
DefaultNo trigger activeResting appearance
HoverWhile HoveringDesktop cursor feedback
PressedWhile Pressing or Mouse DownTap or click feedback
FocusedKeyboard or GamepadKeyboard navigation feedback

These four states are what most people picture when they talk about button-level micro-interactions. Building them once inside a component saves you from redrawing the same button four separate times, which is the sort of tedium that quietly eats an afternoon.

If you are new to this, read our guide on using components in Figma before wiring up states. Interactive behavior sits on top of a component that already works.

Component Properties vs Variants

A variant is a style swap you pick yourself in the Design panel. Nothing moves until you choose it.

Wire that same variant to a trigger and an action and it becomes an interactive component, swapping on its own while someone clicks through the prototype. Component properties are what expose the variants to the trigger system to begin with, and our walkthrough on creating variants in Figma covers how to set that structure up before you add a single interaction.

Overlays and When to Use Them

An overlay shows a frame on top of the current screen without a full navigation event pulling someone away from it.

Building one follows the same short sequence every time:

  1. Open the Prototype tab in the right sidebar
  2. Hover over the object that should trigger the overlay, then drag a connection to the frame that will become it
  3. Set the trigger, such as On Click or While Hovering
  4. Choose Open Overlay from the action list
  5. Adjust position, background dim, and close behavior in the overlay settings

Overlay Positioning and Close Behavior

Manual positioning means you place the overlay yourself, which suits tooltips and small dropdowns anchored to one object. Relative positioning hands that job to Figma, which places the overlay in relation to the screen, and that works better for modals and action sheets.

Then there is close on click outside, which dismisses the overlay the moment someone taps anywhere else. Turn it on for anything dismissible and leave it off for a confirmation someone genuinely has to answer.

Figma’s documentation lists interactive hamburger menus, tooltips, on-screen keyboards, and alerts as the main use cases.

Overlays fit content sitting on top of a screen without replacing it. Moving someone from one full screen to the next still belongs to standard navigation actions like Navigate To.

Variables and Conditional Logic in Figma Prototypes

A variable holds one value, a color or a number or a string or a boolean, that the prototype can read and change while someone clicks through it.

Figma announced variables and conditional prototyping at its Config conference in June 2023, which moved the feature past a design-token concept into something a prototype could act on directly. Our Figma variables guide goes deeper on setup and naming. The short version is that one variable, created once, can drive dozens of interactions.

Variable Types

TypeStoresTypical Use
BooleanTrue or falseToggling states, show and hide logic
NumberNumeric valueCounters, quantities, positions
StringText valueLabels, dynamic copy
ColorColor valueTheme switching, light and dark mode

Conditional Actions

A conditional action runs a plain if, then, else check against a variable’s current value before deciding what to do.

Take a cart quantity stored as a number. The plus button adds 1, the minus button subtracts 1, and the minus button only fires at all when the number is already greater than 0. Skip that condition and the same button will cheerfully push the count into negative territory, which is exactly the small logic gap that makes a prototype feel half-finished during a review.

Uber’s design systems team uses component-level Figma variables to switch screen density across its design system, adjusting spacing without duplicating a single component.

How to Build a Clickable Prototype in Figma

The build order stays the same no matter how many screens you end up covering.

  1. Design each screen as an actual frame, not a group or a floating shape
  2. Switch from the Design tab to the Prototype tab in the right sidebar
  3. Set the flow starting point on the first screen a viewer should see
  4. Drag a connection from the object that should be clickable to its destination frame
  5. Assign the trigger and action for that connection
  6. Pick a transition and adjust duration or easing if the default feels off
  7. Press Present to preview the flow exactly as a viewer will see it

Step one matters more than it looks. Connections only attach to frames, so before you touch the Prototype tab, every screen needs to exist as a real frame in Figma rather than a group.

Device, background color, and flow starting point all live in the same panel, which only appears once you deselect everything on the canvas.

SettingControlsDefault
DeviceRealistic container shown in Present modeNone
BackgroundColor shown behind the frame during playbackTransparent
Starting FrameWhich frame opens first when you presentFirst frame in the file

Shift and E flips between the Design tab and the Prototype tab without the mouse. Worth building into muscle memory early, alongside the rest of Figma’s keyboard shortcuts.

Testing and Sharing a Figma Prototype

Presenting in Figma

Present mode opens the prototype in its own window and plays it the way a viewer would experience it.

For a fast check, inline preview inside the canvas is enough. Presentation view opens full screen and supports every device frame option, so it is the better call when you are presenting a prototype to a client instead of checking your own work.

Testing on a Phone with Figma Mirror

Figma Mirror syncs a prototype from the desktop app to a phone or tablet, and both devices do not need to sit on the same network. Sign in with the same account on each end and desktop edits show up on the mobile screen almost immediately.

  • Tap through the design the way a real user would tap it
  • Catch hit areas too small to reach comfortably with a thumb, which almost never shows up on a 27 inch monitor
  • Feel the motion and timing on the device it will actually ship to

Sharing a prototype link is not the same as sharing only the prototype.

On the free plan, anyone holding a shared link also gets full access to the editable design file behind it, and no setting exists to change that. The restricted “can view prototypes” permission that hides the design file only lives on paid tiers, so compare Figma’s free and professional plans before promising a client a clean, prototype-only link.

Working around it on a personal account is possible up to a point, and our guide on sharing a Figma prototype without an account covers the settings that get you closest.

Common Mistakes That Break Figma Interactions

Most broken prototypes trace back to a small set of repeat offenders, and none of them need advanced Figma knowledge to fix.

Overlapping hotspots come first. A transparent frame or an invisible layer sitting on top of a button intercepts the click before it ever reaches the button underneath, and from the canvas everything looks perfectly fine.

Then there is the missing starting frame. Without one, Figma opens whatever frame happens to sit first in the layer order, which is rarely the screen you meant to lead with.

Forgotten variable resets are the sneakiest of the three. A boolean you toggled to true while testing stays true the next time someone opens the link, because nothing resets it between sessions on its own.

A missed step here rarely throws an error message. It just quietly changes what the next viewer sees.

Fixing a broken interaction usually beats rebuilding it, and knowing how to undo in Figma across several steps at once saves you from reconnecting a dozen frames by hand.

Figma Compared to Other Interactive Prototyping Tools

Figma is not the only serious option here, and for certain kinds of interaction it is not the strongest one either.

ToolPlatformStandout Capability
FigmaWeb, Windows, MacDesign and prototype in the same file
FramerWeb-based, publishes live sitesCode Components render on a real, responsive site
ProtoPieWeb, Mac, WindowsNative sensor and hardware input
PrincipleMac onlyTimeline-based keyframe animation

ProtoPie Connect ships with built-in plugins for Arduino boards, a Logitech G29 steering wheel, and gamepads, plus a custom-plugin system on its Enterprise plan that can bridge to other hardware and protocols. Nothing in Figma’s trigger list comes close to any of that.

Principle runs on Mac only, and its timeline gives frame by frame control over easing and sequencing that Figma’s transition panel does not try to match.

Framer goes further still. Its Code Components render actual React components with visual controls, so what you prototype can publish as a live, responsive website instead of staying a design file. Figma’s prototype link stops well short of that, and turning a Figma file into code happens outside the Prototype tab entirely.

What keeps most teams on Figma anyway:

  • One file for design, components, and prototyping, with nothing to import or re-sync
  • A free tier that covers real prototyping work rather than viewing only
  • The largest pool of designers who already know the interface, which matters more than any feature when you hand a file to someone else

The gaps are real too:

  • Zero sensor, camera, or hardware input
  • No true responsive resizing while a prototype plays
  • Animation control that ends at easing curves, with nothing resembling a frame-by-frame timeline

When Figma Prototyping Does Not Work

A prototype stays locked to the frame size it was designed at. The file does not reflow to fit whatever screen opens it, so pick the wrong device preset and thick borders show up around the design instead of the layout filling the space.

Figma also cannot call an API, write to a database, or process a payment. Every state a viewer sees was drawn in advance inside the file, which means anything depending on live external data simply has no way to appear.

Hardware input is another hard stop. The trigger list has no option for a camera, an accelerometer, or a voice command, and that rules Figma out for automotive, wearable, or IoT concepts that need to respond to the real world.

Memory is the one that surprises people. Browser tabs carry an active memory limit of roughly 2GB, and Figma’s support team has confirmed that large files with many nested sections or heavy Smart Animate use can hit that ceiling and start to lag or stall outright.

Several designers have also reported on Figma’s community forum that state driven by boolean variables does not reliably survive a run through Figma Mirror or a shared mobile link, even when the same flow behaves in desktop preview.

None of this makes Figma the wrong tool for most interactive design work. It marks the point where a prototype should hand off to real code instead of pretending to be the finished product.

FAQ on How To Make Figma Interactive

What Is the Difference Between a Figma Prototype and a Wireframe?

Wireframes map layout and content with no working links, and they usually get built before visual design starts at all.

The prototype comes later, adding clickable triggers and actions on top of finished frames so the flow can be tested rather than reviewed.

Can Nested Component Instances Have Independent Interactions?

Yes. A component nested inside another interactive component keeps its own trigger and action pair, and Figma resolves the closest instance first when a Change To action fires.

Deeply nested structures sometimes need a manual refresh before the inner interaction starts responding properly.

Do You Need to Know Code to Make Figma Interactive?

No. Triggers, actions, transitions, and variables all live in Figma’s visual Prototype tab, with no script or syntax anywhere in the process.

Code shows up later, when a developer rebuilds the same interactions in HTML, CSS, and JavaScript for production.

Can You Add Sound, Video, or Sensor-Based Interactions in Figma?

Video works natively, with When Video Hits and When Video Ends triggers plus Play and Pause actions.

Sound only plays through an embedded video track. Camera, accelerometer, and voice input have no trigger option in Figma at all.

What Starting Frame or Device Settings Need Checking Before You Share?

Confirm the starting frame points at the intended first screen and not whatever frame sits highest in the layers panel.

Match the device setting to the real target size while you are in there, since Figma never resizes a prototype to fit the device opening the link.

What Keyboard Shortcuts Speed Up Building Interactions?

Command plus Option plus Return on Mac, or Ctrl plus Alt plus Enter on Windows, jumps straight into Present mode.

Return steps your selection from a parent layer down into its child, which helps when a hotspot is buried inside a nested component.

What Should You Fix First in How To Make Figma Interactive?

Prototypes come together most reliably when frame structure, naming, and the starting frame are settled before the first trigger goes in. Every action and transition depends on stable frames underneath, which is the opposite of the order most beginners try.

Start with frame structure and the starting frame. Move on to triggers, actions, and Smart Animate once the frames hold still. Variables, overlays, and sharing permissions come last, since all three assume the rest already works.

Doing the structural pass first costs time upfront, and it is boring, because nothing looks clickable yet. Every trigger you add afterward attaches to a frame that already behaves consistently across the file.

From there, a finished flow gets prepped for developer handoff, where triggers and transitions turn into specs an engineering team can build from directly.