Homework

Homework — decide and defend

Homework — no code this time. The skill this lesson builds is judgement, so the exercise is to judge.

Decide and defend

For each project below, pick one of the three approaches — a component framework (Bootstrap-style), utility-first (Tailwind-style), or hand-written CSS — and defend the choice in one or two sentences. There are no correct answers, only well-argued ones; a good defence names what you're buying and what you're paying.

  1. A startup's internal admin dashboard. Three developers, shipping in two weeks, nobody on the team is a designer.
  2. A design studio's own portfolio site. A distinctive, memorable look is the product.
  3. A personal blog — one long page, mostly text, and you care that it loads instantly on a phone on a weak connection.
  4. A large e-commerce site, a team of fifteen, built over two years, where every page must look consistent and new developers join constantly.

Write your pick and your reason for each. If you can argue the opposite choice too, better — that's the sign you actually understand the trade rather than having a favourite.

What you built, and where it goes next

Step back and look at what these seven lessons produced. Starting from a blank file, you built the entire face of a real application — Cosmos — using nothing but HTML and CSS:

  • a semantic document a screen reader and a search engine can both read;
  • a themeable palette where dark and light cost one attribute;
  • an accessible page with a skip link, real buttons, honest alt text, and a keyboard focus ring;
  • a responsive gallery that reflows on its own, tuned at the edges by a single media query;
  • a validating form that checks its input before submit;
  • and the judgement to decide whether a framework belongs on your next project.

And it doesn't stop here. The stylesheet you wrote is the handoff: the client-side track takes this exact style.css forward unchanged and rebuilds index.html as a living JavaScript application. There, the pictures are fetched from NASA in real time instead of hardcoded; the favourite button actually saves to a collection; the contact form actually sends. Everything that stopped at "a static page can't do this" — the empty gallery that JavaScript fills, the ♡ that does nothing, the Send that goes nowhere — is exactly where that track begins.

You built the part that has to be right before any of that is worth doing: the structure, the style, and the accessibility. The behaviour comes next — on top of the foundation you now understand line by line.