foundation-rails 6.4.3.0 → 6.5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (268) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +14 -3
  5. data/Appraisals +19 -0
  6. data/Gemfile +5 -2
  7. data/Gemfile.lock +193 -0
  8. data/README.md +53 -24
  9. data/Rakefile +11 -12
  10. data/bower.json +3 -3
  11. data/foundation-rails.gemspec +5 -5
  12. data/gemfiles/rails_4.1.gemfile +10 -0
  13. data/gemfiles/rails_4.1.gemfile.lock +178 -0
  14. data/gemfiles/rails_4.2.gemfile +10 -0
  15. data/gemfiles/rails_4.2.gemfile.lock +178 -0
  16. data/gemfiles/rails_5.0.gemfile +10 -0
  17. data/gemfiles/rails_5.0.gemfile.lock +193 -0
  18. data/gemfiles/rails_5.1.gemfile +10 -0
  19. data/gemfiles/rails_5.1.gemfile.lock +193 -0
  20. data/gemfiles/rails_5.2.gemfile +10 -0
  21. data/gemfiles/rails_5.2.gemfile.lock +193 -0
  22. data/lib/foundation/rails/version.rb +1 -1
  23. data/lib/generators/foundation/install_generator.rb +1 -1
  24. data/lib/generators/foundation/templates/_settings.scss +5 -5
  25. data/spec/support/helpers.rb +1 -1
  26. data/vendor/assets/js/foundation.cjs.js +11795 -0
  27. data/vendor/assets/js/foundation.cjs.js.map +1 -0
  28. data/vendor/assets/js/foundation.es6.js +10361 -0
  29. data/vendor/assets/js/foundation.es6.js.map +1 -0
  30. data/vendor/assets/js/foundation.esm.js +11756 -0
  31. data/vendor/assets/js/foundation.esm.js.map +1 -0
  32. data/vendor/assets/js/foundation.js +13214 -31
  33. data/vendor/assets/js/foundation.js.map +1 -0
  34. data/vendor/assets/js/foundation.min.js +2 -0
  35. data/vendor/assets/js/foundation.min.js.map +1 -0
  36. data/vendor/assets/js/foundation.sprockets.js +38 -0
  37. data/vendor/assets/js/{foundation.abide.js → plugins/foundation.abide.js} +317 -138
  38. data/vendor/assets/js/plugins/foundation.abide.js.map +1 -0
  39. data/vendor/assets/js/plugins/foundation.abide.min.js +2 -0
  40. data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -0
  41. data/vendor/assets/js/plugins/foundation.accordion.js +676 -0
  42. data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -0
  43. data/vendor/assets/js/plugins/foundation.accordion.min.js +2 -0
  44. data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -0
  45. data/vendor/assets/js/plugins/foundation.accordionMenu.js +637 -0
  46. data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -0
  47. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +2 -0
  48. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -0
  49. data/vendor/assets/js/plugins/foundation.core.js +1072 -0
  50. data/vendor/assets/js/plugins/foundation.core.js.map +1 -0
  51. data/vendor/assets/js/plugins/foundation.core.min.js +2 -0
  52. data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -0
  53. data/vendor/assets/js/plugins/foundation.drilldown.js +982 -0
  54. data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -0
  55. data/vendor/assets/js/plugins/foundation.drilldown.min.js +2 -0
  56. data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -0
  57. data/vendor/assets/js/plugins/foundation.dropdown.js +1324 -0
  58. data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -0
  59. data/vendor/assets/js/plugins/foundation.dropdown.min.js +2 -0
  60. data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -0
  61. data/vendor/assets/js/plugins/foundation.dropdownMenu.js +792 -0
  62. data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -0
  63. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +2 -0
  64. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -0
  65. data/vendor/assets/js/plugins/foundation.equalizer.js +638 -0
  66. data/vendor/assets/js/plugins/foundation.equalizer.js.map +1 -0
  67. data/vendor/assets/js/plugins/foundation.equalizer.min.js +2 -0
  68. data/vendor/assets/js/plugins/foundation.equalizer.min.js.map +1 -0
  69. data/vendor/assets/js/plugins/foundation.interchange.js +471 -0
  70. data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -0
  71. data/vendor/assets/js/plugins/foundation.interchange.min.js +2 -0
  72. data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -0
  73. data/vendor/assets/js/plugins/foundation.magellan.js +551 -0
  74. data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -0
  75. data/vendor/assets/js/plugins/foundation.magellan.min.js +2 -0
  76. data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -0
  77. data/vendor/assets/js/plugins/foundation.offcanvas.js +1164 -0
  78. data/vendor/assets/js/plugins/foundation.offcanvas.js.map +1 -0
  79. data/vendor/assets/js/plugins/foundation.offcanvas.min.js +2 -0
  80. data/vendor/assets/js/plugins/foundation.offcanvas.min.js.map +1 -0
  81. data/vendor/assets/js/plugins/foundation.orbit.js +883 -0
  82. data/vendor/assets/js/plugins/foundation.orbit.js.map +1 -0
  83. data/vendor/assets/js/plugins/foundation.orbit.min.js +2 -0
  84. data/vendor/assets/js/plugins/foundation.orbit.min.js.map +1 -0
  85. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +546 -0
  86. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -0
  87. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js +2 -0
  88. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -0
  89. data/vendor/assets/js/plugins/foundation.responsiveMenu.js +437 -0
  90. data/vendor/assets/js/plugins/foundation.responsiveMenu.js.map +1 -0
  91. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js +2 -0
  92. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js.map +1 -0
  93. data/vendor/assets/js/plugins/foundation.responsiveToggle.js +405 -0
  94. data/vendor/assets/js/plugins/foundation.responsiveToggle.js.map +1 -0
  95. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js +2 -0
  96. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js.map +1 -0
  97. data/vendor/assets/js/plugins/foundation.reveal.js +1278 -0
  98. data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -0
  99. data/vendor/assets/js/plugins/foundation.reveal.min.js +2 -0
  100. data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -0
  101. data/vendor/assets/js/{foundation.slider.js → plugins/foundation.slider.js} +405 -271
  102. data/vendor/assets/js/plugins/foundation.slider.js.map +1 -0
  103. data/vendor/assets/js/plugins/foundation.slider.min.js +2 -0
  104. data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -0
  105. data/vendor/assets/js/plugins/foundation.smoothScroll.js +382 -0
  106. data/vendor/assets/js/plugins/foundation.smoothScroll.js.map +1 -0
  107. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js +2 -0
  108. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js.map +1 -0
  109. data/vendor/assets/js/{foundation.sticky.js → plugins/foundation.sticky.js} +325 -203
  110. data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -0
  111. data/vendor/assets/js/plugins/foundation.sticky.min.js +2 -0
  112. data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -0
  113. data/vendor/assets/js/plugins/foundation.tabs.js +813 -0
  114. data/vendor/assets/js/plugins/foundation.tabs.js.map +1 -0
  115. data/vendor/assets/js/plugins/foundation.tabs.min.js +2 -0
  116. data/vendor/assets/js/plugins/foundation.tabs.min.js.map +1 -0
  117. data/vendor/assets/js/plugins/foundation.toggler.js +713 -0
  118. data/vendor/assets/js/plugins/foundation.toggler.js.map +1 -0
  119. data/vendor/assets/js/plugins/foundation.toggler.min.js +2 -0
  120. data/vendor/assets/js/plugins/foundation.toggler.min.js.map +1 -0
  121. data/vendor/assets/js/plugins/foundation.tooltip.js +1346 -0
  122. data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -0
  123. data/vendor/assets/js/plugins/foundation.tooltip.min.js +2 -0
  124. data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -0
  125. data/vendor/assets/js/{foundation.util.box.js → plugins/foundation.util.box.js} +136 -54
  126. data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -0
  127. data/vendor/assets/js/plugins/foundation.util.box.min.js +2 -0
  128. data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -0
  129. data/vendor/assets/js/plugins/foundation.util.imageLoader.js +218 -0
  130. data/vendor/assets/js/plugins/foundation.util.imageLoader.js.map +1 -0
  131. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js +2 -0
  132. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js.map +1 -0
  133. data/vendor/assets/js/plugins/foundation.util.keyboard.js +351 -0
  134. data/vendor/assets/js/plugins/foundation.util.keyboard.js.map +1 -0
  135. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js +2 -0
  136. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js.map +1 -0
  137. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +405 -0
  138. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js.map +1 -0
  139. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js +2 -0
  140. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js.map +1 -0
  141. data/vendor/assets/js/plugins/foundation.util.motion.js +282 -0
  142. data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -0
  143. data/vendor/assets/js/plugins/foundation.util.motion.min.js +2 -0
  144. data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -0
  145. data/vendor/assets/js/plugins/foundation.util.nest.js +240 -0
  146. data/vendor/assets/js/plugins/foundation.util.nest.js.map +1 -0
  147. data/vendor/assets/js/plugins/foundation.util.nest.min.js +2 -0
  148. data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -0
  149. data/vendor/assets/js/plugins/foundation.util.timer.js +226 -0
  150. data/vendor/assets/js/plugins/foundation.util.timer.js.map +1 -0
  151. data/vendor/assets/js/plugins/foundation.util.timer.min.js +2 -0
  152. data/vendor/assets/js/plugins/foundation.util.timer.min.js.map +1 -0
  153. data/vendor/assets/js/plugins/foundation.util.touch.js +365 -0
  154. data/vendor/assets/js/plugins/foundation.util.touch.js.map +1 -0
  155. data/vendor/assets/js/plugins/foundation.util.touch.min.js +2 -0
  156. data/vendor/assets/js/plugins/foundation.util.touch.min.js.map +1 -0
  157. data/vendor/assets/js/plugins/foundation.util.triggers.js +480 -0
  158. data/vendor/assets/js/plugins/foundation.util.triggers.js.map +1 -0
  159. data/vendor/assets/js/plugins/foundation.util.triggers.min.js +2 -0
  160. data/vendor/assets/js/plugins/foundation.util.triggers.min.js.map +1 -0
  161. data/vendor/assets/scss/_global.scss +10 -15
  162. data/vendor/assets/scss/components/_accordion-menu.scss +6 -3
  163. data/vendor/assets/scss/components/_accordion.scss +1 -0
  164. data/vendor/assets/scss/components/_breadcrumbs.scss +8 -6
  165. data/vendor/assets/scss/components/_button-group.scss +27 -8
  166. data/vendor/assets/scss/components/_button.scss +36 -8
  167. data/vendor/assets/scss/components/_card.scss +2 -2
  168. data/vendor/assets/scss/components/_drilldown.scss +5 -6
  169. data/vendor/assets/scss/components/_dropdown-menu.scss +15 -10
  170. data/vendor/assets/scss/components/_dropdown.scss +7 -4
  171. data/vendor/assets/scss/components/_flex.scss +6 -4
  172. data/vendor/assets/scss/components/_media-object.scss +33 -33
  173. data/vendor/assets/scss/components/_menu.scss +0 -4
  174. data/vendor/assets/scss/components/_off-canvas.scss +4 -4
  175. data/vendor/assets/scss/components/_orbit.scss +1 -0
  176. data/vendor/assets/scss/components/_responsive-embed.scss +0 -13
  177. data/vendor/assets/scss/components/_reveal.scss +19 -14
  178. data/vendor/assets/scss/components/_table.scss +3 -6
  179. data/vendor/assets/scss/components/_tabs.scss +1 -4
  180. data/vendor/assets/scss/components/_thumbnail.scss +1 -1
  181. data/vendor/assets/scss/components/_visibility.scss +5 -2
  182. data/vendor/assets/scss/forms/_error.scss +1 -0
  183. data/vendor/assets/scss/forms/_input-group.scss +10 -10
  184. data/vendor/assets/scss/forms/_meter.scss +5 -5
  185. data/vendor/assets/scss/forms/_progress.scss +6 -6
  186. data/vendor/assets/scss/forms/_range.scss +5 -5
  187. data/vendor/assets/scss/forms/_text.scss +7 -7
  188. data/vendor/assets/scss/foundation.scss +74 -57
  189. data/vendor/assets/scss/grid/_column.scss +2 -6
  190. data/vendor/assets/scss/grid/_flex-grid.scss +1 -0
  191. data/vendor/assets/scss/grid/_gutter.scss +0 -15
  192. data/vendor/assets/scss/grid/_position.scss +28 -4
  193. data/vendor/assets/scss/motion-ui/_settings.scss +1 -0
  194. data/vendor/assets/scss/motion-ui/effects/_fade.scss +1 -4
  195. data/vendor/assets/scss/motion-ui/effects/_hinge.scss +4 -3
  196. data/vendor/assets/scss/motion-ui/effects/_shake.scss +1 -1
  197. data/vendor/assets/scss/motion-ui/effects/_slide.scss +4 -3
  198. data/vendor/assets/scss/motion-ui/effects/_spin.scss +4 -3
  199. data/vendor/assets/scss/motion-ui/effects/_wiggle.scss +1 -1
  200. data/vendor/assets/scss/motion-ui/effects/_zoom.scss +2 -2
  201. data/vendor/assets/scss/motion-ui/motion-ui.scss +2 -0
  202. data/vendor/assets/scss/motion-ui/transitions/_fade.scss +6 -4
  203. data/vendor/assets/scss/motion-ui/transitions/_hinge.scss +3 -2
  204. data/vendor/assets/scss/motion-ui/transitions/_slide.scss +3 -2
  205. data/vendor/assets/scss/motion-ui/transitions/_spin.scss +2 -1
  206. data/vendor/assets/scss/motion-ui/transitions/_zoom.scss +6 -4
  207. data/vendor/assets/scss/motion-ui/util/_animation.scss +1 -1
  208. data/vendor/assets/scss/motion-ui/util/_args.scss +2 -2
  209. data/vendor/assets/scss/motion-ui/util/_function.scss +94 -0
  210. data/vendor/assets/scss/motion-ui/util/_keyframe.scss +5 -5
  211. data/vendor/assets/scss/motion-ui/util/_series.scss +20 -17
  212. data/vendor/assets/scss/motion-ui/util/_string.scss +36 -0
  213. data/vendor/assets/scss/prototype/_relation.scss +1 -1
  214. data/vendor/assets/scss/prototype/_rounded.scss +3 -0
  215. data/vendor/assets/scss/prototype/_spacing.scss +94 -121
  216. data/vendor/assets/scss/settings/_settings.scss +5 -5
  217. data/vendor/assets/scss/typography/_base.scss +2 -2
  218. data/vendor/assets/scss/typography/_helpers.scss +1 -1
  219. data/vendor/assets/scss/typography/_print.scss +4 -0
  220. data/vendor/assets/scss/util/_breakpoint.scss +22 -10
  221. data/vendor/assets/scss/util/_color.scss +11 -1
  222. data/vendor/assets/scss/util/_direction.scss +1 -1
  223. data/vendor/assets/scss/util/_flex.scss +12 -7
  224. data/vendor/assets/scss/util/_mixins.scss +7 -3
  225. data/vendor/assets/scss/util/_unit.scss +3 -3
  226. data/vendor/assets/scss/vendor/normalize.scss +281 -0
  227. data/vendor/assets/scss/xy-grid/_cell.scss +33 -17
  228. data/vendor/assets/scss/xy-grid/_classes.scss +31 -11
  229. data/vendor/assets/scss/xy-grid/_collapse.scss +2 -1
  230. data/vendor/assets/scss/xy-grid/_frame.scss +2 -1
  231. data/vendor/assets/scss/xy-grid/_grid.scss +1 -0
  232. data/vendor/assets/scss/xy-grid/_gutters.scss +1 -1
  233. data/vendor/assets/scss/xy-grid/_layout.scss +2 -1
  234. data/vendor/assets/scss/xy-grid/_position.scss +5 -1
  235. metadata +172 -80
  236. data/vendor/assets/_vendor/normalize-scss/sass/_normalize.scss +0 -3
  237. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_import-now.scss +0 -11
  238. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +0 -676
  239. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_variables.scss +0 -36
  240. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +0 -61
  241. data/vendor/assets/js/foundation.accordion.js +0 -511
  242. data/vendor/assets/js/foundation.accordionMenu.js +0 -527
  243. data/vendor/assets/js/foundation.core.js +0 -860
  244. data/vendor/assets/js/foundation.drilldown.js +0 -759
  245. data/vendor/assets/js/foundation.dropdown.js +0 -1151
  246. data/vendor/assets/js/foundation.dropdownMenu.js +0 -677
  247. data/vendor/assets/js/foundation.equalizer.js +0 -542
  248. data/vendor/assets/js/foundation.interchange.js +0 -399
  249. data/vendor/assets/js/foundation.magellan.js +0 -449
  250. data/vendor/assets/js/foundation.offcanvas.js +0 -1054
  251. data/vendor/assets/js/foundation.orbit.js +0 -767
  252. data/vendor/assets/js/foundation.responsiveAccordionTabs.js +0 -440
  253. data/vendor/assets/js/foundation.responsiveMenu.js +0 -362
  254. data/vendor/assets/js/foundation.responsiveToggle.js +0 -336
  255. data/vendor/assets/js/foundation.reveal.js +0 -1065
  256. data/vendor/assets/js/foundation.smoothScroll.js +0 -303
  257. data/vendor/assets/js/foundation.tabs.js +0 -678
  258. data/vendor/assets/js/foundation.toggler.js +0 -601
  259. data/vendor/assets/js/foundation.tooltip.js +0 -1194
  260. data/vendor/assets/js/foundation.util.imageLoader.js +0 -163
  261. data/vendor/assets/js/foundation.util.keyboard.js +0 -298
  262. data/vendor/assets/js/foundation.util.mediaQuery.js +0 -354
  263. data/vendor/assets/js/foundation.util.motion.js +0 -231
  264. data/vendor/assets/js/foundation.util.nest.js +0 -181
  265. data/vendor/assets/js/foundation.util.timer.js +0 -170
  266. data/vendor/assets/js/foundation.util.touch.js +0 -275
  267. data/vendor/assets/js/foundation.util.triggers.js +0 -398
  268. data/vendor/assets/scss/prototype/_typescale.scss +0 -20
@@ -0,0 +1,36 @@
1
+ /// Convert any string to a "safe" string that can be used anywhere in CSS (as class or keyframe name for example).
2
+ /// Unsupported characters are replaced by the given `$delimiter` ("-").
3
+ /// Several unsupported characters following each others are replaced by a single delimiter.
4
+ ///
5
+ /// @param {*} $str - String to convert. If not a string, it will be converted to with `quote()`.
6
+ /// @param {String} $delimiter ['-'] - Character to use instead of unsupported characters.
7
+ /// @return {String} - Safe string usable everywhere in CSS.
8
+ @function -mui-string-safe(
9
+ $str,
10
+ $delimiter: '-'
11
+ ) {
12
+ $str: quote($str);
13
+ $length: str_length($str);
14
+ $safe-chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
15
+
16
+ $ret: '';
17
+ $delimited: false;
18
+
19
+ @for $i from 1 through $length {
20
+ $c: str_slice($str, $i, $i);
21
+
22
+ @if (str_index($safe-chars, $c) != null) {
23
+ $ret: '#{$ret}#{$c}';
24
+ $delimited: false;
25
+ }
26
+ @else if (($delimited == false)
27
+ and (str_length($ret) > 0)
28
+ and ($i < $length))
29
+ {
30
+ $ret: '#{$ret}#{$delimiter}';
31
+ $delimited: true;
32
+ }
33
+ }
34
+
35
+ @return $ret;
36
+ }
@@ -91,7 +91,7 @@
91
91
  }
92
92
  }
93
93
 
94
- /// Will only select the child if its unique. That means that if there are at least 2 children, the style will not be applied.
94
+ /// Will only select the child if it's unique. That means that if there are at least 2 children, the style will not be applied.
95
95
  @mixin unique {
96
96
  &:only-child {
97
97
  @content;
@@ -30,6 +30,9 @@ $prototype-border-radius: rem-calc(3) !default;
30
30
  @mixin foundation-prototype-rounded {
31
31
  .rounded {
32
32
  @include border-rounded;
33
+ &:after {
34
+ border-radius: 50%; // For switches
35
+ }
33
36
  }
34
37
 
35
38
  .radius {
@@ -64,69 +64,79 @@ $prototype-spacers-count: 3 !default;
64
64
  }
65
65
  }
66
66
 
67
- @mixin foundation-prototype-spacing {
68
- @for $spacer from 0 through $prototype-spacers-count {
69
- // All Sides
70
- .margin-#{$spacer} {
71
- @include margin($spacer, $spacer, $spacer, $spacer);
72
- }
73
-
74
- .padding-#{$spacer} {
75
- @include padding($spacer, $spacer, $spacer, $spacer);
76
- }
77
-
78
- // Top Side
79
- .margin-top-#{$spacer} {
80
- @include margin($spacer, null, null, null);
81
- }
82
-
83
- .padding-top-#{$spacer} {
84
- @include padding($spacer, null, null, null);
85
- }
86
-
87
- // Right Side
88
- .margin-right-#{$spacer} {
89
- @include margin(null, $spacer, null, null);
90
- }
91
-
92
- .padding-right-#{$spacer} {
93
- @include padding(null, $spacer, null, null);
94
- }
95
-
96
- // Bottom Side
97
- .margin-bottom-#{$spacer} {
98
- @include margin(null, null, $spacer, null);
99
- }
100
-
101
- .padding-bottom-#{$spacer} {
102
- @include padding(null, null, $spacer, null);
103
- }
104
-
105
- // Left Side
106
- .margin-left-#{$spacer} {
107
- @include margin(null, null, null, $spacer);
108
- }
109
-
110
- .padding-left-#{$spacer} {
111
- @include padding(null, null, null, $spacer);
112
- }
113
-
114
- // Horizontal Axes
115
- .margin-horizontal-#{$spacer} {
116
- @include margin(null, $spacer, null, $spacer);
117
- }
67
+ /// Margin classes for specific direction properties
68
+ /// @param {String} $dir [] Direction
69
+ /// @param {Number} $spacer [] Spacer
70
+ @mixin margin-direction($dir, $spacer) {
71
+ @if ($dir == top) {
72
+ @include margin($top: $spacer);
73
+ }
74
+ @else if ($dir == right) {
75
+ @include margin($right: $spacer);
76
+ }
77
+ @else if ($dir == bottom) {
78
+ @include margin($bottom: $spacer);
79
+ }
80
+ @else if ($dir == left) {
81
+ @include margin($left: $spacer);
82
+ }
83
+ @else if ($dir == horizontal) {
84
+ @include margin($right: $spacer, $left: $spacer);
85
+ }
86
+ @else if ($dir == vertical) {
87
+ @include margin($top: $spacer, $bottom: $spacer);
88
+ }
89
+ }
118
90
 
119
- .padding-horizontal-#{$spacer} {
120
- @include padding(null, $spacer, null, $spacer);
121
- }
91
+ /// Padding classes for specific direction properties
92
+ /// @param {String} $dir [] Direction
93
+ /// @param {Number} $spacer [] Spacer
94
+ @mixin padding-direction($dir, $spacer) {
95
+ @if ($dir == top) {
96
+ @include padding($top: $spacer);
97
+ }
98
+ @else if ($dir == right) {
99
+ @include padding($right: $spacer);
100
+ }
101
+ @else if ($dir == bottom) {
102
+ @include padding($bottom: $spacer);
103
+ }
104
+ @else if ($dir == left) {
105
+ @include padding($left: $spacer);
106
+ }
107
+ @else if ($dir == horizontal) {
108
+ @include padding($right: $spacer, $left: $spacer);
109
+ }
110
+ @else if ($dir == vertical) {
111
+ @include padding($top: $spacer, $bottom: $spacer);
112
+ }
113
+ }
122
114
 
123
- // Vertical Axes
124
- .margin-vertical-#{$spacer} {
125
- @include margin($spacer, null, $spacer, null)
126
- }
115
+ @mixin foundation-prototype-spacing {
116
+ @for $spacer from 0 through $prototype-spacers-count {
117
+
118
+ @each $prop in (margin, padding) {
119
+ // All Sides
120
+ .#{$prop}-#{$spacer} {
121
+ @if ($prop == margin) {
122
+ margin: $spacer * $global-margin;
123
+ }
124
+ @else if ($prop == padding) {
125
+ padding: $spacer * $global-padding;
126
+ }
127
+ }
127
128
 
128
- .padding-vertical-#{$spacer} {
129
- @include padding($spacer, null, $spacer, null)
129
+ @each $dir in (top, right, bottom, left, horizontal, vertical) {
130
+ // Top Side
131
+ .#{$prop}-#{$dir}-#{$spacer} {
132
+ @if ($prop == margin) {
133
+ @include margin-direction($dir, $spacer);
134
+ }
135
+ @else if ($prop == padding) {
136
+ @include padding-direction($dir, $spacer);
137
+ }
138
+ }
139
+ }
130
140
  }
131
141
 
132
142
  @if ($prototype-spacing-breakpoints) {
@@ -134,67 +144,30 @@ $prototype-spacers-count: 3 !default;
134
144
  @each $size in $breakpoint-classes {
135
145
  @include breakpoint($size) {
136
146
  @if $size != $-zf-zero-breakpoint {
137
- // All Sides
138
- .#{$size}-margin-#{$spacer} {
139
- @include margin($spacer, $spacer, $spacer, $spacer);
140
- }
141
-
142
- .#{$size}-padding-#{$spacer} {
143
- @include padding($spacer, $spacer, $spacer, $spacer);
144
- }
145
-
146
- // Top Side
147
- .#{$size}-margin-top-#{$spacer} {
148
- @include margin($spacer, null, null, null);
149
- }
150
-
151
- .#{$size}-padding-top-#{$spacer} {
152
- @include padding($spacer, null, null, null);
153
- }
154
-
155
- // Right Side
156
- .#{$size}-margin-right-#{$spacer} {
157
- @include margin(null, $spacer, null, null);
158
- }
159
-
160
- .#{$size}-padding-right-#{$spacer} {
161
- @include padding(null, $spacer, null, null);
162
- }
163
-
164
- // Bottom Side
165
- .#{$size}-margin-bottom-#{$spacer} {
166
- @include margin(null, null, $spacer, null);
167
- }
168
-
169
- .#{$size}-padding-bottom-#{$spacer} {
170
- @include padding(null, null, $spacer, null);
171
- }
172
-
173
- // Left Side
174
- .#{$size}-margin-left-#{$spacer} {
175
- @include margin(null, null, null, $spacer);
176
- }
177
-
178
- .#{$size}-padding-left-#{$spacer} {
179
- @include padding(null, null, null, $spacer);
180
- }
181
-
182
- // Horizontal Axes
183
- .#{$size}-margin-horizontal-#{$spacer} {
184
- @include margin(null, $spacer, null, $spacer);
185
- }
186
-
187
- .#{$size}-padding-horizontal-#{$spacer} {
188
- @include padding(null, $spacer, null, $spacer);
189
- }
190
-
191
- // Vertical Axes
192
- .#{$size}-margin-vertical-#{$spacer} {
193
- @include margin($spacer, null, $spacer, null)
194
- }
195
-
196
- .#{$size}-padding-vertical-#{$spacer} {
197
- @include padding($spacer, null, $spacer, null)
147
+ .#{$size} {
148
+ @each $prop in (margin, padding) {
149
+ // All Sides
150
+ &-#{$prop}-#{$spacer} {
151
+ @if ($prop == margin) {
152
+ margin: $spacer * $global-margin;
153
+ }
154
+ @else if ($prop == padding) {
155
+ padding: $spacer * $global-padding;
156
+ }
157
+ }
158
+
159
+ @each $dir in (top, right, bottom, left, horizontal, vertical) {
160
+ // Top Side
161
+ &-#{$prop}-#{$dir}-#{$spacer} {
162
+ @if ($prop == margin) {
163
+ @include margin-direction($dir, $spacer);
164
+ }
165
+ @else if ($prop == padding) {
166
+ @include padding-direction($dir, $spacer);
167
+ }
168
+ }
169
+ }
170
+ }
198
171
  }
199
172
  }
200
173
  }
@@ -100,6 +100,7 @@ $global-color-pick-contrast-tolerance: 0;
100
100
  $print-transparent-backgrounds: true;
101
101
 
102
102
  @include add-foundation-colors;
103
+ $print-hrefs: true;
103
104
 
104
105
  // 2. Breakpoints
105
106
  // --------------
@@ -299,6 +300,7 @@ $button-opacity-disabled: 0.25;
299
300
  $button-background-hover-lightness: -20%;
300
301
  $button-hollow-hover-lightness: -50%;
301
302
  $button-transition: background-color 0.25s ease-out, color 0.25s ease-out;
303
+ $button-responsive-expanded: false;
302
304
 
303
305
  // 12. Button Group
304
306
  // ----------------
@@ -390,8 +392,8 @@ $dropdownmenu-arrow-color: $anchor-color;
390
392
  $dropdownmenu-arrow-size: 6px;
391
393
  $dropdownmenu-arrow-padding: 1.5rem;
392
394
  $dropdownmenu-min-width: 200px;
393
- $dropdownmenu-background: $white;
394
- $dropdownmenu-submenu-background: $dropdownmenu-background;
395
+ $dropdownmenu-background: null;
396
+ $dropdownmenu-submenu-background: $white;
395
397
  $dropdownmenu-padding: $global-menu-padding;
396
398
  $dropdownmenu-nested-margin: 0;
397
399
  $dropdownmenu-submenu-padding: $dropdownmenu-padding;
@@ -475,7 +477,6 @@ $menu-simple-margin: 1rem;
475
477
  $menu-item-color-active: $white;
476
478
  $menu-item-background-active: get-color(primary);
477
479
  $menu-icon-spacing: 0.25rem;
478
- $menu-item-background-hover: $light-gray;
479
480
  $menu-state-back-compat: true;
480
481
  $menu-centered-back-compat: true;
481
482
  $menu-icons-back-compat: true;
@@ -800,7 +801,6 @@ $tab-active-color: $primary-color;
800
801
  $tab-item-font-size: rem-calc(12);
801
802
  $tab-item-background-hover: $white;
802
803
  $tab-item-padding: 1.25rem 1.5rem;
803
- $tab-expand-max: 6;
804
804
  $tab-content-background: $white;
805
805
  $tab-content-border: $light-gray;
806
806
  $tab-content-color: $body-font-color;
@@ -809,7 +809,7 @@ $tab-content-padding: 1rem;
809
809
  // 52. Thumbnail
810
810
  // -------------
811
811
 
812
- $thumbnail-border: solid 4px $white;
812
+ $thumbnail-border: 4px solid $white;
813
813
  $thumbnail-margin-bottom: $global-margin;
814
814
  $thumbnail-shadow: 0 0 0 1px rgba($black, 0.2);
815
815
  $thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
@@ -79,7 +79,7 @@ $header-styles: (
79
79
  @each $size, $headers in $header-sizes {
80
80
  $header-map: ();
81
81
  @each $header, $font-size in $headers {
82
- $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));
82
+ $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));
83
83
  }
84
84
  $header-styles: map-merge($header-styles, ($size: $header-map));
85
85
  }
@@ -479,7 +479,7 @@ $abbr-underline: 1px dotted $black !default;
479
479
  figure {
480
480
  margin: 0;
481
481
  }
482
-
482
+
483
483
  // Code
484
484
  code {
485
485
  padding: $code-padding;
@@ -26,7 +26,7 @@ $subheader-color: $dark-gray !default;
26
26
  /// @type String
27
27
  $subheader-font-weight: $global-weight-normal !default;
28
28
 
29
- /// Default top margin for subhheaders.
29
+ /// Default top margin for subheaders.
30
30
  /// @type Number
31
31
  $subheader-margin-top: 0.2rem !default;
32
32
 
@@ -6,6 +6,10 @@
6
6
  /// @type Boolean
7
7
  /// @group global
8
8
  $print-transparent-backgrounds: true !default;
9
+
10
+ /// If `true`, displays next to all links their "href" when printed.
11
+ /// @type Boolean
12
+ /// @group global
9
13
  $print-hrefs: true !default;
10
14
 
11
15
  // sass-lint:disable-all
@@ -25,7 +25,7 @@ $-zf-zero-breakpoint: small !default;
25
25
  $-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');
26
26
 
27
27
  @if nth(map-values($breakpoints), 1) != 0 {
28
- @error 'Your smallest breakpoint (defined in $breakpoints) must be set to "0".';
28
+ @error 'The first key in the $breakpoints map must have a value of "0".';
29
29
  }
30
30
  @else {
31
31
  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);
@@ -76,8 +76,11 @@ $breakpoint-classes: (small medium large) !default;
76
76
 
77
77
  // Convert any pixel, rem, or unitless value to em
78
78
  $bp: -zf-bp-to-em($bp);
79
+ // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).
80
+ // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.
81
+ // See https://github.com/zurb/foundation-sites/issues/11313
79
82
  @if $bp-max {
80
- $bp-max: -zf-bp-to-em($bp-max) - (1/16);
83
+ $bp-max: -zf-bp-to-em($bp-max) - .00125;
81
84
  }
82
85
 
83
86
  // Conditions to skip media query creation
@@ -172,15 +175,10 @@ $breakpoint-classes: (small medium large) !default;
172
175
  }
173
176
  }
174
177
 
175
- @if $old-zf-size != null {
176
- // Restore the old breakpoint size
177
- $-zf-size: $old-zf-size !global;
178
- } @else {
179
- $-zf-size: null !global;
180
- }
178
+ $-zf-size: $old-zf-size !global;
181
179
  }
182
180
 
183
- /// Convers the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.
181
+ /// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.
184
182
  /// @access private
185
183
  ///
186
184
  /// @param {Map} $map - Map to convert.
@@ -252,7 +250,7 @@ $breakpoint-classes: (small medium large) !default;
252
250
  /// responsive gutters for the grid.
253
251
  /// @access private
254
252
  ///
255
- /// @param {String} $breakpoing - a named or non-named breakpoing.
253
+ /// @param {String} $breakpoint - a named or non-named breakpoint.
256
254
  ///
257
255
  /// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero
258
256
  @function -zf-closest-named-breakpoint($breakpoint) {
@@ -323,26 +321,40 @@ $breakpoint-classes: (small medium large) !default;
323
321
  }
324
322
  }
325
323
 
324
+ $small-up: '';
325
+ $small-only: '';
326
+
326
327
  @if map-has-key($breakpoints, small) {
327
328
  $small-up: screen;
328
329
  $small-only: unquote('screen and #{breakpoint(small only)}');
329
330
  }
330
331
 
332
+ $medium-up: '';
333
+ $medium-only: '';
334
+
331
335
  @if map-has-key($breakpoints, medium) {
332
336
  $medium-up: unquote('screen and #{breakpoint(medium)}');
333
337
  $medium-only: unquote('screen and #{breakpoint(medium only)}');
334
338
  }
335
339
 
340
+ $large-up: '';
341
+ $large-only: '';
342
+
336
343
  @if map-has-key($breakpoints, large) {
337
344
  $large-up: unquote('screen and #{breakpoint(large)}');
338
345
  $large-only: unquote('screen and #{breakpoint(large only)}');
339
346
  }
340
347
 
348
+ $xlarge-up: '';
349
+ $xlarge-only: '';
350
+
341
351
  @if map-has-key($breakpoints, xlarge) {
342
352
  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');
343
353
  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');
344
354
  }
345
355
 
356
+ $xxlarge-up: '';
357
+
346
358
  @if map-has-key($breakpoints, xxlarge) {
347
359
  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');
348
360
  }