Creating an elegant hover interaction where the “stage” updates with relevant content and fades in when hovering over a card can be achieved effectively in Figma with some creative techniques. Here’s an approach tailored to your requirements:
Best Approach: Leveraging Interactive Components with Overlays or Layer Transparency
This solution avoids multiple artboards and keeps the design manageable.
Step 1: Structure Your Layout
Stage Section (Left Side):
- Fixed position, 100% height, 50% width.
- Create a placeholder frame for the “stage content” (image/video).
- Set the default state to an empty or neutral image.
Content Feed Section (Right Side):
- Create your scrolling list of cards as individual frames.
Step 2: Design Stage States
- For each card in the feed, design a corresponding “stage” frame with the desired content (image/video).
- Ensure the stage’s design is visually consistent across states (e.g., fade animation).
Step 3: Interactive Component Setup
Combine the “Stage” and “Card” as Components:
- Wrap the entire layout (stage + feed) into a single component.
- Add variants for each card hover state:
- Default: Neutral stage content.
- Card 1 Hover: Stage filled with Card 1’s content.
- Card 2 Hover: Stage filled with Card 2’s content.
- … and so on.
Set Hover Interactions:
- In Prototype mode, for each card, create an interaction:
- Trigger: Hover.
- Action: Change to (corresponding variant).
- Animation: Smart Animate with Dissolve (to create the fade effect).
Step 4: Test the Prototype
- Hovering over each card should transition the stage content smoothly using the dissolve animation.
- The fixed header and layout structure will remain intact since everything is inside one frame/component.
Why This Works
- Efficient Management: You don’t need multiple artboards; variants handle the hover states.
- Smooth Transitions: The Smart Animate + Dissolve gives a clean fade-in effect.
- Scalability: You can easily add new cards or update the stage content without duplicating frames.
Alternative: Advanced Use of Variables
If you prefer using variables, you can simulate the fade effect using opacity changes:
- Create a
Boolean Variable
for each card (e.g., card1Hovered
).
- Link the stage’s content opacity to the variable.
- Use
Smart Animate
to transition the opacity when the variable is triggered.
This method requires more manual setup but avoids creating separate variants for each state.
Final Recommendation
The Interactive Component with Variants approach is the most manageable and elegant solution. It avoids overlay issues, maintains layout integrity, and leverages Figma’s built-in animation features effectively.
Let me know if you’d like a step-by-step guide for setting this up! 😊
Thanks for the answer and sorry for the really late reply!
Yeah in the end to achieve the effect I wanted I basically just crated one mega component with everything inside it and duplicated 3-4 times to have each state. Probably more work than was worth it but it looked good!
I question I could’ve done conditions like I said to show/hide the relevant image but it wouldn’t have had the nice fade. If I need to do this again I’ll maybe check the option with overlays 