Skip to main content

Responsive Design for Beginners

30h 51s
English
Paid

Have you mastered the basics of HTML and CSS? If so, you're probably wondering what comes next. The idea of starting a new website project from scratch can be intimidating, especially when you find yourself spending hours wrestling with baffling CSS bugs instead of writing code. How do you even begin?

Moving Beyond the Basics

Imagine a scenario where...

  1. You aren't staring at an empty VS Code editor because you know how to start and which files to create.
  2. You can transform a design from Figma into a website that looks fantastic on all devices.
  3. You use Sass capabilities: modules, mixins, variables, and much more.
  4. You have a clear understanding of when to use flexbox versus grid.
  5. You organize SCSS files in a way that avoids "spaghetti code," making them understandable months later.
  6. Most importantly, you comprehend how CSS works, including its quirky and sometimes frustrating features.

Sounds great, but how do you get there?

Your Mentor: Jess Chan

Hello! My name is Jess Chan, and in this course, I will guide you on how a professional developer thinks. Rather than offering disjointed lessons, you'll be led step-by-step through the entire process—from a Figma layout to a finished site with HTML, SCSS, and JavaScript. Most importantly, I'll explain why certain decisions are made, akin to having a senior developer by your side, commenting on the entire process.

My goal is for you to gain confidence in CSS and feel at ease tackling any project, even if tasks are new to you.

Course Levels and Content

BASIC Level (22 hours)

This level includes 17 hours of introductory material and 5 hours of practice, ideal for beginners.

BASIC Topics:

  • Semantic HTML tags
  • Code organization: BEM, Sass partials, mixins, variables, utility classes
  • Understanding the CSS cascade
  • Document flow: inline, block, inline-block, and their features
  • Flexbox and grid layouts
  • CSS units: px, em, rem, %, vw, ch
  • Responsive typography using clamp()
  • CSS variables (custom properties)
  • Responsive images with srcset and DPR
  • Working with SVG and inline-SVG
  • CSS animations: hover effects, transitions
  • Backgrounds with linear-gradient()
  • Math operations in CSS with calc()

PREMIUM Level (4 hours)

This level advances by building more complex site sections.

PREMIUM Topics:

  • Animated underlines and backgrounds for hover states
  • Advanced grid areas and named grid lines
  • Using SVG forms
  • Utilizing absolute positioning
  • Creating alternating blocks with nth-child
  • Pseudo-elements ::before and ::after
  • Advanced form styling

ULTIMATE Level (6 hours)

This final block introduces advanced techniques and JavaScript.

ULTIMATE Topics:

  • Building a responsive burger menu with animation and accessibility
  • Managing overlay contexts and z-index
  • Creating color themes using CSS variables
  • Crafting a block grid using grid, auto-fit, and minmax()
  • Overlapping elements with grid and absolute positioning
  • Handling images with object-fit and object-position
  • Effects with mix-blend-mode
  • Introduction to Node, npm, and package.json
  • Compiling Sass using Vite and JS modules

By the end of the course, you will have created a real responsive website based on a Figma layout, gaining experience comparable to the work of a professional front-end developer.

About the Author: Jess Chan

Jess Chan thumbnail

Hello! I am Jess Chan.

I create educational materials on YouTube for beginner web developers. Previously, I worked as a web developer for 8 years in advertising and marketing companies.

I am self-taught—I don't have a degree in computer science, and I didn't attend any coding bootcamps. The beginning was incredibly difficult: I often felt lost, spent hours searching for solutions on Google, and tried dozens of ways to fix errors.

Over time, I gained a better understanding of how CSS works and why it sometimes behaves in strange ways. That's how I became a specialist in turning design layouts into custom, responsive websites.

Watch Online 140 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 140 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Welcome! How to use this course
All Course Lessons (140)
#Lesson TitleDurationAccess
1
Welcome! How to use this course Demo
03:43
2
Setting up VS Code
08:22
3
Intro to Git and GitHub
21:34
4
Setting up project files
08:51
5
What is Sass?
04:37
6
VS Code Extensions
11:26
7
Sass partials
13:24
8
Sass variables and CSS custom properties
17:11
9
Responsive design
06:16
10
Sass and BEM
07:10
11
Building the responsive 2-column layout
21:04
12
Setting widths
18:00
13
Sass mixins
12:22
14
Using max-width media queries
10:00
15
Order of media queries
08:09
16
Responsive typography
11:34
17
Why you shouldn't use pixels (usually)
15:19
18
Sass functions
10:10
19
Using the rem() function
20:07
20
Why I use em units in media queries
07:10
21
Nesting and BEM
04:43
22
Default browser styles
08:32
23
BEM modifiers and Sass placeholders
11:10
24
Helper and utility classes
09:17
25
Figma design
15:20
26
GitHub commits
03:47
27
Adding the favicon
05:37
28
My VS Code setup for screencasting
03:32
29
Study the design
04:49
30
Colors
11:45
31
Wrapper styles
12:45
32
H-tags
06:36
33
Clamp() function and responsive typography
15:02
34
Responsive typography and media queries
13:26
35
Semantic HTML tags
19:01
36
Design and exporting logo
04:43
37
Creating a skip link
09:15
38
Writing the HTML markup
20:03
39
Styling the navigation links
21:25
40
Layout with flexbox
21:06
41
Adding gap with flexbox
06:28
42
Spacing and CSS flow layout
19:16
43
Hover states
07:52
44
Mobile styles
13:00
45
Prep and HTML markup
16:46
46
Setting up styles
14:48
47
Unicorn image
16:52
48
Header styles
12:14
49
Paragraph styles
21:18
50
Unicorn image spacing
13:48
51
Button styles
11:31
52
Button sizing
15:16
53
Button spacing
12:50
54
Button hover states
15:56
55
Flexbox mobile layout
17:22
56
Flexbox desktop layout
15:40
57
Sizing the flex children
18:28
58
Flex-grow and flex-basis
10:48
59
Optional: Grid mobile layout
08:54
60
Optional: Grid desktop layout
12:32
61
Double-checking the styles
29:10
62
HTML markup
09:48
63
Adding the styles
17:09
64
Flexbox responsive layout
32:56
65
Optional: Flexbox intrinsic layout
14:33
66
HTML markup
09:32
67
Adding styles
13:05
68
Paragraph and image styles
12:15
69
Images & Device Pixel Ratio
10:40
70
HTML markup
20:32
71
Adding styles
07:50
72
Quotation mark styles
09:49
73
Quote & author styles
12:57
74
Flexbox layout
23:17
75
Linear-gradient background
20:02
76
Prep and HTML markup
09:38
77
Sharing styles
05:55
78
Sass @extend at-rule
09:44
79
Sass placeholders
15:50
80
Sass mixins
10:35
81
Helper/utility classes
06:17
82
Button styles
05:57
83
Checking the styles
08:10
84
Prep and HTML markup
27:25
85
Adding basic styles
18:41
86
Hover state styles
10:03
87
Footer column markup
08:02
88
SVG styles
10:34
89
Sizing and aligning the SVG
08:20
90
Responsive layout with CSS grid
27:12
91
Deploying the site with Netlify
05:42
92
Congratulations! Now what?
00:27
93
Getting started
01:19
94
Setup and HTML markup
10:06
95
Writing styles
17:32
96
Prep and setup
04:43
97
Wrapper styles
16:57
98
Content styles
19:49
99
Prep and markup
13:29
100
Basic styles
20:55
101
Text links
13:22
102
Layout styles
19:00
103
Alternating styles
12:58
104
Prep and markup
06:23
105
First quotation mark
12:17
106
Second quotation mark
09:00
107
Troubleshooting
09:28
108
Prep and markup
13:05
109
Form styles
17:59
110
Mobile grid layout
11:15
111
Aligning grid children
14:02
112
Tablet-Desktop grid layout
14:55
113
Deployment & Congrats
02:42
114
Introduction
01:36
115
Prep and markup
07:15
116
Menu styles
24:57
117
Menu shadow
12:57
118
ARIA and animation
15:36
119
Overlay
13:24
120
JavaScript
15:08
121
Hiding elements accessibly
18:05
122
Switching viewport widths
09:23
123
Animation issues
11:19
124
Stacking and z-index
10:19
125
Locking the scroll
10:51
126
More optimizations
15:46
127
Setup
09:05
128
Dark theme
08:41
129
Setup and markup
27:03
130
Basic styles
13:27
131
Text block styles
20:48
132
Font sizing
15:41
133
Adding cards
19:52
134
Layout styles
13:24
135
Gradient variations
06:38
136
Sass for-loop
20:36
137
Installing Vite
18:28
138
Loading files
18:35
139
Deployment
06:50
140
Congratulations!
01:42
Unlock unlimited learning

Get instant access to all 139 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription