// ANIMATIONS
// shared animations
// all mixins are pre-pended with `animation`
// animations are assumed to be infinitely looped
// appended `-<times>` denotes finite iteration

// Default Animation Values
@animation-speed-slow: 700ms;
@animation-speed-normal: 500ms;
@animation-speed-fast: 300ms;
@animation-speed-very-fast: 200ms;

@animation-direction-up: 'up';
@animation-direction-right: 'right';
@animation-direction-down: 'down';
@animation-direction-left: 'left';

@animation-default-type: ease-in-out;

// 	Notifications
.animation-flash-slow(@color) {
	.animation(flash-slow @animation-speed-slow @animation-default-type infinite alternate);

	.keyframes(flash-slow, {
	0% { background: fade(@color, @amount-subtle) }
	100% { background: fade(@color, @amount-light) }
	});
}

// Transitions
// Don't pass `all`.  Can potentially cause performance issues.
// Instead, pass a comma separated list of property/timing/easing to watch for changes with a `;` at the end
.transition(...) {
	transition: @arguments;
}

//	Helpers
.animation(@args) {
	animation: @args;
}

.keyframes(@name; @args) {
	@keyframes @name { @args(); }
}
