Create Reusable Button Symbols with Nested Overrides in Sketch
Learn how to build a Sketch button Symbol with nested overrides for label, icon, and state, so you can reuse the component across artboards while keeping design consistency.
01 Sept 2026, 19:49 UTC

Desired outcome
Create a button Symbol that can be reused across artboards while allowing you to change its label, icon, and visual state (default, hover, pressed) without breaking the link to the master Symbol.
Prerequisites
- Sketch version 70 or later (nested overrides were introduced in 62 and stabilized in 70).
- An open Sketch file.
- Basic vector shapes or imported icons for the button background.
- Optional: shared text styles for consistent label typography.
Procedure
- Design the button base: draw a rounded rectangle for the background, add a text layer for the label, and place an icon vector (or import an SVG) inside the rectangle. Align them as needed.
- Select all layers that make up the button and choose
Layer → Create Symbol. Name the SymbolButton/Defaultand click OK. - Double‑click the Symbol to enter its source. Inside, select the text layer and choose
Enable Overridesfrom the Inspector. Do the same for the icon layer if you want to swap icons. - Create additional Symbol states: select the Symbol in the Symbols page, duplicate it (
⌘D), rename the copy toButton/Hover, and adjust its appearance (e.g., change fill color). Repeat forButton/Pressed. - Return to the canvas, insert an instance via
Insert → Symbol → Button/Default. With the instance selected, the Inspector shows override fields for Label Text and Icon. Change the label text or pick a different icon; the instance updates while staying linked to the master Symbol. - To switch visual state, select the instance and use the Overrides panel to change the Symbol source from
Button/DefaulttoButton/HoverorButton/Pressed. The override for label and icon persists because they are defined in the nested Symbol.
Expected checks
- Edit the master Symbol’s background color; all instances (including those with overridden label or icon) should update instantly.
- Change an instance’s label via the override panel, then update the master Symbol’s label style; the instance retains its custom label text while adopting the new style.
- Detach an instance (
right‑click → Detach from Symbol), modify its label, then re‑create a Symbol from the detached layer (Layer → Create Symbol). The new Symbol inherits the same override capabilities for label and icon.
Recovery options
If overrides disappear after a Symbol update, re‑apply them from the Overrides panel or revert the file to a previous version via File → Revert To → Browse All Versions. Detaching a Symbol does not delete the original master Symbol, so you can always restore the linked instance by deleting the detached layer and re‑inserting the Symbol.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.