Skip to content
WebDev Path

Responsive landing page

Build a landing page for a real or made-up product: a hero, features, pricing, testimonials and a contact form.

  • HTML
  • CSS
  • Git

The project for module 1, Foundations. It proves: layout, responsive design, accessibility and deployment.

Who it's for

  • As a visitor, I understand what the product does in 5 seconds
  • As a phone user, I can read and use every section
  • As a keyboard user, I can reach the form and submit it

Pick your version

Choose one theme, or your own idea. Same skills, but your portfolio won't look like everyone else's.

  1. Option A

    A local café or bakery with a menu and opening hours

  2. Option B

    A mobile app launch page with app store buttons

  3. Option C

    A freelancer offering one service with 3 price plans

Warm up first

Two short builds that practise the skills this project needs. About 2.5 hours in total.

Profile card

1 h

Build a card with your photo, name, short bio and 3 social links.

  1. Write the HTML with an img, h2, p and a list of links
  2. Center the card on the page with Flexbox
  3. Add a border radius, shadow and hover state on the links
  4. Make it fit a 360 px screen

Done when: The card looks right on a phone and every link has a visible keyboard focus.

  • HTML
  • Flexbox
  • Focus styles

Pricing table

1.5 h

Build three pricing plans side by side, with the middle one highlighted.

  1. Write each plan as an article with a heading, price, feature list and button
  2. Lay the plans out with CSS Grid
  3. Highlight the recommended plan with a badge and a border
  4. Stack the plans in one column on phones

Done when: The layout switches from 3 columns to 1 without any sideways scrolling.

  • CSS Grid
  • Responsive design
  • Visual hierarchy

Build plan

7 steps in order. Each one ends with a clear check, so you always know when to move on.

  1. Plan the page

    Pick your product, write the real text for every section and sketch the layout on paper for phone and desktop.

    Done when: You have all the copy in a text file and two sketches.

    Stuck? Show a hint

    Write words first. A design built around lorem ipsum breaks when real text arrives.

  2. Write the HTML only

    Build every section with semantic tags: header, nav, main, section, footer. No CSS yet.

    Done when: The page reads in a sensible order with CSS turned off, and there is exactly one h1.

    Stuck? Show a hint

    Use headings in order (h1, then h2 per section). Screen readers use them to jump around.

  3. Style mobile first

    Add CSS for a 360 px wide screen: spacing, colors, fonts, buttons.

    Done when: Nothing scrolls sideways at 360 px and every button is at least 44 px tall.

    Stuck? Show a hint

    Set CSS variables for colors and spacing at the top so the whole page stays consistent.

  4. Grow to desktop

    Add breakpoints so features and pricing become rows and columns on wider screens.

    Done when: The page looks intentional at 768 px and 1440 px, not just stretched.

    Stuck? Show a hint

    Use CSS Grid with repeat(auto-fit, minmax(260px, 1fr)) for cards. It often needs no media query.

  5. Make the form accessible

    Build the contact form with labels, required fields and clear error messages.

    Done when: You can fill and submit it using only the keyboard.

    Stuck? Show a hint

    Every input needs a label with a matching for/id. Placeholder text is not a label.

  6. Test and fix

    Run Lighthouse in Chrome DevTools and fix what it reports.

    Done when: Accessibility scores 90 or more.

    Stuck? Show a hint

    Most points are lost on color contrast and images without alt text.

  7. Ship it

    Push to GitHub and deploy on GitHub Pages or Vercel. Write a short README with a screenshot.

    Done when: A live URL works on your phone.

    Stuck? Show a hint

    Add the live link to the GitHub repo's About box so recruiters see it first.

Requirements

Tick each one when it's done. Saved to your account.

Go further

Optional. One of these makes your project stand out from the tutorial version.

  • Dark mode with prefers-color-scheme
  • Subtle CSS animations that respect reduced motion

Starter kit

Free APIs, tools and docs for this project.

Submit

Tick the 5 remaining requirements to submit.