/*! * Ladda * http://lab.hakim.se/ladda * MIT licensed * * Copyright (C) 2013 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 vendor-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 .ladda-spinner position: absolute z-index: 2 display: inline-block width: $spinnerSize height: $spinnerSize top: 50% margin-top: -$spinnerSize/2 opacity: 0 pointer-events: none .ladda-label position: relative z-index: 3 .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 ) &[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) background-color ) .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: 14px &[data-size="s"] .ladda-spinner, &[data-size="xs"] .ladda-spinner right: 4px &[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: 14px &[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: -$spinnerSize/2 &[data-loading] padding-top: 54px .ladda-spinner opacity: 1 top: 14px 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: -$spinnerSize/2 &[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: -$spinnerSize/2 &[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: -$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: -$spinnerSize/2 margin-top: 1em &[data-loading] .ladda-label opacity: 0 top: -1em .ladda-spinner opacity: 1 margin-top: -$spinnerSize/2 // SLIDE DOWN .ladda-button[data-style=slide-down] overflow: hidden .ladda-label position: relative .ladda-spinner left: 50% margin-left: -$spinnerSize/2 margin-top: -2em &[data-loading] .ladda-label opacity: 0 top: 1em .ladda-spinner opacity: 1 margin-top: -$spinnerSize/2 // ZOOM-OUT .ladda-button[data-style=zoom-out] overflow: hidden .ladda-spinner left: 50% margin-left: -$spinnerSize/2 @include vendor-transform( scale( 2.5 ) ) .ladda-label position: relative display: inline-block &[data-loading] .ladda-label opacity: 0 @include vendor-transform( scale( 0.5 ) ) &[data-loading] .ladda-spinner opacity: 1 @include vendor-transform( none ) // ZOOM-IN .ladda-button[data-style=zoom-in] overflow: hidden .ladda-spinner left: 50% margin-left: -$spinnerSize/2 @include vendor-transform( scale( 0.2 ) ) .ladda-label position: relative display: inline-block &[data-loading] .ladda-label opacity: 0 @include vendor-transform( scale( 2.2 ) ) &[data-loading] .ladda-spinner opacity: 1 @include vendor-transform( none ) // CONTRACT .ladda-button[data-style=contract] overflow: hidden width: 100px .ladda-spinner left: 50% margin-left: -16px .ladda-button[data-style=contract][data-loading] border-radius: 50% width: 52px .ladda-label opacity: 0 .ladda-spinner opacity: 1 // OVERLAY .ladda-button[data-style=contract-overlay] overflow: hidden width: 100px box-shadow: 0px 0px 0px 3000px rgba(0,0,0,0) .ladda-spinner left: 50% margin-left: -16px &[data-loading] border-radius: 50% width: 52px /*outline: 10000px solid rgba( 0, 0, 0, 0.5 );*/ box-shadow: 0px 0px 0px 3000px rgba(0,0,0,0.8) .ladda-label opacity: 0 .ladda-spinner opacity: 1 // THEME $red: #ea8557 $purple: #9973C2 $mint: #16a085 $green: #2aca76 $blue: #53b5e6 .ladda-button &[disabled], &[data-loading] border-color: rgba( 0, 0, 0, 0.07 ) cursor: default background-color: #999 &:hover cursor: default background-color: #999 &[data-size=xs] padding: 4px 8px .ladda-label font-size: 0.7em &[data-size=s] padding: 6px 10px .ladda-label font-size: 0.9em &[data-size=l] .ladda-label font-size: 1.2em &[data-size=xl] .ladda-label font-size: 1.5em