foundation-rails 6.2.3.0 → 6.2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bower.json +1 -1
- data/lib/foundation/rails/version.rb +1 -1
- data/lib/generators/foundation/templates/_settings.scss +7 -0
- data/vendor/assets/js/foundation.accordion.js.es6 +13 -24
- data/vendor/assets/js/foundation.accordionMenu.js.es6 +9 -10
- data/vendor/assets/js/foundation.core.js.es6 +1 -1
- data/vendor/assets/js/foundation.drilldown.js.es6 +21 -9
- data/vendor/assets/js/foundation.dropdown.js.es6 +11 -8
- data/vendor/assets/js/foundation.dropdownMenu.js.es6 +46 -21
- data/vendor/assets/js/foundation.equalizer.js.es6 +3 -1
- data/vendor/assets/js/foundation.interchange.js.es6 +1 -1
- data/vendor/assets/js/foundation.magellan.js.es6 +3 -1
- data/vendor/assets/js/foundation.offcanvas.js.es6 +41 -27
- data/vendor/assets/js/foundation.orbit.js.es6 +23 -15
- data/vendor/assets/js/foundation.reveal.js.es6 +10 -3
- data/vendor/assets/js/foundation.slider.js.es6 +1 -1
- data/vendor/assets/js/foundation.sticky.js.es6 +18 -7
- data/vendor/assets/js/foundation.tooltip.js.es6 +2 -1
- data/vendor/assets/js/foundation.util.box.js.es6 +2 -2
- data/vendor/assets/js/foundation.util.mediaQuery.js.es6 +1 -1
- data/vendor/assets/js/foundation.util.nest.js.es6 +1 -1
- data/vendor/assets/js/foundation.util.timerAndImageLoader.js.es6 +1 -1
- data/vendor/assets/js/foundation.util.triggers.js.es6 +1 -1
- data/vendor/assets/scss/components/_button.scss +24 -6
- data/vendor/assets/scss/components/_drilldown.scss +1 -1
- data/vendor/assets/scss/components/_off-canvas.scss +1 -0
- data/vendor/assets/scss/components/_orbit.scss +1 -0
- data/vendor/assets/scss/components/_pagination.scss +13 -2
- data/vendor/assets/scss/components/_reveal.scss +3 -3
- data/vendor/assets/scss/components/_switch.scss +4 -0
- data/vendor/assets/scss/components/_table.scss +39 -4
- data/vendor/assets/scss/components/_title-bar.scss +0 -4
- data/vendor/assets/scss/components/_top-bar.scss +4 -2
- data/vendor/assets/scss/forms/_input-group.scss +4 -3
- data/vendor/assets/scss/forms/_meter.scss +3 -1
- data/vendor/assets/scss/forms/_progress.scss +9 -0
- data/vendor/assets/scss/forms/_text.scss +6 -2
- data/vendor/assets/scss/foundation.scss +1 -1
- data/vendor/assets/scss/grid/_classes.scss +14 -10
- data/vendor/assets/scss/grid/_flex-grid.scss +19 -9
- data/vendor/assets/scss/grid/_layout.scss +27 -2
- data/vendor/assets/scss/grid/_position.scss +4 -1
- data/vendor/assets/scss/grid/_row.scss +1 -2
- data/vendor/assets/scss/settings/_settings.scss +7 -0
- data/vendor/assets/scss/util/_breakpoint.scss +12 -15
- data/vendor/assets/scss/util/_color.scss +13 -0
- data/vendor/assets/scss/util/_mixins.scss +6 -2
- data/vendor/assets/scss/util/_unit.scss +5 -0
- metadata +2 -2
@@ -5,6 +5,8 @@
|
|
5
5
|
/**
|
6
6
|
* Equalizer module.
|
7
7
|
* @module foundation.equalizer
|
8
|
+
* @requires foundation.util.mediaQuery
|
9
|
+
* @requires foundation.util.timerAndImageLoader if equalizer contains images
|
8
10
|
*/
|
9
11
|
|
10
12
|
class Equalizer {
|
@@ -285,7 +287,7 @@ Equalizer.defaults = {
|
|
285
287
|
* @option
|
286
288
|
* @example true
|
287
289
|
*/
|
288
|
-
equalizeOnStack:
|
290
|
+
equalizeOnStack: false,
|
289
291
|
/**
|
290
292
|
* Enable height equalization row by row.
|
291
293
|
* @option
|
@@ -139,7 +139,7 @@ class Interchange {
|
|
139
139
|
|
140
140
|
// Replacing images
|
141
141
|
if (this.$element[0].nodeName === 'IMG') {
|
142
|
-
this.$element.attr('src', path).load
|
142
|
+
this.$element.attr('src', path).on('load', function() {
|
143
143
|
_this.currentPath = path;
|
144
144
|
})
|
145
145
|
.trigger(trigger);
|
@@ -103,6 +103,8 @@ class Magellan {
|
|
103
103
|
* @function
|
104
104
|
*/
|
105
105
|
scrollToLoc(loc) {
|
106
|
+
// Do nothing if target does not exist to prevent errors
|
107
|
+
if (!$(loc).length) {return false;}
|
106
108
|
var scrollPos = Math.round($(loc).offset().top - this.options.threshold / 2 - this.options.barOffset);
|
107
109
|
|
108
110
|
$('html, body').stop(true).animate({ scrollTop: scrollPos }, this.options.animationDuration, this.options.animationEasing);
|
@@ -139,7 +141,7 @@ class Magellan {
|
|
139
141
|
}
|
140
142
|
|
141
143
|
this.$active.removeClass(this.options.activeClass);
|
142
|
-
this.$active = this.$links.eq(curIdx).addClass(this.options.activeClass);
|
144
|
+
this.$active = this.$links.filter('[href="#' + this.$targets.eq(curIdx).data('magellan-target') + '"]').addClass(this.options.activeClass);
|
143
145
|
|
144
146
|
if(this.options.deepLinking){
|
145
147
|
var hash = this.$active[0].getAttribute('href');
|
@@ -27,7 +27,11 @@ class OffCanvas {
|
|
27
27
|
this._init();
|
28
28
|
this._events();
|
29
29
|
|
30
|
-
Foundation.registerPlugin(this, 'OffCanvas')
|
30
|
+
Foundation.registerPlugin(this, 'OffCanvas')
|
31
|
+
Foundation.Keyboard.register('OffCanvas', {
|
32
|
+
'ESCAPE': 'close'
|
33
|
+
});
|
34
|
+
|
31
35
|
}
|
32
36
|
|
33
37
|
/**
|
@@ -169,16 +173,15 @@ class OffCanvas {
|
|
169
173
|
* Fires when the off-canvas menu opens.
|
170
174
|
* @event OffCanvas#opened
|
171
175
|
*/
|
172
|
-
Foundation.Move(this.options.transitionTime, this.$element, function() {
|
173
|
-
$('[data-off-canvas-wrapper]').addClass('is-off-canvas-open is-open-'+ _this.options.position);
|
174
176
|
|
175
|
-
|
176
|
-
|
177
|
+
var $wrapper = $('[data-off-canvas-wrapper]');
|
178
|
+
$wrapper.addClass('is-off-canvas-open is-open-'+ _this.options.position);
|
179
|
+
|
180
|
+
_this.$element.addClass('is-open')
|
177
181
|
|
178
182
|
// if (_this.options.isSticky) {
|
179
183
|
// _this._stick();
|
180
184
|
// }
|
181
|
-
});
|
182
185
|
|
183
186
|
this.$triggers.attr('aria-expanded', 'true');
|
184
187
|
this.$element.attr('aria-hidden', 'false')
|
@@ -193,14 +196,21 @@ class OffCanvas {
|
|
193
196
|
}
|
194
197
|
|
195
198
|
if (this.options.autoFocus) {
|
196
|
-
|
197
|
-
_this.$element.
|
199
|
+
$wrapper.one(Foundation.transitionend($wrapper), function() {
|
200
|
+
if(_this.$element.hasClass('is-open')) { // handle double clicks
|
201
|
+
_this.$element.attr('tabindex', '-1');
|
202
|
+
_this.$element.focus();
|
203
|
+
}
|
198
204
|
});
|
199
205
|
}
|
200
206
|
|
201
207
|
if (this.options.trapFocus) {
|
202
|
-
$(
|
203
|
-
|
208
|
+
$wrapper.one(Foundation.transitionend($wrapper), function() {
|
209
|
+
if(_this.$element.hasClass('is-open')) { // handle double clicks
|
210
|
+
_this.$element.attr('tabindex', '-1');
|
211
|
+
_this.trapFocus();
|
212
|
+
}
|
213
|
+
});
|
204
214
|
}
|
205
215
|
}
|
206
216
|
|
@@ -214,15 +224,14 @@ class OffCanvas {
|
|
214
224
|
last = focusable.eq(-1);
|
215
225
|
|
216
226
|
focusable.off('.zf.offcanvas').on('keydown.zf.offcanvas', function(e) {
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
}
|
227
|
+
var key = Foundation.Keyboard.parseKey(e);
|
228
|
+
if (key === 'TAB' && e.target === last[0]) {
|
229
|
+
e.preventDefault();
|
230
|
+
first.focus();
|
231
|
+
}
|
232
|
+
if (key === 'SHIFT_TAB' && e.target === first[0]) {
|
233
|
+
e.preventDefault();
|
234
|
+
last.focus();
|
226
235
|
}
|
227
236
|
});
|
228
237
|
}
|
@@ -304,13 +313,18 @@ class OffCanvas {
|
|
304
313
|
* @function
|
305
314
|
* @private
|
306
315
|
*/
|
307
|
-
_handleKeyboard(
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
316
|
+
_handleKeyboard(e) {
|
317
|
+
Foundation.Keyboard.handleKey(e, 'OffCanvas', {
|
318
|
+
close: () => {
|
319
|
+
this.close();
|
320
|
+
this.$lastTrigger.focus();
|
321
|
+
return true;
|
322
|
+
},
|
323
|
+
handled: () => {
|
324
|
+
e.stopPropagation();
|
325
|
+
e.preventDefault();
|
326
|
+
}
|
327
|
+
});
|
314
328
|
}
|
315
329
|
|
316
330
|
/**
|
@@ -370,7 +384,7 @@ OffCanvas.defaults = {
|
|
370
384
|
revealOn: null,
|
371
385
|
|
372
386
|
/**
|
373
|
-
* Force focus to the offcanvas on open. If true, will focus the opening trigger on close.
|
387
|
+
* Force focus to the offcanvas on open. If true, will focus the opening trigger on close. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.
|
374
388
|
* @option
|
375
389
|
* @example true
|
376
390
|
*/
|
@@ -216,23 +216,25 @@ class Orbit {
|
|
216
216
|
_this.changeSlide(ltr, $slide, idx);
|
217
217
|
});
|
218
218
|
}
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
219
|
+
|
220
|
+
if (this.options.accessible) {
|
221
|
+
this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {
|
222
|
+
// handle keyboard event with keyboard util
|
223
|
+
Foundation.Keyboard.handleKey(e, 'Orbit', {
|
224
|
+
next: function() {
|
225
|
+
_this.changeSlide(true);
|
226
|
+
},
|
227
|
+
previous: function() {
|
228
|
+
_this.changeSlide(false);
|
229
|
+
},
|
230
|
+
handled: function() { // if bullet is focused, make sure focus moves
|
231
|
+
if ($(e.target).is(_this.$bullets)) {
|
232
|
+
_this.$bullets.filter('.is-active').focus();
|
233
|
+
}
|
232
234
|
}
|
233
|
-
}
|
235
|
+
});
|
234
236
|
});
|
235
|
-
}
|
237
|
+
}
|
236
238
|
}
|
237
239
|
}
|
238
240
|
|
@@ -266,6 +268,12 @@ class Orbit {
|
|
266
268
|
}
|
267
269
|
|
268
270
|
if ($newSlide.length) {
|
271
|
+
/**
|
272
|
+
* Triggers before the next slide starts animating in and only if a next slide has been found.
|
273
|
+
* @event Orbit#beforeslidechange
|
274
|
+
*/
|
275
|
+
this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);
|
276
|
+
|
269
277
|
if (this.options.bullets) {
|
270
278
|
idx = idx || this.$slides.index($newSlide); //grab index to update bullets
|
271
279
|
this._updateBullets(idx);
|
@@ -157,7 +157,11 @@ class Reveal {
|
|
157
157
|
|
158
158
|
if (this.options.closeOnClick && this.options.overlay) {
|
159
159
|
this.$overlay.off('.zf.reveal').on('click.zf.reveal', function(e) {
|
160
|
-
if (e.target === _this.$element[0] ||
|
160
|
+
if (e.target === _this.$element[0] ||
|
161
|
+
$.contains(_this.$element[0], e.target) ||
|
162
|
+
!$.contains(document, e.target)) {
|
163
|
+
return;
|
164
|
+
}
|
161
165
|
_this.close();
|
162
166
|
});
|
163
167
|
}
|
@@ -238,7 +242,6 @@ class Reveal {
|
|
238
242
|
'tabindex': -1
|
239
243
|
})
|
240
244
|
.focus();
|
241
|
-
console.log('focus');
|
242
245
|
}
|
243
246
|
if (this.options.overlay) {
|
244
247
|
Foundation.Motion.animateIn(this.$overlay, 'fade-in');
|
@@ -293,7 +296,9 @@ class Reveal {
|
|
293
296
|
|
294
297
|
if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {
|
295
298
|
$('body').on('click.zf.reveal', function(e) {
|
296
|
-
if (e.target === _this.$element[0] ||
|
299
|
+
if (e.target === _this.$element[0] ||
|
300
|
+
$.contains(_this.$element[0], e.target) ||
|
301
|
+
!$.contains(document, e.target)) { return; }
|
297
302
|
_this.close();
|
298
303
|
});
|
299
304
|
}
|
@@ -317,6 +322,7 @@ class Reveal {
|
|
317
322
|
// handle keyboard event with keyboard util
|
318
323
|
Foundation.Keyboard.handleKey(e, 'Reveal', {
|
319
324
|
tab_forward: function() {
|
325
|
+
_this.focusableElements = Foundation.Keyboard.findFocusable(_this.$element);
|
320
326
|
if (_this.$element.find(':focus').is(_this.focusableElements.eq(-1))) { // left modal downwards, setting focus to first element
|
321
327
|
_this.focusableElements.eq(0).focus();
|
322
328
|
return true;
|
@@ -326,6 +332,7 @@ class Reveal {
|
|
326
332
|
}
|
327
333
|
},
|
328
334
|
tab_backward: function() {
|
335
|
+
_this.focusableElements = Foundation.Keyboard.findFocusable(_this.$element);
|
329
336
|
if (_this.$element.find(':focus').is(_this.focusableElements.eq(0)) || _this.$element.is(':focus')) { // left modal upwards, setting focus to last element
|
330
337
|
_this.focusableElements.eq(-1).focus();
|
331
338
|
return true;
|
@@ -47,6 +47,10 @@ class Sticky {
|
|
47
47
|
this.scrollCount = this.options.checkEvery;
|
48
48
|
this.isStuck = false;
|
49
49
|
$(window).one('load.zf.sticky', function(){
|
50
|
+
//We calculate the container height to have correct values for anchor points offset calculation.
|
51
|
+
_this.containerHeight = _this.$element.css("display") == "none" ? 0 : _this.$element[0].getBoundingClientRect().height;
|
52
|
+
_this.$container.css('height', _this.containerHeight);
|
53
|
+
_this.elemHeight = _this.containerHeight;
|
50
54
|
if(_this.options.anchor !== ''){
|
51
55
|
_this.$anchor = $('#' + _this.options.anchor);
|
52
56
|
}else{
|
@@ -263,7 +267,9 @@ class Sticky {
|
|
263
267
|
*/
|
264
268
|
_setSizes(cb) {
|
265
269
|
this.canStick = Foundation.MediaQuery.atLeast(this.options.stickyOn);
|
266
|
-
if (!this.canStick) {
|
270
|
+
if (!this.canStick) {
|
271
|
+
if (cb && typeof cb === 'function') { cb(); }
|
272
|
+
}
|
267
273
|
var _this = this,
|
268
274
|
newElemWidth = this.$container[0].getBoundingClientRect().width,
|
269
275
|
comp = window.getComputedStyle(this.$container[0]),
|
@@ -289,12 +295,17 @@ class Sticky {
|
|
289
295
|
});
|
290
296
|
this.elemHeight = newContainerHeight;
|
291
297
|
|
292
|
-
|
293
|
-
|
294
|
-
|
298
|
+
if (this.isStuck) {
|
299
|
+
this.$element.css({"left":this.$container.offset().left + parseInt(comp['padding-left'], 10)});
|
300
|
+
} else {
|
301
|
+
if (this.$element.hasClass('is-at-bottom')) {
|
302
|
+
var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;
|
303
|
+
this.$element.css('top', anchorPt);
|
304
|
+
}
|
305
|
+
}
|
295
306
|
|
296
307
|
this._setBreakPoints(newContainerHeight, function() {
|
297
|
-
if (cb) { cb(); }
|
308
|
+
if (cb && typeof cb === 'function') { cb(); }
|
298
309
|
});
|
299
310
|
}
|
300
311
|
|
@@ -306,7 +317,7 @@ class Sticky {
|
|
306
317
|
*/
|
307
318
|
_setBreakPoints(elemHeight, cb) {
|
308
319
|
if (!this.canStick) {
|
309
|
-
if (cb) { cb(); }
|
320
|
+
if (cb && typeof cb === 'function') { cb(); }
|
310
321
|
else { return false; }
|
311
322
|
}
|
312
323
|
var mTop = emCalc(this.options.marginTop),
|
@@ -330,7 +341,7 @@ class Sticky {
|
|
330
341
|
this.topPoint = topPoint;
|
331
342
|
this.bottomPoint = bottomPoint;
|
332
343
|
|
333
|
-
if (cb) { cb(); }
|
344
|
+
if (cb && typeof cb === 'function') { cb(); }
|
334
345
|
}
|
335
346
|
|
336
347
|
/**
|
@@ -6,6 +6,7 @@
|
|
6
6
|
* Tooltip module.
|
7
7
|
* @module foundation.tooltip
|
8
8
|
* @requires foundation.util.box
|
9
|
+
* @requires foundation.util.mediaQuery
|
9
10
|
* @requires foundation.util.triggers
|
10
11
|
*/
|
11
12
|
|
@@ -49,7 +50,7 @@ class Tooltip {
|
|
49
50
|
'data-yeti-box': elemId,
|
50
51
|
'data-toggle': elemId,
|
51
52
|
'data-resize': elemId
|
52
|
-
}).addClass(this.triggerClass);
|
53
|
+
}).addClass(this.options.triggerClass);
|
53
54
|
|
54
55
|
//helper variables to track movement on collisions
|
55
56
|
this.usedPositions = [];
|
@@ -174,7 +174,7 @@ function GetOffsets(element, anchor, position, vOffset, hOffset, isOverflow) {
|
|
174
174
|
break;
|
175
175
|
case 'left bottom':
|
176
176
|
return {
|
177
|
-
left: $anchorDims.offset.left
|
177
|
+
left: $anchorDims.offset.left,
|
178
178
|
top: $anchorDims.offset.top + $anchorDims.height
|
179
179
|
};
|
180
180
|
break;
|
@@ -186,7 +186,7 @@ function GetOffsets(element, anchor, position, vOffset, hOffset, isOverflow) {
|
|
186
186
|
break;
|
187
187
|
default:
|
188
188
|
return {
|
189
|
-
left: (Foundation.rtl() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width : $anchorDims.offset.left),
|
189
|
+
left: (Foundation.rtl() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width : $anchorDims.offset.left + hOffset),
|
190
190
|
top: $anchorDims.offset.top + $anchorDims.height + vOffset
|
191
191
|
}
|
192
192
|
}
|
@@ -142,7 +142,7 @@ window.matchMedia || (window.matchMedia = function() {
|
|
142
142
|
style.type = 'text/css';
|
143
143
|
style.id = 'matchmediajs-test';
|
144
144
|
|
145
|
-
script.parentNode.insertBefore(style, script);
|
145
|
+
script && script.parentNode && script.parentNode.insertBefore(style, script);
|
146
146
|
|
147
147
|
// 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
|
148
148
|
info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
|
@@ -50,7 +50,7 @@ const Nest = {
|
|
50
50
|
hasSubClass = `is-${type}-submenu-parent`;
|
51
51
|
|
52
52
|
menu
|
53
|
-
.find('
|
53
|
+
.find('>li, .menu, .menu > li')
|
54
54
|
.removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)
|
55
55
|
.removeAttr('data-submenu').css('display', '');
|
56
56
|
|
@@ -51,6 +51,14 @@ $button-sizes: (
|
|
51
51
|
/// @type List
|
52
52
|
$button-opacity-disabled: 0.25 !default;
|
53
53
|
|
54
|
+
/// Background color lightness on hover for buttons.
|
55
|
+
/// @type Number
|
56
|
+
$button-background-hover-lightness: -20% !default;
|
57
|
+
|
58
|
+
/// Color lightness on hover for hollow buttons.
|
59
|
+
/// @type Number
|
60
|
+
$button-hollow-hover-lightness: -50% !default;
|
61
|
+
|
54
62
|
// Internal: flip from margin-right to margin-left for defaults
|
55
63
|
@if $global-text-direction == 'rtl' {
|
56
64
|
$button-margin: 0 0 $global-margin $global-margin !default;
|
@@ -96,14 +104,15 @@ $button-opacity-disabled: 0.25 !default;
|
|
96
104
|
@mixin button-style(
|
97
105
|
$background: $button-background,
|
98
106
|
$background-hover: $button-background-hover,
|
99
|
-
$color: $button-color
|
107
|
+
$color: $button-color,
|
108
|
+
$background-hover-lightness: $button-background-hover-lightness
|
100
109
|
) {
|
101
110
|
@if $color == auto {
|
102
111
|
$color: foreground($background, $button-color-alt, $button-color);
|
103
112
|
}
|
104
113
|
|
105
114
|
@if $background-hover == auto {
|
106
|
-
$background-hover: scale-color($background, $lightness: -
|
115
|
+
$background-hover: scale-color($background, $lightness: $background-hover-lightness);
|
107
116
|
}
|
108
117
|
|
109
118
|
background-color: $background;
|
@@ -123,8 +132,11 @@ $button-opacity-disabled: 0.25 !default;
|
|
123
132
|
}
|
124
133
|
}
|
125
134
|
|
126
|
-
@mixin button-hollow-style(
|
127
|
-
$color
|
135
|
+
@mixin button-hollow-style(
|
136
|
+
$color: $primary-color,
|
137
|
+
$hover-lightness: $button-hollow-hover-lightness
|
138
|
+
) {
|
139
|
+
$color-hover: scale-color($color, $lightness: $hover-lightness);
|
128
140
|
|
129
141
|
border: 1px solid $color;
|
130
142
|
color: $color;
|
@@ -136,12 +148,12 @@ $button-opacity-disabled: 0.25 !default;
|
|
136
148
|
}
|
137
149
|
|
138
150
|
/// Adds disabled styles to a button by fading the element, reseting the cursor, and disabling pointer events.
|
139
|
-
@mixin button-disabled {
|
151
|
+
@mixin button-disabled($color: $primary-color) {
|
140
152
|
opacity: $button-opacity-disabled;
|
141
153
|
cursor: not-allowed;
|
142
154
|
|
143
155
|
&:hover, &:focus {
|
144
|
-
background-color: $
|
156
|
+
background-color: $color;
|
145
157
|
color: $button-color;
|
146
158
|
}
|
147
159
|
}
|
@@ -242,6 +254,12 @@ $button-opacity-disabled: 0.25 !default;
|
|
242
254
|
&.disabled,
|
243
255
|
&[disabled] {
|
244
256
|
@include button-disabled;
|
257
|
+
|
258
|
+
@each $name, $color in $foundation-palette {
|
259
|
+
&.#{$name} {
|
260
|
+
@include button-disabled($color);
|
261
|
+
}
|
262
|
+
}
|
245
263
|
}
|
246
264
|
|
247
265
|
// Dropdown arrow
|