/*
 * Button mixin- creates a button effect with correct
 * highlights/shadows, based on a base color.
 */
@mixin button( $button-color, $button-text-color: #fff ) {
	background: $button-color;
	border-color: $button-color;
	color: $button-text-color;

	&:hover,
	&:focus {
		background: lighten( $button-color, 3% );
		border-color: darken( $button-color, 3% );
		color: $button-text-color;
	}

	&:focus {
		box-shadow:
			0 0 0 1px #fff,
			0 0 0 3px $button-color;
	}

	&:active {
		background: darken( $button-color, 5% );
		border-color: darken( $button-color, 5% );
		color: $button-text-color;
	}

	&.active,
	&.active:focus,
	&.active:hover {
		background: $button-color;
		color: $button-text-color;
		border-color: darken( $button-color, 15% );
		box-shadow: inset 0 2px 5px -3px darken( $button-color, 50% );
	}

	&[disabled],
	&:disabled,
	&.button-primary-disabled,
	&.disabled {
		color: hsl( hue( $button-color ), 10%, 80% ) !important;
		background: darken( $button-color, 8% ) !important;
		border-color: darken( $button-color, 8% ) !important;
		text-shadow: none !important;
	}
}
