Week 6: Advanced Layouts: CSS Grid, Reusable Sections and Design Systems
Goal: Move beyond basic pages and build a polished, reusable website layout.
Build this week: Create a polished landing page with hero, cards, feature sections and call-to-action blocks.
Skills: CSS Grid, Flexbox, Design system, Reusable classes, Landing page sections, Responsive layouts
What she should understand
A professional-looking website usually has reusable design pieces: buttons, cards, sections, containers, grids and call-to-action blocks. Once she creates good reusable classes, building new pages becomes much faster.
Step-by-step build
- Create a new page called advanced-home.html.
- Add a hero section with a heading, short paragraph and button.
- Add a three-card grid.
- Add a two-column feature section.
- Add a call-to-action box at the bottom.
- Add responsive CSS so the layout becomes one column on mobile.
- Upload and test on desktop and phone.
HTML layout
<main class="container">
<section class="hero-section">
<div>
<p class="eyebrow">Project Vera Advanced</p>
<h1>Build useful websites with calculators and smart tools</h1>
<p>This practice page uses reusable sections, cards and buttons.</p>
<a class="button" href="tools.html">Explore tools</a>
</div>
</section>
<section class="card-grid">
<article class="feature-card">
<h2>Learn</h2>
<p>Understand how websites are structured.</p>
</article>
<article class="feature-card">
<h2>Build</h2>
<p>Create calculators, quizzes and useful pages.</p>
</article>
<article class="feature-card">
<h2>Improve</h2>
<p>Optimise pages for clarity, speed and search engines.</p>
</article>
</section>
<section class="split-section">
<div>
<h2>Reusable sections save time</h2>
<p>Instead of starting from scratch, reuse good blocks.</p>
</div>
<div class="highlight-box">
<p>Pro website builders create systems, not just single pages.</p>
</div>
</section>
</main>
Advanced CSS
.container {
max-width: 1100px;
margin: auto;
padding: 24px;
}
.hero-section {
background: linear-gradient(135deg, #e8f1ff, #e7fff5);
border-radius: 24px;
padding: 40px;
margin-bottom: 24px;
}
.eyebrow {
text-transform: uppercase;
letter-spacing: 0.08em;
font-weight: bold;
color: #2563eb;
}
.card-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 18px;
}
.feature-card,
.highlight-box {
background: white;
border: 1px solid #d9e2ec;
border-radius: 16px;
padding: 20px;
}
.split-section {
display: grid;
grid-template-columns: 1.2fr 0.8fr;
gap: 20px;
margin-top: 24px;
align-items: center;
}
@media (max-width: 800px) {
.card-grid,
.split-section {
grid-template-columns: 1fr;
}
}
Design system task
Create a mini design system by writing down:
- Primary colour
- Background colour
- Button style
- Card style
- Page width
- Heading style
AI design prompt
Prompt:
I am creating a beginner-friendly website with HTML and CSS. Please help me create a simple design system with reusable CSS classes for buttons, cards, grids, hero sections and call-to-action boxes. Keep it easy to understand and mobile friendly.
I am creating a beginner-friendly website with HTML and CSS. Please help me create a simple design system with reusable CSS classes for buttons, cards, grids, hero sections and call-to-action boxes. Keep it easy to understand and mobile friendly.
Extension task
Create a second landing page using the same CSS but a different topic. This proves the CSS is reusable.