Project: Responsive Portfolio
The module project: style your profile page into a polished, responsive portfolio — box model, flex/grid, custom properties, media queries, and motion.
Everything from this module converges on one page: your portfolio. You are styling the profile page from Module 2 — or a fresh equivalent structure; the tests only check the CSS and the page's structure hooks.
The brief
- Foundation: universal
box-sizing: border-box; afont-familystack onbody;line-height≥ 1.5. - Theme:
--brand,--accent, and--spacecustom properties on:root, used by at least three rules. - Layout: the page uses flex or grid for its main structure — a nav that is flex; sections that sit in a grid (or stack single-column on mobile via grid).
- Responsive: mobile-first — base rules for phones,
@media (min-width: 640px)enhancing the layout for larger screens. - Polish:
border-radiuson cards; padding that shows the box model is under control; links keep affordance; focus styles present. - Motion: a transition on at least one interactive element, plus a
prefers-reduced-motionblock.
Why these requirements
Each one maps to a lesson you completed. A real client brief reads exactly like this — verifiable outcomes, not vibes. Work through the list top to bottom, run the tests, and read every failure as a pointer back to its lesson.
What good looks like
Not "matches a screenshot" — the design is yours. Good means: resize the window from phone to desktop and nothing breaks, overlaps, or overflows; every interactive element responds to keyboard; the palette is consistent because it comes from variables.
Next module: JavaScript Foundations — the page starts to do things.