Designing My Portfolio with Just HTML, CSS, and JS
My main portfolio is intentionally old-school: pure HTML, CSS, and vanilla JavaScript.
I wanted to:
- Prove I can design a site without leaning on frameworks.
- Control every piece of markup for good semantics.
- Experiment with newer CSS features (like
@view-transitionandfont-size-adjust).
What the portfolio includes
- A sticky header with animated hover underlines
- A theme toggle with light and dark modes
- Custom elements like
<profile-card>and<button-container> - Layouts tuned with Grid and Flexbox for different screen sizes
Even though this Astro blog is a separate project, I’m keeping them stylistically consistent:
- Same font choices
- Similar header/footer patterns
- Shared design language: minimal, clean, and slightly playful
Why make a second site with Astro?
Astro lets me take the content-heavy part of who I am (projects, notes, reflections) and turn it into a static site where all the dynamic bits happen at build time.
This blog is where I can write long-form content without worrying about wiring up everything manually in HTML every time.