Figma Keyboard Shortcuts
Figma's shortcuts lean heavily on single letters for tool switching, much like Photoshop, since both come from a tradition of keeping the dominant hand free on a mouse or trackpad while the other hand selects tools. What sets Figma apart is how much of its shortcut set is about layout and alignment rather than freehand drawing — auto layout, component instances, and constraint-based resizing are first-class citizens with their own dedicated keys, reflecting that most Figma work is structured interface design rather than illustration. Because Figma runs in the browser as well as as a desktop app, a handful of shortcuts are reserved by the browser itself and need adjusting or avoiding depending on which version you're using. Prototyping — wiring frames together with interactive connections to simulate a working app or website — sits on top of the same canvas as static design work, and its shortcuts are mostly about switching between Design and Prototype modes and previewing the result quickly, rather than a completely separate toolset. The shortcuts below are grouped by tool switching, layout and alignment, working with reusable components, and building and previewing prototypes.
Tools
| Action | Windows | Mac | Description |
|---|---|---|---|
| Switch to Frame tool | F | F | Activates the Frame tool for creating artboards, with preset device-size frames selectable from the right panel once active. |
| Switch to Rectangle tool | R | R | Activates the rectangle shape tool; holding Shift while drawing constrains it to a perfect square. |
| Switch to Text tool | T | T | Activates the text tool; clicking once creates an auto-width text box, while clicking and dragging creates a fixed-width box that wraps text. |
| Switch to Scale tool | K | K | Activates a tool that resizes a selection and everything within it proportionally, including stroke weights and text sizes, unlike a normal resize which can distort strokes. |
| Switch to Comment tool | C | C | Activates pin-style commenting, letting you click anywhere on the canvas to leave feedback attached to that exact spot for collaborators to see and reply to. |
| Switch to Move (arrow/selection) tool | V or Escape | V or Escape | Returns to the default selection tool from any other active tool, the state you spend most of your time in for selecting, dragging, and resizing existing objects rather than drawing new ones. |
| Switch to Ellipse tool | O | O | Activates the ellipse shape tool; holding Shift while dragging constrains it to a perfect circle, the same modifier convention as the rectangle tool's square constraint. |
| Switch to Pen tool | P | P | Activates the vector pen tool for drawing custom paths with anchor points and bezier handles, Figma's equivalent of Illustrator's Pen tool though with a somewhat simplified handle-editing interaction. |
| Switch to Hand tool (pan canvas) | H or hold Spacebar | H or hold Spacebar | Switches the cursor to panning mode for dragging the canvas view around, or hold Spacebar temporarily from any other tool for a quick pan without losing your current tool selection once released. |
Layout Alignment
| Action | Windows | Mac | Description |
|---|---|---|---|
| Add Auto Layout to selection | Shift+A | Shift+A | Wraps the selected elements in an Auto Layout frame, which manages spacing and alignment automatically as content is added, removed, or resized — Figma's equivalent of flexbox. |
| Align selection left | Alt+A | Option+A | Snaps every selected object flush with whichever one currently sits furthest left, or against the parent frame's left edge if only a single object is selected — a fast cleanup move after freehand-positioning several elements roughly into place. |
| Tidy up selection (auto-arrange) | Shift+Alt+T (varies by version) or Tidy Up command | Shift+Option+T | Automatically arranges loosely scattered objects into an evenly spaced grid, useful for quickly cleaning up exported icon sets or unorganized component variants. |
| Resize frame to fit content | Shift+Ctrl+Alt+R (varies; commonly right-click menu) | Shift+Cmd+Option+R | Shrinks or grows a frame's boundary to exactly match the bounding box of its contents, removing excess empty space around elements. |
| Union selected shapes | Ctrl+Alt+U | Cmd+Option+U | Combines multiple overlapping vector shapes into a single merged shape, Figma's equivalent of a Pathfinder union operation, commonly used for building custom icons from simpler overlapping primitives. |
| Group selection | Ctrl+G | Cmd+G | Wraps the current selection in a lightweight container so it drags, scales, and repositions as a single unit, while every original layer underneath stays independently selectable and editable whenever you double-click back into the group. |
| Align selection horizontal center | Alt+H | Option+H | Centers the selected objects along a shared horizontal axis relative to each other, or centers a single selected object within its parent frame if only one object is selected. |
Components
| Action | Windows | Mac | Description |
|---|---|---|---|
| Create component from selection | Ctrl+Alt+K | Cmd+Option+K | Converts the selected layer(s) into a reusable master component, marked with a diamond icon, that can be instanced repeatedly elsewhere while staying linked to the original for synchronized updates. |
| Detach instance from component | Ctrl+Alt+B | Cmd+Option+B | Breaks the link between a component instance and its master, converting it into an independent set of layers that no longer updates when the master component changes — irreversible without undo. |
| Open Swap Instance menu | Click instance + use right panel swap icon (no universal key) | Click instance + swap icon | Lets you replace a component instance with a different component from the same library while preserving any overrides where the layer structure matches, faster than deleting and re-inserting manually. |
| Reset instance to match main component | Right-click instance > Reset changes (no default key) | Right-click instance > Reset changes | Discards any local overrides applied to a specific component instance (a changed text label, a swapped icon, a moved child layer) and snaps it back to exactly match its main component's current default state. |
| Jump to main component from instance | Right-click instance > Go to main component (no default key) | Right-click instance > Go to main component | Navigates directly from a selected instance to wherever its master component actually lives on the canvas or in a separate library file, which otherwise can be genuinely hard to physically locate in a large file with many pages. |
| Switch component instance variant | Select instance, use right panel variant dropdown (no default key) | Select instance, use right panel variant dropdown | Changes which variant of a component set an instance displays (like switching a button instance from its Default state to its Hover or Disabled state), reading from the variant properties defined when the component set was built. |
Prototyping
| Action | Windows | Mac | Description |
|---|---|---|---|
| Start prototype presentation | Ctrl+Alt+Enter (varies) or Present button | Cmd+Option+Return | Launches full-screen interactive preview mode starting from the file's designated starting frame, letting you click through prototype connections exactly as an end user would experience the linked flow. |
| Switch between Design and Prototype tabs | Shift+E (varies by version) | Shift+E | Toggles the right-hand panel between Design mode (styling properties) and Prototype mode (interaction and connection settings), the two contexts you switch between constantly while building an interactive flow. |
| Reload prototype preview | R (within Presentation view) | R (within Presentation view) | Restarts the currently open presentation preview from its starting frame without closing and reopening the presentation window entirely, useful for quickly re-testing a flow after making an edit back in Design mode. |
| Set a frame as prototype starting point | Right-click frame > Set as starting frame (no default key) | Right-click frame > Set as starting frame | Designates which specific frame Present mode should load first, marked with a small flag icon on the frame — necessary in a file with multiple candidate frames, since Figma won't guess which one you intend as the actual flow's entry point. |
Frequently Asked Questions
Why doesn't the K shortcut scale text and strokes proportionally when I just drag a corner handle?
A plain corner-handle drag resizes width and height but generally leaves stroke weights and some text settings unchanged unless the object has constraints configured to scale. The dedicated Scale tool (K) is specifically built to resize everything proportionally — strokes, text, effects, nested content — which a basic resize handle drag does not guarantee depending on each layer's individual resizing behavior.
Why did detaching an instance break my design system updates?
Detaching (Ctrl+Alt+B / Cmd+Option+B) permanently severs the connection between that instance and its master component, so any future edits to the master component will no longer propagate to the detached copy. This is intentional for one-off customizations that shouldn't sync, but it's easy to detach by habit and later forget that specific instance is now orphaned from the design system.
Why does Shift+A sometimes produce unexpected spacing when I add Auto Layout?
Auto Layout inherits default spacing and padding values when first applied, which often don't match what you'd manually set — you'll typically need to adjust the spacing, padding, and alignment settings in the right panel immediately after applying Shift+A rather than expecting it to guess your intended layout from the elements' prior loose positioning.
Some of these shortcuts don't work in my browser version of Figma — why?
Browsers reserve certain key combinations for their own functions (like Ctrl+T for a new browser tab), which can override Figma's intended in-app shortcut of the same combination when running in browser rather than the desktop app. That's specific to which chrome (the browser kind, not the app) is currently intercepting the keystroke, so the same shortcut can misbehave in one browser and work fine in another — switching to the desktop client sidesteps the issue entirely.
Why does clicking a component instance in Presentation mode sometimes do nothing?
A prototype connection has to be explicitly wired in Prototype mode (Shift+E to get there) between a specific trigger — a click, a hover, a drag — and a destination frame or action; simply being an interactive-looking element like a button doesn't automatically make it clickable in a preview unless that connection has actually been drawn between it and something. Checking Prototype mode for the missing element usually reveals it just never had an interaction added.
What's the practical difference between grouping layers and putting them in a Frame?
A Group is a lightweight container mainly useful for moving and transforming several layers together, while a Frame carries additional properties Groups lack entirely — clipping content to its bounds, Auto Layout, constraints for responsive resizing, and the ability to be exported as its own artboard — making Frames the better choice for anything resembling an actual screen or component container rather than a simple loose collection of shapes.
Why did resetting an instance remove a change I actually wanted to keep?
Reset changes reverts every local override on that instance back to the main component's current defaults in one action — it doesn't selectively keep some overrides and discard others, so if you only meant to revert one specific override (a swapped icon, say) while keeping another (a changed text label), resetting the whole instance undoes both indiscriminately, and you'd need to manually reapply the override you wanted to keep afterward.