X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-demo.git;a=blobdiff_plain;f=afb-client%2Fbower_components%2Ffoundation-apps%2Fscss%2Fcomponents%2F_button-group.scss;fp=afb-client%2Fbower_components%2Ffoundation-apps%2Fscss%2Fcomponents%2F_button-group.scss;h=8505c84ef9c8151a2b58d86d2f8d8867b5d9a317;hp=0000000000000000000000000000000000000000;hb=5b1e6cc132f44262a873fa8296a2a3e1017b0278;hpb=f7d2f9ac4168ee5064580c666d508667a73cefc0 diff --git a/afb-client/bower_components/foundation-apps/scss/components/_button-group.scss b/afb-client/bower_components/foundation-apps/scss/components/_button-group.scss new file mode 100644 index 0000000..8505c84 --- /dev/null +++ b/afb-client/bower_components/foundation-apps/scss/components/_button-group.scss @@ -0,0 +1,197 @@ +/// @Foundation.settings +// Button Group +$btngroup-background: $primary-color !default; +$btngroup-color: #fff !default; +$btngroup-radius: $button-radius !default; +/// + +$child-selectors: '> a, > label, > button'; + +%button-group { + margin: 0; + margin-bottom: 1rem; + list-style-type: none; + display: inline-flex; + border-radius: $btngroup-radius; + overflow: hidden; + font-size: $button-font-size; + + > li { + flex: 0 0 auto; + + // Links become buttons + #{$child-selectors} { + @extend %button; + border-radius: 0; + font-size: inherit; + display: block; + margin: 0; + } + > input + label { + margin-left: 0; + } + // Add borders between items + &:not(:last-child) { + #{$child-selectors} { + border-right: 1px solid scale-color($btngroup-background, $lightness: -25%); + } + } + } + + @if using(iconic) { + .iconic { + width: 1em; + height: 1em; + vertical-align: middle; + margin-right: 0.25em; + margin-top: -2px; // The icons are oddly misaligned + } + } +} + +%button-group-segmented { + border: 1px solid $primary-color; + transition-property: background color; + + > li { + // Hide the radio button + > input[type="radio"] { + position: absolute; + left: -9999px; + } + // This is the button + #{$child-selectors} { + margin-right: 0; + background: transparent; + } + } +} + +@mixin button-group-size($size: medium, $expand: false) { + $size: $button-font-size * map-get($button-sizes, $size); + font-size: $size; + + @if $expand { + @include button-group-expand; + } +} +@mixin button-group-expand($stretch: true) { + display: if($stretch, flex, inline-flex); + + > li { + flex: if($stretch, 1, 0 0 auto); + + #{$child-selectors} { + @if $stretch { @include button-expand; } + } + } +} +@mixin button-group-style( + $segmented: false, + $background: $primary-color, + $color: auto +) { + + @if not($segmented) { + > li { + #{$child-selectors} { + @include button-style($background, auto, $color); + border-color: scale-color($background, $lightness: -15%); + } + &.is-active { + #{$child-selectors} { + background: scale-color($background, $lightness: -15%); + } + } + } + } + @else { + @extend %button-group-segmented; + $hover-color: rgba($background, 0.25); + border-color: $background; + + > li { + // This is the button + #{$child-selectors} { + border-color: $background; + color: $background; + + // This is the button being hovered on + &:hover { + background: $hover-color; + color: $background; + } + + @if using(iconic) { + .iconic { @include color-icon($background); } + } + } + + // This is the button when it's active + &.is-active > a, + > input:checked + label { + &, &:hover { + background: $background; + color: isitlight($background); + } + + @if using(iconic) { + .iconic { @include color-icon(isitlight($background)); } + } + } + } + } +} + +@mixin button-group( + $segmented: false, + $expand: false, + $background: $primary-color, + $color: #fff +) { + @extend %button-group; + @include button-group-expand($expand); + @include button-group-style($segmented, $background, $color); + border-radius: $btngroup-radius; +} + +@include exports(button-group) { + .button-group { + @include button-group; + + // Colors + &.secondary { @include button-group-style(false, $secondary-color); } + &.success { @include button-group-style(false, $success-color); } + &.warning { @include button-group-style(false, $warning-color); } + &.alert { @include button-group-style(false, $alert-color); } + + // Individual colors + > li { + &.secondary { #{$child-selectors} { @include button-style($secondary-color, auto, $btngroup: true); } } + &.success { #{$child-selectors} { @include button-style($success-color, auto, $btngroup: true); } } + &.warning { #{$child-selectors} { @include button-style($warning-color, auto, $btngroup: true); } } + &.alert { #{$child-selectors} { @include button-style($alert-color, auto, $btngroup: true); } } + } + + // Segmented + &.segmented { @include button-group-style(true); + &.secondary { @include button-group-style(true, $secondary-color); } + &.success { @include button-group-style(true, $success-color); } + &.warning { @include button-group-style(true, $warning-color); } + &.alert { @include button-group-style(true, $alert-color); } + } + + // Sizing + &.tiny { @include button-group-size(tiny); } + &.small { @include button-group-size(small); } + &.large { @include button-group-size(large); } + &.expand { @include button-group-expand; } + + // Disabled + li.disabled { + #{$child-selectors} { + @include button-disabled; + } + } + } +}