Skip to content

Instantly share code, notes, and snippets.

@hayes0724
Created August 4, 2018 21:07
Show Gist options
  • Save hayes0724/2aba6de37053300583c47b6c157d7a53 to your computer and use it in GitHub Desktop.
Save hayes0724/2aba6de37053300583c47b6c157d7a53 to your computer and use it in GitHub Desktop.
// =============================================================================
// Responsive Font Sizes
// =============================================================================
//
// Viewport sized typography with minimum and maximum values
//
//
// @param {Number} $responsive - Viewport-based size
// @param {Number} $min - Minimum font size (px)
// @param {Number} $max - Maximum font size (px)
// (optional)
// @param {Number} $fallback - Fallback for viewport-
// based units (optional)
//
// @example scss - 5vw font size (with 50px fallback),
// minumum of 35px and maximum of 150px
// @include responsive-font(5vw, 35px, 150px, 50px);
//
@mixin responsive-font($responsive, $min, $max: false, $fallback: false) {
$responsive-unitless: $responsive / ($responsive - $responsive + 1);
$dimension: if(unit($responsive) == 'vh', 'height', 'width');
$min-breakpoint: $min / $responsive-unitless * 100;
@media (max-#{$dimension}: #{$min-breakpoint}) {
font-size: $min;
}
@if $max {
$max-breakpoint: $max / $responsive-unitless * 100;
@media (min-#{$dimension}: #{$max-breakpoint}) {
font-size: $max;
}
}
@if $fallback {
font-size: $fallback;
}
font-size: $responsive;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment