One step at a time
CSS3 Mastery
Master CSS3 from selectors to animations. Build fully responsive, beautifully styled interfaces.
Your path through the course
Open a module to explore its lessons-
Welcome to CSS4 lessons
What CSS is, how it works, and the three ways to use it.
-
What is CSS and How It WorksVideo 8 min
-
Three Ways to Add CSSLesson · Complete the previous lesson first
-
How the Browser Applies StylesVideo · Complete the previous lesson first 7 min
-
Your First StylesheetLesson · Complete the previous lesson first
-
-
Selectors7 lessons
Target exactly the elements you want to style.
-
Element, Class, and ID SelectorsLesson · Complete the previous lesson first
-
Grouping and Chaining SelectorsLesson · Complete the previous lesson first
-
Descendant vs Child SelectorsVideo · Complete the previous lesson first 7 min
-
Adjacent and General Sibling SelectorsLesson · Complete the previous lesson first
-
Attribute SelectorsLesson · Complete the previous lesson first
-
Universal Selector and the ResetLesson · Complete the previous lesson first
-
Style a Page Using Only SelectorsPractice · Complete the previous lesson first
-
-
The Cascade & Specificity5 lessons
Understand how the browser decides which style wins.
-
What is the CascadeVideo · Complete the previous lesson first 8 min
-
Specificity — How the Browser Decides Who WinsVideo · Complete the previous lesson first 9 min
-
Inheritance — What Passes Down and What Does NotLesson · Complete the previous lesson first
-
!important — When and Why to Avoid ItLesson · Complete the previous lesson first
-
:is(), :where(), :not() Specificity TricksLesson · Complete the previous lesson first
-
-
Box Model6 lessons
Every element is a box. Master its four layers.
-
margin, border, padding, contentVideo · Complete the previous lesson first 9 min
-
box-sizing: border-box — Why Everyone Uses ItLesson · Complete the previous lesson first
-
width, height, min-* and max-*Lesson · Complete the previous lesson first
-
overflowLesson · Complete the previous lesson first
-
outline vs borderLesson · Complete the previous lesson first
-
Box Model Debugging ChallengePractice · Complete the previous lesson first
-
-
Typography8 lessons
Control fonts, sizes, spacing, and text appearance.
-
font-family and Web Safe FontsLesson · Complete the previous lesson first
-
Google Fonts and @font-faceLesson · Complete the previous lesson first
-
font-size — px, rem, em, %Video · Complete the previous lesson first 8 min
-
font-weight, font-style, font-variantLesson · Complete the previous lesson first
-
line-height, letter-spacing, word-spacingLesson · Complete the previous lesson first
-
text-align, text-decoration, text-transformLesson · Complete the previous lesson first
-
text-shadow, text-overflow, white-spaceLesson · Complete the previous lesson first
-
@font-face Deep DiveLesson · Complete the previous lesson first
-
-
Colors & Backgrounds9 lessons
Colours, backgrounds, gradients, and blending.
-
Color Formats — named, hex, rgb, hslVideo · Complete the previous lesson first 8 min
-
opacity and rgba / hslaLesson · Complete the previous lesson first
-
CSS Custom Properties for ColorLesson · Complete the previous lesson first
-
background-color and background-imageLesson · Complete the previous lesson first
-
background-size, background-position, background-repeatLesson · Complete the previous lesson first
-
background-attachment, background-clip, background-originLesson · Complete the previous lesson first
-
Multiple BackgroundsLesson · Complete the previous lesson first
-
linear-gradient(), radial-gradient(), conic-gradient()Video · Complete the previous lesson first 9 min
-
Hero Section — Colors and Backgrounds OnlyPractice · Complete the previous lesson first
-
-
Units & Values5 lessons
px, rem, em, vw, vh, and the powerful CSS math functions.
-
Absolute Units — px, pt, cmLesson · Complete the previous lesson first
-
Relative Units — em, rem, %, vw, vhVideo · Complete the previous lesson first 9 min
-
vmin, vmax, dvh, svhLesson · Complete the previous lesson first
-
calc(), min(), max(), clamp()Video · Complete the previous lesson first 8 min
-
currentColor and Keyword ValuesLesson · Complete the previous lesson first
-
-
Display & Positioning6 lessons
Control how elements sit in the page and how they are positioned.
-
display — block, inline, inline-block, noneLesson · Complete the previous lesson first
-
position — static, relative, absolute, fixed, stickyVideo · Complete the previous lesson first 10 min
-
top, right, bottom, left — How They Actually WorkLesson · Complete the previous lesson first
-
z-index and Stacking ContextsVideo · Complete the previous lesson first 8 min
-
float and clear — Legacy but Still RealLesson · Complete the previous lesson first
-
Fix the Broken Layout — Positioning ChallengePractice · Complete the previous lesson first
-
-
Flexbox11 lessons
One-dimensional layout — the modern standard for rows and columns.
-
What Flexbox SolvesVideo · Complete the previous lesson first 7 min
-
display: flex and the Flex ContainerLesson · Complete the previous lesson first
-
flex-direction, flex-wrap, flex-flowLesson · Complete the previous lesson first
-
justify-content — Main Axis AlignmentVideo · Complete the previous lesson first 8 min
-
align-items and align-selfLesson · Complete the previous lesson first
-
align-content — Multi-line BehaviorLesson · Complete the previous lesson first
-
flex-grow, flex-shrink, flex-basisVideo · Complete the previous lesson first 9 min
-
The flex ShorthandLesson · Complete the previous lesson first
-
order and Visual ReorderingLesson · Complete the previous lesson first
-
gap, row-gap, column-gapLesson · Complete the previous lesson first
-
Navigation Bar + Card Row — Flexbox OnlyPractice · Complete the previous lesson first
-
-
Grid12 lessons
Two-dimensional layout — rows and columns at the same time.
-
What Grid Solves and When to Use It vs FlexboxVideo · Complete the previous lesson first 8 min
-
display: grid and the Grid ContainerLesson · Complete the previous lesson first
-
grid-template-columns and grid-template-rowsLesson · Complete the previous lesson first
-
fr Unit and repeat()Video · Complete the previous lesson first 7 min
-
grid-gap, column-gap, row-gapLesson · Complete the previous lesson first
-
grid-column and grid-row — Placing ItemsLesson · Complete the previous lesson first
-
grid-area and Named AreasVideo · Complete the previous lesson first 9 min
-
auto-fill vs auto-fitVideo · Complete the previous lesson first 7 min
-
minmax() and fit-content()Lesson · Complete the previous lesson first
-
Implicit vs Explicit GridLesson · Complete the previous lesson first
-
SubgridLesson · Complete the previous lesson first
-
Full Page Layout — Grid OnlyPractice · Complete the previous lesson first
-
-
Pseudo-classes & Pseudo-elements7 lessons
Style elements based on state, position, and generated content.
-
:hover, :focus, :active, :visitedLesson · Complete the previous lesson first
-
:nth-child(), :nth-of-type(), :last-childVideo · Complete the previous lesson first 8 min
-
:checked, :disabled, :required, :valid, :invalidLesson · Complete the previous lesson first
-
:empty, :not(), :has()Video · Complete the previous lesson first 7 min
-
::before, ::after and the content PropertyVideo · Complete the previous lesson first 9 min
-
::placeholder, ::selection, ::markerLesson · Complete the previous lesson first
-
Style a Form Using Only Pseudo-classesPractice · Complete the previous lesson first
-
-
Transitions & Animations8 lessons
Bring your UI to life with smooth motion.
-
transition - property, duration, timing-function, delayVideo · Complete the previous lesson first 9 min
-
transition-timing-function - ease, cubic-bezierVideo · Complete the previous lesson first 8 min
-
@keyframes - Defining AnimationsLesson · Complete the previous lesson first
-
animation ShorthandLesson · Complete the previous lesson first
-
animation-fill-mode and animation-play-stateLesson · Complete the previous lesson first
-
will-change and PerformanceLesson · Complete the previous lesson first
-
Respecting prefers-reduced-motionLesson · Complete the previous lesson first
-
Animated Loading Spinner + Button InteractionsPractice · Complete the previous lesson first
-
-
Transforms5 lessons
Move, scale, rotate, and flip elements in 2D and 3D.
-
transform - translate(), scale(), rotate(), skew()Lesson · Complete the previous lesson first
-
transform-originLesson · Complete the previous lesson first
-
3D Transforms - rotateX(), rotateY(), perspective()Video · Complete the previous lesson first 9 min
-
transform-style: preserve-3dVideo · Complete the previous lesson first 8 min
-
Combining Transforms - Order MattersLesson · Complete the previous lesson first
-
-
Responsive Design8 lessons
Build layouts that work on every screen size.
-
What is Responsive DesignVideo · Complete the previous lesson first 7 min
-
@media Queries - Syntax and BreakpointsLesson · Complete the previous lesson first
-
Mobile First vs Desktop FirstLesson · Complete the previous lesson first
-
@media - width, orientation, hover, pointerLesson · Complete the previous lesson first
-
Responsive Typography with clamp()Lesson · Complete the previous lesson first
-
Responsive Images - max-width and object-fitLesson · Complete the previous lesson first
-
Container Queries @containerVideo · Complete the previous lesson first 8 min
-
Responsive Landing Page - 3 BreakpointsPractice · Complete the previous lesson first
-
-
Custom Properties6 lessons
CSS variables - the foundation of scalable design systems.
-
Declaring and Using --variablesLesson · Complete the previous lesson first
-
Scope - :root vs Component LevelVideo · Complete the previous lesson first 8 min
-
Fallback ValuesLesson · Complete the previous lesson first
-
Updating Variables with JavaScriptLesson · Complete the previous lesson first
-
Building a Theme System with Custom PropertiesVideo · Complete the previous lesson first 9 min
-
Light / Dark Theme Toggle - CSS OnlyPractice · Complete the previous lesson first
-
-
CSS Functions - Deeper Look6 lessons
Master the full range of CSS functions.
-
var(), env(), attr()Lesson · Complete the previous lesson first
-
calc() in Real LayoutsLesson · Complete the previous lesson first
-
min(), max(), clamp() for Fluid DesignLesson · Complete the previous lesson first
-
rgb(), hsl(), oklch()Lesson · Complete the previous lesson first
-
url() and format() in Backgrounds and FontsLesson · Complete the previous lesson first
-
image-set() for Resolution SwitchingLesson · Complete the previous lesson first
-
-
Filters & Blend Modes5 lessons
Photoshop-style effects directly in CSS.
-
filter - blur, brightness, contrast, grayscale, drop-shadowVideo · Complete the previous lesson first 9 min
-
backdrop-filterVideo · Complete the previous lesson first 7 min
-
mix-blend-modeLesson · Complete the previous lesson first
-
background-blend-modeLesson · Complete the previous lesson first
-
Image Card with Hover Filter EffectsPractice · Complete the previous lesson first
-
-
Cascade Layers & Modern CSS Architecture6 lessons
Structure your CSS for scale and maintainability.
-
@layer - Controlling the CascadeVideo · Complete the previous lesson first 9 min
-
@scopeLesson · Complete the previous lesson first
-
CSS NestingVideo · Complete the previous lesson first 7 min
-
BEM Naming ConventionLesson · Complete the previous lesson first
-
Utility-first vs Component-based CSSLesson · Complete the previous lesson first
-
@import and File OrganizationLesson · Complete the previous lesson first
-
-
Capstone1 lessons
Apply everything in one complete project.
-
Full Responsive Portfolio - CSS3 Only, No FrameworksPractice · Complete the previous lesson first
-
One lesson at a time, all the way through.