This gist demonstrates how to use Compass magic sprites in combination with HiDPI.
Credits: Icons © Adam Whitcroft
Oh and you may check Compass HDPI
This gist demonstrates how to use Compass magic sprites in combination with HiDPI.
Credits: Icons © Adam Whitcroft
Oh and you may check Compass HDPI
| /*! HiDPI v1 | MIT License | git.io/hidpi */ | |
| $hidpi-debug: false !default; | |
| @import 'compass/css3'; | |
| @mixin hidpi-abstract($image, $extension) { | |
| $image-fullname: '#{$image}.#{$extension}'; | |
| $image-hidpi-fullname: '#{$image}_x2.#{$extension}'; | |
| background-image: image-url($image-hidpi-fullname); | |
| @include background-size( | |
| image-width($image-fullname) | |
| image-height($image-fullname) | |
| ); | |
| } | |
| @mixin hidpi($image: false, $extension: png) { | |
| @if $hidpi-debug { | |
| @if $image { | |
| @include hidpi-abstract($image, $extension); | |
| } @else { | |
| @content; | |
| } | |
| } @else { | |
| @if $image { | |
| background-image: image-url('#{$image}.#{$extension}'); | |
| } | |
| @media (-webkit-min-device-pixel-ratio: 1.3), | |
| (-o-min-device-pixel-ratio: 2.6/2), | |
| (min--moz-device-pixel-ratio: 1.3), | |
| (min-device-pixel-ratio: 1.3), | |
| (min-resolution: 1.3dppx) { | |
| @if $image { | |
| @include hidpi-abstract($image, $extension); | |
| } @else { | |
| @content; | |
| } | |
| } | |
| } | |
| } |
| /* HiDPI v1 | MIT License | git.io/hidpi */ | |
| /* line 108, icons/*.png */ | |
| .icons-sprite, .icons-add, .icons-address-book-2, .icons-address-book, .icons-align-bottom-edges, .icons-align-horizontal-centers, .icons-align-left-edges, .icons-align-right-edges, .icons-align-top-edges, .icons-align-vertical-centers { | |
| background: url('/images/icons-sc320e812f1.png') no-repeat; | |
| } | |
| /* line 108, icons_x2/*.png */ | |
| .icons_x2-sprite { | |
| background: url('/images/icons_x2-s6ed877cba6.png') no-repeat; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-add { | |
| background-position: 0 0; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-address-book-2 { | |
| background-position: 0 -16px; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-address-book { | |
| background-position: 0 -64px; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-align-bottom-edges { | |
| background-position: 0 -128px; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-align-horizontal-centers { | |
| background-position: 0 -48px; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-align-left-edges { | |
| background-position: 0 -80px; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-align-right-edges { | |
| background-position: 0 -32px; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-align-top-edges { | |
| background-position: 0 -112px; | |
| } | |
| /* line 63, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.13.alpha.0/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */ | |
| .icons-align-vertical-centers { | |
| background-position: 0 -96px; | |
| } | |
| @media (-webkit-min-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6/2), (min--moz-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { | |
| /* line 23, ../sass/sprites.scss */ | |
| .icons-sprite, .icons-add, .icons-address-book-2, .icons-address-book, .icons-align-bottom-edges, .icons-align-horizontal-centers, .icons-align-left-edges, .icons-align-right-edges, .icons-align-top-edges, .icons-align-vertical-centers { | |
| -webkit-background-size: 16px auto; | |
| -moz-background-size: 16px auto; | |
| -o-background-size: 16px auto; | |
| background-size: 16px auto; | |
| background-image: url('/images/icons_x2-s6ed877cba6.png'); | |
| } | |
| /* line 13, ../sass/sprites.scss */ | |
| .icons-address-book { | |
| background-position: 0 -32px; | |
| } | |
| /* line 13, ../sass/sprites.scss */ | |
| .icons-align-left-edges { | |
| background-position: 0 -96px; | |
| } | |
| /* line 13, ../sass/sprites.scss */ | |
| .icons-align-right-edges { | |
| background-position: 0 -80px; | |
| } | |
| /* line 13, ../sass/sprites.scss */ | |
| .icons-align-vertical-centers { | |
| background-position: 0 -64px; | |
| } | |
| } |
| @import "compass/utilities/sprites/base", | |
| "compass/css3/background-size", | |
| "hidpi"; // git.io/hidpi | |
| @import "icons/*.png"; | |
| @import "icons_x2/*.png"; | |
| @mixin sprite-background-position-fix($map, $map-alt, $sprites: sprite-names($map)) { | |
| @each $sprite in $sprites { | |
| $x: round(nth(sprite-position($map-alt, $sprite), 1) / 2); | |
| $y: round(nth(sprite-position($map-alt, $sprite), 2) / 2); | |
| @if $x != nth(sprite-position($map, $sprite), 1) or $y != nth(sprite-position($map, $sprite), 2) { | |
| .#{sprite-map-name($map)}-#{$sprite}{ | |
| background-position: $x $y; | |
| } | |
| } | |
| } | |
| } | |
| @include all-icons-sprites; | |
| @include hidpi { | |
| .icons-sprite { | |
| $icons-sprites-width: image-width(sprite-path($icons-sprites)); | |
| @include background-size($icons-sprites-width auto); | |
| background-image: sprite-url($icons_x2-sprites); | |
| } | |
| @include sprite-background-position-fix($icons-sprites, $icons_x2-sprites); | |
| } |