Skip to content
Development FE—01

Markup without magic

A course about why a page looks the way it does. We take the flow, the box model, flex and grid down to their causes rather than recipes, and build real layouts from the «Interfaces in Figma» course.

11 modules29 lessons
22 hoursof video and practice
From scratchrequirements
Foreveraccess and updates
Format
€42 one-off payment
Place the order Open the programme
Payment by card or through PayPal
Access opens immediately after payment
14-day refund, if you have not started watching
Outcome

What you will be able to do

Build a page from a design without nudging things by eye
Explain why a block ended up exactly that size
Assemble complex layouts with flexbox and grid
Write one set of markup for phone, tablet and desktop
Check a page with the keyboard and with a screen reader
Publish a finished page online and check the result
Programme

11 modules, one project

Press a module to open its lessons

01 How a page is built3 lessons · 2 h 16 minOpen

We start with a file and a browser. We look at how tags fold into the document tree and why semantics decide what a search engine and a screen reader will hear.

Your first page: the file, the tags and the browser view
Semantic tags: header, main, section, article
Practice: marking up the home page from the design
02 Selectors, the cascade and the box model3 lessons · 2 h 07 min

Where the browser gets the final value of a property: selector, specificity, inheritance. Then we work out a block's width by hand and see where padding and borders go.

Adding styles: selectors and specificity
Inheritance, default values and resetting styles
The box model: content-box, border-box and the real width
03 Flow and positioning3 lessons · 2 h 06 min

Normal flow is the default state, and most oddities are explained by it. We cover margin collapsing, the four kinds of positioning and the stacking order.

Normal flow: block and inline elements
Margin collapsing: why it is not a bug
relative, absolute, fixed, sticky and the stacking context
04 Flexbox3 lessons · 2 h 24 min

Flexbox for rows and columns. We learn to read an element's behaviour through the axes, the free space and the three growth properties, instead of guessing values.

The main and cross axes: how flex shares out space
grow, shrink, basis: where an element's width comes from
Practice: a header, a row of cards and a footer
05 CSS Grid3 lessons · 2 h 20 min

Grid for two-dimensional layouts: a catalogue, a gallery, a complex header. We define rows and columns, name areas and build the page without extra wrappers.

Rows, columns and the fr unit
Areas, auto-placement and minmax
Practice: the product catalogue grid
06 Typography and fonts3 lessons · 2 h 06 min

We move the typeface from the design onto the page: file formats, weights, fallbacks. We cover size, line height and line length — readability depends on them.

Loading a font: formats, weights, styles
Size, line height and line length
Practice: typography of the product page
07 Responsiveness and breakpoints3 lessons · 2 h 10 min

Breakpoints come from the design, not from a list of popular devices. Flexible sizes let you write fewer media queries and get a predictable result at any width.

Media queries and choosing breakpoints from the design
Flexible sizes: percentages, clamp, min and max
Practice: the page on phone, tablet and desktop
08 States and transitions2 lessons · 1 h 33 min

Hover, focus, press, disabled — each one switches on by its own rules. We add transitions so the page stays fast even on a weak device.

hover, focus, active, disabled: when the browser applies them
transition and transform: animation that does not stutter
09 Accessibility2 lessons · 1 h 42 min

We go through the page with the keyboard only, check text contrast and listen to what the screen reader says. Most of the fixes turn out to be simple once you know what to look for.

Keyboard and focus: tab order and a visible ring
Contrast, alternative text and what a screen reader reads
10 Forms2 lessons · 1 h 35 min

A form is where markup meets the user's data. We tie the field to its label, show errors clearly and avoid breaking the browser's built-in behaviour.

Fields, label and grouping: marking up a form
Validation, error states and messages
11 Assembly and publishing2 lessons · 1 h 35 min

The final module: we lay out files, fonts and images in folders, go through the pre-publish checklist and put the finished page online step by step.

Organising files, fonts and images in a project
The pre-publish check and putting the page online
Materials

What you get

29 lessons with transcripts

Videos with timecodes and a written version: you can return to the right spot without rewatching the whole lesson.

The designs from «Interfaces in Figma»

The same files the school's designers learn on: you build a real layout, not a simplified teaching picture.

Source files for every module

A starter template and a finished solution: compare your code with the reference and find the point where the behaviour diverged.

A pre-publish checklist

Markup, contrast, keyboard behaviour and responsiveness — point by point, so nothing is forgotten before you publish.

Dediu Pavel
Course author

Dediu Pavel

Teaches the «Web development» direction at Forma. The full list of their courses is on their page.

All courses by this author

The whole first module is open

Watch the lessons of the first module and the first task. If the format does not suit you, you have lost nothing.