Cut UI Design Drudgery with Adobe XD Component States
Learn how Adobe XD Component States let you define button hover and press variants once, reuse them across artboards, and preview smooth transitions.
07 Nov 2026, 20:05 UTC

Designers waste time recreating button states manually
When you design a button, card, or input field, you often need several visual variants — normal, hover, pressed, disabled. Creating each variant by copying layers, changing colors, and aligning them across dozens of artboards is tedious and error‑prone. The result is inconsistent UI and extra revision cycles.
The solution: Component States in Adobe XD
Adobe XD’s Component States provide a declarative, reusable way to define UI variants such as Normal, Hover, and Pressed. Instead of manually rebuilding a button for every state, you create a base component and then add state variants in the States panel. Each variant can have its own fill, stroke, shadow, or component properties, and Auto‑Animate can smoothly transition between them during prototyping.
Creating and linking component states
1. Select the element you want to turn into a component (e.g., a rectangle for a button).
2. Convert it to a Component with Ctrl+Alt+K (Windows) or ⌘+Option+K (macOS).
3. Open the States panel, click “+”, and add a “Hover” state. Change its fill to a blue shade (e.g., #0066FF).
4. Add a “Pressed” state and set its fill to a darker shade (e.g., #0044CC).
5. In the Prototype tab, click the “+” button on the base component, choose “While Hovering”, and select the “Hover” state. Set the transition to “Auto‑Animate” with a duration of 0.3 s.
6. Preview the prototype; hovering any button updates its fill instantly, confirming the state works across repeated instances.
Worked example: button component
# Step‑by‑step example
1. Create a rectangle (120 × 40 px) on a new artboard; name it “Button_Base”.
2. Select the rectangle → press Ctrl+Alt+K (Windows) or ⌘+Option+K (macOS) to convert it to a Component.
3. Open the States panel → click “+” → add a “Hover” state; set fill to #0066FF.
4. Add a “Pressed” state → set fill to #0044CC.
5. Duplicate the component into a Repeat Grid (4 instances) to test across multiple places.
6. In the Prototype tab, connect the base component to the Hover state with “While Hovering” → Auto‑Animate.
7. Preview; each button in the grid changes fill on hover and darkens on press, proving the state works for all instances.
Trade‑off and limitation
Component States only apply to vector‑based components; raster images or complex groups may not support state changes. Existing prototype links that target the base component do not automatically follow state changes — you must manually reconnect or accept a narrower scope. The learning curve can slow early adopters, and the feature requires Adobe XD 2023.3 or later, so teams on older versions cannot use it.
Actionable closing
Open Adobe XD (requires admin rights on Windows/macOS), create a new artboard, and insert a rectangle as a button base. Convert it to a Component, add Normal, Hover, and Pressed states via the States panel, then link the Hover state in the Prototype tab using “While Hovering” → Auto‑Animate. Preview the prototype; each repeated button should update its appearance instantly. Verify by checking that:
- The button’s fill changes to blue on hover and darkens on press across all repeated instances.
- Auto‑Animate transition duration matches the setting (e.g., 0.3 s).
- No unexpected layout shifts occur when states change.
Share the prototype link with teammates for immediate feedback.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.