Your mission objective
Know what “cleared” looks like before opening Figma.
By the end, you can…
- Distinguish main components from instances.
- Model state and size with variants.
- Expose text, Boolean, and instance-swap properties.
- Design a visible focus state and communicate state beyond colour.
Bring with you
- Auto Layout fluency
- Day 2 component candidates
Decode the system
Understand the production logic before following steps.
A component is a maintained source of truth; an instance is a contextual use of that source. The value is not the diamond icon itself but the update path it creates. If a change to padding or focus treatment must be repeated across screens, the system is already paying a maintenance penalty.
Variants describe a bounded set of meaningful options such as size, hierarchy, and interaction state. Properties expose what an instance owner should change without detaching: label text, optional icon visibility, or which icon instance is used. The best API is small and legible. Hundreds of combinations usually signal that separate responsibilities have been forced into one component.
Detach only when the instance truly stops belonging to the system. Normal content changes, icon choices, or state changes are not reasons to detach. Test the component by placing instances in real contexts and changing the main component. If the update propagates without destroying intentional overrides, the architecture is doing useful work.
Interactive states are an accessibility surface, not just a hover flourish. A keyboard user never sees hover — they see focus. If your variant set stops at default/hover/pressed/disabled, you have designed for a mouse only. Add a Focus variant with a visible outline or ring distinct from hover, and design disabled so it reads as disabled without relying on colour alone (add reduced opacity plus a cursor or label cue). Loading and error variants matter wherever a component can genuinely be waiting or wrong — a submit button, a data card — not on every component by default.
Maintained source of structure and defaults.
Contextual use with controlled overrides.
A finite option such as size or state.
A safe control exposed to the instance user.
Build the recovery interface component set
Follow once, then explain each structural choice.
- 01
Create a button main component with label and optional leading icon.
- 02
Add primary, secondary, and tertiary hierarchy variants.
- 03
Add small, medium, and large size variants.
- 04
Add default, hover, pressed, focus, and disabled state variants — focus needs its own visible outline, not a copy of hover.
- 05
Make the disabled state readable without colour alone: lower contrast plus a clear label or cursor cue, and note what would re-enable it.
- 06
Expose the label as text and icon visibility as Boolean.
- 07
Expose the icon as an instance-swap property.
- 08
Apply the same decisions to an input, status badge, alert, and navigation item — add loading and error variants only where that component can genuinely be waiting or wrong.
Cloud Recovery Operations Platform
Build this fictional SaaS project in your own Figma file. No proprietary source file or private embed is required.
Framewise doesn’t yet have a duplicable starter file or a completed reference outcome for this mission — that’s on the roadmap, not something we’re pretending exists. The link below opens a genuinely blank Figma file, not a prepared course file.
Create a new Figma file ↗Try to break the build
A layout is not responsive until real variation tries to break it.
Change the main button radius once.
Use a 32-character label.
Swap the leading icon.
Remove optional alert copy.
Tab through your instances in prototype preview and confirm focus is visible on every one.
Build without the guide
Remove tutorial dependence and work from the outcome.
Build a toast notification with optional icon, editable title, message, status variant, and dismiss control.
Check your understanding
Five fast retrieval rounds. Land 80% to clear the checkpoint.
Pass criteria
Self-certify observable results, not effort.
Lock in the learning
Write two short answers in your own notes.
- 01
Which option belongs as a property rather than a variant?
- 02
Where could one component be split into two clearer responsibilities?
Ready to claim the reward?
Score 80% in the mission quiz and check off all 7 build criteria to claim the reward.