Leyoo
This site — personal brand and portfolio

A portfolio has to do two contradictory things: prove taste, and stay out of the way of the work. This one resolves that by treating itself as the first exhibit — the identity, the motion language and the type system are the argument.
Almost everything moves in response to scroll position rather than on a timer. The wordmark compresses along the variable font’s width axis as it leaves, the work index travels sideways while the page travels down, and each section hands off to the next instead of stacking.
It is fully prerendered to static HTML with no server runtime, and it degrades honestly: with JavaScript off, every section renders in its finished state instead of staying invisible.
- 01
Motion tied to the variable font
The hero wordmark animates its width axis, not a transform — it compresses as it exits, which reads as acceleration rather than movement.
- 02
Two motion systems, on purpose
Pooled IntersectionObservers drive the reveals; GSAP ScrollTrigger drives only the scroll-linked work. Keeping them separate keeps the bundle and the frame budget honest.
- 03
A brief builder, not a contact form
The inquiry flow assembles a structured brief and hands it to email or WhatsApp. No backend, nothing to leak, and the message arrives already useful.
- 04
Degrades without excuses
Static output, AA contrast throughout, a full reduced-motion path that swaps the pinned track for a stack, and no horizontal overflow at any width.