314 lines
6.5 KiB
Sass
314 lines
6.5 KiB
Sass
/*!
|
|
* 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%
|
|
top: 0
|
|
background: rgba( 0, 0, 0, 0.2 )
|
|
visibility: hidden
|
|
opacity: 0
|
|
@include left(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
|
|
@include right(14px)
|
|
&[data-size="s"] .ladda-spinner,
|
|
&[data-size="xs"] .ladda-spinner
|
|
@include right(4px)
|
|
&[data-loading]
|
|
@include padding-right(56px)
|
|
.ladda-spinner
|
|
opacity: 1
|
|
&[data-size="s"],
|
|
&[data-size="xs"]
|
|
@include padding-right(40px)
|
|
|
|
// EXPAND RIGHT
|
|
.ladda-button[data-style=expand-left]
|
|
.ladda-spinner
|
|
@include left(14px)
|
|
&[data-size="s"] .ladda-spinner,
|
|
&[data-size="xs"] .ladda-spinner
|
|
@include left(4px)
|
|
&[data-loading]
|
|
@include padding-left(56px)
|
|
.ladda-spinner
|
|
opacity: 1
|
|
&[data-size="s"],
|
|
&[data-size="xs"]
|
|
@include padding-left(40px)
|
|
|
|
// EXPAND UP
|
|
.ladda-button[data-style=expand-up]
|
|
overflow: hidden
|
|
.ladda-spinner
|
|
top: -$spinnerSize
|
|
@include margin-left(-$spinnerSize/2)
|
|
@include left(50%)
|
|
&[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
|
|
@include 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
|
|
@include left(100%)
|
|
@include margin-left(-$spinnerSize/2)
|
|
&[data-loading]
|
|
.ladda-label
|
|
opacity: 0
|
|
@include left(-100%)
|
|
.ladda-spinner
|
|
opacity: 1
|
|
@include left(50%)
|
|
|
|
// SLIDE RIGHT
|
|
.ladda-button[data-style=slide-right]
|
|
overflow: hidden
|
|
.ladda-label
|
|
position: relative
|
|
.ladda-spinner
|
|
@include right(100%)
|
|
@include margin-left(-$spinnerSize/2)
|
|
&[data-loading]
|
|
.ladda-label
|
|
opacity: 0
|
|
@include left(100%)
|
|
.ladda-spinner
|
|
opacity: 1
|
|
@include left(50%)
|
|
|
|
// SLIDE UP
|
|
.ladda-button[data-style=slide-up]
|
|
overflow: hidden
|
|
.ladda-label
|
|
position: relative
|
|
.ladda-spinner
|
|
margin-top: 1em
|
|
@include left(50%)
|
|
@include margin-left(-$spinnerSize/2)
|
|
&[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
|
|
margin-top: -2em
|
|
@include margin-left(-$spinnerSize/2)
|
|
@include left(50%)
|
|
&[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
|
|
@include left(50%)
|
|
@include 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
|
|
@include margin-left(-$spinnerSize/2)
|
|
@include left(50%)
|
|
@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
|
|
@include left(50%)
|
|
@include 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
|
|
@include ltr
|
|
box-shadow: 0px 0px 0px 3000px rgba(0,0,0,0)
|
|
@include rtl
|
|
box-shadow: 0px 3000px 0px 0px rgba(0,0,0,0)
|
|
.ladda-spinner
|
|
@include left(50%)
|
|
@include margin-left(-16px)
|
|
&[data-loading]
|
|
border-radius: 50%
|
|
width: 52px
|
|
@include ltr
|
|
box-shadow: 0px 0px 0px 3000px rgba(0,0,0,0.8)
|
|
@include rtl
|
|
box-shadow: 0px 3000px 0px 0px rgba(0,0,0,0.8)
|
|
.ladda-label
|
|
opacity: 0
|
|
.ladda-spinner
|
|
opacity: 1
|
|
|
|
.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
|