/*--------------------------------------------*\
               $EASINGS SHORTHANDS
\*--------------------------------------------*/

// based on
// https://github.com/jhardy/compass-ceaser-easing

@function bezier($type: ease) {
	$bezier: "0.420, 0.000, 0.580, 1.000";

	@if $type == linear {
		$bezier: "0.250, 0.250, 0.750, 0.750"
	}
	@if $type == ease {
		$bezier: "0.250, 0.100, 0.250, 1.000"
	}
	@if $type == ease-in {
		$bezier: "0.420, 0.000, 1.000, 1.000"
	}
	@if $type == ease-out {
		$bezier: "0.000, 0.000, 0.580, 1.000"
	}
	@if $type == ease-in-out {
		$bezier: "0.420, 0.000, 0.580, 1.000"
	}

	@if $type == easeInQuad {
		$bezier: "0.550, 0.085, 0.680, 0.530"
	}
	@if $type == easeInCubic {
		$bezier: "0.550, 0.055, 0.675, 0.190"
	}
	@if $type == easeInQuart {
		$bezier: "0.895, 0.030, 0.685, 0.220"
	}
	@if $type == easeInQuint {
		$bezier: "0.755, 0.050, 0.855, 0.060"
	}
	@if $type == easeInSine {
		$bezier: "0.470, 0.000, 0.745, 0.715"
	}
	@if $type == easeInExpo {
		$bezier: "0.950, 0.050, 0.795, 0.035"
	}
	@if $type == easeInCirc {
		$bezier: "0.600, 0.040, 0.980, 0.335"
	}
	@if $type == easeInBack {
		$bezier: "0.600, -0.280, 0.735, 0.045"
	}

	@if $type == easeOutQuad {
		$bezier: "0.250, 0.460, 0.450, 0.940"
	}
	@if $type == easeOutCubic {
		$bezier: "0.215, 0.610, 0.355, 1.000"
	}
	@if $type == easeOutQuart {
		$bezier: "0.165, 0.840, 0.440, 1.000"
	}
	@if $type == easeOutQuint {
		$bezier: "0.230, 1.000, 0.320, 1.000"
	}
	@if $type == easeOutSine {
		$bezier: "0.390, 0.575, 0.565, 1.000"
	}
	@if $type == easeOutExpo {
		$bezier: "0.190, 1.000, 0.220, 1.000"
	}
	@if $type == easeOutCirc {
		$bezier: "0.075, 0.820, 0.165, 1.000"
	}
	@if $type == easeOutBack {
		$bezier: "0.175, 0.885, 0.320, 1.275"
	}

	@if $type == easeInOutQuad {
		$bezier: "0.455, 0.030, 0.515, 0.955"
	}
	@if $type == easeInOutCubic {
		$bezier: "0.645, 0.045, 0.355, 1.000"
	}
	@if $type == easeInOutQuart {
		$bezier: "0.770, 0.000, 0.175, 1.000"
	}
	@if $type == easeInOutQuint {
		$bezier: "0.860, 0.000, 0.070, 1.000"
	}
	@if $type == easeInOutSine {
		$bezier: "0.445, 0.050, 0.550, 0.950"
	}
	@if $type == easeInOutExpo {
		$bezier: "1.000, 0.000, 0.000, 1.000"
	}
	@if $type == easeInOutCirc {
		$bezier: "0.785, 0.135, 0.150, 0.860"
	}
	@if $type == easeInOutBack {
		$bezier: "0.680, -0.550, 0.265, 1.550"
	}

	@return unquote("cubic-bezier("+$bezier+")");
}

%linear {
	@include transition(all .3s bezier(linear))
}

%ease {
	@include transition(all .3s bezier(ease))
}

%ease-in {
	@include transition(all .3s bezier(ease-in))
}

%ease-out {
	@include transition(all .3s bezier(ease-out))
}

%ease-in-out {
	@include transition(all .3s bezier(ease-in-out))
}

%easeInQuad {
	@include transition(all .3s bezier(easeInQuad))
}

%easeInCubic {
	@include transition(all .3s bezier(easeInCubic))
}

%easeInQuart {
	@include transition(all .3s bezier(easeInQuart))
}

%easeInQuint {
	@include transition(all .3s bezier(easeInQuint))
}

%easeInSine {
	@include transition(all .3s bezier(easeInSine))
}

%easeInExpo {
	@include transition(all .3s bezier(easeInExpo))
}

%easeInCirc {
	@include transition(all .3s bezier(easeInCirc))
}

%easeInBack {
	@include transition(all .3s bezier(easeInBack))
}

%easeOutQuad {
	@include transition(all .3s bezier(easeOutQuad))
}

%easeOutCubic {
	@include transition(all .3s bezier(easeOutCubic))
}

%easeOutQuart {
	@include transition(all .3s bezier(easeOutQuart))
}

%easeOutQuint {
	@include transition(all .3s bezier(easeOutQuint))
}

%easeOutSine {
	@include transition(all .3s bezier(easeOutSine))
}

%easeOutExpo {
	@include transition(all .3s bezier(easeOutExpo))
}

%easeOutCirc {
	@include transition(all .3s bezier(easeOutCirc))
}

%easeOutBack {
	@include transition(all .3s bezier(easeOutBack))
}

%easeInOutQuad {
	@include transition(all .3s bezier(easeInOutQuad))
}

%easeInOutCubic {
	@include transition(all .3s bezier(easeInOutCubic))
}

%easeInOutQuart {
	@include transition(all .3s bezier(easeInOutQuart))
}

%easeInOutQuint {
	@include transition(all .3s bezier(easeInOutQuint))
}

%easeInOutSine {
	@include transition(all .3s bezier(easeInOutSine))
}

%easeInOutExpo {
	@include transition(all .3s bezier(easeInOutExpo))
}

%easeInOutCirc {
	@include transition(all .3s bezier(easeInOutCirc))
}

%easeInOutBack {
	@include transition(all .3s bezier(easeInOutBack))
}