// ---------------------------------------------------------------- // Vendor Prefix Mixins // ---------------------------------------------------------------- // All Vendor Prefixes @mixin vendor($property, $value...){ -moz-#{$property}:$value; -ms-#{$property}:$value; -o-#{$property}:$value; -webkit-#{$property}:$value; #{$property}:$value; } // Just webkit & moz Prefixes @mixin base-vendor($property, $value...){ -moz-#{$property}:$value; -webkit-#{$property}:$value; #{$property}:$value; } // ---------------------------------------------------------------- // Useful CSS3 Mixins // ---------------------------------------------------------------- // Box Sizing @mixin box-sizing($box-value){ @include base-vendor(box-sizing, $box-value); } // Border Radius @mixin border-radius($br-value){ @include base-vendor(border-radius, $br-value); background-clip:padding-box; } // Box Shadow --- See _var.scss to edit & create box-shadow rules @mixin box-shadow($bs-value){ @include base-vendor(box-shadow, $bs-value) } // Linear Gradient @mixin linear-gradient($grad-Line, $grad-Colors...) { background: -webkit-linear-gradient($grad-Line, $grad-Colors); background: -moz-linear-gradient($grad-Line, $grad-Colors); background: -o-linear-gradient($grad-Line, $grad-Colors); background: linear-gradient($grad-Line, $grad-Colors); } // grad-Line - use either ###deg or top, left, bottom, right // example: // @include linear-gradient(80deg, #fcc, #f23); // @include linear-gradient(top, #fcc, #f23); // Radial Gradient @mixin radial-gradient($radial...) { background: -webkit-radial-gradient($radial); background: -moz-radial-gradient($radial); background: -o-radial-gradient($radial); background: radial-gradient($radial); } // ---------------------------------------------------------------- // Hidden Elements Mixins // ---------------------------------------------------------------- // Hide text that you don't want visible // like on submit buttons that use an icon instead of text @mixin hide-text{ color:transparent; font:0/0 a; text-shadow:none; } // Hide entire elements that you don't want visible // but still need for accesibility / functionality // -- ie. radio buttons for custom styled radio inputs @mixin invisible{ border:0!important; height:1px!important; left:-999999px!important; overflow:hidden!important; position:absolute!important; width:1px!important; } // Truncate Text @mixin truncate($truncation-boundary){ max-width:$truncation-boundary; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } // Example -- @include truncate(100%); // ---------------------------------------------------------------- // Clearfix // ---------------------------------------------------------------- @mixin clearfix{ *zoom:1; &:before, &:after{content:""; display:table} &:after{clear:both} } // ---------------------------------------------------------------- // Hi-Res Retina Images // https://37signals.com/svn/posts/3271-easy-retina-ready-images-using-scss // ---------------------------------------------------------------- @mixin image-2x($image, $width, $height){ @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6/2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){ // on retina, use image that's scaled by 2 background-image:url($image); background-size:$width $height; } } // ---------------------------------------------------------------- // Responsive Row w/fixed width column -- use in combo with .row // ---------------------------------------------------------------- @mixin row-fixed-Left($col-Size){ padding-left:$col-Size; .f-Col{ float:left; margin-left:-$col-Size + 20px; width:$col-Size - 20px; } } @mixin row-fixed-Right($col-Size){ padding-right:$col-Size; .f-Col{ float:right; margin-right:-$col-Size; width:$col-Size - 20px; } }