fleet/frontend/components/buttons/Button/_styles.scss
2016-11-11 08:42:23 -06:00

136 lines
2.5 KiB
SCSS

$gradient-start: #7166d9;
$gradient-end: #c86dd7;
$inverse-hover: #fafbff;
$base-class: 'button';
@mixin button-variant($color, $hover: null, $shadow: null) {
@if not $shadow {
$shadow: adjust-color($color, $lightness: -20%, $saturation: 20%);
}
@if not $hover {
$hover: darken($color, 5%);
}
background-color: $color;
box-shadow: 0 2px 0 $shadow, 0 3px 5px 0 rgba($black, 0.15);
&.#{$base-class}--disabled {
&:hover {
background-color: $color;
}
}
&:hover {
background-color: $hover;
}
}
.#{$base-class} {
@include user-select(none);
@include transition(background 150ms ease-in-out, top 50ms ease-in-out, box-shadow 50ms ease-in-out, border 50ms ease-in-out);
@include button-variant($link);
position: relative;
height: 38px;
text-align: center;
color: $white;
line-height: 36px;
text-transform: uppercase;
letter-spacing: 1px;
border-radius: 2px;
font-size: $medium;
font-family: 'Oxygen', $helvetica;
font-weight: $bold;
display: inline-block;
padding: 0 $pad-large;
top: 0;
border: 0;
cursor: pointer;
box-sizing: border-box;
&:active {
box-shadow: 0 0 0 $black, 0 1px 2px rgba($black, .15), 0 -1px 0 rgba($white, .1) inset;
top: 2px;
}
&:focus {
outline: none;
}
&--brand {
@include button-variant($brand);
}
&--success {
@include button-variant($success);
}
&--alert {
@include button-variant($alert);
}
&--warning {
@include button-variant($warning);
}
&--inverse {
@include button-variant($white, $inverse-hover, $brand);
color: $brand;
border: 1px solid $brand;
border-bottom-color: $white;
&:active {
border-bottom-color: $brand;
}
}
&--disabled {
opacity: 0.4;
cursor: default;
}
&--small {
height: 28px;
line-height: 26px;
padding: 0 $pad-medium;
}
&--large {
height: 48px;
line-height: 46px;
}
&--gradient {
background-color: transparent;
background-image: linear-gradient(134deg, $gradient-start 0%, $gradient-end 100%);
color: $white;
font-size: $large;
font-weight: $light;
letter-spacing: 4px;
padding: $medium;
width: 100%;
height: auto;
box-shadow: none;
}
&--unstyled {
background-color: transparent;
border: 0;
box-shadow: none;
margin: 0;
padding: 0;
height: auto;
line-height: normal;
&:active {
box-shadow: none;
top: 0;
}
&:hover {
background-color: transparent;
box-shadow: none;
}
}
}