foundation-rails 5.5.3.2 → 6.6.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (369) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -2
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +17 -4
  5. data/Appraisals +19 -0
  6. data/Gemfile +5 -2
  7. data/Gemfile.lock +210 -0
  8. data/LICENSE.txt +1 -1
  9. data/README.md +64 -28
  10. data/Rakefile +30 -0
  11. data/app/views/foundation/rails/styleguide/show.html.erb +10 -13
  12. data/bower.json +3 -2
  13. data/foundation-rails.gemspec +12 -7
  14. data/gemfiles/rails_4.1.gemfile +10 -0
  15. data/gemfiles/rails_4.1.gemfile.lock +181 -0
  16. data/gemfiles/rails_4.2.gemfile +10 -0
  17. data/gemfiles/rails_4.2.gemfile.lock +181 -0
  18. data/gemfiles/rails_5.0.gemfile +10 -0
  19. data/gemfiles/rails_5.0.gemfile.lock +196 -0
  20. data/gemfiles/rails_5.1.gemfile +10 -0
  21. data/gemfiles/rails_5.1.gemfile.lock +196 -0
  22. data/gemfiles/rails_5.2.gemfile +10 -0
  23. data/gemfiles/rails_5.2.gemfile.lock +196 -0
  24. data/lib/foundation/rails/engine.rb +2 -3
  25. data/lib/foundation/rails/version.rb +1 -1
  26. data/lib/foundation-rails.rb +1 -0
  27. data/lib/generators/foundation/install_generator.rb +39 -27
  28. data/lib/generators/foundation/templates/_settings.scss +895 -0
  29. data/lib/generators/foundation/templates/application.html.erb +1 -2
  30. data/lib/generators/foundation/templates/application.html.haml +2 -4
  31. data/lib/generators/foundation/templates/application.html.slim +1 -3
  32. data/lib/generators/foundation/templates/browserslist +4 -0
  33. data/lib/generators/foundation/templates/foundation_and_overrides.scss +56 -0
  34. data/spec/features/generator_spec.rb +1 -1
  35. data/spec/support/helpers.rb +8 -2
  36. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_contain.scss +31 -0
  37. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
  38. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
  39. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
  40. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
  41. data/vendor/assets/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
  42. data/vendor/assets/_vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
  43. data/vendor/assets/js/foundation.cjs.js +12529 -0
  44. data/vendor/assets/js/foundation.cjs.js.map +1 -0
  45. data/vendor/assets/js/foundation.es6.js +11006 -0
  46. data/vendor/assets/js/foundation.es6.js.map +1 -0
  47. data/vendor/assets/js/foundation.esm.js +12490 -0
  48. data/vendor/assets/js/foundation.esm.js.map +1 -0
  49. data/vendor/assets/js/foundation.js +13897 -0
  50. data/vendor/assets/js/foundation.js.map +1 -0
  51. data/vendor/assets/js/foundation.min.js +2 -0
  52. data/vendor/assets/js/foundation.min.js.map +1 -0
  53. data/vendor/assets/js/plugins/foundation.abide.js +1142 -0
  54. data/vendor/assets/js/plugins/foundation.abide.js.map +1 -0
  55. data/vendor/assets/js/plugins/foundation.abide.min.js +2 -0
  56. data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -0
  57. data/vendor/assets/js/plugins/foundation.accordion.js +661 -0
  58. data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -0
  59. data/vendor/assets/js/plugins/foundation.accordion.min.js +2 -0
  60. data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -0
  61. data/vendor/assets/js/plugins/foundation.accordionMenu.js +616 -0
  62. data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -0
  63. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +2 -0
  64. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -0
  65. data/vendor/assets/js/plugins/foundation.core.js +1180 -0
  66. data/vendor/assets/js/plugins/foundation.core.js.map +1 -0
  67. data/vendor/assets/js/plugins/foundation.core.min.js +2 -0
  68. data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -0
  69. data/vendor/assets/js/plugins/foundation.drilldown.js +968 -0
  70. data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -0
  71. data/vendor/assets/js/plugins/foundation.drilldown.min.js +2 -0
  72. data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -0
  73. data/vendor/assets/js/plugins/foundation.dropdown.js +1328 -0
  74. data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -0
  75. data/vendor/assets/js/plugins/foundation.dropdown.min.js +2 -0
  76. data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -0
  77. data/vendor/assets/js/plugins/foundation.dropdownMenu.js +799 -0
  78. data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -0
  79. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +2 -0
  80. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -0
  81. data/vendor/assets/js/plugins/foundation.equalizer.js +614 -0
  82. data/vendor/assets/js/plugins/foundation.equalizer.js.map +1 -0
  83. data/vendor/assets/js/plugins/foundation.equalizer.min.js +2 -0
  84. data/vendor/assets/js/plugins/foundation.equalizer.min.js.map +1 -0
  85. data/vendor/assets/js/plugins/foundation.interchange.js +796 -0
  86. data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -0
  87. data/vendor/assets/js/plugins/foundation.interchange.min.js +2 -0
  88. data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -0
  89. data/vendor/assets/js/plugins/foundation.magellan.js +850 -0
  90. data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -0
  91. data/vendor/assets/js/plugins/foundation.magellan.min.js +2 -0
  92. data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -0
  93. data/vendor/assets/js/plugins/foundation.offcanvas.js +1318 -0
  94. data/vendor/assets/js/plugins/foundation.offcanvas.js.map +1 -0
  95. data/vendor/assets/js/plugins/foundation.offcanvas.min.js +2 -0
  96. data/vendor/assets/js/plugins/foundation.offcanvas.min.js.map +1 -0
  97. data/vendor/assets/js/plugins/foundation.orbit.js +886 -0
  98. data/vendor/assets/js/plugins/foundation.orbit.js.map +1 -0
  99. data/vendor/assets/js/plugins/foundation.orbit.min.js +2 -0
  100. data/vendor/assets/js/plugins/foundation.orbit.min.js.map +1 -0
  101. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +585 -0
  102. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -0
  103. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js +2 -0
  104. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -0
  105. data/vendor/assets/js/plugins/foundation.responsiveMenu.js +413 -0
  106. data/vendor/assets/js/plugins/foundation.responsiveMenu.js.map +1 -0
  107. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js +2 -0
  108. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js.map +1 -0
  109. data/vendor/assets/js/plugins/foundation.responsiveToggle.js +394 -0
  110. data/vendor/assets/js/plugins/foundation.responsiveToggle.js.map +1 -0
  111. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js +2 -0
  112. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js.map +1 -0
  113. data/vendor/assets/js/plugins/foundation.reveal.js +1275 -0
  114. data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -0
  115. data/vendor/assets/js/plugins/foundation.reveal.min.js +2 -0
  116. data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -0
  117. data/vendor/assets/js/plugins/foundation.slider.js +1346 -0
  118. data/vendor/assets/js/plugins/foundation.slider.js.map +1 -0
  119. data/vendor/assets/js/plugins/foundation.slider.min.js +2 -0
  120. data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -0
  121. data/vendor/assets/js/plugins/foundation.smoothScroll.js +359 -0
  122. data/vendor/assets/js/plugins/foundation.smoothScroll.js.map +1 -0
  123. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js +2 -0
  124. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js.map +1 -0
  125. data/vendor/assets/js/plugins/foundation.sticky.js +1105 -0
  126. data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -0
  127. data/vendor/assets/js/plugins/foundation.sticky.min.js +2 -0
  128. data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -0
  129. data/vendor/assets/js/plugins/foundation.tabs.js +792 -0
  130. data/vendor/assets/js/plugins/foundation.tabs.js.map +1 -0
  131. data/vendor/assets/js/plugins/foundation.tabs.min.js +2 -0
  132. data/vendor/assets/js/plugins/foundation.tabs.min.js.map +1 -0
  133. data/vendor/assets/js/plugins/foundation.toggler.js +704 -0
  134. data/vendor/assets/js/plugins/foundation.toggler.js.map +1 -0
  135. data/vendor/assets/js/plugins/foundation.toggler.min.js +2 -0
  136. data/vendor/assets/js/plugins/foundation.toggler.min.js.map +1 -0
  137. data/vendor/assets/js/plugins/foundation.tooltip.js +1333 -0
  138. data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -0
  139. data/vendor/assets/js/plugins/foundation.tooltip.min.js +2 -0
  140. data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -0
  141. data/vendor/assets/js/plugins/foundation.util.box.js +354 -0
  142. data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -0
  143. data/vendor/assets/js/plugins/foundation.util.box.min.js +2 -0
  144. data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -0
  145. data/vendor/assets/js/plugins/foundation.util.imageLoader.js +218 -0
  146. data/vendor/assets/js/plugins/foundation.util.imageLoader.js.map +1 -0
  147. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js +2 -0
  148. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js.map +1 -0
  149. data/vendor/assets/js/plugins/foundation.util.keyboard.js +341 -0
  150. data/vendor/assets/js/plugins/foundation.util.keyboard.js.map +1 -0
  151. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js +2 -0
  152. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js.map +1 -0
  153. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +509 -0
  154. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js.map +1 -0
  155. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js +2 -0
  156. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js.map +1 -0
  157. data/vendor/assets/js/plugins/foundation.util.motion.js +274 -0
  158. data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -0
  159. data/vendor/assets/js/plugins/foundation.util.motion.min.js +2 -0
  160. data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -0
  161. data/vendor/assets/js/plugins/foundation.util.nest.js +240 -0
  162. data/vendor/assets/js/plugins/foundation.util.nest.js.map +1 -0
  163. data/vendor/assets/js/plugins/foundation.util.nest.min.js +2 -0
  164. data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -0
  165. data/vendor/assets/js/plugins/foundation.util.timer.js +226 -0
  166. data/vendor/assets/js/plugins/foundation.util.timer.js.map +1 -0
  167. data/vendor/assets/js/plugins/foundation.util.timer.min.js +2 -0
  168. data/vendor/assets/js/plugins/foundation.util.timer.min.js.map +1 -0
  169. data/vendor/assets/js/plugins/foundation.util.touch.js +365 -0
  170. data/vendor/assets/js/plugins/foundation.util.touch.js.map +1 -0
  171. data/vendor/assets/js/plugins/foundation.util.touch.min.js +2 -0
  172. data/vendor/assets/js/plugins/foundation.util.touch.min.js.map +1 -0
  173. data/vendor/assets/js/plugins/foundation.util.triggers.js +470 -0
  174. data/vendor/assets/js/plugins/foundation.util.triggers.js.map +1 -0
  175. data/vendor/assets/js/plugins/foundation.util.triggers.min.js +2 -0
  176. data/vendor/assets/js/plugins/foundation.util.triggers.min.js.map +1 -0
  177. data/vendor/assets/scss/_global.scss +244 -0
  178. data/vendor/assets/scss/components/_accordion-menu.scss +174 -0
  179. data/vendor/assets/scss/components/_accordion.scss +164 -0
  180. data/vendor/assets/scss/components/_badge.scss +63 -0
  181. data/vendor/assets/scss/components/_breadcrumbs.scss +119 -0
  182. data/vendor/assets/scss/components/_button-group.scss +304 -0
  183. data/vendor/assets/scss/components/_button.scss +428 -0
  184. data/vendor/assets/scss/components/_callout.scss +108 -0
  185. data/vendor/assets/scss/components/_card.scss +129 -0
  186. data/vendor/assets/scss/components/_close-button.scss +127 -0
  187. data/vendor/assets/scss/components/_drilldown.scss +140 -0
  188. data/vendor/assets/scss/components/_dropdown-menu.scss +279 -0
  189. data/vendor/assets/scss/components/_dropdown.scss +82 -0
  190. data/vendor/assets/scss/components/_flex-video.scss +1 -0
  191. data/vendor/assets/scss/components/_flex.scss +119 -0
  192. data/vendor/assets/scss/components/_float.scss +27 -0
  193. data/vendor/assets/scss/components/_label.scss +64 -0
  194. data/vendor/assets/scss/components/_media-object.scss +114 -0
  195. data/vendor/assets/scss/components/_menu-icon.scss +9 -0
  196. data/vendor/assets/scss/components/_menu.scss +495 -0
  197. data/vendor/assets/scss/components/_off-canvas.scss +511 -0
  198. data/vendor/assets/scss/components/_orbit.scss +197 -0
  199. data/vendor/assets/scss/components/_pagination.scss +201 -0
  200. data/vendor/assets/scss/components/_progress-bar.scss +63 -0
  201. data/vendor/assets/scss/components/_responsive-embed.scss +57 -0
  202. data/vendor/assets/scss/components/_reveal.scss +185 -0
  203. data/vendor/assets/scss/components/_slider.scss +137 -0
  204. data/vendor/assets/scss/components/_sticky.scss +39 -0
  205. data/vendor/assets/scss/components/_switch.scss +261 -0
  206. data/vendor/assets/scss/components/_table.scss +328 -0
  207. data/vendor/assets/scss/components/_tabs.scss +193 -0
  208. data/vendor/assets/scss/components/_thumbnail.scss +67 -0
  209. data/vendor/assets/scss/components/_title-bar.scss +84 -0
  210. data/vendor/assets/scss/components/_tooltip.scss +160 -0
  211. data/vendor/assets/scss/components/_top-bar.scss +175 -0
  212. data/vendor/assets/scss/components/_visibility.scss +135 -0
  213. data/vendor/assets/scss/forms/_checkbox.scss +41 -0
  214. data/vendor/assets/scss/forms/_error.scss +89 -0
  215. data/vendor/assets/scss/forms/_fieldset.scss +53 -0
  216. data/vendor/assets/scss/forms/_forms.scss +34 -0
  217. data/vendor/assets/scss/forms/_help-text.scss +30 -0
  218. data/vendor/assets/scss/forms/_input-group.scss +142 -0
  219. data/vendor/assets/scss/forms/_label.scss +50 -0
  220. data/vendor/assets/scss/forms/_meter.scss +116 -0
  221. data/vendor/assets/scss/forms/_progress.scss +94 -0
  222. data/vendor/assets/scss/forms/_range.scss +149 -0
  223. data/vendor/assets/scss/forms/_select.scss +90 -0
  224. data/vendor/assets/scss/forms/_text.scss +179 -0
  225. data/vendor/assets/scss/foundation.scss +155 -0
  226. data/vendor/assets/scss/grid/_classes.scss +189 -0
  227. data/vendor/assets/scss/grid/_column.scss +78 -0
  228. data/vendor/assets/scss/grid/_flex-grid.scss +260 -0
  229. data/vendor/assets/scss/grid/_grid.scss +48 -0
  230. data/vendor/assets/scss/grid/_gutter.scss +67 -0
  231. data/vendor/assets/scss/grid/_layout.scss +76 -0
  232. data/vendor/assets/scss/grid/_position.scss +100 -0
  233. data/vendor/assets/scss/grid/_row.scss +99 -0
  234. data/vendor/assets/scss/grid/_size.scss +24 -0
  235. data/vendor/assets/scss/motion-ui/_classes.scss +109 -0
  236. data/vendor/assets/scss/motion-ui/_settings.scss +62 -0
  237. data/vendor/assets/scss/motion-ui/effects/_fade.scss +29 -0
  238. data/vendor/assets/scss/motion-ui/effects/_hinge.scss +66 -0
  239. data/vendor/assets/scss/motion-ui/effects/_shake.scss +15 -0
  240. data/vendor/assets/scss/motion-ui/effects/_slide.scss +42 -0
  241. data/vendor/assets/scss/motion-ui/effects/_spin.scss +29 -0
  242. data/vendor/assets/scss/motion-ui/effects/_wiggle.scss +13 -0
  243. data/vendor/assets/scss/motion-ui/effects/_zoom.scss +15 -0
  244. data/vendor/assets/scss/motion-ui/motion-ui.scss +31 -0
  245. data/vendor/assets/scss/motion-ui/transitions/_fade.scss +30 -0
  246. data/vendor/assets/scss/motion-ui/transitions/_hinge.scss +44 -0
  247. data/vendor/assets/scss/motion-ui/transitions/_slide.scss +43 -0
  248. data/vendor/assets/scss/motion-ui/transitions/_spin.scss +40 -0
  249. data/vendor/assets/scss/motion-ui/transitions/_zoom.scss +41 -0
  250. data/vendor/assets/scss/motion-ui/util/_animation.scss +7 -0
  251. data/vendor/assets/scss/motion-ui/util/_args.scss +15 -0
  252. data/vendor/assets/scss/motion-ui/util/_function.scss +94 -0
  253. data/vendor/assets/scss/motion-ui/util/_keyframe.scss +136 -0
  254. data/vendor/assets/scss/motion-ui/util/_selector.scss +23 -0
  255. data/vendor/assets/scss/motion-ui/util/_series.scss +57 -0
  256. data/vendor/assets/scss/motion-ui/util/_string.scss +36 -0
  257. data/vendor/assets/scss/motion-ui/util/_transition.scss +45 -0
  258. data/vendor/assets/scss/motion-ui/util/_unit.scss +7 -0
  259. data/vendor/assets/scss/prototype/_arrow.scss +36 -0
  260. data/vendor/assets/scss/prototype/_border-box.scss +35 -0
  261. data/vendor/assets/scss/prototype/_border-none.scss +35 -0
  262. data/vendor/assets/scss/prototype/_bordered.scss +54 -0
  263. data/vendor/assets/scss/prototype/_box.scss +23 -0
  264. data/vendor/assets/scss/prototype/_display.scss +50 -0
  265. data/vendor/assets/scss/prototype/_font-styling.scss +95 -0
  266. data/vendor/assets/scss/prototype/_list-style-type.scss +95 -0
  267. data/vendor/assets/scss/prototype/_overflow.scss +72 -0
  268. data/vendor/assets/scss/prototype/_position.scss +114 -0
  269. data/vendor/assets/scss/prototype/_prototype.scss +87 -0
  270. data/vendor/assets/scss/prototype/_relation.scss +157 -0
  271. data/vendor/assets/scss/prototype/_rotate.scss +31 -0
  272. data/vendor/assets/scss/prototype/_rounded.scss +61 -0
  273. data/vendor/assets/scss/prototype/_separator.scss +96 -0
  274. data/vendor/assets/scss/prototype/_shadow.scss +43 -0
  275. data/vendor/assets/scss/prototype/_sizing.scss +73 -0
  276. data/vendor/assets/scss/prototype/_spacing.scss +179 -0
  277. data/vendor/assets/scss/prototype/_text-decoration.scss +48 -0
  278. data/vendor/assets/scss/prototype/_text-transformation.scss +48 -0
  279. data/vendor/assets/scss/prototype/_text-utilities.scss +88 -0
  280. data/vendor/assets/scss/settings/_settings.scss +895 -0
  281. data/vendor/assets/scss/typography/_alignment.scss +22 -0
  282. data/vendor/assets/scss/typography/_base.scss +474 -0
  283. data/vendor/assets/scss/typography/_helpers.scss +180 -0
  284. data/vendor/assets/scss/typography/_print.scss +96 -0
  285. data/vendor/assets/scss/typography/_typography.scss +26 -0
  286. data/vendor/assets/scss/util/_breakpoint.scss +435 -0
  287. data/vendor/assets/scss/util/_color.scss +139 -0
  288. data/vendor/assets/scss/util/_direction.scss +31 -0
  289. data/vendor/assets/scss/util/_flex.scss +90 -0
  290. data/vendor/assets/scss/util/_math.scss +147 -0
  291. data/vendor/assets/scss/util/_mixins.scss +373 -0
  292. data/vendor/assets/scss/util/_selector.scss +41 -0
  293. data/vendor/assets/scss/util/_typography.scss +26 -0
  294. data/vendor/assets/scss/util/_unit.scss +152 -0
  295. data/vendor/assets/scss/util/_util.scss +14 -0
  296. data/vendor/assets/scss/util/_value.scss +200 -0
  297. data/vendor/assets/scss/vendor/normalize.scss +281 -0
  298. data/vendor/assets/scss/xy-grid/_cell.scss +272 -0
  299. data/vendor/assets/scss/xy-grid/_classes.scss +493 -0
  300. data/vendor/assets/scss/xy-grid/_collapse.scss +75 -0
  301. data/vendor/assets/scss/xy-grid/_frame.scss +86 -0
  302. data/vendor/assets/scss/xy-grid/_grid.scss +37 -0
  303. data/vendor/assets/scss/xy-grid/_gutters.scss +45 -0
  304. data/vendor/assets/scss/xy-grid/_layout.scss +36 -0
  305. data/vendor/assets/scss/xy-grid/_position.scss +55 -0
  306. data/vendor/assets/scss/xy-grid/_xy-grid.scss +51 -0
  307. metadata +342 -83
  308. data/update-gem.sh +0 -20
  309. data/vendor/assets/javascripts/foundation/foundation.abide.js +0 -426
  310. data/vendor/assets/javascripts/foundation/foundation.accordion.js +0 -125
  311. data/vendor/assets/javascripts/foundation/foundation.alert.js +0 -43
  312. data/vendor/assets/javascripts/foundation/foundation.clearing.js +0 -586
  313. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +0 -468
  314. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +0 -104
  315. data/vendor/assets/javascripts/foundation/foundation.interchange.js +0 -360
  316. data/vendor/assets/javascripts/foundation/foundation.joyride.js +0 -935
  317. data/vendor/assets/javascripts/foundation/foundation.js +0 -732
  318. data/vendor/assets/javascripts/foundation/foundation.magellan.js +0 -214
  319. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +0 -225
  320. data/vendor/assets/javascripts/foundation/foundation.orbit.js +0 -476
  321. data/vendor/assets/javascripts/foundation/foundation.reveal.js +0 -522
  322. data/vendor/assets/javascripts/foundation/foundation.slider.js +0 -296
  323. data/vendor/assets/javascripts/foundation/foundation.tab.js +0 -247
  324. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +0 -348
  325. data/vendor/assets/javascripts/foundation/foundation.topbar.js +0 -458
  326. data/vendor/assets/javascripts/foundation.js +0 -17
  327. data/vendor/assets/javascripts/vendor/modernizr.js +0 -1406
  328. data/vendor/assets/stylesheets/foundation/_functions.scss +0 -156
  329. data/vendor/assets/stylesheets/foundation/_settings.scss +0 -1489
  330. data/vendor/assets/stylesheets/foundation/components/_accordion.scss +0 -161
  331. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +0 -128
  332. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +0 -133
  333. data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +0 -132
  334. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +0 -208
  335. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +0 -261
  336. data/vendor/assets/stylesheets/foundation/components/_clearing.scss +0 -260
  337. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +0 -130
  338. data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +0 -269
  339. data/vendor/assets/stylesheets/foundation/components/_flex-video.scss +0 -51
  340. data/vendor/assets/stylesheets/foundation/components/_forms.scss +0 -607
  341. data/vendor/assets/stylesheets/foundation/components/_global.scss +0 -566
  342. data/vendor/assets/stylesheets/foundation/components/_grid.scss +0 -292
  343. data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +0 -460
  344. data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +0 -58
  345. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +0 -220
  346. data/vendor/assets/stylesheets/foundation/components/_keystrokes.scss +0 -60
  347. data/vendor/assets/stylesheets/foundation/components/_labels.scss +0 -106
  348. data/vendor/assets/stylesheets/foundation/components/_magellan.scss +0 -34
  349. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +0 -606
  350. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +0 -388
  351. data/vendor/assets/stylesheets/foundation/components/_pagination.scss +0 -163
  352. data/vendor/assets/stylesheets/foundation/components/_panels.scss +0 -107
  353. data/vendor/assets/stylesheets/foundation/components/_pricing-tables.scss +0 -150
  354. data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +0 -85
  355. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +0 -177
  356. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +0 -212
  357. data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +0 -120
  358. data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +0 -203
  359. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +0 -125
  360. data/vendor/assets/stylesheets/foundation/components/_switches.scss +0 -241
  361. data/vendor/assets/stylesheets/foundation/components/_tables.scss +0 -135
  362. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +0 -142
  363. data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +0 -66
  364. data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +0 -142
  365. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +0 -745
  366. data/vendor/assets/stylesheets/foundation/components/_type.scss +0 -525
  367. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +0 -425
  368. data/vendor/assets/stylesheets/foundation.scss +0 -42
  369. data/vendor/assets/stylesheets/normalize.scss +0 -424
@@ -0,0 +1,31 @@
1
+ // Foundation for Sites
2
+ // https://get.foundation
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group functions
7
+ ////
8
+
9
+ /// Returns the opposite direction of $dir
10
+ ///
11
+ /// @param {Keyword} $dir - Used direction between "top", "right", "bottom" and "left".
12
+ /// @return {Keyword} Opposite direction of $dir
13
+ @function direction-opposite(
14
+ $dir
15
+ ) {
16
+ $dirs: (top, right, bottom, left);
17
+ $place: index($dirs, $dir);
18
+
19
+ @if $place == null {
20
+ @error 'direction-opposite: Invalid $dir parameter, expected a value from "#{$dirs}", found "#{$dir}".';
21
+ @return null;
22
+ }
23
+
24
+ // Calculate the opposite place in a circle, with a starting index of 1
25
+ $length: length($dirs);
26
+ $demi: $length / 2;
27
+ $opposite-place: (($place + $demi - 1) % $length) + 1;
28
+
29
+ @return nth($dirs, $opposite-place);
30
+ }
31
+
@@ -0,0 +1,90 @@
1
+ @function -zf-flex-justify($text-direction){
2
+ $-zf-flex-justify: (
3
+ 'left': if($text-direction == rtl, flex-end, flex-start),
4
+ 'right': if($text-direction == rtl, flex-start, flex-end),
5
+ 'center': center,
6
+ 'justify': space-between,
7
+ 'spaced': space-around,
8
+ );
9
+
10
+ @return $-zf-flex-justify;
11
+ }
12
+
13
+
14
+ $-zf-flex-align: (
15
+ 'top': flex-start,
16
+ 'bottom': flex-end,
17
+ 'middle': center,
18
+ 'stretch': stretch,
19
+ );
20
+
21
+ $-zf-flex-direction: (
22
+ 'row': row,
23
+ 'row-reverse': row-reverse,
24
+ 'column': column,
25
+ 'column-reverse': column-reverse,
26
+ );
27
+
28
+ /// Enables flexbox by adding `display: flex` to the element.
29
+ @mixin flex {
30
+ display: flex;
31
+ }
32
+
33
+ /// Horizontally or vertically aligns the items within a flex container.
34
+ ///
35
+ /// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.
36
+ /// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.
37
+ @mixin flex-align($x: null, $y: null) {
38
+ @if $x {
39
+ @if map-has-key($-zf-flex-justify, $x) {
40
+ $x: map-get($-zf-flex-justify, $x);
41
+ }
42
+ @else {
43
+ @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';
44
+ }
45
+ }
46
+
47
+ @if $y {
48
+ @if map-has-key($-zf-flex-align, $y) {
49
+ $y: map-get($-zf-flex-align, $y);
50
+ }
51
+ @else {
52
+ @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';
53
+ }
54
+ }
55
+
56
+ justify-content: $x;
57
+ align-items: $y;
58
+ }
59
+
60
+ /// Vertically align a single column within a flex row. Apply this mixin to a flex column.
61
+ ///
62
+ /// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.
63
+ @mixin flex-align-self($y: null) {
64
+ @if $y {
65
+ @if map-has-key($-zf-flex-align, $y) {
66
+ $y: map-get($-zf-flex-align, $y);
67
+ }
68
+ @else {
69
+ @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';
70
+ }
71
+ }
72
+
73
+ align-self: $y;
74
+ }
75
+
76
+ /// Changes the source order of a flex child. Children with lower numbers appear first in the layout.
77
+ /// @param {Number} $order [0] - Order number to apply.
78
+ @mixin flex-order($order: 0) {
79
+ order: $order;
80
+ }
81
+
82
+ /// Change flex-direction
83
+ /// @param {Keyword} $direction [row] - Flex direction to use. Can be
84
+ /// - row (default): same as text direction
85
+ /// - row-reverse: opposite to text direction
86
+ /// - column: same as row but top to bottom
87
+ /// - column-reverse: same as row-reverse top to bottom
88
+ @mixin flex-direction($direction: row) {
89
+ flex-direction: $direction;
90
+ }
@@ -0,0 +1,147 @@
1
+ // Foundation for Sites
2
+ // https://get.foundation
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group functions
7
+ ////
8
+
9
+ /// Finds the greatest common divisor of two integers.
10
+ ///
11
+ /// @param {Number} $a - First number to compare.
12
+ /// @param {Number} $b - Second number to compare.
13
+ ///
14
+ /// @returns {Number} The greatest common divisor.
15
+ @function gcd($a, $b) {
16
+ // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript
17
+ @if ($b != 0) {
18
+ @return gcd($b, $a % $b);
19
+ }
20
+ @else {
21
+ @return abs($a);
22
+ }
23
+ }
24
+
25
+ /// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation
26
+ ///
27
+ /// @param {Number} $base - The base number.
28
+ /// @param {Number} $exponent - The exponent.
29
+ ///
30
+ /// @returns {Number} The product of the exponentiation.
31
+ @function pow($base, $exponent, $prec: 16) {
32
+ @if (floor($exponent) != $exponent) {
33
+ $prec2 : pow(10, $prec);
34
+ $exponent: round($exponent * $prec2);
35
+ $denominator: gcd($exponent, $prec2);
36
+ @return nth-root(pow($base, $exponent / $denominator), $prec2 / $denominator, $prec);
37
+ }
38
+
39
+ $value: $base;
40
+ @if $exponent > 1 {
41
+ @for $i from 2 through $exponent {
42
+ $value: $value * $base;
43
+ }
44
+ }
45
+ @else if $exponent < 1 {
46
+ @for $i from 0 through -$exponent {
47
+ $value: $value / $base;
48
+ }
49
+ }
50
+
51
+ @return $value;
52
+ }
53
+
54
+ @function nth-root($num, $n: 2, $prec: 12) {
55
+ // From: http://rosettacode.org/wiki/Nth_root#JavaScript
56
+ $x: 1;
57
+
58
+ @for $i from 0 through $prec {
59
+ $x: 1 / $n * (($n - 1) * $x + ($num / pow($x, $n - 1)));
60
+ }
61
+
62
+ @return $x;
63
+ }
64
+
65
+ /// Calculates the height as a percentage of the width for a given ratio.
66
+ /// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.
67
+ /// @return {Number} A percentage value for the height relative to the width of a responsive container.
68
+ @function ratio-to-percentage($ratio) {
69
+ $w: nth($ratio, 1);
70
+ $h: nth($ratio, 3);
71
+ @return $h / $w * 100%;
72
+ }
73
+
74
+ /// Parse the given `$fraction` to numerators and denumerators.
75
+ ///
76
+ /// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).
77
+ ///
78
+ /// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.
79
+ @function zf-parse-fraction($fraction) {
80
+
81
+ @if type-of($fraction) == 'number' {
82
+ // "50%"
83
+ @if unit($fraction) == '%' {
84
+ @return (strip-unit($fraction), 100);
85
+ }
86
+ @else if (unit($fraction) == '') {
87
+ // "0.5"
88
+ @if $fraction < 1 {
89
+ @return ($fraction * 100, 100);
90
+ }
91
+ // "50"
92
+ @else {
93
+ @return ($fraction, null);
94
+ }
95
+ }
96
+ }
97
+
98
+ @else if type-of($fraction) == 'list' {
99
+ // "50 of 100", "50/100"...
100
+ @if length($fraction) == 3
101
+ and type-of(nth($fraction, 1) == 'number')
102
+ and type-of(nth($fraction, 3) == 'number') {
103
+ @return (nth($fraction, 1), nth($fraction, 3));
104
+ }
105
+ }
106
+
107
+ @return (null, null);
108
+ }
109
+
110
+ /// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.
111
+ ///
112
+ /// @param {*} $value - Value to test.
113
+ /// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.
114
+ ///
115
+ /// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.
116
+ @function zf-is-fraction($value, $allow-no-denominator: false) {
117
+ $parsed: zf-parse-fraction($value);
118
+ @return not(nth($parsed, 1) == null
119
+ or (nth($parsed, 2) == null and $allow-no-denominator == false));
120
+ }
121
+
122
+ /// Calculate a percentage from a given fraction.
123
+ ///
124
+ /// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.
125
+ /// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.
126
+ @function fraction-to-percentage(
127
+ $fraction,
128
+ $denominator: null
129
+ ) {
130
+ $parsed: zf-parse-fraction($fraction);
131
+ $parsed-nominator: nth($parsed, 1);
132
+ $parsed-denominator: nth($parsed, 2);
133
+
134
+ @if $parsed-nominator == null {
135
+ @error 'Wrong syntax for "fraction-to-percentage()". Use a number, decimal, percentage, or "n of n" / "n/n".';
136
+ }
137
+ @if $parsed-denominator == null {
138
+ @if type-of($denominator) == 'number' {
139
+ $parsed-denominator: $denominator;
140
+ }
141
+ @else {
142
+ @error 'Error with "fraction-to-percentage()". A default "$denominator" is required to support absolute values';
143
+ }
144
+ }
145
+
146
+ @return percentage($parsed-nominator / $parsed-denominator);
147
+ }
@@ -0,0 +1,373 @@
1
+ // Foundation for Sites
2
+ // https://get.foundation
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group functions
7
+ ////
8
+
9
+ /// Creates an inner box-shadow for only one side
10
+ ///
11
+ /// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.
12
+ /// @param {Number} $size - Width for the target side.
13
+ /// @param {Color} $color - Color of the shadow.
14
+ @mixin inner-side-shadow(
15
+ $side: bottom,
16
+ $size: 20px,
17
+ $color: rgba($black, 0.25)
18
+ ) {
19
+
20
+ $helper: round($size * 0.65);
21
+
22
+ @if ($side == top) {
23
+ box-shadow: inset 0 $helper $size (-1)*$helper $color;
24
+ } @else if ($side == left) {
25
+ box-shadow: inset $helper 0 $size (-1)*$helper $color;
26
+ } @else if ($side == right) {
27
+ box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;
28
+ } @else if ($side == bottom) {
29
+ box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;
30
+ }
31
+ }
32
+
33
+ /// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.
34
+ ///
35
+ /// @param {Number} $triangle-size - Width of the triangle.
36
+ /// @param {Color} $triangle-color - Color of the triangle.
37
+ /// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.
38
+ @mixin css-triangle(
39
+ $triangle-size,
40
+ $triangle-color,
41
+ $triangle-direction
42
+ ) {
43
+ display: block;
44
+ width: 0;
45
+ height: 0;
46
+
47
+ border: inset $triangle-size;
48
+
49
+ content: '';
50
+
51
+ @if ($triangle-direction == down) {
52
+ border-bottom-width: 0;
53
+ border-top-style: solid;
54
+ border-color: $triangle-color transparent transparent;
55
+ }
56
+ @if ($triangle-direction == up) {
57
+ border-top-width: 0;
58
+ border-bottom-style: solid;
59
+ border-color: transparent transparent $triangle-color;
60
+ }
61
+ @if ($triangle-direction == right) {
62
+ border-right-width: 0;
63
+ border-left-style: solid;
64
+ border-color: transparent transparent transparent $triangle-color;
65
+ }
66
+ @if ($triangle-direction == left) {
67
+ border-left-width: 0;
68
+ border-right-style: solid;
69
+ border-color: transparent $triangle-color transparent transparent;
70
+ }
71
+ }
72
+
73
+ /// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class="docs-example-burger"></div>
74
+ ///
75
+ /// @param {Color} $color [$black] - Color to use for the icon.
76
+ /// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.
77
+ /// @param {Number} $width [20px] - Width of the icon.
78
+ /// @param {Number} $height [16px] - Height of the icon.
79
+ /// @param {Number} $weight [2px] - Height of individual bars in the icon.
80
+ /// @param {Number} $bars [3] - Number of bars in the icon.
81
+ @mixin hamburger(
82
+ $color: $black,
83
+ $color-hover: $dark-gray,
84
+ $width: 20px,
85
+ $height: 16px,
86
+ $weight: 2px,
87
+ $bars: 3
88
+ ) {
89
+ // box-shadow CSS output
90
+ $shadow: ();
91
+ $hover-shadow: ();
92
+
93
+ // Spacing between bars is calculated based on the total height of the icon and the weight of each bar
94
+ $spacing: ($height - ($weight * $bars)) / ($bars - 1);
95
+
96
+ @if unit($spacing) == 'px' {
97
+ $spacing: floor($spacing);
98
+ }
99
+
100
+ @for $i from 2 through $bars {
101
+ $offset: ($weight + $spacing) * ($i - 1);
102
+ $shadow: append($shadow, 0 $offset 0 $color, comma);
103
+ }
104
+
105
+ // Icon container
106
+ position: relative;
107
+ display: inline-block;
108
+ vertical-align: middle;
109
+ width: $width;
110
+ height: $height;
111
+ cursor: pointer;
112
+
113
+ // Icon bars
114
+ &::after {
115
+ position: absolute;
116
+ top: 0;
117
+ left: 0;
118
+
119
+ display: block;
120
+ width: 100%;
121
+ height: $weight;
122
+
123
+ background: $color;
124
+ box-shadow: $shadow;
125
+
126
+ content: '';
127
+ }
128
+
129
+ // Hover state
130
+ @if $color-hover {
131
+ // Generate CSS
132
+ @for $i from 2 through $bars {
133
+ $offset: ($weight + $spacing) * ($i - 1);
134
+ $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);
135
+ }
136
+
137
+ &:hover::after {
138
+ background: $color-hover;
139
+ box-shadow: $hover-shadow;
140
+ }
141
+ }
142
+ }
143
+
144
+ /// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.
145
+ /// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.
146
+ ///
147
+ /// @param {Color} $color [$black] - Color to use for the triangle.
148
+ @mixin background-triangle($color: $black) {
149
+ $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';
150
+
151
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: #{$rgb}'></polygon></svg>");
152
+
153
+ @media screen and (min-width:0\0) {
154
+ @if lightness($color) < 60% {
155
+ // White triangle
156
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');
157
+ }
158
+ @else {
159
+ // Black triangle
160
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');
161
+ }
162
+ }
163
+ }
164
+
165
+ /// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.
166
+ /// The clearfix is augmented with specific styles to prevent borders in flexbox environments
167
+ /// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack
168
+ /// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix
169
+ @mixin clearfix {
170
+ &::before,
171
+ &::after {
172
+ display: table;
173
+ content: ' ';
174
+
175
+ @if $global-flexbox {
176
+ flex-basis: 0;
177
+ order: 1;
178
+ }
179
+ }
180
+
181
+ &::after {
182
+ clear: both;
183
+ }
184
+ }
185
+
186
+ /// Adds CSS for a "quantity query" selector that automatically sizes elements based on how many there are inside a container.
187
+ /// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS
188
+ ///
189
+ /// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.
190
+ /// @param {Keyword} $elem [li] - Tag to use for sibling selectors.
191
+ @mixin auto-width($max, $elem: li) {
192
+ @for $i from 2 through $max {
193
+ &:nth-last-child(#{$i}):first-child,
194
+ &:nth-last-child(#{$i}):first-child ~ #{$elem} {
195
+ width: percentage(1 / $i);
196
+ }
197
+ }
198
+ }
199
+
200
+ /// Removes the focus ring around an element when a mouse input is detected.
201
+ @mixin disable-mouse-outline {
202
+ [data-whatinput='mouse'] & {
203
+ outline: 0;
204
+ }
205
+ }
206
+
207
+ /// Makes an element visually hidden, but still accessible to keyboards and assistive devices.
208
+ /// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility
209
+ /// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/
210
+ ///
211
+ /// @param {Boolean} $enforce - If `true`, use `!important` on applied properties
212
+ @mixin element-invisible(
213
+ $enforce: true
214
+ ) {
215
+ $important: if($enforce, '!important', null);
216
+
217
+ position: absolute #{$important};
218
+ width: 1px #{$important};
219
+ height: 1px #{$important};
220
+ padding: 0 #{$important};
221
+ overflow: hidden #{$important};
222
+ clip: rect(0,0,0,0) #{$important};
223
+ white-space: nowrap #{$important};
224
+ border: 0 #{$important};
225
+ }
226
+
227
+ /// Reverses the CSS output created by the `element-invisible()` mixin.
228
+ /// @param {Boolean} $enforce - If `true`, use `!important` on applied properties
229
+ @mixin element-invisible-off(
230
+ $enforce: true
231
+ ) {
232
+ $important: if($enforce, '!important', null);
233
+
234
+ position: static #{$important};
235
+ width: auto #{$important};
236
+ height: auto #{$important};
237
+ overflow: visible #{$important};
238
+ clip: auto #{$important};
239
+ white-space: normal #{$important};
240
+ }
241
+
242
+ /// Vertically centers the element inside of its first non-static parent,
243
+ /// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass
244
+ @mixin vertical-center {
245
+ position: absolute;
246
+ top: 50%;
247
+ transform: translateY(-50%);
248
+ }
249
+
250
+ /// Horizontally centers the element inside of its first non-static parent,
251
+ /// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass
252
+ @mixin horizontal-center {
253
+ position: absolute;
254
+ left: 50%;
255
+ transform: translateX(-50%);
256
+ }
257
+
258
+ /// Absolutely centers the element inside of its first non-static parent,
259
+ /// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass
260
+ @mixin absolute-center {
261
+ position: absolute;
262
+ top: 50%;
263
+ left: 50%;
264
+ transform: translate(-50%, -50%);
265
+ }
266
+
267
+ /// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.
268
+ ///
269
+ /// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.
270
+ /// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.
271
+ @mixin -zf-each-breakpoint(
272
+ $small: true,
273
+ $auto-insert-breakpoints: true
274
+ ) {
275
+ @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {
276
+ @content
277
+ };
278
+ }
279
+
280
+ /// Iterates with `@content` through the given list of breakpoints `$breakpoints`.
281
+ ///
282
+ /// @access private
283
+ ///
284
+ /// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.
285
+ /// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.
286
+ /// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.
287
+ @mixin -zf-each-breakpoint-in(
288
+ $breakpoints: auto,
289
+ $zero-breakpoint: null,
290
+ $media-queries: true
291
+ ) {
292
+ $-list: ();
293
+ $-breakpoints-is-a-list: true;
294
+
295
+ // Retrieve the list of breakpoint(s) to iterate on.
296
+ @if $breakpoints == auto {
297
+ $-list: $breakpoint-classes;
298
+ }
299
+ @else if type-of($breakpoints) == 'list' {
300
+ $-list: $breakpoints;
301
+ }
302
+ @else if type-of($breakpoints) == 'string' {
303
+ $-list: ($breakpoints);
304
+ $-breakpoints-is-a-list: false;
305
+ }
306
+ @else {
307
+ @error 'Wrong syntax for "$breakpoints" in "-zf-each-breakpoint-in()". Got "#{$breakpoints}" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or "auto"';
308
+ }
309
+
310
+ // Add or remove the zero breakpoint according to `$zero-breakpoint`
311
+ @if $zero-breakpoint == true {
312
+ $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));
313
+ }
314
+ @else if $zero-breakpoint == false {
315
+ $-list: sl-remove($-list, $-zf-zero-breakpoint);
316
+ }
317
+
318
+ // Iterate on breakpoint(s)
319
+ @each $bp in $-list {
320
+ $old-zf-size: null;
321
+ @if global-variable-exists(-zf-size) {
322
+ $old-zf-size: $-zf-size;
323
+ }
324
+ $-zf-size: $bp !global;
325
+
326
+ @if ($media-queries == true
327
+ or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {
328
+ @include breakpoint($bp) {
329
+ @content;
330
+ }
331
+ }
332
+ @else {
333
+ @content;
334
+ }
335
+
336
+ $-zf-size: $old-zf-size !global;
337
+ }
338
+ }
339
+
340
+ /// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:
341
+ /// - For a single value, `$-zf-bp-value` is this value.
342
+ /// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.
343
+ /// - For "auto", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.
344
+ /// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. "auto" by default.
345
+ /// @param {Number|Map} $map - Map of breakpoints and values or single value to use.
346
+ @mixin -zf-breakpoint-value(
347
+ $name: auto,
348
+ $map: null
349
+ ) {
350
+ @if $name == auto and type-of($map) == 'map' {
351
+ // "auto"
352
+ @each $k, $v in $map {
353
+ @include breakpoint($k) {
354
+ @include -zf-breakpoint-value($v, $map) {
355
+ @content;
356
+ }
357
+ }
358
+ }
359
+ }
360
+ @else {
361
+ // breakpoint name
362
+ @if type-of($name) == 'string' {
363
+ $bp-value: -zf-get-bp-val($map, $name);
364
+ @if $bp-value != null {
365
+ $name: $bp-value;
366
+ }
367
+ }
368
+
369
+ // breakpoint value
370
+ $-zf-bp-value: $name !global;
371
+ @content;
372
+ }
373
+ }
@@ -0,0 +1,41 @@
1
+ // Foundation for Sites
2
+ // https://get.foundation
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group functions
7
+ ////
8
+
9
+ /// Generates a selector with every text input type. You can also filter the list to only output a subset of those selectors.
10
+ ///
11
+ /// @param {List|Keyword} $types [()] - A list of text input types to use. Leave blank to use all of them.
12
+ /// @param {Keyword} $modifier [''] - A modifier to be applied to each text input type (e.g. a class or a pseudo-class). Leave blank to ignore.
13
+ @function text-inputs($types: (), $modifier: '') {
14
+ $return: ();
15
+
16
+ $all-types:
17
+ text
18
+ password
19
+ date
20
+ datetime
21
+ datetime-local
22
+ month
23
+ week
24
+ email
25
+ number
26
+ search
27
+ tel
28
+ time
29
+ url
30
+ color;
31
+
32
+ @if not has-value($types) {
33
+ $types: $all-types;
34
+ }
35
+
36
+ @each $type in $types {
37
+ $return: append($return, unquote('[type=\'#{$type}\']#{$modifier}'), comma);
38
+ }
39
+
40
+ @return $return;
41
+ }