aboutsummaryrefslogtreecommitdiff
path: root/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss
blob: 3680421269bd96a20aae57a26b76f46ce39e969f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
@function breakpoint-make-resolutions($resolution) {
  $length: length($resolution);

  $output: ();

  @if $length == 2 {
    $feature: '';
    $value: '';

    // Find which is number
    @if type-of(nth($resolution, 1)) == 'number' {
      $value: nth($resolution, 1);
    }
    @else {
      $value: nth($resolution, 2);
    }

    // Determine min/max/standard
    @if index($resolution, 'min-resolution') {
      $feature: 'min-';
    }
    @else if index($resolution, 'max-resolution') {
      $feature: 'max-';
    }

    $standard: '(#{$feature}resolution: #{$value})';

    // If we're not dealing with dppx,
    @if unit($value) != 'dppx' {
      $base: 96dpi;
      @if unit($value) == 'dpcm' {
        $base: 243.84dpcm;
      }
      // Write out feature tests
      $webkit: '';
      $moz: '';
      $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})';
      $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})';
      // Append to output
      $output: append($output, $standard, space);
      $output: append($output, $webkit, space);
      $output: append($output, $moz, space);
    }
    @else {
      $webkit: '';
      $moz: '';
      $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})';
      $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})';
      $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})';
      // Append to output
      $output: append($output, $standard, space);
      $output: append($output, $webkit, space);
      $output: append($output, $moz, space);
      $output: append($output, $fallback, space);
    }

  }

  @return $output;
}