AI Workshop: learn to build apps with AI →
CSS Tips: What are good CSS Breakpoint values for Responsive Design?

Join the AI Workshop and learn to build real-world apps with AI. A hands-on, practical program to level up your skills.


While designing a site, I noticed I was using some pretty random values for my CSS breakpoints. Sometimes a rounded value like 800 or 1200, sometimes a specific value up to the pixel like 672.

I searched for the proper values to apply to my breakpoints going forward.

I had a little bit of time to look this up, and I came to this conclusion.

We have 5 major device sizes to worry about:

  • mobile portrait
  • mobile landscape
  • tablet portrait
  • tablet landscape
  • laptop

Those devices map to those pixel values:

  • mobile portrait: less than 640px
  • mobile landscape: > 640px
  • tablet portrait: > 768px
  • tablet landscape: > 1024px
  • laptop: > 1280px

I took those values from the Tailwind defaults.

I am not a designer, so I’m not involved daily in best practices, but I decided this time to design mobile-first.

That means my base CSS (without any media query) targets the mobile portrait case, and then I add breakpoints for larger and larger devices, avoiding max-width in media queries.

I used to do the opposite—design for bigger screens first, then go smaller—but designing mobile-first and using min-width is now the most accepted approach.

These are the media queries I will use from now on:

@media (min-width: 640px) {

}

@media (min-width: 768px) {

}

@media (min-width: 1024px) {

}

@media (min-width: 1280px) {

}

Lessons in this unit:

0: Introduction
1: How to center an element with CSS
2: CSS Border inside the element
3: ▶︎ What are good CSS Breakpoint values for Responsive Design?
4: How to debug CSS by bisecting
5: How to disable text selection using CSS
6: How to put an item at the bottom of its container using CSS
7: CSS, how to select elements that do not have a class
8: How to stick an element on the bottom of the page with flexbox
9: How to apply padding to multiple lines in CSS
10: Making a table responsive using CSS
11: CSS url()
12: How to make an element smaller or bigger with CSS
13: Customizing visited links
14: Fix extra space after inline element
15: How to create a sidebar that’s sticky but also scrolls
16: How to embed YouTube videos using the correct aspect ratio
17: Responsive pre tags in CSS
18: Responsive YouTube Video Embeds
19: How to remove all CSS from a page at once
20: How I added Dark Mode to my website
21: How to add a simple dark mode