.fbtn { background-color: $offwhite-solid; border-radius: 50%; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15), 0 1px 3px 1px rgba(0, 0, 0, 0.3); clear: both; color: $black-text-solid; cursor: pointer; display: block; font-size: $font-size; font-weight: $font-weight-medium; height: $fbtn-height; line-height: $line-height; margin: $margin-sm auto; padding: (($fbtn-height - $line-height) / 2) 0; position: relative; text-align: center; transition-duration: 0.3s; transition-property: opacity, transform; transition-timing-function: $timing; user-select: none; width: $fbtn-height; &:active, &:focus, &:hover { color: $black-text-solid; outline: 0; text-decoration: none; } &:after { border-radius: 50%; box-shadow: 0 6px 9px rgba(0, 0, 0, 0.15); content: ""; display: block; height: 100%; opacity: 0; position: absolute; top: 0; left: 0; transition: opacity 0.3s $timing; width: 100%; } &:active:after, &:focus:after { opacity: 1; } } // colour @each $color in $palette-list-class { $i: index($palette-list-class, $color); .fbtn-#{$color} { background-color: nth($palette-list-color, $i); color: nth($palette-list-text, $i) !important; } } // size .fbtn-lg { font-size: $font-size-h4; height: ($fbtn-height + $base * 2); line-height: $line-height-h4; padding-top: (($fbtn-height + $base * 2 - $line-height-h4) / 2); padding-bottom: (($fbtn-height + $base * 2 - $line-height-h4) / 2); width: ($fbtn-height + $base * 2); } .fbtn-container { backface-visibility: hidden; position: fixed; right: $grid-gutter; bottom: $margin-sm; transition: transform 0.3s $timing; z-index: ($content-base + 1); // 992 @include responsive(md) { transform: translateY(0) !important; } } .fbtn-dropdown, .fbtn-dropup { position: absolute; left: 0; transform: scale(0, 0); transition: transform 0s 0.3s; width: 100%; .fbtn-inner.open & { transform: scale(1, 1); transition: none; } .fbtn { opacity: 0; transform: scale(0, 0); .fbtn-inner.open & { opacity: 1; transform: scale(1, 1); } } } .fbtn-dropdown { // position top: 100%; } .fbtn-dropup { // position bottom: 100%; } .fbtn-inner { position: relative; } .fbtn-ori, .fbtn-sub { align-items: center; display: flex; height: 100%; margin-left: -0.5em; position: absolute; top: 0; left: 50%; transition-duration: 0.3s; transition-property: opacity, transform; transition-timing-function: $timing; } .fbtn-ori { .fbtn-inner.open & { opacity: 0; transform: rotate(225deg); } } .fbtn-sub { opacity: 0; transform: rotate(-225deg); .fbtn-inner.open & { opacity: 1; transform: rotate(0); } } .fbtn-text { background-color: $black-text; border-radius: 2px; color: $white-text-solid; display: none; font-size: $font-size-h6; line-height: $line-height-h6; margin-top: ($line-height-h6 / -2 - 1); margin-left: $grid-gutter; padding: 2px ($grid-gutter / 2); position: absolute; top: 50%; left: 100%; white-space: nowrap; .fbtn-inner.open & { display: block; } // touch html.no-touchevents & { display: block; opacity: 0; transform: scale(0, 0); transition: opacity 0.3s $timing, transform 0s 0.3s; } html.no-touchevents .fbtn:hover > & { opacity: 1; transform: scale(1, 1); transition: opacity 0.3s $timing; } } .fbtn-text-left { margin-right: $grid-gutter; margin-left: 0; // position right: 100%; left: auto; }