/* ————————————————————-

Sass CSS3 Mixins! The Cross-Browser CSS3 Sass Library
By: Matthieu Aussaguel, http://www.mynameismatthieu.com, @matthieu_tweets

List of CSS3 Sass Mixins File to be @imported and @included as you need

The purpose of this library is to facilitate the use of CSS3 on different browsers avoiding HARD TO READ and NEVER
ENDING css files

note: All CSS3 Properties are being supported by Safari 5
more info: http://www.findmebyip.com/litmus/#css3-properties

Mixins available:
  -   css3-prefix             - arguments: Property, Value
  -   background-gradient     - arguments: Start Color: #3C3C3C, End Color: #999999
  -   background-radial       - arguments: Start Color: #FFFFFF, Start position: 0%, End Color: #000000, End position: 100%
  -   background-size         - arguments: Width: 100%, Height: 100%
  -   background-opacity      - arguments: Color: #000, Opacity: .85
  -   border-radius           - arguments: Radius: 5px
  -   border-radius-separate  - arguments: Top Left: 5px, Top Left: 5px, Bottom Left: 5px, Bottom Right: 5px
  -   box                     - arguments: Orientation: horizontal, Pack: center, Align: center
  -   box-rgba                - arguments: R: 60, G: 3, B: 12, Opacity: 0.23, Color: #3C3C3C
  -   box-shadow              - arguments: X: 2px, Y: 2px, Blur: 5px, Color: rgba(0,0,0,.4)
  -   box-sizing              - arguments: Type: border-box
  -   columns                 - arguments: Count: 3, Gap: 10
  -   double-borders          - arguments: Color One: #3C3C3C, Color Two: #999999, Radius: 0
  -   flex                    - arguments: Value: 1
  -   flip                    - arguments: ScaleX: -1
  -   font-face               - arguments: Font Family: myFont, Eot File Src: myFont.eot, Woff File Src: myFont.woff, Ttf File Src: myFont.ttf
  -   opacity                 - arguments: Opacity: 0.5
  -   outline radius          - arguments: Radius: 5px
  -   resize                  - arguments: Direction: both
  -   rotate                  - arguments: Degree: 0, M11: 0, M12: 0, M21: 0, M22: 0
  CSS Matrix Rotation Calculator http://www.boogdesign.com/examples/transforms/matrix-calculator.html
  -   text-shadow             - arguments: X: 2px, Y: 2px, Blur: 5px, Color: rgba(0,0,0,.4)
  -   transform               - arguments: Parameters: null
  -   transform-style         - arguments: Style: preserve-3d
  -   transition              - Default arguments: What: all, Length: 1s, Easing: ease-in-out
  -                            - Examples: @include transition (all 2s ease-in-out);
  -                                        @include transition (opacity 1s ease-in 2s, width 2s ease-out);
  -   triple-borders          - arguments: Color One: #3C3C3C, Color Two: #999999, Color Three: #000000, Radius: 0
  -   keyframes               - arguments: Animation name
                              - content:   Animation css
  -   animation               - arguments: name duration timing-function delay iteration-count direction fill-mode play-state
                                           (http://www.w3schools.com/cssref/css3_pr_animation.asp)

————————————————————- */

/* ADDS A BROWSER PREFIX TO THE PROPERTY */ @mixin css3-prefix($property, $value) {

-webkit-#{$property}: #{$value};
 -khtml-#{$property}: #{$value};
   -moz-#{$property}: #{$value};
    -ms-#{$property}: #{$value};
     -o-#{$property}: #{$value};
        #{$property}: #{$value};

}

/* BACKGROUND GRADIENT */ @mixin background-gradient($startColor: #3C3C3C, $endColor: #999999) {

background-color: $startColor;
background-image: -webkit-gradient(linear, left top, left bottom, from($startColor), to($endColor));
background-image: -webkit-linear-gradient(top, $startColor, $endColor);
background-image:    -moz-linear-gradient(top, $startColor, $endColor);
background-image:     -ms-linear-gradient(top, $startColor, $endColor);
background-image:      -o-linear-gradient(top, $startColor, $endColor);
background-image:         linear-gradient(top, $startColor, $endColor);
filter:            progid:DXImageTransform.Microsoft.gradient(startColorStr='#{$startColor}', endColorStr='#{$endColor}');

}

/* BACKGROUND RADIAL */ @mixin background-radial($startColor: #FFFFFF, $startPos: 0%, $endColor: #000000, $endPos:100%) {

background: -moz-radial-gradient(center, ellipse cover, $startColor $startPos, $endColor $endPos);
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop($startPos,$startColor), color-stop($endPos,$endColor));
background: -webkit-radial-gradient(center, ellipse cover, $startColor $startPos,$endColor $endPos);
background: -o-radial-gradient(center, ellipse cover, $startColor $startPos,$endColor $endPos);
background: -ms-radial-gradient(center, ellipse cover, $startColor $startPos,$endColor $endPos);
background: radial-gradient(ellipse at center, $startColor $startPos,$endColor $endPos);

}

/* BACKGROUND SIZE */ @mixin background-size($width: 100%, $height: $width) {

@if type-of($width) == 'number' and $height != null {
  @include css3-prefix('background-size', $width $height);
} @else {
  @include css3-prefix('background-size', $width);
}

}

/* BACKGROUND COLOR OPACITY */ @mixin background-opacity($color: #000, $opacity: 0.85) {

background: $color;
background: rgba($color, $opacity);

}

/* BORDER RADIUS */ @mixin border-radius($radius: 5px) {

@include css3-prefix('border-radius', $radius);

}

@mixin border-radius-separate($topLeftRadius: 5px, $topRightRadius: 5px, $bottomLeftRadius: 5px, $bottomRightRadius: 5px) {

-webkit-border-top-left-radius:     $topLeftRadius;
-webkit-border-top-right-radius:    $topRightRadius;
-webkit-border-bottom-right-radius: $bottomRightRadius;
-webkit-border-bottom-left-radius:  $bottomLeftRadius;

-moz-border-radius-topleft:     $topLeftRadius;
-moz-border-radius-topright:    $topRightRadius;
-moz-border-radius-bottomright: $bottomRightRadius;
-moz-border-radius-bottomleft:  $bottomLeftRadius;

border-top-left-radius:     $topLeftRadius;
border-top-right-radius:    $topRightRadius;
border-bottom-right-radius: $bottomRightRadius;
border-bottom-left-radius:  $bottomLeftRadius;

}

/* BOX */ @mixin box($orient: horizontal, $pack: center, $align: center) {

display: -webkit-box;
display: -moz-box;
display: box;

@include css3-prefix('box-orient', $orient);
@include css3-prefix('box-pack', $pack);
@include css3-prefix('box-align', $align);

}

/* BOX RGBA */ @mixin box-rgba($r: 60, $g: 3, $b: 12, $opacity: 0.23, $color: #3C3C3C) {

background-color: transparent;
background-color: rgba($r, $g, $b, $opacity);
          filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$color}',endColorstr='#{$color}');
          zoom:   1;

}

/* BOX SHADOW */ @mixin box-shadow($x: 2px, $y: 2px, $blur: 5px, $color: rgba(0,0,0,.4), $inset: “”) {

@if ($inset != "") {
  @include css3-prefix('box-shadow', $inset $x $y $blur $color);
} @else {
  @include css3-prefix('box-shadow', $x $y $blur $color);
}

}

/* BOX SIZING */ @mixin box-sizing($type: border-box) {

@include css3-prefix('box-sizing', $type);

}

/* COLUMNS */ @mixin columns($count: 3, $gap: 10) {

@include css3-prefix('column-count', $count);
@include css3-prefix('column-gap', $gap);

}

/* DOUBLE BORDERS */ @mixin double-borders($colorOne: #3C3C3C, $colorTwo: #999999, $radius: 0) {

border: 1px solid $colorOne;

@include css3-prefix('box-shadow', 0 0 0 1px $colorTwo);

@include border-radius( $radius );

}

/* FLEX */ @mixin flex($value: 1) {

@include css3-prefix('box-flex', $value);

}

/* FLIP */ @mixin flip($scaleX: -1) {

@include css3-prefix('transform', scaleX($scaleX));
filter:            FlipH;
-ms-filter:        "FlipH";

}

/* FONT FACE */ @mixin font-face($fontFamily: myFont, $eotFileSrc: 'myFont.eot', $woffFileSrc: 'myFont.woff', $ttfFileSrc: 'myFont.ttf') {

font-family: $fontFamily;
src: url($eotFileSrc)  format('eot'),
     url($woffFileSrc) format('woff'),
     url($ttfFileSrc)  format('truetype');

}

/* OPACITY */ @mixin opacity($opacity: 0.5) {

$opacityMultiplied: ($opacity * 100);

filter:         alpha(opacity=$opacityMultiplied);
-ms-filter:     "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + $opacityMultiplied + ")";
@include css3-prefix('opacity', $opacity);

}

/* OUTLINE RADIUS */ @mixin outline-radius($radius: 5px) {

@include css3-prefix('outline-radius', $radius);

}

/* RESIZE */ @mixin resize($direction: both) {

@include css3-prefix('resize', $direction);

}

/* ROTATE*/ @mixin rotate($deg: 0, $m11: 0, $m12: 0, $m21: 0, $m22: 0) {

@include css3-prefix('transform', rotate($deg + deg));
filter: progid:DXImageTransform.Microsoft.Matrix(
     M11=#{$m11}, M12=#{$m12}, M21=#{$m21}, M22=#{$m22}, sizingMethod='auto expand');
  zoom: 1;

}

/* TEXT SHADOW */ @mixin text-shadow($x: 2px, $y: 2px, $blur: 5px, $color: rgba(0,0,0,.4)) {

text-shadow: $x $y $blur $color;

}

/* TRANSFORM */ @mixin transform($params) {

@include css3-prefix('transform', $params);

}

/* TRANSFORM STYLE */ @mixin transform-style($style: preserve-3d) {

@include css3-prefix('transform-style', $style);

}

/* TRANSITION */ @mixin transition($property: all, $duration: 1s, $func: ease-in-out) {

@include css3-prefix('transition-property', $property);
@include css3-prefix('transition-duration', $duration);
@include css3-prefix('transition-timing-function', $func);

}

/* TRIPLE BORDERS */ @mixin triple-borders($colorOne: #3C3C3C, $colorTwo: #999999, $colorThree: #000000, $radius: 0) {

border: 1px solid $colorOne;

@include border-radius($radius);

@include css3-prefix('box-shadow', 0 0 0 1px $colorTwo, 0 0 0 2px $colorThree);

}

/* KEYFRAMES */ @mixin keyframes($animation-name) {

@-webkit-keyframes #{$animation-name} {
  @content;
}
@-moz-keyframes #{$animation-name} {
  @content;
}  
@-ms-keyframes #{$animation-name} {
  @content;
}
@-o-keyframes #{$animation-name} {
  @content;
}  
@keyframes #{$animation-name} {
  @content;
}

}

/* ANIMATION */ @mixin animation($str) {

@include css3-prefix('animation', $str);

}

/* DESATURATION */ @mixin desaturate($val) {

@include css3-prefix('filter', grayscale($val));

}