Responsive Web Typography Crash Course

Responsive Web Typography Crash Course

Please watch the video.

For quick copy paste, take the following SCSS code and drop it into

//credit: PK ( 
//this one is the simplified version
@mixin awesome-pixel-sizes($desktop-size, $desktop-px, $mobile-size, $mobile-px) {
  ///desktop & mobile
  //$desktop-size: 1440;
  //$mobile-size: 780;
  $rem: 16;

  $delta: ($desktop-px - $mobile-px) / ($desktop-size - $mobile-size); ///slope
  $delta-rounded: round($delta * 1000) / 1000; ///slope rounded.. round slope
  $deltavw: ($delta-rounded * 100);

  $intercept: ($mobile-px - ($delta-rounded * $mobile-size)); ///y intercept

  ///pixel based
  $calc-vw: (($desktop-px - $rem) * 100) / $desktop-size;
  $calc-01: (($calc-vw * $mobile-size) * .01) + $rem;
  $calc-01-rounded: round($calc-01 * 10000) / 10000;
  $final-rem: ($mobile-px / $calc-01-rounded);
  $final-rem-rounded: round($final-rem * 10000) / 10000;

  ///for compatibility
  font-size: calc(#{$calc-vw}vw + #{$final-rem-rounded}rem);

  ////for clamps 
  @if $intercept < 0 {
    $thecalc: ($intercept * -1);
    font-size: clamp(#{$mobile-px}px, calc(#{$deltavw}vw - #{$thecalc}px), #{$desktop-px}px);
  } @else {
    $thecalc: $intercept;
    font-size: clamp(#{$mobile-px}px, calc(#{$deltavw}vw + #{$thecalc}px), #{$desktop-px}px);

.single {
  h1 {
    line-height: 1.2;
    letter-spacing: .05em;
    margin: 2em 0 1em 0;
    @include awesome-pixel-sizes(1280, 54, 650, 24);
  h2 {

  h3 {

  h4 {

  h5 {

  h6 {

  li {


Here are the parent selectors you could use depending on your site builder of choice.




Shopify - Debut



Beaver Builder 

	#inner_content-11-1 (Change the numbers to work on your site)


PS. Duda didn’t even load the templates for me to inspect, so… and that was even AFTER I went to the .com and realized that it’s not the page building service. .. what..? I don’t even remember what the TLD was. It’s THAT bad. So I didn’t include Duda in the list. Sorry, you’re worse than WIX and that’s saying something.

Please note: for Squarespace users

Squarespace uses LESS in its custom CSS entry field. So you can’t just drop in

calc(2.3vw + 1.2rem)

the numbers will calculate. whoops. So you’ll have to escape it into a string with a ~”” like this

calc(~"2.3vw + 1.2rem")

and it should work.

Impressed with the method? I have a lot more of these kinds of goodies in my SASS folder.

If you’re interested in SASS, you’re in luck!

Check this out!

Also, if you’re interested in getting started in CSS have a look at this.

There’s also a CSS package.

Lastly, if you want to go full-blown custom structure with your own custom theme, then have a look at this.

Why no ads?

Hi, my name is PK, and welcome to my website, almost inevitable design. I maintain and publish on this site for two reasons.

  1. To give back to the community. I learned so much from people's tutorials and StackOverflow that I wanted to contribute and help others.
  2. To provide a more structured learning experience. People struggle to find the course that guides them from start to finish, based off of real life experience, and my courses provide that.

The only "ads" I have here are for my own courses, and maybe an affiliate link, but that's it. They fund the website resources and provide more motivation for me to product better content.

Any bit of interest helps. Even sharing with your feidns, suggesting my courses to your developer or designer, or subscribing to my YT channel, or joining our Discord. Thanks and I'll see you around!

The Web Design Space

TWDS is my web design agency. If you're looking for premium quality, reliable, web design and development, come see what we're about!
Learn More
Choose "Paythen" at checkout for an interest free 10 week payment plan.
Leave a Reply

Your email address will not be published. Required fields are marked *

    New tutorials