DSN 325 · UI Design & Design Systems · Week 3 of 7
Make It Reusable
Components, states, and tokens — your style tile becomes working parts.
Last week you made rules. This week you make parts that obey them. Build a button once, use it everywhere, and when it changes, it changes everywhere. This is the idea design systems are built on, and it's the spec that will make your AI builds good in Week 5.
This week at a glance
Wed 11:59 pm
Discussion: State the States — initial post
Fri 11:59 pm
Studio: Component Kit — core components, full states, named tokens
Fri 11:59 pm
Field Work: Flow Field Study — post your findings
Sun 11:59 pm
Replies: discussion (2 classmates) and Field Work (1 classmate)
1The vocabulary
Component
A reusable piece of interface built once and placed many times. Change the original, and every copy updates. The opposite is drawing the same button forty times and fixing it forty times.
Do — one source, every copy matchesDon't — four hand copies, four drifts
States
Every interactive part has more than one look: resting, hovered, focused (keyboard), pressed, disabled, and sometimes error. A button with one state is a picture of a button. One more thing: on touch screens hover doesn't exist — pressed and focus do the work. If your sector is mobile-first, those two are your load-bearing states.
Do — rest, hover, pressed, focus, disabledDon't — happy state only, the rest undefined
Variant
Planned versions of the same component: primary and secondary button, small and large input. Variants are deliberate choices you offer. Drift is accidental versions you didn't.
Do — primary / secondary / small: same familyDon't — three strangers, no family
Token
A named decision. Instead of typing the color code #0F5C5A in forty places, you name it once — "color/action" — and forty places point at the name. Change the name's value, everything follows.
Do — "color/action" feeds everythingDon't — three pasted codes, already drifting
2What your kit needs
The Week 3 component kit
Built in Figma from your Week 2 tile. Your product decides the exact list, but every kit includes at least:
Button — primary and secondary variants; rest, hover, focus, pressed, disabled states
Text input — rest, focus, filled, error (with message), disabled
One content component — a card, list row, or message block your product actually needs
Tokens — colors, text sizes, and spacing values from your tile, named and applied. Name by job ("color/action", "space/md"), not by value ("teal", "16")
Everything uses auto layout, so components stretch and shrink without breaking. And every color or size in every component points at a token — zero pasted-in values.
The trap this week: designing only the happy state. The error state of your input and the disabled state of your button are where beginners get exposed — in class and in interviews. If you design one state well and skip four, you built a picture, not a component.
3How to do this week's work
Set up tokens first. Turn your tile's colors, sizes, and spacing into named Figma variables before building anything. Ten minutes now saves an hour later.
Build the button. Master component, auto layout, variants for primary/secondary, then all five states. Check every color against your tokens.
Build the input. Same discipline. The error state includes the message text, not just a red border.
Build your content component. Pick the one your product needs most.
Stress-test. Swap in your product's longest real text. If the component breaks, fix the auto layout, not the text.
Submit, then do Field Work. The flow study (walk the same task in two real apps, screenshot every step) preps Week 4, when you map your own product's flows.
AI this week: allowed for naming help and documentation only — ask it to suggest token names or describe a component's rules, and disclose it. Not allowed for generating the components. You're building the spec that makes AI useful later; it can't build its own leash.
4Resources
Everything here is free. Start with the starred items.
★Explore component properties — Figma Learn. Includes a free playground file.
Create and use variants — Figma Learn.
Guide to auto layout — Figma Learn.
★Guide to variables in Figma — Figma Learn. Variables are how you build tokens.
What Are Design Tokens? — CSS-Tricks. The plain-English why.
Material Design — States — Google. What each state means.
The Component Gallery — How 95 real systems build the same components.
Atlassian Design System — Tokens — A live token catalog to browse.
Tokens, variables, and styles — Figma's official walkthrough. Video, and the fastest way to see variables working.
Component Kit starter — the class Figma starter file. Duplicate it to your drafts first; the Start here page walks you through it.
5Before you submit
Tokens set up first: colors, text sizes, spacing — named by job, not by value
Button has primary + secondary variants and all five states
Input has rest, focus, filled, error (with message), and disabled
One content component built for my actual product
Every color and size in every component points at a token — nothing pasted in
Components survive my longest real text without breaking
File is organized: named layers, tidy pages
AI disclosure included (naming/documentation help counts)