foundation-rails 6.3.0.0 → 6.3.1.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/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/LICENSE.txt +1 -1
- data/Rakefile +1 -1
- data/bower.json +2 -2
- data/lib/foundation/rails/version.rb +1 -1
- data/lib/generators/foundation/templates/_settings.scss +0 -1
- data/vendor/assets/js/foundation.abide.js.es6 +26 -13
- data/vendor/assets/js/foundation.accordion.js.es6 +94 -5
- data/vendor/assets/js/foundation.accordionMenu.js.es6 +4 -2
- data/vendor/assets/js/foundation.core.js.es6 +1 -1
- data/vendor/assets/js/foundation.drilldown.js.es6 +44 -21
- data/vendor/assets/js/foundation.dropdown.js.es6 +26 -12
- data/vendor/assets/js/foundation.dropdownMenu.js.es6 +24 -13
- data/vendor/assets/js/foundation.equalizer.js.es6 +6 -3
- data/vendor/assets/js/foundation.interchange.js.es6 +5 -1
- data/vendor/assets/js/foundation.magellan.js.es6 +14 -7
- data/vendor/assets/js/foundation.offcanvas.js.es6 +70 -15
- data/vendor/assets/js/foundation.orbit.js.es6 +36 -18
- data/vendor/assets/js/foundation.responsiveMenu.js.es6 +0 -3
- data/vendor/assets/js/foundation.responsiveToggle.js.es6 +12 -16
- data/vendor/assets/js/foundation.reveal.js.es6 +39 -19
- data/vendor/assets/js/foundation.slider.js.es6 +37 -19
- data/vendor/assets/js/foundation.sticky.js.es6 +61 -25
- data/vendor/assets/js/foundation.tabs.js.es6 +74 -46
- data/vendor/assets/js/foundation.toggler.js.es6 +2 -1
- data/vendor/assets/js/foundation.tooltip.js.es6 +30 -15
- data/vendor/assets/js/foundation.util.timerAndImageLoader.js.es6 +1 -1
- data/vendor/assets/js/foundation.util.triggers.js.es6 +0 -47
- data/vendor/assets/scss/_global.scss +6 -0
- data/vendor/assets/scss/components/_accordion.scss +1 -1
- data/vendor/assets/scss/components/_breadcrumbs.scss +5 -2
- data/vendor/assets/scss/components/_button-group.scss +18 -8
- data/vendor/assets/scss/components/_button.scss +46 -8
- data/vendor/assets/scss/components/_card.scss +1 -1
- data/vendor/assets/scss/components/_flex.scss +6 -0
- data/vendor/assets/scss/components/_menu.scss +30 -3
- data/vendor/assets/scss/components/_responsive-embed.scss +6 -2
- data/vendor/assets/scss/components/_reveal.scss +2 -2
- data/vendor/assets/scss/foundation.scss +3 -3
- data/vendor/assets/scss/grid/_classes.scss +6 -2
- data/vendor/assets/scss/grid/_column.scss +1 -1
- data/vendor/assets/scss/grid/_flex-grid.scss +22 -2
- data/vendor/assets/scss/grid/_grid.scss +4 -0
- data/vendor/assets/scss/settings/_settings.scss +0 -1
- data/vendor/assets/scss/typography/_base.scss +1 -1
- data/vendor/assets/scss/typography/_print.scss +5 -0
- data/vendor/assets/scss/util/_direction.scss +31 -0
- data/vendor/assets/scss/util/_math.scss +1 -1
- data/vendor/assets/scss/util/_typography.scss +26 -0
- data/vendor/assets/scss/util/_util.scss +2 -0
- data/vendor/assets/scss/util/_value.scss +20 -0
- metadata +5 -3
@@ -67,7 +67,7 @@ function onImagesLoaded(images, callback){
|
|
67
67
|
else {
|
68
68
|
// fix for IE. See https://css-tricks.com/snippets/jquery/fixing-load-in-ie-for-cached-images/
|
69
69
|
var src = $(this).attr('src');
|
70
|
-
$(this).attr('src', src + '?' + (new Date().getTime()));
|
70
|
+
$(this).attr('src', src + (src.indexOf('?') >= 0 ? '&' : '?') + (new Date().getTime()));
|
71
71
|
$(this).one('load', function() {
|
72
72
|
singleImageLoaded();
|
73
73
|
});
|
@@ -76,7 +76,6 @@ function checkListeners() {
|
|
76
76
|
eventsListener();
|
77
77
|
resizeListener();
|
78
78
|
scrollListener();
|
79
|
-
mutateListener();
|
80
79
|
closemeListener();
|
81
80
|
}
|
82
81
|
|
@@ -156,17 +155,6 @@ function scrollListener(debounce){
|
|
156
155
|
}
|
157
156
|
}
|
158
157
|
|
159
|
-
function mutateListener(debounce) {
|
160
|
-
let $nodes = $('[data-mutate]');
|
161
|
-
if ($nodes.length && MutationObserver){
|
162
|
-
//trigger all listening elements and signal a mutate event
|
163
|
-
//no IE 9 or 10
|
164
|
-
$nodes.each(function () {
|
165
|
-
$(this).triggerHandler('mutateme.zf.trigger');
|
166
|
-
});
|
167
|
-
}
|
168
|
-
}
|
169
|
-
|
170
158
|
function eventsListener() {
|
171
159
|
if(!MutationObserver){ return false; }
|
172
160
|
let nodes = document.querySelectorAll('[data-resize], [data-scroll], [data-mutate]');
|
@@ -220,38 +208,3 @@ Foundation.IHearYou = checkListeners;
|
|
220
208
|
// Foundation.IFeelYou = closemeListener;
|
221
209
|
|
222
210
|
}(jQuery);
|
223
|
-
|
224
|
-
// function domMutationObserver(debounce) {
|
225
|
-
// // !!! This is coming soon and needs more work; not active !!! //
|
226
|
-
// var timer,
|
227
|
-
// nodes = document.querySelectorAll('[data-mutate]');
|
228
|
-
// //
|
229
|
-
// if (nodes.length) {
|
230
|
-
// // var MutationObserver = (function () {
|
231
|
-
// // var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
|
232
|
-
// // for (var i=0; i < prefixes.length; i++) {
|
233
|
-
// // if (prefixes[i] + 'MutationObserver' in window) {
|
234
|
-
// // return window[prefixes[i] + 'MutationObserver'];
|
235
|
-
// // }
|
236
|
-
// // }
|
237
|
-
// // return false;
|
238
|
-
// // }());
|
239
|
-
//
|
240
|
-
//
|
241
|
-
// //for the body, we need to listen for all changes effecting the style and class attributes
|
242
|
-
// var bodyObserver = new MutationObserver(bodyMutation);
|
243
|
-
// bodyObserver.observe(document.body, { attributes: true, childList: true, characterData: false, subtree:true, attributeFilter:["style", "class"]});
|
244
|
-
//
|
245
|
-
//
|
246
|
-
// //body callback
|
247
|
-
// function bodyMutation(mutate) {
|
248
|
-
// //trigger all listening elements and signal a mutation event
|
249
|
-
// if (timer) { clearTimeout(timer); }
|
250
|
-
//
|
251
|
-
// timer = setTimeout(function() {
|
252
|
-
// bodyObserver.disconnect();
|
253
|
-
// $('[data-mutate]').attr('data-events',"mutate");
|
254
|
-
// }, debounce || 150);
|
255
|
-
// }
|
256
|
-
// }
|
257
|
-
// }
|
@@ -167,6 +167,7 @@ $alert-color: get-color(alert);
|
|
167
167
|
|
168
168
|
// Make select elements are 100% width by default
|
169
169
|
select {
|
170
|
+
box-sizing: border-box;
|
170
171
|
width: 100%;
|
171
172
|
border-radius: $global-radius;
|
172
173
|
}
|
@@ -196,6 +197,11 @@ $alert-color: get-color(alert);
|
|
196
197
|
line-height: 1;
|
197
198
|
}
|
198
199
|
|
200
|
+
// Prevent text overflow on pre
|
201
|
+
pre {
|
202
|
+
overflow: auto;
|
203
|
+
}
|
204
|
+
|
199
205
|
// Internal classes to show/hide elements in JavaScript
|
200
206
|
.is-visible {
|
201
207
|
display: block !important;
|
@@ -38,6 +38,10 @@ $breadcrumbs-item-uppercase: true !default;
|
|
38
38
|
/// @type Boolean
|
39
39
|
$breadcrumbs-item-slash: true !default;
|
40
40
|
|
41
|
+
/// Color of breadcrumb slash.
|
42
|
+
/// @type Color
|
43
|
+
$breadcrumbs-item-slash-color: $medium-gray !default;
|
44
|
+
|
41
45
|
/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.
|
42
46
|
@mixin breadcrumbs-container {
|
43
47
|
@include clearfix;
|
@@ -64,10 +68,9 @@ $breadcrumbs-item-slash: true !default;
|
|
64
68
|
position: relative;
|
65
69
|
top: 1px;
|
66
70
|
margin: 0 $breadcrumbs-item-margin;
|
67
|
-
|
68
71
|
opacity: 1;
|
69
72
|
content: $slash;
|
70
|
-
color: $
|
73
|
+
color: $breadcrumbs-item-slash-color;
|
71
74
|
}
|
72
75
|
}
|
73
76
|
@else {
|
@@ -11,7 +11,7 @@
|
|
11
11
|
$buttongroup-margin: 1rem !default;
|
12
12
|
|
13
13
|
/// Margin between buttons in a button group.
|
14
|
-
/// @type
|
14
|
+
/// @type Number
|
15
15
|
$buttongroup-spacing: 1px !default;
|
16
16
|
|
17
17
|
/// Selector for the buttons inside a button group.
|
@@ -28,8 +28,10 @@ $buttongroup-radius-on-each: true !default;
|
|
28
28
|
|
29
29
|
/// Add styles for a button group container.
|
30
30
|
/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.
|
31
|
+
/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.
|
31
32
|
@mixin button-group(
|
32
|
-
$child-selector: $buttongroup-child-selector
|
33
|
+
$child-selector: $buttongroup-child-selector,
|
34
|
+
$spacing: $buttongroup-spacing
|
33
35
|
) {
|
34
36
|
@include clearfix;
|
35
37
|
margin-bottom: $buttongroup-margin;
|
@@ -45,8 +47,8 @@ $buttongroup-radius-on-each: true !default;
|
|
45
47
|
|
46
48
|
#{$child-selector} {
|
47
49
|
margin: 0;
|
48
|
-
margin-#{$global-right}: $
|
49
|
-
margin-bottom: $
|
50
|
+
margin-#{$global-right}: $spacing;
|
51
|
+
margin-bottom: $spacing;
|
50
52
|
font-size: map-get($button-sizes, default);
|
51
53
|
|
52
54
|
@if $global-flexbox {
|
@@ -76,12 +78,14 @@ $buttongroup-radius-on-each: true !default;
|
|
76
78
|
|
77
79
|
/// Creates a full-width button group, making each button equal width.
|
78
80
|
/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.
|
81
|
+
/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.
|
79
82
|
@mixin button-group-expand(
|
80
83
|
$selector: $buttongroup-child-selector,
|
84
|
+
$spacing: $buttongroup-spacing,
|
81
85
|
$count: null
|
82
86
|
) {
|
83
87
|
@if not $global-flexbox {
|
84
|
-
margin-#{$global-right}: -$
|
88
|
+
margin-#{$global-right}: -$spacing;
|
85
89
|
|
86
90
|
&::before,
|
87
91
|
&::after {
|
@@ -94,15 +98,21 @@ $buttongroup-radius-on-each: true !default;
|
|
94
98
|
flex: 1 1 0px; // sass-lint:disable-line zero-unit
|
95
99
|
}
|
96
100
|
@else {
|
101
|
+
// One child
|
102
|
+
&:first-child:last-child {
|
103
|
+
width: 100%
|
104
|
+
}
|
105
|
+
|
106
|
+
// Two or more childreen
|
97
107
|
@for $i from 2 through $buttongroup-expand-max {
|
98
108
|
&:first-child:nth-last-child(#{$i}) {
|
99
109
|
&, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {
|
100
110
|
display: inline-block;
|
101
|
-
width: calc(#{percentage(1 / $i)} - #{$
|
102
|
-
margin-#{$global-right}: $
|
111
|
+
width: calc(#{percentage(1 / $i)} - #{$spacing});
|
112
|
+
margin-#{$global-right}: $spacing;
|
103
113
|
|
104
114
|
&:last-child {
|
105
|
-
margin-#{$global-right}: $
|
115
|
+
margin-#{$global-right}: $spacing * -$buttongroup-expand-max;
|
106
116
|
}
|
107
117
|
}
|
108
118
|
}
|
@@ -38,6 +38,10 @@ $button-color-alt: $black !default;
|
|
38
38
|
/// @type Number
|
39
39
|
$button-radius: $global-radius !default;
|
40
40
|
|
41
|
+
/// Border width for hollow outline buttons
|
42
|
+
/// @type Number
|
43
|
+
$button-hollow-border-width: 1px !default;
|
44
|
+
|
41
45
|
/// Sizes for buttons.
|
42
46
|
/// @type Map
|
43
47
|
$button-sizes: (
|
@@ -78,7 +82,17 @@ $button-transition: background-color 0.25s ease-out, color 0.25s ease-out !defau
|
|
78
82
|
display: inline-block;
|
79
83
|
vertical-align: middle;
|
80
84
|
margin: $button-margin;
|
81
|
-
|
85
|
+
|
86
|
+
@if (type-of($button-padding) == 'map') {
|
87
|
+
@each $size, $padding in $button-padding {
|
88
|
+
@include breakpoint($size) {
|
89
|
+
padding: $padding;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
@else {
|
94
|
+
padding: $button-padding;
|
95
|
+
}
|
82
96
|
|
83
97
|
-webkit-appearance: none;
|
84
98
|
border: 1px solid transparent;
|
@@ -144,11 +158,12 @@ $button-transition: background-color 0.25s ease-out, color 0.25s ease-out !defau
|
|
144
158
|
|
145
159
|
@mixin button-hollow-style(
|
146
160
|
$color: $primary-color,
|
147
|
-
$hover-lightness: $button-hollow-hover-lightness
|
161
|
+
$hover-lightness: $button-hollow-hover-lightness,
|
162
|
+
$border-width: $button-hollow-border-width
|
148
163
|
) {
|
149
164
|
$color-hover: scale-color($color, $lightness: $hover-lightness);
|
150
165
|
|
151
|
-
border:
|
166
|
+
border: $border-width solid $color;
|
152
167
|
color: $color;
|
153
168
|
|
154
169
|
&:hover, &:focus {
|
@@ -158,13 +173,22 @@ $button-transition: background-color 0.25s ease-out, color 0.25s ease-out !defau
|
|
158
173
|
}
|
159
174
|
|
160
175
|
/// Adds disabled styles to a button by fading the element, reseting the cursor, and disabling pointer events.
|
161
|
-
@
|
176
|
+
/// @param [Color] $background [$primary-color] - Background color of the disabled button.
|
177
|
+
/// @param [Color] $color [$button-color] - Text color of the disabled button. Set to `auto` to have the mixin automatically generate a color based on the background color.
|
178
|
+
@mixin button-disabled(
|
179
|
+
$background: $primary-color,
|
180
|
+
$color: $button-color
|
181
|
+
) {
|
182
|
+
@if $color == auto {
|
183
|
+
$color: color-pick-contrast($background, ($button-color, $button-color-alt));
|
184
|
+
}
|
185
|
+
|
162
186
|
opacity: $button-opacity-disabled;
|
163
187
|
cursor: not-allowed;
|
164
188
|
|
165
|
-
&:hover, &:focus {
|
166
|
-
background-color: $
|
167
|
-
color: $
|
189
|
+
&, &:hover, &:focus {
|
190
|
+
background-color: $background;
|
191
|
+
color: $color;
|
168
192
|
}
|
169
193
|
}
|
170
194
|
|
@@ -268,7 +292,7 @@ $button-transition: background-color 0.25s ease-out, color 0.25s ease-out !defau
|
|
268
292
|
|
269
293
|
@each $name, $color in $button-palette {
|
270
294
|
&.#{$name} {
|
271
|
-
@include button-disabled($color);
|
295
|
+
@include button-disabled($color, auto);
|
272
296
|
}
|
273
297
|
}
|
274
298
|
}
|
@@ -282,6 +306,20 @@ $button-transition: background-color 0.25s ease-out, color 0.25s ease-out !defau
|
|
282
306
|
border-top-color: $button-background;
|
283
307
|
}
|
284
308
|
}
|
309
|
+
|
310
|
+
&.hollow {
|
311
|
+
&::after {
|
312
|
+
border-top-color: $button-background;
|
313
|
+
}
|
314
|
+
|
315
|
+
@each $name, $color in $button-palette {
|
316
|
+
&.#{$name} {
|
317
|
+
&::after {
|
318
|
+
border-top-color: $color;
|
319
|
+
}
|
320
|
+
}
|
321
|
+
}
|
322
|
+
}
|
285
323
|
}
|
286
324
|
|
287
325
|
// Button with dropdown arrow only
|
@@ -140,16 +140,33 @@ $menu-border: $light-gray !default;
|
|
140
140
|
}
|
141
141
|
|
142
142
|
/// Creates a simple Menu, which has no padding or hover state.
|
143
|
-
@
|
143
|
+
/// @param {Keyword} $dir [$global-left] - Direction of the menu. Set to `null` to do not generate styles for direction.
|
144
|
+
@mixin menu-simple($dir: $global-left) {
|
144
145
|
li {
|
145
146
|
display: inline-block;
|
146
|
-
|
147
|
+
vertical-align: top;
|
147
148
|
line-height: 1;
|
148
149
|
}
|
149
150
|
|
150
151
|
a {
|
151
152
|
padding: 0;
|
152
153
|
}
|
154
|
+
|
155
|
+
@if $dir != null {
|
156
|
+
@include menu-simple-direction($dir);
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
/// Direction modifier for a simple Menu
|
161
|
+
/// @param {Keyword} $dir [$global-left] - Direction of the menu
|
162
|
+
@mixin menu-simple-direction($dir: $global-left) {
|
163
|
+
$no-margin-dir: $dir;
|
164
|
+
$margin-dir: direction-opposite($dir);
|
165
|
+
|
166
|
+
li {
|
167
|
+
margin-#{$no-margin-dir}: 0;
|
168
|
+
margin-#{$margin-dir}: get-side($menu-item-padding, $margin-dir);
|
169
|
+
}
|
153
170
|
}
|
154
171
|
|
155
172
|
/// Adds styles for a nested Menu, by adding `margin-left` to the menu.
|
@@ -273,6 +290,10 @@ $menu-border: $light-gray !default;
|
|
273
290
|
// Simple
|
274
291
|
&.simple {
|
275
292
|
@include menu-simple;
|
293
|
+
|
294
|
+
&.align-#{$global-right} {
|
295
|
+
@include menu-simple-direction($global-right);
|
296
|
+
}
|
276
297
|
}
|
277
298
|
|
278
299
|
// Align right
|
@@ -338,7 +359,13 @@ $menu-border: $light-gray !default;
|
|
338
359
|
text-align: center;
|
339
360
|
|
340
361
|
> .menu {
|
341
|
-
|
362
|
+
@if $global-flexbox {
|
363
|
+
@include flex-align($x: center, $y: top);
|
364
|
+
}
|
365
|
+
@else {
|
366
|
+
display: inline-block;
|
367
|
+
vertical-align: top;
|
368
|
+
}
|
342
369
|
}
|
343
370
|
}
|
344
371
|
|
@@ -17,6 +17,9 @@ $responsive-embed-ratios: (
|
|
17
17
|
widescreen: 16 by 9,
|
18
18
|
) !default;
|
19
19
|
|
20
|
+
// WARNING: Will be removed in version 6.4
|
21
|
+
$responsive-embed-ratio: default;
|
22
|
+
|
20
23
|
/// Creates a responsive embed container.
|
21
24
|
/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.
|
22
25
|
@mixin responsive-embed($ratio: default) {
|
@@ -42,7 +45,8 @@ $responsive-embed-ratios: (
|
|
42
45
|
}
|
43
46
|
|
44
47
|
@mixin foundation-responsive-embed {
|
45
|
-
.responsive-embed,
|
48
|
+
.responsive-embed,
|
49
|
+
.flex-video {
|
46
50
|
@include responsive-embed($ratio: default);
|
47
51
|
|
48
52
|
$ratios: map-remove($responsive-embed-ratios,default);
|
@@ -62,5 +66,5 @@ $responsive-embed-ratios: (
|
|
62
66
|
|
63
67
|
@mixin flex-video($ratio: $responsive-embed-ratio) {
|
64
68
|
@warn 'This mixin is being replaced by responsive-embed(). flex-video() will be removed in Foundation 6.4.';
|
65
|
-
@include responsive-embed;
|
69
|
+
@include responsive-embed($ratio);
|
66
70
|
}
|
@@ -72,8 +72,7 @@ $reveal-overlay-background: rgba($black, 0.45) !default;
|
|
72
72
|
}
|
73
73
|
|
74
74
|
// Make sure rows don't have a min-width on them
|
75
|
-
.column
|
76
|
-
.columns {
|
75
|
+
.column {
|
77
76
|
min-width: 0;
|
78
77
|
}
|
79
78
|
|
@@ -124,6 +123,7 @@ $reveal-overlay-background: rgba($black, 0.45) !default;
|
|
124
123
|
html.is-reveal-open body {
|
125
124
|
min-height: 100%;
|
126
125
|
overflow: hidden;
|
126
|
+
position: fixed;
|
127
127
|
user-select: none;
|
128
128
|
}
|
129
129
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
/**
|
2
2
|
* Foundation for Sites by ZURB
|
3
|
-
* Version 6.3.
|
3
|
+
* Version 6.3.1
|
4
4
|
* foundation.zurb.com
|
5
5
|
* Licensed under MIT Open Source
|
6
6
|
*/
|
7
7
|
|
8
8
|
// Dependencies
|
9
|
-
@import
|
9
|
+
@import '../_vendor/normalize-scss/sass/normalize';
|
10
10
|
@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';
|
11
11
|
@import '../_vendor/sassy-lists/stylesheets/helpers/true';
|
12
12
|
@import '../_vendor/sassy-lists/stylesheets/functions/purge';
|
@@ -17,7 +17,7 @@
|
|
17
17
|
// Settings
|
18
18
|
// import your own `settings` here or
|
19
19
|
// import and modify the default settings through
|
20
|
-
// @import
|
20
|
+
// @import 'settings/settings';
|
21
21
|
|
22
22
|
// Sass utilities
|
23
23
|
@import 'util/util';
|