All 4 HTML lessons combined into 4 real pages. No CSS yet — pure structure, semantics, and content. Each page should be deployable right now.
4
PROJECTS
~2h
BUILD TIME
HTML
ONLY
✅
PORTFOLIO READY
LESSON 01
Intro to HTML
LESSON 02
Elements & Semantics
LESSON 03
Links, Images & Media
LESSON 04
Forms, Tables & Lists
💼
PROJECT 01 OF 04
Personal Portfolio Page
A complete personal webpage with semantic structure, navigation, profile image, about section, skills, projects, and contact info. Pure HTML — no styling needed to make it meaningful.
This page works and is fully accessible without a single line of CSS. In Phase 2, you'll add a stylesheet that transforms this identical HTML into a beautiful, professional portfolio. The fact that it works now proves your HTML structure is solid.
🍕
PROJECT 02 OF 04
Restaurant Menu Page
A complete restaurant website with logo, navigation, hero section, categorised menu using description lists, table for pricing specials, image gallery with figures, and a reservation form.
Header with restaurant name + nav (Menu, Gallery, Reserve)
Hero <section> with h2 tagline and description paragraph
Menu section: 3 <dl> groups (Starters, Mains, Desserts) with dt=dish name, dd=description + price
Specials table: weekday, dish, original price, special price — with colspan for header
Gallery: 6 <figure> elements with Picsum images and figcaptions
Reservation form: name, email, date, time, number guests (type="number" min="1" max="20"), special requests (textarea)
🧠 Concepts Used
Description lists (<dl>, <dt>, <dd>)
Table with thead/tbody/tfoot and colspan
Figure gallery with figcaption
Form with fieldset grouping
type="number", type="time", type="date"
— and £ entities
menu.html — Key Sections
HTML
<!-- Menu section with description lists --><sectionid="menu"><h2>Our Menu</h2><article><h3>🥗 Starters</h3><dl><dt>Crispy Samosa (2 pcs)</dt><dd>Flaky pastry filled with spiced potato — <strong>PKR 250</strong></dd><dt>Chicken Tikka Starter</dt><dd>Tender marinated chicken bites — <strong>PKR 450</strong></dd></dl></article></section><!-- Specials table --><sectionid="specials"><h2>Weekly Specials</h2><table><caption>Lunch deals — Mon to Fri</caption><thead><tr><thscope="col">Day</th><thscope="col">Special Dish</th><thscope="col">Price</th></tr></thead><tbody><tr><thscope="row">Monday</th><td>Karahi Chicken + Naan</td><td>PKR 650</td></tr><tr><thscope="row">Tuesday</th><td>Biryani Combo</td><td>PKR 550</td></tr></tbody></table></section><!-- Reservation form --><sectionid="reserve"><h2>Book a Table</h2><formaction="/reserve"method="POST"><fieldset><legend>Your Details</legend><labelfor="rname">Full Name</label><inputtype="text"id="rname"name="name"required><labelfor="rdate">Date</label><inputtype="date"id="rdate"name="date"required><labelfor="rtime">Time</label><inputtype="time"id="rtime"name="time"required><labelfor="guests">Number of Guests</label><inputtype="number"id="guests"name="guests"min="1"max="20"value="2"><labelfor="notes">Special Requests</label><textareaid="notes"name="notes"rows="3"></textarea></fieldset><buttontype="submit">Reserve Table</button></form></section>
✨
Description lists are perfect for menus, FAQs, and glossaries
The <dl>/<dt>/<dd> pattern is semantically correct for anything that pairs a term with its definition or description — menus, dictionaries, product specs, FAQ questions and answers. Screen readers understand this pairing natively.
📚
PROJECT 03 OF 04
Wikipedia-Style Article
An encyclopedia-style article on a topic of your choice. Practise long-form semantic HTML with a table of contents, multiple sections, blockquotes, code samples, footnotes, and an information table.
long-form contenttable of contentsblockquote + citenested listsdata table
✅ Requirements
Table of Contents as a <nav> with ordered list linking to section IDs
At least 4 <section> elements with h2, h3, paragraphs
At least 2 <blockquote> with <cite>
At least 1 <figure> with image and caption
An "Info Box" table (2 columns: property | value)
Inline <code> and at least one entity (—, ™, etc.)
<aside> with "See Also" related links
🧠 Topic Ideas
Python (the language) — history, features, use cases
HTML5 — what changed from HTML4
The Internet — ARPANET, TCP/IP, WWW
Lahore — history, culture, landmarks
A sport you love — rules, history, tournaments
Any subject you'd actually read about!
✨
This project tests every HTML concept from Phase 1
A real Wikipedia article uses almost every HTML element — headings, paragraphs, links, lists, tables, figures, blockquotes, code, articles, sections, asides, nav. Building one consolidates everything. Choose a topic you genuinely find interesting — you'll write better content.
📝
PROJECT 04 OF 04
Job Application Form
A comprehensive, fully-accessible job application form using every form element type learned. This is the most form-heavy project — covering all input types, validation attributes, select menus, and file upload.
all input typesfieldset groupsselect + optgroupradio + checkboxfile uploadvalidation attributes
✅ Fieldset Groups
Personal Details: full name, email, phone (tel), DOB, city
Position Applied: role (radio: Frontend/Backend/Fullstack), experience (select: 0-1/1-3/3-5/5+ years)
Skills: checkboxes for HTML, CSS, JS, Python, SQL, React
Documents: CV file upload (accept=".pdf,.doc"), Cover Letter (textarea)
🧠 Validation Rules
Full name: required, minlength="3"
Email: type="email", required
Phone: type="tel", required
GPA: type="number" min="0" max="4.0" step="0.01"
Position radios: required on the group
CV file: accept=".pdf,.doc,.docx"
Cover letter: maxlength="1000", rows="6"
✨
Try submitting with missing required fields
Open your form in a browser, leave required fields empty, and click submit. The browser shows built-in validation errors — red outlines, tooltip messages — all without a single line of JavaScript. This is HTML5 constraint validation working for free. Real-world apps layer JavaScript validation on top, but this HTML-only validation is always the baseline.
🎨
Phase 1 Complete — Time for CSS!
Your HTML pages have great structure. Now CSS will transform them into visually stunning, professional websites. Every property you learn in Phase 2 will apply directly to these HTML files.
HTML5 Structure ✓Semantic Elements ✓Links & Images ✓Forms & Tables ✓Lists (ul/ol/dl) ✓Accessibility ✓4 Real Projects ✓