1 /// @Foundation.settings
3 $button-padding: 0.85em 1em !default;
4 $button-margin: 0 $global-padding $global-padding 0 !default;
5 $button-style: solid !default;
6 $button-background: $primary-color !default;
7 $button-background-hover: scale-color($button-background, $lightness: -15%) !default;
8 $button-color: auto !default;
9 $button-radius: 0 !default;
16 $button-font-size: 0.9rem !default;
17 $button-opacity-disabled: 0.5 !default;
18 $button-tag-selector: false !default;
22 display: inline-block;
27 -webkit-appearance: none;
28 -webkit-font-smoothing: antialiased;
29 transition: background 0.25s ease-out;
30 vertical-align: middle;
32 padding: $button-padding;
33 margin: $button-margin;
34 font-size: $button-font-size;
35 border-radius: $button-radius;
38 // TODO: Change to class and mixin because now the toggle is 'fa-open' which is too generic
39 // &[data-popup-toggle] {
40 // position: relative;
41 // padding-right: 2em; // Placeholder
44 // @include css-triangle(6px, black, top);
45 // position: absolute;
53 @mixin button-size($size: medium, $expand: false) {
54 $size: $button-font-size * map-get($button-sizes, $size);
58 @include button-expand;
65 vertical-align: middle;
67 margin-top: -2px; // The icons are oddly misaligned
72 @mixin button-expand($expand: true) {
80 display: inline-block;
82 margin: $button-margin;
87 $background: $button-background,
88 $background-hover: $button-background-hover,
89 $color: $button-color,
90 $style: $button-style,
91 $radius: $button-radius,
94 @if $style == hollow {
95 border: 1px solid $background;
96 background: transparent;
100 border-color: scale-color($background, $lightness: 25%);
101 background: transparent;
102 color: scale-color($background, $lightness: 25%);
105 // Solid is the default
108 $color: isitlight($background);
111 background: $background;
115 @if $background-hover == auto {
116 background: scale-color($background, $lightness: -15%);
119 background: $background-hover;
126 border-color: $background;
128 border-color: scale-color($background, $lightness: -25%);
133 @if $style == hollow {
135 @include color-icon($background);
138 @include color-icon(scale-color($background, $lightness: 25%));
143 @include color-icon($color);
149 @mixin button-disabled() {
150 opacity: $button-opacity-disabled;
152 pointer-events: none;
158 $background: $button-background,
159 $background-hover: $button-background-hover,
160 $color: $button-color,
161 $style: $button-style,
162 $radius: $button-radius
165 @include button-size($size);
166 @include button-expand($expand);
167 @include button-style($background, $background-hover, $color, $style);
170 @include exports(button) {
174 &.tiny { @include button-size(tiny); }
175 &.small { @include button-size(small); }
176 &.large { @include button-size(large); }
177 &.expand { @include button-expand; }
179 &.secondary { @include button-style($secondary-color, auto) }
180 &.success { @include button-style($success-color, auto) }
181 &.warning { @include button-style($warning-color, auto) }
182 &.alert { @include button-style($alert-color, auto) }
183 &.info { @include button-style($info-color, auto) }
184 &.dark { @include button-style($dark-color, auto) }
186 @if $button-style != hollow {
187 &.hollow { @include button-style($style: hollow);
188 &.secondary { @include button-style($secondary-color, $style: hollow); }
189 &.success { @include button-style($success-color, $style: hollow); }
190 &.warning { @include button-style($warning-color, $style: hollow); }
191 &.alert { @include button-style($alert-color, $style: hollow); }
192 &.info { @include button-style($info-color, $style: hollow); }
193 &.dark { @include button-style($dark-color, $style: hollow); }
197 &.disabled { @include button-disabled; }
200 @if $button-tag-selector {