Alex Rivera

This Portfolio Site

Weeks 2–6 · HTML, CSS, JavaScript

The site you're looking at right now. Built progressively across five weeks, starting with bare HTML structure and adding styling, interactivity, and an API integration one checkpoint at a time.

The constraint of building it incrementally — rather than generating it all at once — turned out to be the most useful part. Every time I added something new, I already understood the layer underneath it.

What I learned: Semantic HTML, external CSS and JS files, mobile-first responsive design, and how to have a useful conversation with an AI rather than just asking it to do everything.

Responsive Navigation

Week 4 · JavaScript, Accessibility

A hamburger menu that collapses on mobile screens and expands into a horizontal nav on desktop. My first real JavaScript feature — it took longer than I expected because I kept breaking the ARIA attributes.

What I learned: Event listeners, toggling CSS classes from JS, aria-expanded, and why accessibility attributes need to be kept in sync with the visible state of the UI.

Dark / Light Theme Toggle

Week 4 · JavaScript, CSS Custom Properties

A theme toggle that switches between light and dark mode and remembers your preference using localStorage. The preference persists across all pages and browser sessions.

What I learned: CSS custom properties (variables), the data- attribute pattern for theming, and localStorage for persisting simple user preferences.

Daily Quote Fetcher

Week 5 · JavaScript, Fetch API

Fetches a random quote from the DummyJSON API and displays it on the Daily Quote page. Includes a loading state while the request is in flight and a clear error message if it fails.

What I learned: async/await, handling network errors gracefully, updating the DOM with fetched data, and why you should never assume an API will always respond successfully.