// Foundation for Sites by ZURB // foundation.zurb.com // Licensed under MIT Open Source //// /// @group button-group //// /// Margin for button groups. /// @type Number $buttongroup-margin: 1rem !default; /// Margin between buttons in a button group. /// @type Border $buttongroup-spacing: 1px !default; /// Selector for the buttons inside a button group. /// @type String $buttongroup-child-selector: '.button' !default; /// Maximum number of buttons that can be in an even-width button group. /// @type Number $buttongroup-expand-max: 6 !default; /// Add styles for a button group container. /// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group. @mixin button-group( $child-selector: $buttongroup-child-selector ) { @include clearfix; margin-bottom: $buttongroup-margin; font-size: map-get($button-sizes, default); #{$child-selector} { float: #{$global-left}; margin: 0; font-size: inherit; &:not(:last-child) { border-#{$global-right}: $buttongroup-spacing solid $body-background; } } } /// Creates a full-width button group, making each button equal width. /// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group. @mixin button-group-expand( $selector: $buttongroup-child-selector, $count: null ) { @if $count != null { @warn 'button-group-expand(): the $count property is no longer needed. This parameter will be removed in Foundation 6.2.'; } display: table; table-layout: fixed; width: 100%; &::before, &::after { display: none; } #{$selector} { display: table-cell; float: none; } } /// Stacks the buttons in a button group. /// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group. @mixin button-group-stack( $selector: $buttongroup-child-selector ) { #{$selector} { width: 100%; &:not(:last-child) { border-#{$global-right}: $buttongroup-spacing solid; } } } /// Un-stacks the buttons in a button group. /// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group. @mixin button-group-unstack( $selector: $buttongroup-child-selector ) { #{$selector} { width: auto; &:not(:last-child) { border-#{$global-right}: $buttongroup-spacing solid $body-background; } } } @mixin foundation-button-group { .button-group { @include button-group; // Sizes &.tiny { font-size: map-get($button-sizes, tiny); } &.small { font-size: map-get($button-sizes, small); } &.large { font-size: map-get($button-sizes, large); } &.expanded { @include button-group-expand; } // Colors @each $name, $color in $foundation-colors { @if $button-fill != hollow { &.#{$name} #{$buttongroup-child-selector} { @include button-style($color, auto, auto); } } @else { &.#{$name} #{$buttongroup-child-selector} { @include button-hollow; @include button-hollow-style($color); } } } &.stacked, &.stacked-for-small { @include button-group-stack; } &.stacked-for-small { @include breakpoint(medium) { @include button-group-unstack; } } &.stacked-for-small.expanded { @include breakpoint(small only) { display: block; #{$buttongroup-child-selector} { display: block; border-right: 0; } } } } }