StealThis .dev
Pages Medium

Portfolio — Playful / Illustrated Portfolio

A full one-page designer portfolio dressed in a bright, hand-drawn illustrated style — sunshine and bubblegum palette, rounded Baloo display type and a friendly Nunito body. A waving SVG avatar, wobbly underlines, floating doodles, sticker-like tilted project cards, blobby shapes and dashed doodle dividers give it real character. Vanilla JS drives a project filter, bouncy card pokes, animated stat counters, a scroll-spy nav, copy-to-clipboard email and a validated contact form.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

Playful / Illustrated Portfolio

A complete single-page portfolio for fictional product designer Maya Okafor, re-skinned in a bright, illustrated, hand-drawn style. The hero pairs a waving SVG avatar floating over morphing blobs with a rounded Baloo headline, a wobbly hand-doodled underline and a peel-off “open to work” sticker. Doodle squiggles, stars and dashed circles drift in the background, and every section — selected work, about, the squiggly career path, skills and contact — is rebuilt from the same content with sticker badges, tilted cards and dashed doodle dividers. The palette is sunshine yellow, bubblegum pink and soft pastel blobs on warm cream; all imagery is pure CSS gradients and inline SVG.

Every interaction is real vanilla JS. The Selected Works grid filters by type — Everything, Mobile, Brand, Web, Just for fun — toggling aria-pressed, showing a friendly empty state with a reset link and announcing the count via a toast. Cards do a springy jelly “poke” on click or keyboard activation; the hero stats count up with an IntersectionObserver; the avatar waves on hover, click and page load; a scroll-spy underlines the current nav item; the email copies to the clipboard with an execCommand fallback; and the contact form validates inline with cheerful error messages before confirming with a personalised toast.

The layout collapses gracefully behind a hamburger menu: the hero stacks and centers, the card grid steps from three to two to one column (cards un-tilt on the smallest screens), the about section reorders the portrait above the prose, and the contact form folds to a single column down to ~360px. It keeps WCAG AA contrast, visible :focus-visible rings, a skip link, keyboard-operable cards and chips, and fully honors prefers-reduced-motion.

Illustrative portfolio — fictional person and projects.