bylx.dev / work / bylx-dev

bylx.dev — Case Study

← back
  • HTML
  • CSS
  • Vanilla JS
  • PHP
bylx.dev: the pixel-art desk, with the Win98 window open on a Paint file and the stack icons beside it.

The question

Developer portfolios all look the same: hero, grid, footer. Mine had to prove something instead of claiming it. Could a pixel-art desk — where Rio de Janeiro and Lisbon share a window — carry an entire portfolio, built with nothing but the fundamentals?

What I built

An interactive scene where every object does what it looks like it should: the camera opens the gallery, the phone opens the contact form, the MP3 player opens a working player, the mouse runs from your cursor, and the keyboard lights up as you type.

  • Pixel-art parallax hero on a 64×64 grid with layered PNGs
  • Object hotspots with sprite-sheet and steps() hover animations
  • Custom pixel cursor with sakura-petal trail
  • Working MP3 player with a 17-track lo-fi playlist
  • PHP contact form with honeypot and graceful non-JS fallback
  • Keyboard-accessible case-study modals

Technical decisions

Vanilla ES modules — parallax, cursor, audio, modals and forms are isolated modules with a single init each. There is nothing to hydrate, so a framework would only add weight.

Coordinate-driven scene — layers map pixel-grid references to CSS custom properties; the whole parallax is one rAF listener writing --move-x and --move-y.

CSS partials with explicit import order — tokens → base → cursor → hero → sections → responsive. The design system lives in :root.

steps() everywhere — easing is quantised so motion stays pixel-crisp instead of smoothly un-retro.

What I learned

Constraints are a design system. Refusing frameworks forced clean module boundaries; refusing smooth easing forced intentional animation. And accessibility inside a fully custom scene — focus states, aria labels, a form that works without JS — is where the real engineering happened.

Code on GitHub ↗

More work

Dark28 irs-pt respondaja.click konochan.pt luparoad.com

bylx.dev

  • Instagram
  • GitHub

© 2026 Aline Lopes Xavier · Built with vanilla HTML, CSS & JS.