// Temporary Variables
$tmp-transition-value: none;

// Animation Mixins.
@mixin animation($value) {
    @include prefixer(animation, $value, true);
}
@mixin animation-name($value) {
    @include prefixer(animation-name, $value, true);
}
@mixin animation-duration($value) {
    @include prefixer(animation-duration, $value, true);
}
@mixin animation-timing-function($value) {
    @include prefixer(animation-timing-function, $value, true);
}
@mixin animation-delay($value) {
    @include prefixer(animation-delay, $value, true);
}
@mixin animation-iteration-count($value) {
    @include prefixer(animation-iteration-count, $value, true);
}
@mixin animation-direction($value) {
    @include prefixer(animation-direction, $value, true);
}
@mixin animation-fill-mode($value) {
    @include prefixer(animation-fill-mode, $value, true);
}
@mixin animation-play-state($value) {
    @include prefixer(animation-play-state, $value, true);
}

// Transition.
@mixin transitions($value...) {
    @include prefixer(transition, $value, true);
}
@mixin transition($value, $append: false) {
    @if ($tmp-transition-value == none) {
        $tmp-transition-value: $value !global;
    }
    @else {
        $tmp-transition-value: ($tmp-transition-value, $value) !global;
    }

    @if ($append == false) {
        @include prefixer(transition, $tmp-transition-value, true);

        $tmp-transition-value: none !global;
    }
}

@mixin transition-property($value) {
    @include prefixer(transition-property, $value, true);
}
@mixin transition-duration($value) {
    @include prefixer(transition-duration, $value, true);
}
@mixin transition-timing-function($value) {
    @include prefixer(transition-timing-function, $value, true);
}
@mixin transition-delay($value) {
    @include prefixer(transition-delay, $value, true);
}

// Prebuilt Transitions.
@mixin public-effect() {
    @include transition(all $def-etime ease-in-out);
}
@mixin public-effect-fast() {
    @include transition(all $def-etime-f ease-in-out);
}
@mixin public-effect-slow() {
    @include transition(all $def-etime-s ease-in-out);
}

// Keyframe Mixin @2.1.0
@mixin keyframes($name) {
    @-webkit-keyframes #{$name} {
        @content;
    }
    @keyframes #{$name} {
        @content;
    }
}
