Skip to content

Instantly share code, notes, and snippets.

@gentoid
Forked from eduardoboucas/SassMeister-input.scss
Last active August 21, 2020 14:00
Show Gist options
  • Save gentoid/fc64619fcda6b4cb4c51 to your computer and use it in GitHub Desktop.
Save gentoid/fc64619fcda6b4cb4c51 to your computer and use it in GitHub Desktop.
body {
font-size: 5vw;
}
@media (max-width: 700px) {
body {
font-size: 35px;
}
}
@media (min-width: 3000px) {
body {
font-size: 150px;
}
}
///
/// Viewport sized typography with minimum and maximum values
///
/// @author Eduardo Boucas (@eduardoboucas)
///
/// @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
// -------------------- DEMO --------------------------
body
@include responsive-font(5vw, 35px, 150px)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment