Files
glovetleong 8fa80e4a1a setup
2021-06-17 09:53:04 +08:00

426 lines
6.7 KiB
SCSS
Vendored

// Buttons
// 2x Outline Border
.btn-outline-2x {
border-width: 2px;
&.btn-group {
.btn {
border-width: 2px;
& + .btn {
margin-left: -2px;
}
}
}
&.btn-group-vertical {
.btn {
border-width: 2px;
& + .btn {
margin-top: -2px;
}
}
}
}
.btn-pill {
.ladda-progress {
@include border-left-radius(50px);
@include border-right-radius(50px);
}
&.btn-group {
& > .btn:first-child {
@include border-left-radius(50px);
}
& > .btn:last-child {
@include border-right-radius(50px);
}
}
&.btn-group-vertical {
& > .btn:first-child {
@include border-top-radius(12px);
}
& > .btn:last-child {
@include border-bottom-radius(12px);
}
}
}
.btn-square {
@include border-radius(0);
.ladda-progress {
@include border-radius(0);
}
&.btn-group-vertical,
&.btn-group {
& > .btn {
@include border-radius(0);
}
}
}
.btn-group {
.btn {
font-size: $font-size-base;
font-weight: 500;
}
}
.btn {
font-size: $font-size-base;
font-weight: 500;
// Pills Buttons
&.btn-pill.btn-wide,
&.btn-pill {
@include border-left-radius(50px);
@include border-right-radius(50px);
}
}
// Dashed Border
.btn-dashed {
border-style: dashed;
&.btn-group {
border-style: none;
.btn {
border-style: dashed;
}
}
&.btn-group-vertical {
border-style: none;
.btn {
border-style: dashed;
}
}
}
.dropdown-toggle-no-caret {
&::after {
display: none;
}
}
// Icon Buttons
.btn-icon {
vertical-align: bottom;
&.btn-icon-right {
.btn-icon-wrapper {
margin-left: ($spacer / 2);
margin-right: 0;
}
}
.btn-icon-wrapper {
margin-right: ($spacer / 2);
margin-left: 0;
margin-top: 0;
font-size: 17px;
vertical-align: middle;
transition: none;
display: inline-block;
}
&.btn-link {
text-decoration: none;
}
&.btn-lg:not(.btn-block) {
.btn-icon-wrapper {
font-size: 25px;
}
}
&.btn-sm:not(.btn-block) {
.btn-icon-wrapper {
font-size: 16px;
}
}
}
.btn-icon-only {
.btn-icon-wrapper {
margin-left: 0;
margin-right: 0;
}
}
// Hover Shine {
.btn-hover-shine {
position: relative;
&:after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 0;
height: 100%;
background-color: rgba(255, 255, 255, 0.4);
-webkit-transition: none;
-moz-transition: none;
transition: none;
}
&:hover:after {
width: 120%;
background-color: rgba(255, 255, 255, 0);
transition: all 0.4s ease-in-out;
}
&.btn-pill {
&::after {
@include border-left-radius(50px);
@include border-right-radius(50px);
}
}
}
// Vertical Icons {
.btn-icon-vertical {
padding-top: ($btn-block-spacing-y * 2);
padding-bottom: ($btn-block-spacing-y * 2);
min-width: 100px;
.btn-icon-wrapper {
display: block;
font-size: 200%;
margin: 5px 0;
opacity: .6;
}
&.btn-link {
text-decoration: none;
}
&.btn-lg:not(.btn-block) {
.btn-icon-wrapper {
font-size: 25px;
}
}
&.btn-sm:not(.btn-block) {
.btn-icon-wrapper {
font-size: 16px;
}
}
&:active,
&.active,
&:hover {
.btn-icon-wrapper {
opacity: 1;
}
}
&.btn-icon-bottom {
.btn-icon-wrapper {
margin: ($spacer / 5) 0 5px;
}
}
&.btn-transition-text {
.btn-icon-wrapper {
transition: all .2s !important;
}
&:hover {
.btn-icon-wrapper {
transform: scale(1.3);
}
}
&.btn-transition-alt {
&:hover {
.btn-icon-wrapper {
color: $white !important;
}
}
}
}
}
.btn-icon-lg {
font-size: $h1-font-size !important;
}
// Buttons Transitions
.btn-transition {
color: $gray-600;
border-color: $gray-200;
background-color: none;
&.btn-outline-link {
border-color: transparent;
background-color: transparent;
&:hover {
color: $primary;
background: $gray-100;
}
}
&.disabled,
&:disabled {
color: $gray-600;
border-color: $gray-200;
}
&:hover {
.btn-icon-wrapper {
transition: none;
}
}
}
.btn-transition-alt {
&:hover {
.icon-gradient {
-webkit-background-clip: initial;
-webkit-text-fill-color: initial;
background-clip: initial;
text-fill-color: initial;
background: none !important;
color: $white;
}
}
}
// Square Buttons
.btn-square {
@include border-radius(0 !important);
}
// Wide buttons
.btn {
&.btn-wide {
@include button-size($btn-padding-y, ($btn-padding-x * 2), $font-size-xs, $btn-line-height, $btn-border-radius);
}
}
.btn-lg {
&.btn-wide {
@include button-size($btn-padding-y-lg, ($btn-padding-x-lg * 2), $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
}
}
.btn-sm {
&.btn-wide {
@include button-size($btn-padding-y-sm, ($btn-padding-x-sm * 2), $font-size-xs, $btn-line-height-sm, $btn-border-radius-sm);
}
}
// Dropdown toggle
.dropdown-toggle {
&::after {
position: relative;
top: 2px;
opacity: .8;
}
}
.dropright {
.dropdown-toggle {
&::after {
top: 0;
}
}
}
.dropdown-toggle-split {
border-left: rgba(255, 255, 255, .1) solid 1px;
}
.btn.btn-shadow {
&.active {
box-shadow: 0 0 0 0 transparent !important;
}
}
// Links
$link-color: theme-color("primary");
$link-hover-color: darken($link-color, 15%);
// Generate Buttons
@each $color, $value in $theme-colors {
.btn-#{$color} {
@include button-variant($value, $value);
&.btn-shadow {
box-shadow: 0 0.125rem 0.625rem rgba($value, .4), 0 0.0625rem 0.125rem rgba($value, .5);
&:hover {
box-shadow: 0 0.125rem 0.625rem rgba($value, .5), 0 0.0625rem 0.125rem rgba($value, .6);
}
}
}
}
@each $color, $value in $theme-colors {
.btn-shadow-#{$color} {
&:hover {
box-shadow: 0 0.125rem 0.625rem rgba($value, .4), 0 0.0625rem 0.125rem rgba($value, .5);
}
}
}
@each $color, $value in $theme-colors {
.btn-outline-#{$color} {
@include button-outline-variant($value);
&.btn-shadow {
box-shadow: 0 0.125rem 0.625rem rgba($value, .4), 0 0.0625rem 0.125rem rgba($value, .5);
&.active:hover,
&.disabled:hover,
&:active:hover,
&:disabled:hover {
box-shadow: 0 0.125rem 0.625rem rgba($value, .5), 0 0.0625rem 0.125rem rgba($value, .6);
}
&:hover {
box-shadow: (0px 5px 15px 2px rgba($value, 0.19));
}
}
}
}
.btn {
position: relative;
@include transition($btn-transition);
}
.btn-light {
border-color: darken(#f5f5f5, 10%);
}
.btn-outline-light {
color: darken(#f5f5f5, 40%);
}