@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; }