/*!
 * Ladda
 * http://lab.hakim.se/ladda
 * MIT licensed
 *
 * Copyright (C) 2016 Hakim El Hattab, http://hakim.se
 */


/*************************************
 * CONFIG
 */

$spinnerSize: 32px;


/*************************************
 * MIXINS
 */

@mixin prefix ( $property, $value ) {
	-webkit-#{$property}: $value;
	   -moz-#{$property}: $value;
	    -ms-#{$property}: $value;
	     -o-#{$property}: $value;
	        #{$property}: $value;
}

@mixin transition( $value ) {
	-webkit-transition: $value !important; // important to override bootstrap
	   -moz-transition: $value !important;
	    -ms-transition: $value !important;
	     -o-transition: $value !important;
	        transition: $value !important;
}

@mixin transform( $value ) {
	@include prefix( transform, $value );
}

@mixin transform-origin( $value ) {
	@include prefix( transform-origin, $value );
}

@mixin buttonColor( $name, $color ) {
	&[data-color=#{$name}] {
		background: $color;

		&:hover {
			background-color: lighten( $color, 5% );
		}
	}
}


/*************************************
 * BUTTON BASE
 */

.ladda-button {
	position: relative;
}


/* Spinner animation */
.ladda-button .ladda-spinner {
	position: absolute;
	z-index: 2;
	display: inline-block;
	width: $spinnerSize;
	height: $spinnerSize;
	top: 50%;
	margin-top: 0;
	opacity: 0;
	pointer-events: none;
}

/* Button label */
.ladda-button .ladda-label {
	position: relative;
	z-index: 3;
}

/* Progress bar */
.ladda-button .ladda-progress {
	position: absolute;
	width: 0;
	height: 100%;
	left: 0;
	top: 0;
	background: rgba( 0, 0, 0, 0.2 );

	visibility: hidden;
	opacity: 0;

	@include transition( 0.1s linear all );
}
	.ladda-button[data-loading] .ladda-progress {
		opacity: 1;
		visibility: visible;
	}


/*************************************
 * EASING
 */

.ladda-button,
.ladda-button .ladda-spinner,
.ladda-button .ladda-label {
	@include transition( 0.3s cubic-bezier(0.175, 0.885, 0.320, 1.275) all );
}

.ladda-button[data-style=zoom-in],
.ladda-button[data-style=zoom-in] .ladda-spinner,
.ladda-button[data-style=zoom-in] .ladda-label,
.ladda-button[data-style=zoom-out],
.ladda-button[data-style=zoom-out] .ladda-spinner,
.ladda-button[data-style=zoom-out] .ladda-label {
	@include transition( 0.3s ease all );
}


/*************************************
 * EXPAND LEFT
 */

.ladda-button[data-style=expand-right] {
	.ladda-spinner {
		right: $spinnerSize/-2 + 10;
	}

	&[data-size="s"] .ladda-spinner,
	&[data-size="xs"] .ladda-spinner {
		right: $spinnerSize/-2 + 4;
	}

	&[data-loading] {
		padding-right: 56px;

		.ladda-spinner {
			opacity: 1;
		}

		&[data-size="s"],
		&[data-size="xs"] {
			padding-right: 40px;
		}
	}
}


/*************************************
 * EXPAND RIGHT
 */

.ladda-button[data-style=expand-left] {
	.ladda-spinner {
		left: $spinnerSize/2 + 10;
	}

	&[data-size="s"] .ladda-spinner,
	&[data-size="xs"] .ladda-spinner {
		left: 4px;
	}

	&[data-loading] {
		padding-left: 56px;

		.ladda-spinner {
			opacity: 1;
		}

		&[data-size="s"],
		&[data-size="xs"] {
			padding-left: 40px;
		}
	}
}


/*************************************
 * EXPAND UP
 */

.ladda-button[data-style=expand-up] {
	overflow: hidden;

	.ladda-spinner {
		top: -$spinnerSize;
		left: 50%;
		margin-left: 0;
	}

	&[data-loading] {
		padding-top: 54px;

		.ladda-spinner {
			opacity: 1;
			top: ($spinnerSize/ 2) + 10;
			margin-top: 0;
		}

		&[data-size="s"],
		&[data-size="xs"] {
			padding-top: 32px;

			.ladda-spinner {
				top: 4px;
			}
		}
	}
}


/*************************************
 * EXPAND DOWN
 */

 .ladda-button[data-style=expand-down] {
 	overflow: hidden;

 	.ladda-spinner {
 		top: 62px;
 		left: 50%;
 		margin-left: 0;
 	}

 	&[data-size="s"] .ladda-spinner,
 	&[data-size="xs"] .ladda-spinner {
 		top: 40px;
 	}

 	&[data-loading] {
 		padding-bottom: 54px;

 		.ladda-spinner {
 			opacity: 1;
 		}

 		&[data-size="s"],
 		&[data-size="xs"] {
 			padding-bottom: 32px;
 		}
 	}
 }


/*************************************
 * SLIDE LEFT
 */
.ladda-button[data-style=slide-left] {
	overflow: hidden;

	.ladda-label {
		position: relative;
	}
	.ladda-spinner {
		left: 100%;
		margin-left: 0;
	}

	&[data-loading] {
		.ladda-label {
			opacity: 0;
			left: -100%;
		}
		.ladda-spinner {
			opacity: 1;
			left: 50%;
		}
	}
}


/*************************************
 * SLIDE RIGHT
 */
.ladda-button[data-style=slide-right] {
	overflow: hidden;

	.ladda-label {
		position: relative;
	}
	.ladda-spinner {
		right: 100%;
		margin-left: 0;
		left: $spinnerSize/2
	}

	&[data-loading] {
		.ladda-label {
			opacity: 0;
			left: 100%;
		}
		.ladda-spinner {
			opacity: 1;
			left: 50%;
		}
	}
}


/*************************************
 * SLIDE UP
 */
.ladda-button[data-style=slide-up] {
	overflow: hidden;

	.ladda-label {
		position: relative;
	}
	.ladda-spinner {
		left: 50%;
		margin-left: 0;
		margin-top: 1em;
	}

	&[data-loading] {
		.ladda-label {
			opacity: 0;
			top: -1em;
		}
		.ladda-spinner {
			opacity: 1;
			margin-top: 0;
		}
	}
}


/*************************************
 * SLIDE DOWN
 */
.ladda-button[data-style=slide-down] {
	overflow: hidden;

	.ladda-label {
		position: relative;
	}
	.ladda-spinner {
		left: 50%;
		margin-left: 0;
		margin-top: -2em;
	}

	&[data-loading] {
		.ladda-label {
			opacity: 0;
			top: 1em;
		}
		.ladda-spinner {
			opacity: 1;
			margin-top: 0;
		}
	}
}


/*************************************
 * ZOOM-OUT
 */

.ladda-button[data-style=zoom-out] {
	overflow: hidden;
}
	.ladda-button[data-style=zoom-out] .ladda-spinner {
		left: 50%;
		margin-left: $spinnerSize;

		@include transform( scale( 2.5 ) );
	}
	.ladda-button[data-style=zoom-out] .ladda-label {
		position: relative;
		display: inline-block;
	}

.ladda-button[data-style=zoom-out][data-loading] .ladda-label {
	opacity: 0;

	@include transform( scale( 0.5 ) );
}
.ladda-button[data-style=zoom-out][data-loading] .ladda-spinner {
	opacity: 1;
	margin-left: 0;

	@include transform( none );
}


/*************************************
 * ZOOM-IN
 */

.ladda-button[data-style=zoom-in] {
	overflow: hidden;
}
	.ladda-button[data-style=zoom-in] .ladda-spinner {
		left: 50%;
		margin-left: $spinnerSize/-2;

		@include transform( scale( 0.2 ) );
	}
	.ladda-button[data-style=zoom-in] .ladda-label {
		position: relative;
		display: inline-block;
	}

.ladda-button[data-style=zoom-in][data-loading] .ladda-label {
	opacity: 0;

	@include transform( scale( 2.2 ) );
}
.ladda-button[data-style=zoom-in][data-loading] .ladda-spinner {
	opacity: 1;
	margin-left: 0;

	@include transform( none );
}


/*************************************
 * CONTRACT
 */

.ladda-button[data-style=contract] {
	overflow: hidden;
	width: 100px;
}
	.ladda-button[data-style=contract] .ladda-spinner {
		left: 50%;
		margin-left: 0;
	}

.ladda-button[data-style=contract][data-loading] {
	border-radius: 50%;
	width: 52px;
}
	.ladda-button[data-style=contract][data-loading] .ladda-label {
		opacity: 0;
	}
	.ladda-button[data-style=contract][data-loading] .ladda-spinner {
		opacity: 1;
	}



/*************************************
 * OVERLAY
 */

.ladda-button[data-style=contract-overlay] {
	overflow: hidden;
	width: 100px;

	box-shadow: 0px 0px 0px 2000px rgba(0,0,0,0);
}
	.ladda-button[data-style=contract-overlay] .ladda-spinner {
		left: 50%;
		margin-left: 0;
	}

.ladda-button[data-style=contract-overlay][data-loading] {
	border-radius: 50%;
	width: 52px;

	/*outline: 10000px solid rgba( 0, 0, 0, 0.5 );*/
	box-shadow: 0px 0px 0px 2000px rgba(0,0,0,0.8);
}
	.ladda-button[data-style=contract-overlay][data-loading] .ladda-label {
		opacity: 0;
	}
	.ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner {
		opacity: 1;
	}











