HTML
Semantic structure first: landmarks, heading order and real elements before any ARIA. It turns out most accessibility problems are just HTML problems.
I'm working through the fundamentals properly — mostly HTML, CSS and JavaScript, written by hand so I actually understand what each line does. This site is both the record and the practice.
A short list, kept short on purpose. Depth beats a longer list of logos I can't talk about.
Semantic structure first: landmarks, heading order and real elements before any ARIA. It turns out most accessibility problems are just HTML problems.
Custom properties for theming, grid and flexbox for layout,
clamp() for fluid type. Dark mode driven by one
color-scheme declaration.
Just enough to enhance: an accessible menu, a scroll observer, small conveniences. Everything still works with it switched off.
Keyboard paths that actually work, visible focus, a skip link,
and respecting prefers-reduced-motion. Not an
afterthought, just part of writing it.
Small frequent commits with messages that explain the why, so I can read my own history later and still understand it.
A text editor, a browser's inspector, and the platform. No bundler — this site is served straight from a folder.
Small on purpose. Each one exists to prove I understand something I didn't before.
001
This site. A rebuild of my first attempt — the one that taught me why a hamburger menu needs a real button. Hand-written HTML, CSS and about a hundred lines of JavaScript. No dependencies, no build step, deployable by dragging a folder somewhere.
HTML CSS Vanilla JS Static
All projects002
The next one is taking shape. Rather than pad this page with placeholders, I'd rather it stay empty until there's something real to put here.
Building
I'm always happy to compare notes, review a beginner's project, or explain something badly twice until it lands.