A GitHub concept that lets you drag across the quiet weeks in your contribution graph and mark them as time away, with a short note on why.
Lab
Prototypes
Small product ideas and interaction studies, built to production quality.
All prototypes
15, newest firstA rebuild of the clock customisation in Apple's Homeview footage, matched frame by frame, with numerals that spring between styles on a variable font's weight axis.
A Google Calendar concept that turns a recurring meeting into Calendar's own email dialog, pre-written from the agenda, and cancels that week's meeting when you send.
A WhatsApp concept where the voice note's transcript becomes the scrubber. Tap any word to play from it, and the words light up as it plays.
A Spotify concept that holds your album when you start a podcast, with a stacked mini player and crossfaded audio that resumes on the exact second you left.
A Spotify concept that marks a song's best part on the scrubber, with a one-tap jump that dips the volume so the skip doesn't sound like a cut.
A file upload that stays clear and recoverable through slow networks, offline pauses, and failed transfers, with motion tuned to every state change.
A what-if exploration for iPhone Duo that unifies Wi-Fi, cellular, weak signal, no-internet, and offline states through SVG geometry.
A frame-tuned status icon animation that transforms cellular, Wi-Fi, and battery states through continuous SVG motion.
Responsive SVG icon morphs exploring path interpolation, spring motion, state transitions, and accessible interaction.
A tactile playlist queue with spring reordering, boundary feedback, and accessible keyboard controls.
A verification review flow that keeps status, actions, and focus clear across mouse and keyboard interactions.
A conversion flow that makes rates, fees, and the final amount clear before commitment.
A fluid transition from a responsive image grid into a focused detail view, tuned around layout continuity.
A tactile photo browser with gesture-led navigation, predictable keyboard behaviour, and clear spatial position.
I share new ones on X (opens in a new tab) as I build them.