jekyll-theme-foundation 0.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.
Files changed (137) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +48 -0
  4. data/_includes/google-analytics.html +8 -0
  5. data/_includes/head.html +17 -0
  6. data/_includes/scripts.html +4 -0
  7. data/_layouts/default.html +16 -0
  8. data/_layouts/home.html +5 -0
  9. data/_layouts/page.html +5 -0
  10. data/_layouts/post.html +5 -0
  11. data/_sass/_vendor/normalize-scss/sass/_normalize.scss +3 -0
  12. data/_sass/_vendor/normalize-scss/sass/normalize/_import-now.scss +11 -0
  13. data/_sass/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +676 -0
  14. data/_sass/_vendor/normalize-scss/sass/normalize/_variables.scss +36 -0
  15. data/_sass/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +61 -0
  16. data/_sass/_vendor/sassy-lists/stylesheets/functions/_contain.scss +31 -0
  17. data/_sass/_vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
  18. data/_sass/_vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
  19. data/_sass/_vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
  20. data/_sass/_vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
  21. data/_sass/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
  22. data/_sass/_vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
  23. data/_sass/assets/foundation-float.scss +5 -0
  24. data/_sass/assets/foundation-prototype.scss +3 -0
  25. data/_sass/assets/foundation-rtl.scss +5 -0
  26. data/_sass/assets/foundation.scss +3 -0
  27. data/_sass/jekyll-theme-foundation.scss +5 -0
  28. data/_sass/scss/_global.scss +249 -0
  29. data/_sass/scss/components/_accordion-menu.scss +171 -0
  30. data/_sass/scss/components/_accordion.scss +155 -0
  31. data/_sass/scss/components/_badge.scss +63 -0
  32. data/_sass/scss/components/_breadcrumbs.scss +117 -0
  33. data/_sass/scss/components/_button-group.scss +253 -0
  34. data/_sass/scss/components/_button.scss +385 -0
  35. data/_sass/scss/components/_callout.scss +106 -0
  36. data/_sass/scss/components/_card.scss +129 -0
  37. data/_sass/scss/components/_close-button.scss +102 -0
  38. data/_sass/scss/components/_drilldown.scss +142 -0
  39. data/_sass/scss/components/_dropdown-menu.scss +274 -0
  40. data/_sass/scss/components/_dropdown.scss +79 -0
  41. data/_sass/scss/components/_flex-video.scss +1 -0
  42. data/_sass/scss/components/_flex.scss +117 -0
  43. data/_sass/scss/components/_float.scss +27 -0
  44. data/_sass/scss/components/_label.scss +64 -0
  45. data/_sass/scss/components/_media-object.scss +114 -0
  46. data/_sass/scss/components/_menu-icon.scss +9 -0
  47. data/_sass/scss/components/_menu.scss +495 -0
  48. data/_sass/scss/components/_off-canvas.scss +506 -0
  49. data/_sass/scss/components/_orbit.scss +196 -0
  50. data/_sass/scss/components/_pagination.scss +193 -0
  51. data/_sass/scss/components/_progress-bar.scss +64 -0
  52. data/_sass/scss/components/_responsive-embed.scss +70 -0
  53. data/_sass/scss/components/_reveal.scss +180 -0
  54. data/_sass/scss/components/_slider.scss +137 -0
  55. data/_sass/scss/components/_sticky.scss +39 -0
  56. data/_sass/scss/components/_switch.scss +247 -0
  57. data/_sass/scss/components/_table.scss +330 -0
  58. data/_sass/scss/components/_tabs.scss +196 -0
  59. data/_sass/scss/components/_thumbnail.scss +67 -0
  60. data/_sass/scss/components/_title-bar.scss +84 -0
  61. data/_sass/scss/components/_tooltip.scss +160 -0
  62. data/_sass/scss/components/_top-bar.scss +175 -0
  63. data/_sass/scss/components/_visibility.scss +132 -0
  64. data/_sass/scss/forms/_checkbox.scss +41 -0
  65. data/_sass/scss/forms/_error.scss +88 -0
  66. data/_sass/scss/forms/_fieldset.scss +53 -0
  67. data/_sass/scss/forms/_forms.scss +34 -0
  68. data/_sass/scss/forms/_help-text.scss +30 -0
  69. data/_sass/scss/forms/_input-group.scss +142 -0
  70. data/_sass/scss/forms/_label.scss +50 -0
  71. data/_sass/scss/forms/_meter.scss +116 -0
  72. data/_sass/scss/forms/_progress.scss +94 -0
  73. data/_sass/scss/forms/_range.scss +149 -0
  74. data/_sass/scss/forms/_select.scss +86 -0
  75. data/_sass/scss/forms/_text.scss +179 -0
  76. data/_sass/scss/foundation.scss +133 -0
  77. data/_sass/scss/grid/_classes.scss +176 -0
  78. data/_sass/scss/grid/_column.scss +112 -0
  79. data/_sass/scss/grid/_flex-grid.scss +259 -0
  80. data/_sass/scss/grid/_grid.scss +48 -0
  81. data/_sass/scss/grid/_gutter.scss +82 -0
  82. data/_sass/scss/grid/_layout.scss +76 -0
  83. data/_sass/scss/grid/_position.scss +76 -0
  84. data/_sass/scss/grid/_row.scss +99 -0
  85. data/_sass/scss/grid/_size.scss +24 -0
  86. data/_sass/scss/prototype/_arrow.scss +36 -0
  87. data/_sass/scss/prototype/_border-box.scss +35 -0
  88. data/_sass/scss/prototype/_border-none.scss +35 -0
  89. data/_sass/scss/prototype/_bordered.scss +54 -0
  90. data/_sass/scss/prototype/_box.scss +23 -0
  91. data/_sass/scss/prototype/_display.scss +50 -0
  92. data/_sass/scss/prototype/_font-styling.scss +95 -0
  93. data/_sass/scss/prototype/_list-style-type.scss +95 -0
  94. data/_sass/scss/prototype/_overflow.scss +72 -0
  95. data/_sass/scss/prototype/_position.scss +114 -0
  96. data/_sass/scss/prototype/_prototype.scss +87 -0
  97. data/_sass/scss/prototype/_relation.scss +157 -0
  98. data/_sass/scss/prototype/_rotate.scss +31 -0
  99. data/_sass/scss/prototype/_rounded.scss +54 -0
  100. data/_sass/scss/prototype/_separator.scss +96 -0
  101. data/_sass/scss/prototype/_shadow.scss +43 -0
  102. data/_sass/scss/prototype/_sizing.scss +73 -0
  103. data/_sass/scss/prototype/_spacing.scss +204 -0
  104. data/_sass/scss/prototype/_text-decoration.scss +48 -0
  105. data/_sass/scss/prototype/_text-transformation.scss +48 -0
  106. data/_sass/scss/prototype/_text-utilities.scss +88 -0
  107. data/_sass/scss/settings/_settings.scss +869 -0
  108. data/_sass/scss/typography/_alignment.scss +22 -0
  109. data/_sass/scss/typography/_base.scss +509 -0
  110. data/_sass/scss/typography/_helpers.scss +80 -0
  111. data/_sass/scss/typography/_print.scss +86 -0
  112. data/_sass/scss/typography/_typography.scss +26 -0
  113. data/_sass/scss/util/_breakpoint.scss +348 -0
  114. data/_sass/scss/util/_color.scss +129 -0
  115. data/_sass/scss/util/_direction.scss +31 -0
  116. data/_sass/scss/util/_flex.scss +85 -0
  117. data/_sass/scss/util/_math.scss +72 -0
  118. data/_sass/scss/util/_mixins.scss +313 -0
  119. data/_sass/scss/util/_selector.scss +41 -0
  120. data/_sass/scss/util/_typography.scss +26 -0
  121. data/_sass/scss/util/_unit.scss +152 -0
  122. data/_sass/scss/util/_util.scss +14 -0
  123. data/_sass/scss/util/_value.scss +160 -0
  124. data/_sass/scss/xy-grid/_cell.scss +169 -0
  125. data/_sass/scss/xy-grid/_classes.scss +476 -0
  126. data/_sass/scss/xy-grid/_collapse.scss +74 -0
  127. data/_sass/scss/xy-grid/_frame.scss +85 -0
  128. data/_sass/scss/xy-grid/_grid.scss +35 -0
  129. data/_sass/scss/xy-grid/_gutters.scss +45 -0
  130. data/_sass/scss/xy-grid/_layout.scss +33 -0
  131. data/_sass/scss/xy-grid/_position.scss +28 -0
  132. data/_sass/scss/xy-grid/_xy-grid.scss +51 -0
  133. data/assets/css/main.scss +5 -0
  134. data/assets/css/motion-ui.min.css +1 -0
  135. data/assets/js/foundation.min.js +5 -0
  136. data/assets/js/motion-ui.min.js +1 -0
  137. metadata +235 -0
@@ -0,0 +1,476 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group xy-grid
7
+ ////
8
+
9
+ // Margin Grid classes
10
+ @mixin xy-base-grid-classes {
11
+
12
+ // Grid Container
13
+ .grid-container {
14
+ @include xy-grid-container;
15
+
16
+ &.fluid {
17
+ @include xy-grid-container(100%);
18
+ }
19
+
20
+ &.full {
21
+ @include xy-grid-container(100%, 0);
22
+ }
23
+ }
24
+
25
+ // Base grid styles
26
+ .grid-x {
27
+ @include xy-grid;
28
+ }
29
+
30
+ .cell {
31
+ @include xy-cell-base();
32
+ @include xy-cell-static($grid-columns, false, $gutter-type: padding);
33
+
34
+ &.auto {
35
+ @include xy-cell-base(auto);
36
+ }
37
+
38
+ &.shrink {
39
+ @include xy-cell-base(shrink);
40
+ }
41
+
42
+ }
43
+ .grid-x {
44
+ > .auto {
45
+ @include xy-cell-static(auto, false);
46
+ }
47
+
48
+ > .shrink {
49
+ @include xy-cell-static(shrink, false);
50
+ }
51
+ }
52
+
53
+ // Auto width
54
+ @include -zf-each-breakpoint() {
55
+ // This is a bit of a hack/workaround, see these issues & PRs for the backstory:
56
+ // https://github.com/zurb/foundation-sites/issues/10244
57
+ // https://github.com/zurb/foundation-sites/pull/10222 and
58
+ // https://github.com/zurb/foundation-sites/pull/10164
59
+ .grid-x {
60
+ $str: "> .#{$-zf-size}-shrink, > .#{$-zf-size}-full";
61
+ @for $i from 1 through $grid-columns {
62
+ $str: $str + ", > .#{$-zf-size}-#{$i}"
63
+ }
64
+ #{$str} {
65
+ flex-basis: auto;
66
+ }
67
+ }
68
+ }
69
+
70
+ @include -zf-each-breakpoint() {
71
+ @if not($-zf-size == small) {
72
+ .grid-x > .#{$-zf-size}-auto {
73
+ @include xy-cell-base(auto);
74
+ @include xy-cell-static(auto, false);
75
+ }
76
+
77
+ .grid-x > .#{$-zf-size}-shrink {
78
+ @include xy-cell-base(shrink);
79
+ @include xy-cell-static(shrink, false);
80
+ }
81
+ }
82
+
83
+ @for $i from 1 through $grid-columns {
84
+ // Sizing (percentage)
85
+ .grid-x > .#{$-zf-size}-#{$i} {
86
+ @include xy-cell-static($i, false, $gutter-type: padding);
87
+ }
88
+ }
89
+ }
90
+
91
+ // Reset width when using `.grid-margin-x` not on `.grid-x`
92
+ .grid-margin-x:not(.grid-x) > .cell {
93
+ width: auto;
94
+ }
95
+
96
+ // Reset height when using `.grid-margin-y` not on `.grid-y`
97
+ .grid-margin-y:not(.grid-y) > .cell {
98
+ height: auto;
99
+ }
100
+ }
101
+
102
+ @mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {
103
+ $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');
104
+ > .#{$prefix}auto {
105
+ @include xy-cell-static(auto, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical);
106
+ }
107
+
108
+ > .#{$prefix}shrink {
109
+ @include xy-cell-static(shrink, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical);
110
+ }
111
+
112
+ @for $i from 1 through $grid-columns {
113
+ // Sizing (percentage)
114
+ $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');
115
+
116
+ > #{$classname} {
117
+ @include xy-cell-static($i, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical);
118
+ }
119
+ }
120
+ }
121
+
122
+ // Margin Grid classes
123
+ @mixin xy-margin-grid-classes(
124
+ $gutter-position: left right,
125
+ $vertical: false,
126
+ $wrapping-selector: '.grid-margin-x'
127
+ ){
128
+ #{$wrapping-selector} {
129
+ @include xy-gutters($negative: true, $gutter-position: $gutter-position);
130
+
131
+ // Base cell styles
132
+ > .cell {
133
+ @include xy-cell-static($vertical: $vertical);
134
+ }
135
+
136
+ // base styles need to all be before the auto and shrink styles
137
+ @include -zf-each-breakpoint() {
138
+ @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {
139
+ > .cell {
140
+ @include xy-cell-static($breakpoint: $-zf-size, $vertical: $vertical);
141
+ }
142
+ }
143
+ }
144
+
145
+ @include -zf-each-breakpoint() {
146
+
147
+ // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)
148
+ // for prior breakpoints based on the responsive gutter.
149
+ @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {
150
+ @each $bp in -zf-breakpoints-less-than($-zf-size) {
151
+ @if(map-has-key($grid-margin-gutters, $bp)) {
152
+ @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);
153
+ }
154
+ }
155
+ }
156
+
157
+ @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);
158
+ }
159
+ }
160
+ }
161
+
162
+ // Padding Grid classes
163
+ @mixin xy-padding-grid-classes {
164
+ .grid-padding-x {
165
+
166
+ // Negative margin for nested grids
167
+ .grid-padding-x {
168
+ @include xy-gutters($negative: true);
169
+ }
170
+
171
+ // Negative margin for grids within `grid-container/grid-container.fluid`
172
+ // This allows margin and padding grids to line up with eachother
173
+ .grid-container:not(.full) > & {
174
+ @include xy-gutters($negative: true);
175
+ }
176
+
177
+ // Base cell styles
178
+ > .cell {
179
+ @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);
180
+ }
181
+ }
182
+ }
183
+
184
+ // Block Grid classes
185
+ @mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {
186
+ @if $padding-grid {
187
+ @include -zf-each-breakpoint {
188
+ @for $i from 1 through $xy-block-grid-max {
189
+ .#{$-zf-size}-up-#{$i} {
190
+ @include xy-grid-layout($i, '.cell', false, $gutter-type: padding);
191
+ }
192
+ }
193
+ }
194
+ }
195
+
196
+ @if $margin-grid {
197
+ @include -zf-each-breakpoint {
198
+ @for $i from 1 through $xy-block-grid-max {
199
+ // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)
200
+ // for prior breakpoints based on the responsive gutter.
201
+ @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {
202
+ @each $bp in -zf-breakpoints-less-than($-zf-size) {
203
+ @if(map-has-key($grid-margin-gutters, $bp)) {
204
+ .grid-margin-x.#{$bp}-up-#{$i} {
205
+ @include xy-grid-layout($i, '.cell', false, $gutter-type: margin, $breakpoint: $bp);
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ @for $i from 1 through $xy-block-grid-max {
212
+ .grid-margin-x.#{$-zf-size}-up-#{$i} {
213
+ @include xy-grid-layout($i, '.cell', false, $gutter-type: margin, $breakpoint: $-zf-size);
214
+ }
215
+ }
216
+ }
217
+ }
218
+ }
219
+
220
+ // Collapse classes
221
+ @mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {
222
+ @each $bp in $breakpoint-classes {
223
+ @if $margin-grid {
224
+ .#{$bp}-margin-collapse {
225
+ @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);
226
+ }
227
+ }
228
+
229
+ @if $padding-grid {
230
+ .#{$bp}-padding-collapse {
231
+ @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);
232
+ }
233
+ }
234
+ }
235
+ }
236
+
237
+ // Offset classes
238
+ @mixin xy-offset-cell-classes {
239
+ @include -zf-each-breakpoint {
240
+ @for $i from 1 through $grid-columns {
241
+ // Offsets
242
+ $o: $i - 1;
243
+
244
+ .#{$-zf-size}-offset-#{$o} {
245
+ @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding, $breakpoint: $-zf-size);
246
+ }
247
+
248
+ .grid-margin-x > .#{$-zf-size}-offset-#{$o} {
249
+ @include xy-cell-offset($o, $breakpoint: $-zf-size);
250
+ }
251
+ }
252
+ }
253
+ }
254
+
255
+ // Vertical Grid classes
256
+ @mixin xy-vertical-grid-classes(
257
+ $margin-grid: true,
258
+ $padding-grid: true
259
+ ) {
260
+
261
+ @include -zf-each-breakpoint() {
262
+ @if not($-zf-size == small) {
263
+ }
264
+ }
265
+
266
+ .grid-y {
267
+ @include xy-grid(vertical, false);
268
+
269
+
270
+ > .cell {
271
+ @include xy-cell-reset();
272
+ }
273
+
274
+ > .auto {
275
+ @include xy-cell-static(auto, false, $breakpoint: $-zf-size, $vertical: true);
276
+ }
277
+
278
+ > .shrink {
279
+ @include xy-cell-static(shrink, false, $breakpoint: $-zf-size, $vertical: true);
280
+ }
281
+
282
+
283
+ @include -zf-each-breakpoint() {
284
+ // This is a bit of a hack/workaround, see these issues and PRs for the backstory:
285
+ // https://github.com/zurb/foundation-sites/issues/10244
286
+ // https://github.com/zurb/foundation-sites/pull/10222 and
287
+ // https://github.com/zurb/foundation-sites/pull/10164
288
+ $str: "> .#{$-zf-size}-shrink, > .#{$-zf-size}-full";
289
+ @for $i from 1 through $grid-columns {
290
+ $str: $str + ", > .#{$-zf-size}-#{$i}"
291
+ }
292
+ #{$str} {
293
+ flex-basis: auto;
294
+ }
295
+ }
296
+
297
+ @include -zf-each-breakpoint() {
298
+ @if not($-zf-size == small) {
299
+ > .#{$-zf-size}-auto {
300
+ @include xy-cell-base(auto);
301
+ @include xy-cell-static(auto, false, $breakpoint: $-zf-size, $vertical: true);
302
+ }
303
+
304
+ > .#{$-zf-size}-shrink {
305
+ @include xy-cell-static(shrink, false, $breakpoint: $-zf-size, $vertical: true);
306
+ }
307
+
308
+ }
309
+
310
+ @for $i from 1 through $grid-columns {
311
+ // Sizing (percentage)
312
+ > .#{$-zf-size}-#{$i} {
313
+ @include xy-cell-static($i, false, $vertical: true, $gutter-type: padding);
314
+ }
315
+ }
316
+
317
+ }
318
+ }
319
+
320
+ @if $padding-grid {
321
+ .grid-padding-y {
322
+ // Negative margin for nested grids
323
+ .grid-padding-y {
324
+ @include xy-gutters($negative: true, $gutter-position: top bottom);
325
+ }
326
+
327
+ // Base cell styles
328
+ > .cell {
329
+ @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);
330
+ }
331
+ }
332
+ }
333
+
334
+ @if $margin-grid {
335
+ @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');
336
+ }
337
+
338
+ }
339
+
340
+ @mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {
341
+ // Framed grid styles
342
+ .grid-frame {
343
+ @include xy-grid-frame;
344
+ }
345
+
346
+ .cell .grid-frame {
347
+ width: 100%; // Same as include with $nested, but with less css
348
+ }
349
+
350
+ .cell-block {
351
+ @include xy-cell-block();
352
+ }
353
+
354
+ .cell-block-y {
355
+ @include xy-cell-block(true);
356
+ }
357
+
358
+
359
+ .cell-block-container {
360
+ @include xy-cell-block-container();
361
+ }
362
+
363
+
364
+ @include -zf-each-breakpoint(false) {
365
+
366
+ .#{$-zf-size}-grid-frame {
367
+ @include xy-grid-frame;
368
+ }
369
+
370
+ .cell .#{$-zf-size}-grid-frame {
371
+ width: 100%; // Same as include with $nested, but with less css
372
+ }
373
+
374
+ .#{$-zf-size}-cell-block {
375
+ @include xy-cell-block();
376
+ }
377
+
378
+ .#{$-zf-size}-cell-block-container {
379
+ @include xy-cell-block-container();
380
+ }
381
+
382
+ .#{$-zf-size}-cell-block-y {
383
+ @include xy-cell-block(true);
384
+ }
385
+ }
386
+
387
+ @if $vertical-grid {
388
+ .grid-y {
389
+ &.grid-frame {
390
+ width: auto;
391
+ @include xy-grid-frame(true);
392
+ }
393
+
394
+ @include -zf-each-breakpoint(false) {
395
+ &.#{$-zf-size}-grid-frame {
396
+ width: auto;
397
+ @include xy-grid-frame(true);
398
+ }
399
+
400
+ }
401
+ }
402
+ .cell {
403
+ .grid-y.grid-frame {
404
+ height: 100%; // Same as include with $nested, but with less css
405
+ }
406
+ @include -zf-each-breakpoint(false) {
407
+ .grid-y.#{$-zf-size}-grid-frame {
408
+ height: 100%; // Same as include with $nested, but with less css
409
+ }
410
+ }
411
+ }
412
+ }
413
+ @if $margin-grid {
414
+ @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');
415
+ .grid-frame.grid-margin-y {
416
+ @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);
417
+ }
418
+ @include -zf-each-breakpoint(false) {
419
+ .grid-margin-y.#{$-zf-size}-grid-frame {
420
+ @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);
421
+ }
422
+ }
423
+ }
424
+ }
425
+
426
+ // Final classes
427
+ @mixin foundation-xy-grid-classes(
428
+ $base-grid: true,
429
+ $margin-grid: true,
430
+ $padding-grid: true,
431
+ $block-grid: true,
432
+ $collapse: true,
433
+ $offset: true,
434
+ $vertical-grid: true,
435
+ $frame-grid: true
436
+ ) {
437
+
438
+ // Base grid styles
439
+ @if($base-grid) {
440
+ @include xy-base-grid-classes();
441
+ }
442
+
443
+ // Margin grid
444
+ @if($margin-grid) {
445
+ @include xy-margin-grid-classes();
446
+ }
447
+
448
+ // Padding grid
449
+ @if($padding-grid) {
450
+ @include xy-padding-grid-classes();
451
+ }
452
+
453
+ // Block grid
454
+ @if($block-grid) {
455
+ @include xy-block-grid-classes($margin-grid, $padding-grid);
456
+ }
457
+
458
+ // Collapse gutters
459
+ @if($collapse) {
460
+ @include xy-collapse-grid-classes($margin-grid, $padding-grid);
461
+ }
462
+
463
+ // Offset gutters
464
+ @if($offset) {
465
+ @include xy-offset-cell-classes();
466
+ }
467
+
468
+ // Vertical grid
469
+ @if($vertical-grid) {
470
+ @include xy-vertical-grid-classes($margin-grid, $padding-grid);
471
+ }
472
+
473
+ @if ($frame-grid) {
474
+ @include xy-frame-grid-classes($vertical-grid, $margin-grid)
475
+ }
476
+ }
@@ -0,0 +1,74 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group xy-grid
7
+ ////
8
+
9
+ /// Collapses the grid a cells within it.
10
+ ///
11
+ /// @param {String} $selector [.cell] - The child element to remove the gutter from.
12
+ /// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.
13
+ /// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.
14
+ @mixin xy-grid-collapse(
15
+ $selector: '.cell',
16
+ $gutter-type: margin,
17
+ $gutter-position: right left,
18
+ $min-breakpoint: $-zf-zero-breakpoint
19
+ ) {
20
+ // First, lets negate any margins on the top level
21
+ @if ($gutter-type == 'margin') {
22
+
23
+ @include breakpoint($min-breakpoint) {
24
+ @each $value in $gutter-position {
25
+ margin-#{$value}: 0;
26
+ }
27
+
28
+ > #{$selector} {
29
+ @each $value in $gutter-position {
30
+ margin-#{$value}: 0;
31
+ }
32
+ }
33
+ }
34
+
35
+ $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);
36
+
37
+ // Output new widths to not include gutters
38
+ @each $bp in $breakpoint-classes {
39
+ @if(sl-contain($excluded-bps, $bp)) {
40
+ @include breakpoint($min-breakpoint) {
41
+ @for $i from 1 through $grid-columns {
42
+ // Sizing (percentage)
43
+ > .#{$bp}-#{$i} {
44
+ @include xy-cell-static($i, $gutter-output: false, $gutter-type: padding);
45
+ }
46
+ }
47
+ }
48
+ } @else {
49
+ @include breakpoint($bp) {
50
+ @for $i from 1 through $grid-columns {
51
+ // Sizing (percentage)
52
+ > .#{$bp}-#{$i} {
53
+ @include xy-cell-static($i, $gutter-output: false, $gutter-type: padding);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ @else {
61
+
62
+ @include breakpoint($min-breakpoint) {
63
+ @each $value in $gutter-position {
64
+ margin-#{$value}: 0;
65
+ }
66
+
67
+ > #{$selector} {
68
+ @each $value in $gutter-position {
69
+ padding-#{$value}: 0;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,85 @@
1
+ /// Modifies a grid to give it "frame" behavior (no overflow, no wrap, stretch behavior)
2
+ ///
3
+ /// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.
4
+ /// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.
5
+ /// @param {Number|Map} $gutters [null] - Map or single value for gutters.
6
+ /// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.
7
+ /// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.
8
+ @mixin xy-grid-frame(
9
+ $vertical: false,
10
+ $nested: false,
11
+ $gutters: null,
12
+ $breakpoint: null,
13
+ $include-base: true
14
+ ) {
15
+
16
+ @if $include-base {
17
+ overflow: hidden;
18
+ position: relative;
19
+ flex-wrap: nowrap;
20
+ align-items: stretch;
21
+ }
22
+
23
+ @if $breakpoint == null and type-of($gutters) == 'map' {
24
+ @include -zf-each-breakpoint() {
25
+ @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);
26
+ }
27
+ } @else {
28
+ // Get our gutters if applicable
29
+ $gutter: -zf-get-bp-val($gutters, $breakpoint);
30
+
31
+ // If we have a gutter, add it to the width/height
32
+ @if $gutter {
33
+ @if $vertical == true {
34
+ $unit: if($nested == true, 100%, 100vh);
35
+ $gutter: rem-calc($gutter);
36
+ height: calc(#{$unit} + #{$gutter});
37
+ } @else {
38
+ $unit: if($nested == true, 100%, 100vw);
39
+ $gutter: rem-calc($gutter);
40
+ width: calc(#{$unit} + #{$gutter});
41
+ }
42
+ }
43
+ @else {
44
+ @if $vertical == true {
45
+ height: if($nested == true, 100%, 100vh);
46
+ } @else {
47
+ width: if($nested == true, 100%, 100vw);
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+ /// Modifies a cell to give it "block" behavior (overflow auto, inertial scrolling)
54
+ ///
55
+ /// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.
56
+ @mixin xy-cell-block(
57
+ $vertical: false
58
+ ) {
59
+ $property: if($vertical == true, 'overflow-y', 'overflow-x');
60
+
61
+ @if $vertical == true {
62
+ overflow-y: auto;
63
+ max-height: 100%;
64
+ } @else {
65
+ overflow-x: auto;
66
+ max-width: 100%;
67
+ }
68
+
69
+ -webkit-overflow-scrolling: touch;
70
+ -ms-overflow-stype: -ms-autohiding-scrollbar;
71
+ }
72
+
73
+ /// Container for inside a grid frame containing multiple blocks. Typically used
74
+ /// as a modifier for a `.cell` to allow the cell to pass along flex sizing
75
+ /// constraints / from parents to children.
76
+ @mixin xy-cell-block-container() {
77
+ display: flex;
78
+ flex-direction: column;
79
+ max-height: 100%;
80
+
81
+ > .grid-x {
82
+ max-height: 100%;
83
+ flex-wrap: nowrap;
84
+ }
85
+ }
@@ -0,0 +1,35 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group xy-grid
7
+ ////
8
+
9
+ /// Creates a max width container, designed to house your grid content.
10
+ ///
11
+ /// @param {Number} $width [$grid-container] - a width to limit the container to.
12
+ @mixin xy-grid-container(
13
+ $width: $grid-container,
14
+ $padding: $grid-container-padding
15
+ ) {
16
+ @include xy-gutters($gutters: $padding, $gutter-type: padding);
17
+
18
+ max-width: $width;
19
+ margin: 0 auto;
20
+ }
21
+
22
+ /// Creates a container for your flex cells.
23
+ ///
24
+ /// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.
25
+ /// @param {Boolean} $wrap [true] - If the cells within should wrap or not.
26
+ @mixin xy-grid(
27
+ $direction: horizontal,
28
+ $wrap: true
29
+ ) {
30
+ $direction: if($direction == 'horizontal', row, column);
31
+ $wrap: if($wrap, wrap, nowrap);
32
+
33
+ display: flex;
34
+ flex-flow: $direction $wrap;
35
+ }
@@ -0,0 +1,45 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group xy-grid
7
+ ////
8
+
9
+ /// Create gutters for a cell/container.
10
+ ///
11
+ /// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.
12
+ /// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.
13
+ /// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.
14
+ /// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.
15
+ @mixin xy-gutters(
16
+ $gutters: $grid-margin-gutters,
17
+ $gutter-type: margin,
18
+ $gutter-position: right left,
19
+ $negative: false
20
+ ) {
21
+ $operator: if($negative, '-', '');
22
+
23
+ // If we have declared negative gutters, force type to `margin.
24
+ $gutter-type: if($negative, 'margin', $gutter-type);
25
+
26
+ // Output our margin gutters.
27
+ @if (type-of($gutters) == 'map') {
28
+ @include -zf-breakpoint-value(auto, $gutters) {
29
+ $gutter: rem-calc($-zf-bp-value) / 2;
30
+
31
+ // Loop through each gutter position
32
+ @each $value in $gutter-position {
33
+ #{$gutter-type}-#{$value}: #{$operator}$gutter;
34
+ }
35
+ }
36
+ }
37
+ @elseif (type-of($gutters) == 'number') {
38
+ $gutter: rem-calc($gutters) / 2;
39
+
40
+ // Loop through each gutter position
41
+ @each $value in $gutter-position {
42
+ #{$gutter-type}-#{$value}: #{$operator}$gutter;
43
+ }
44
+ }
45
+ }