// 3d mixins
@mixin preserve-3d {
	transform-style: preserve-3d;
}
@mixin backface {
	backface-visibility: hidden;
}

// Transformations
@mixin scale($ratio...) {
	transform: scale($ratio);
}

@mixin scaleX($ratio) {
	transform: scaleX($ratio);
}
@mixin scaleY($ratio) {
	transform: scaleY($ratio);
}
@mixin skew($x, $y) {
	transform: skewX($x) skewY($y);
}
@mixin translate($x, $y) {
	transform: translate($x, $y);
}
@mixin matrixTransform($scaleX, $skewY, $skewX, $scaleY, $translateX, $translateY) {
	transform: matrix($scaleX, $skewY, $skewX, $scaleY, $translateX, $translateY);
}
@mixin translate3d($x, $y, $z) {
	transform: translate3d($x, $y, $z);
}
@mixin rotate($degrees) {
	transform: rotate($degrees);
}
@mixin rotateX($degrees) {
	transform: rotateX($degrees);
}
@mixin rotateY($degrees) {
	transform: rotateY($degrees);
}
@mixin perspective($perspective) {
	perspective: $perspective;
}
@mixin perspective-origin($perspective) {
	perspective-origin: $perspective;
}
@mixin transform-origin($origin) {
	transform-origin: $origin;
}

// Transform
@mixin transform($trfm) {
	-webkit-transform: $trfm;
	transform: $trfm;
}

// Transitions
@mixin transition($transition...) {
	transition: $transition;
}
@mixin transition-property($transition-property...) {
	transition-property: $transition-property;
}
@mixin transition-delay($transition-delay) {
	transition-delay: $transition-delay;
}
@mixin transition-duration($transition-duration...) {
	transition-duration: $transition-duration;
}
@mixin transition-timing-function($timing-function) {
	transition-timing-function: $timing-function;
}
@mixin transition-transform($transition...) {
	transition: transform $transition;
}