HTML Complete Course
Build semantic, accessible web pages from your first file to native dialogs, safe embeds and fast loading.
- Beginner
- 25 lessons
- 10 hours
Build semantic, accessible web pages from your first file to native dialogs, safe embeds and fast loading.
Style and lay out modern websites, from your first rule to cascade layers, Grid and scroll-driven animation.
Build pages that work on every screen, from a 320 pixel phone to a wide desktop monitor.
Build and test websites that disabled people can use, from alt text to WCAG 2.2 audits.
Learn modern JavaScript from your first script to closures, async code, modules and the event loop, with projects you build as you go.
Media query syntax, range syntax, and querying user preferences such as dark mode and reduced motion.
Add skip links, move focus deliberately after actions, and avoid focus traps and lost focus.
Serve the right image size and format for each screen with srcset, sizes and the picture element.
How assistive technology names controls, the naming order, and fixing unlabelled icon buttons.
Scale type and spacing smoothly between screen sizes with clamp(), and keep text zoomable.
Labels, hints, required fields, grouped controls and error messages that everyone can find and fix.
Intrinsic layouts that adapt by themselves with flex-wrap, auto-fit and minmax().
What ARIA does and does not do, roles, states and properties, and why native HTML comes first.
Find breakpoints where the layout breaks instead of copying device widths, and how many you really need.
Links navigate and buttons act: the difference for keyboard and screen reader users, and fixing div buttons.
Keep tables, code blocks and embeds usable on small screens without breaking the page.
Device emulation, zoom testing at 200 and 400 percent, real-device testing and common responsive bugs.
Make components respond to their container instead of the viewport, with container-type, @container and cq units.
Menus that adapt from desktop to mobile: priority, off-canvas and disclosure patterns, with accessibility built in.
Why 100vh breaks on mobile, and how small, large and dynamic viewport units fix full-height layouts.
Unique property keys with Symbol, and customising language behaviour with Symbol.iterator and friends.
When to use Map and Set instead of objects and arrays, and what the weak versions are for.
Cancel work with AbortController, add timeouts, retry with exponential backoff and avoid race conditions.
Pattern syntax, flags, testing and replacing, named groups, and when a regex is the wrong tool.
API design, defaults and options objects, error messages, types, versioning and publishing to npm.