StealThis .dev
Pages Hard

Portfolio — 3D / Interactive Portfolio

A full one-page designer portfolio in an immersive 3D, interactive style built with pure CSS 3D transforms and vanilla JavaScript, no WebGL or libraries. A dark neon stage with a perspective grid floor, drifting glows, a perpetually rotating hero cube ringed by orbiting bands, and tilt-on-hover project cards that compute rotateX and rotateY from the pointer with a moving glare and parallaxed depth layers. The hero is gyroscope-friendly on phones, and animated counters, skill bars, scroll reveals, and a validated contact form complete the experience.

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

Code

3D / Interactive Portfolio

A complete single-page portfolio for the fictional spatial product designer Maya Okafor, re-skinned into an immersive 3D theme. The whole scene is built from CSS 3D transforms only — no WebGL, no libraries. A perspective grid floor, two drifting neon glows, and a fine noise layer set a dark, display-type mood, while the hero pairs a depth-driven headline with a perpetually rotating cube wrapped in two orbiting rings. The same content as the neutral primitives — hero, work, about, experience, skills, and contact — is composed here as interactive cards that respond to depth and movement.

The signature interaction is pointer-driven tilt. Every data-tilt surface (project cards, the portrait, the contact panel, the hero stage) computes rotateX/rotateY from the mouse position in real time, adds a glare highlight that tracks the cursor, and parallaxes its inner layers along the z-axis so artwork lifts toward you. On phones the hero cube also reacts to the device gyroscope. Keyboard users get a gentle tilt on focus, and project links, the back-to-top button, and the contact form are all fully operable without a mouse.

Supporting interactions round it out: a scroll progress bar, IntersectionObserver reveals, animated stat counters, fill-on-view skill bars, toast feedback on the fictional links, smooth in-page navigation, and a client-side validated contact form. The layout collapses gracefully from two columns to one down to roughly 360px, and a prefers-reduced-motion query disables every rotation, parallax, and float so the page stays calm and readable for visitors who ask for it.

Illustrative portfolio — fictional person and projects.