Traceable tokens
Colors, type, and spacing are clearly named, so every adjustment follows the same rules and keeps the whole site consistent.
It organizes the tokens, shared components, and case-study patterns used across the portfolio into clear rules, so each screen can keep a steady rhythm while preserving the character of each project. From color and spacing to component boundaries, every adjustment has a reference point to check against.
01
Define the tone first: refined, warm, and stable with character. The home page uses cursor tags and sticky notes for character instead of piling on effects.
02
Each case study can carry its own tone, but cards, information architecture, and layout stay consistent. The three case-study pages share one pattern and only swap the `tone-xxx` layer.
03
Purple stays reserved for CTAs and active states instead of large surfaces, so interviewers keep their attention on the work itself.
04
Motion has a job. Home and About use entrance animation to feel alive; case-study pages stay restrained so the work remains the focus.
05
Even dense case-study pages keep a baseline of breathing room, including at least 24px of text padding. Dense information should not feel cramped.
06
Colors, type, and spacing have token names so one change can propagate across the site. The handoff is maintainable specification, not just a static image.
07
Hover, active, focus, and disabled states are designed. Unpublished work uses disabled styling so people do not mistake it for a clickable case.
Not every repeated-looking layout should become a shared component. The reusable layer holds tokens, stable shells, and contracts; route-local geometry stays close to the story it explains.
Layer 01
This includes runtime tokens, UI primitives, navigation, project-card behavior, and case-study shells such as cards, grids, media, section headers, and before / after frames.
Layer 02
Flow diagrams, matrices, connector endpoints, scenario boards, and media crop rules can stay local when their geometry carries the case-study story.