@mixin placeholder-color($color) {
    &::-webkit-input-placeholder { /* WebKit browsers */
        color: $color;
    }
    &:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
        color: $color;
    }
    &::-moz-placeholder { /* Mozilla Firefox 19+ */
        color: $color;
    }
    &:-ms-input-placeholder { /* Internet Explorer 10+ */
        color: $color;
    }
}

@mixin opacity($opacity) {
  opacity: $opacity;
  $opacity-ie: $opacity * 100;
  filter: alpha(opacity=$opacity-ie); //IE8
}

@mixin user-selection($value) {
  -webkit-user-select: $value;
  -moz-user-select: $value;
  -ms-user-select: $value;
  -o-user-select: $value;
  user-select: $value;
}

@mixin appearance-value($value) {
  -webkit-appearance: $value;
  -moz-appearance: $value;
  -ms-appearance: $value;
  appearance: $value;
}

@mixin backface-visibility($value) {
  -webkit-backface-visibility: $value;
  -moz-backface-visibility: $value;
  -ms-backface-visibility: $value;
  backface-visibility: $value;
}

@mixin transform-rotate($value) {
  -webkit-transform: rotate($value);
  -moz-transform: rotate($value);
  -ms-transform: rotate($value);
  transform: rotate($value);
}

@mixin font-smoothing($webkit, $osx: $webkit) {
  -webkit-font-smoothing: $webkit;
  -moz-osx-font-smoothing: $osx;
}

// Shorthand mixin for offset positioning
// @param {String} $position - Either `relative`, `absolute` or `fixed`
// @param {Length} $top [null] - Top offset
// @param {Length} $right [null] - Right offset
// @param {Length} $bottom [null] - Bottom offset
// @param {Length} $left [null] - Left offset
@mixin position($position, $top: null, $right: null, $bottom: null, $left: null) {
  position: $position;
  top: $top;
  right: $right;
  bottom: $bottom;
  left: $left;
}

// Shorthand mixin for basic sizing
// @param {Length} $width [null] - Element width
// @param {Length} $height [$width] - Element height
@mixin size($width, $height: $width) {
  width: $width;
  height: $height;
}

// Shorthand mixin for basic animations
// @param {Length} $animation [null] - Animation defined
// @param {Length} $duration [$width] - Duration of the animation
@mixin animation($animation, $duration) {
  -webkit-animation: $animation $duration;
  animation: $animation $duration;
}
