Skip to content
Snippets Groups Projects
Select Git revision
  • 45b4f4b3b2f01e76adbf03e6db772c51094154a9
  • main default protected
2 results

_rfs.scss

Blame
  • _rfs.scss 9.79 KiB
    // stylelint-disable property-blacklist, scss/dollar-variable-default
    
    // SCSS RFS mixin
    //
    // Automated responsive values for font sizes, paddings, margins and much more
    //
    // Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
    
    // Configuration
    
    // Base value
    $rfs-base-value: 1.25rem !default;
    $rfs-unit: rem !default;
    
    @if $rfs-unit != rem and $rfs-unit != px {
      @error "`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.";
    }
    
    // Breakpoint at where values start decreasing if screen width is smaller
    $rfs-breakpoint: 1200px !default;
    $rfs-breakpoint-unit: px !default;
    
    @if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
      @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
    }
    
    // Resize values based on screen height and width
    $rfs-two-dimensional: false !default;
    
    // Factor of decrease
    $rfs-factor: 10 !default;
    
    @if type-of($rfs-factor) != number or $rfs-factor <= 1 {
      @error "`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.";
    }
    
    // Mode. Possibilities: "min-media-query", "max-media-query"
    $rfs-mode: min-media-query !default;
    
    // Generate enable or disable classes. Possibilities: false, "enable" or "disable"
    $rfs-class: false !default;
    
    // 1 rem = $rfs-rem-value px
    $rfs-rem-value: 16 !default;
    
    // Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
    $rfs-safari-iframe-resize-bug-fix: false !default;
    
    // Disable RFS by setting $enable-rfs to false
    $enable-rfs: true !default;
    
    // Cache $rfs-base-value unit
    $rfs-base-value-unit: unit($rfs-base-value);
    
    @function divide($dividend, $divisor, $precision: 10) {
      $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
      $dividend: abs($dividend);
      $divisor: abs($divisor);
      @if $dividend == 0 {
        @return 0;
      }
      @if $divisor == 0 {
        @error "Cannot divide by 0";
      }
      $remainder: $dividend;
      $result: 0;
      $factor: 10;
      @while ($remainder > 0 and $precision >= 0) {
        $quotient: 0;
        @while ($remainder >= $divisor) {