locomotivecms_wagon 2.4.1 → 3.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/generators/blank/app/assets/.babelrc +3 -0
  4. data/generators/blank/app/assets/fonts/.empty_directory +1 -0
  5. data/generators/blank/app/assets/javascripts/app.js +19 -0
  6. data/generators/blank/app/assets/javascripts/sections/_manager.js +94 -0
  7. data/generators/blank/app/assets/javascripts/sections/index.js +5 -0
  8. data/generators/blank/app/assets/package.json.tt +35 -0
  9. data/generators/blank/app/assets/postcss.config.js +6 -0
  10. data/generators/blank/app/assets/stylesheets/app.scss +1 -0
  11. data/generators/blank/app/assets/webpack.common.js +47 -0
  12. data/generators/blank/app/assets/webpack.dev.js +7 -0
  13. data/generators/blank/app/assets/webpack.prod.js +12 -0
  14. data/generators/blank/app/views/pages/404.liquid +1 -1
  15. data/generators/blank/app/views/pages/index.liquid +7 -15
  16. data/generators/blank/app/views/pages/layouts/default.liquid +22 -0
  17. data/generators/blank/app/views/sections/.empty_directory +1 -0
  18. data/generators/page/template.liquid.tt +11 -0
  19. data/generators/section/%type%.js.tt +26 -0
  20. data/generators/section/template.liquid.tt +183 -0
  21. data/lib/locomotive/wagon.rb +3 -2
  22. data/lib/locomotive/wagon/cli.rb +38 -10
  23. data/lib/locomotive/wagon/commands/clone_command.rb +3 -0
  24. data/lib/locomotive/wagon/commands/concerns/deploy_file_concern.rb +1 -1
  25. data/lib/locomotive/wagon/commands/concerns/steam_concern.rb +1 -1
  26. data/lib/locomotive/wagon/commands/loggers/sync_logger.rb +7 -0
  27. data/lib/locomotive/wagon/commands/pull_command.rb +1 -1
  28. data/lib/locomotive/wagon/commands/pull_sub_commands/concerns/assets_concern.rb +19 -10
  29. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_base_command.rb +7 -3
  30. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_content_entries_command.rb +11 -2
  31. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_content_types_command.rb +1 -1
  32. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_site_command.rb +24 -5
  33. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_translations_command.rb +6 -1
  34. data/lib/locomotive/wagon/commands/push_command.rb +6 -4
  35. data/lib/locomotive/wagon/commands/push_sub_commands/push_pages_command.rb +6 -1
  36. data/lib/locomotive/wagon/commands/push_sub_commands/push_sections_command.rb +23 -0
  37. data/lib/locomotive/wagon/commands/push_sub_commands/push_site_command.rb +2 -0
  38. data/lib/locomotive/wagon/commands/serve_command.rb +1 -1
  39. data/lib/locomotive/wagon/commands/sync_command.rb +1 -1
  40. data/lib/locomotive/wagon/commands/sync_sub_commands/concerns/base_concern.rb +2 -2
  41. data/lib/locomotive/wagon/commands/sync_sub_commands/sync_pages_command.rb +48 -37
  42. data/lib/locomotive/wagon/commands/sync_sub_commands/sync_site_command.rb +15 -12
  43. data/lib/locomotive/wagon/commands/sync_sub_commands/sync_translations_command.rb +12 -0
  44. data/lib/locomotive/wagon/decorators/concerns/persist_assets_concern.rb +1 -1
  45. data/lib/locomotive/wagon/decorators/content_entry_decorator.rb +1 -1
  46. data/lib/locomotive/wagon/decorators/content_type_decorator.rb +5 -1
  47. data/lib/locomotive/wagon/decorators/content_type_field_decorator.rb +5 -1
  48. data/lib/locomotive/wagon/decorators/page_decorator.rb +11 -1
  49. data/lib/locomotive/wagon/decorators/section_decorator.rb +35 -0
  50. data/lib/locomotive/wagon/decorators/site_decorator.rb +12 -4
  51. data/lib/locomotive/wagon/decorators/theme_asset_decorator.rb +2 -2
  52. data/lib/locomotive/wagon/generators/page.rb +2 -12
  53. data/lib/locomotive/wagon/generators/section.rb +82 -0
  54. data/lib/locomotive/wagon/generators/site.rb +0 -3
  55. data/lib/locomotive/wagon/generators/site/base.rb +11 -28
  56. data/lib/locomotive/wagon/generators/site/blank.rb +1 -17
  57. data/lib/locomotive/wagon/generators/site/cloned.rb +1 -4
  58. data/lib/locomotive/wagon/generators/snippet.rb +3 -11
  59. data/lib/locomotive/wagon/middlewares/error_page.rb +26 -6
  60. data/lib/locomotive/wagon/tools/listen.rb +3 -3
  61. data/lib/locomotive/wagon/version.rb +1 -1
  62. data/locomotivecms_wagon.gemspec +7 -6
  63. data/spec/fixtures/cassettes/authenticate.yml +47 -47
  64. data/spec/fixtures/cassettes/delete.yml +261 -261
  65. data/spec/fixtures/cassettes/push.yml +4571 -1783
  66. data/spec/fixtures/cassettes/sync.yml +11483 -0
  67. data/spec/integration/cli_spec.rb +1 -1
  68. data/spec/integration/commands/delete_command_spec.rb +1 -2
  69. data/spec/integration/commands/push_command_spec.rb +4 -4
  70. data/spec/integration/commands/sync_command_spec.rb +54 -0
  71. data/spec/integration/generators/page_spec.rb +1 -1
  72. data/spec/unit/commands/pull_sub_commands/concerns/assets_concern_spec.rb +3 -3
  73. metadata +55 -306
  74. data/generators/blank/app/views/pages/404.liquid.haml +0 -11
  75. data/generators/blank/app/views/pages/index.liquid.haml +0 -16
  76. data/generators/bootstrap/Gemfile.tt +0 -24
  77. data/generators/bootstrap/Guardfile +0 -22
  78. data/generators/bootstrap/app/content_types/.empty_directory +0 -1
  79. data/generators/bootstrap/app/views/pages/404.liquid +0 -18
  80. data/generators/bootstrap/app/views/pages/404.liquid.haml +0 -14
  81. data/generators/bootstrap/app/views/pages/index.liquid +0 -31
  82. data/generators/bootstrap/app/views/pages/index.liquid.haml +0 -25
  83. data/generators/bootstrap/app/views/pages/layouts/default.liquid +0 -31
  84. data/generators/bootstrap/app/views/pages/layouts/default.liquid.haml +0 -30
  85. data/generators/bootstrap/app/views/pages/layouts/simple.liquid +0 -36
  86. data/generators/bootstrap/app/views/pages/layouts/simple.liquid.haml +0 -29
  87. data/generators/bootstrap/app/views/snippets/footer.liquid +0 -5
  88. data/generators/bootstrap/app/views/snippets/footer.liquid.haml +0 -3
  89. data/generators/bootstrap/app/views/snippets/nav.liquid +0 -26
  90. data/generators/bootstrap/app/views/snippets/nav.liquid.haml +0 -19
  91. data/generators/bootstrap/config/deploy.yml +0 -16
  92. data/generators/bootstrap/config/metafields_schema.yml +0 -56
  93. data/generators/bootstrap/config/site.yml.tt +0 -48
  94. data/generators/bootstrap/config/translations.yml +0 -8
  95. data/generators/bootstrap/data/.empty_directory +0 -1
  96. data/generators/bootstrap/icon.png +0 -0
  97. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  98. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -288
  99. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  100. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  101. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  102. data/generators/bootstrap/public/images/favicon.png +0 -0
  103. data/generators/bootstrap/public/javascripts/application.js +0 -2
  104. data/generators/bootstrap/public/javascripts/bootstrap.min.js +0 -7
  105. data/generators/bootstrap/public/javascripts/bootstrap/affix.js +0 -162
  106. data/generators/bootstrap/public/javascripts/bootstrap/alert.js +0 -94
  107. data/generators/bootstrap/public/javascripts/bootstrap/button.js +0 -120
  108. data/generators/bootstrap/public/javascripts/bootstrap/carousel.js +0 -237
  109. data/generators/bootstrap/public/javascripts/bootstrap/collapse.js +0 -211
  110. data/generators/bootstrap/public/javascripts/bootstrap/dropdown.js +0 -165
  111. data/generators/bootstrap/public/javascripts/bootstrap/modal.js +0 -337
  112. data/generators/bootstrap/public/javascripts/bootstrap/popover.js +0 -108
  113. data/generators/bootstrap/public/javascripts/bootstrap/scrollspy.js +0 -172
  114. data/generators/bootstrap/public/javascripts/bootstrap/tab.js +0 -155
  115. data/generators/bootstrap/public/javascripts/bootstrap/tooltip.js +0 -514
  116. data/generators/bootstrap/public/javascripts/bootstrap/transition.js +0 -59
  117. data/generators/bootstrap/public/javascripts/jquery.min.js +0 -5
  118. data/generators/bootstrap/public/stylesheets/application.css +0 -7
  119. data/generators/bootstrap/public/stylesheets/application.scss +0 -7
  120. data/generators/bootstrap/public/stylesheets/bootstrap.css +0 -5
  121. data/generators/bootstrap/public/stylesheets/bootstrap.scss +0 -63
  122. data/generators/bootstrap/public/stylesheets/bootstrap/_alerts.scss +0 -73
  123. data/generators/bootstrap/public/stylesheets/bootstrap/_badges.scss +0 -68
  124. data/generators/bootstrap/public/stylesheets/bootstrap/_breadcrumbs.scss +0 -28
  125. data/generators/bootstrap/public/stylesheets/bootstrap/_button-groups.scss +0 -244
  126. data/generators/bootstrap/public/stylesheets/bootstrap/_buttons.scss +0 -168
  127. data/generators/bootstrap/public/stylesheets/bootstrap/_carousel.scss +0 -269
  128. data/generators/bootstrap/public/stylesheets/bootstrap/_close.scss +0 -36
  129. data/generators/bootstrap/public/stylesheets/bootstrap/_code.scss +0 -69
  130. data/generators/bootstrap/public/stylesheets/bootstrap/_component-animations.scss +0 -37
  131. data/generators/bootstrap/public/stylesheets/bootstrap/_dropdowns.scss +0 -216
  132. data/generators/bootstrap/public/stylesheets/bootstrap/_forms.scss +0 -611
  133. data/generators/bootstrap/public/stylesheets/bootstrap/_glyphicons.scss +0 -307
  134. data/generators/bootstrap/public/stylesheets/bootstrap/_grid.scss +0 -84
  135. data/generators/bootstrap/public/stylesheets/bootstrap/_input-groups.scss +0 -167
  136. data/generators/bootstrap/public/stylesheets/bootstrap/_jumbotron.scss +0 -52
  137. data/generators/bootstrap/public/stylesheets/bootstrap/_labels.scss +0 -66
  138. data/generators/bootstrap/public/stylesheets/bootstrap/_list-group.scss +0 -130
  139. data/generators/bootstrap/public/stylesheets/bootstrap/_media.scss +0 -66
  140. data/generators/bootstrap/public/stylesheets/bootstrap/_mixins.scss +0 -40
  141. data/generators/bootstrap/public/stylesheets/bootstrap/_modals.scss +0 -150
  142. data/generators/bootstrap/public/stylesheets/bootstrap/_navbar.scss +0 -662
  143. data/generators/bootstrap/public/stylesheets/bootstrap/_navs.scss +0 -242
  144. data/generators/bootstrap/public/stylesheets/bootstrap/_normalize.scss +0 -424
  145. data/generators/bootstrap/public/stylesheets/bootstrap/_pager.scss +0 -54
  146. data/generators/bootstrap/public/stylesheets/bootstrap/_pagination.scss +0 -89
  147. data/generators/bootstrap/public/stylesheets/bootstrap/_panels.scss +0 -271
  148. data/generators/bootstrap/public/stylesheets/bootstrap/_popovers.scss +0 -131
  149. data/generators/bootstrap/public/stylesheets/bootstrap/_print.scss +0 -101
  150. data/generators/bootstrap/public/stylesheets/bootstrap/_progress-bars.scss +0 -87
  151. data/generators/bootstrap/public/stylesheets/bootstrap/_responsive-embed.scss +0 -35
  152. data/generators/bootstrap/public/stylesheets/bootstrap/_responsive-utilities.scss +0 -179
  153. data/generators/bootstrap/public/stylesheets/bootstrap/_scaffolding.scss +0 -161
  154. data/generators/bootstrap/public/stylesheets/bootstrap/_tables.scss +0 -234
  155. data/generators/bootstrap/public/stylesheets/bootstrap/_theme.scss +0 -291
  156. data/generators/bootstrap/public/stylesheets/bootstrap/_thumbnails.scss +0 -38
  157. data/generators/bootstrap/public/stylesheets/bootstrap/_tooltip.scss +0 -101
  158. data/generators/bootstrap/public/stylesheets/bootstrap/_type.scss +0 -298
  159. data/generators/bootstrap/public/stylesheets/bootstrap/_utilities.scss +0 -55
  160. data/generators/bootstrap/public/stylesheets/bootstrap/_variables.scss +0 -872
  161. data/generators/bootstrap/public/stylesheets/bootstrap/_wells.scss +0 -29
  162. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_alerts.scss +0 -14
  163. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_background-variant.scss +0 -12
  164. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_border-radius.scss +0 -18
  165. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_buttons.scss +0 -68
  166. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_center-block.scss +0 -7
  167. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_clearfix.scss +0 -22
  168. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_forms.scss +0 -88
  169. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_gradients.scss +0 -58
  170. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -81
  171. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_grid.scss +0 -122
  172. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_hide-text.scss +0 -21
  173. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_image.scss +0 -33
  174. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_labels.scss +0 -12
  175. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_list-group.scss +0 -32
  176. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  177. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  178. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_opacity.scss +0 -8
  179. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_pagination.scss +0 -24
  180. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_panels.scss +0 -24
  181. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_progress-bar.scss +0 -10
  182. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_reset-filter.scss +0 -8
  183. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_reset-text.scss +0 -18
  184. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_resize.scss +0 -6
  185. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_responsive-visibility.scss +0 -21
  186. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_size.scss +0 -10
  187. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_tab-focus.scss +0 -9
  188. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_table-row.scss +0 -28
  189. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -12
  190. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_text-overflow.scss +0 -8
  191. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +0 -222
  192. data/generators/foundation/Gemfile.tt +0 -24
  193. data/generators/foundation/Guardfile +0 -22
  194. data/generators/foundation/app/content_types/.gitkeep +0 -0
  195. data/generators/foundation/app/views/pages/404.liquid +0 -11
  196. data/generators/foundation/app/views/pages/404.liquid.haml +0 -11
  197. data/generators/foundation/app/views/pages/index.liquid +0 -172
  198. data/generators/foundation/app/views/pages/index.liquid.haml +0 -144
  199. data/generators/foundation/app/views/snippets/.gitkeep +0 -0
  200. data/generators/foundation/config/deploy.yml +0 -16
  201. data/generators/foundation/config/metafields_schema.yml +0 -56
  202. data/generators/foundation/config/site.yml +0 -48
  203. data/generators/foundation/config/translations.yml +0 -8
  204. data/generators/foundation/data/.gitkeep +0 -0
  205. data/generators/foundation/log/.gitkeep +0 -0
  206. data/generators/foundation/public/images/.gitkeep +0 -0
  207. data/generators/foundation/public/javascripts/app.js +0 -1
  208. data/generators/foundation/public/javascripts/vendor/foundation.js +0 -11788
  209. data/generators/foundation/public/javascripts/vendor/foundation.min.js +0 -5
  210. data/generators/foundation/public/javascripts/vendor/what-input.js +0 -212
  211. data/generators/foundation/public/javascripts/vendor/what-input.min.js +0 -1
  212. data/generators/foundation/public/stylesheets/_settings.scss +0 -869
  213. data/generators/foundation/public/stylesheets/app.css +0 -0
  214. data/generators/foundation/public/stylesheets/app.scss +0 -52
  215. data/generators/foundation/public/stylesheets/foundation.css +0 -5805
  216. data/generators/foundation/public/stylesheets/foundation6/_global.scss +0 -249
  217. data/generators/foundation/public/stylesheets/foundation6/components/_accordion-menu.scss +0 -171
  218. data/generators/foundation/public/stylesheets/foundation6/components/_accordion.scss +0 -155
  219. data/generators/foundation/public/stylesheets/foundation6/components/_badge.scss +0 -63
  220. data/generators/foundation/public/stylesheets/foundation6/components/_breadcrumbs.scss +0 -117
  221. data/generators/foundation/public/stylesheets/foundation6/components/_button-group.scss +0 -253
  222. data/generators/foundation/public/stylesheets/foundation6/components/_button.scss +0 -385
  223. data/generators/foundation/public/stylesheets/foundation6/components/_callout.scss +0 -106
  224. data/generators/foundation/public/stylesheets/foundation6/components/_card.scss +0 -129
  225. data/generators/foundation/public/stylesheets/foundation6/components/_close-button.scss +0 -102
  226. data/generators/foundation/public/stylesheets/foundation6/components/_drilldown.scss +0 -142
  227. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown-menu.scss +0 -274
  228. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown.scss +0 -79
  229. data/generators/foundation/public/stylesheets/foundation6/components/_flex-video.scss +0 -1
  230. data/generators/foundation/public/stylesheets/foundation6/components/_flex.scss +0 -117
  231. data/generators/foundation/public/stylesheets/foundation6/components/_float.scss +0 -27
  232. data/generators/foundation/public/stylesheets/foundation6/components/_label.scss +0 -64
  233. data/generators/foundation/public/stylesheets/foundation6/components/_media-object.scss +0 -114
  234. data/generators/foundation/public/stylesheets/foundation6/components/_menu-icon.scss +0 -9
  235. data/generators/foundation/public/stylesheets/foundation6/components/_menu.scss +0 -495
  236. data/generators/foundation/public/stylesheets/foundation6/components/_off-canvas.scss +0 -505
  237. data/generators/foundation/public/stylesheets/foundation6/components/_orbit.scss +0 -196
  238. data/generators/foundation/public/stylesheets/foundation6/components/_pagination.scss +0 -193
  239. data/generators/foundation/public/stylesheets/foundation6/components/_progress-bar.scss +0 -64
  240. data/generators/foundation/public/stylesheets/foundation6/components/_responsive-embed.scss +0 -70
  241. data/generators/foundation/public/stylesheets/foundation6/components/_reveal.scss +0 -180
  242. data/generators/foundation/public/stylesheets/foundation6/components/_slider.scss +0 -137
  243. data/generators/foundation/public/stylesheets/foundation6/components/_sticky.scss +0 -39
  244. data/generators/foundation/public/stylesheets/foundation6/components/_switch.scss +0 -247
  245. data/generators/foundation/public/stylesheets/foundation6/components/_table.scss +0 -330
  246. data/generators/foundation/public/stylesheets/foundation6/components/_tabs.scss +0 -196
  247. data/generators/foundation/public/stylesheets/foundation6/components/_thumbnail.scss +0 -67
  248. data/generators/foundation/public/stylesheets/foundation6/components/_title-bar.scss +0 -84
  249. data/generators/foundation/public/stylesheets/foundation6/components/_tooltip.scss +0 -160
  250. data/generators/foundation/public/stylesheets/foundation6/components/_top-bar.scss +0 -175
  251. data/generators/foundation/public/stylesheets/foundation6/components/_visibility.scss +0 -132
  252. data/generators/foundation/public/stylesheets/foundation6/forms/_checkbox.scss +0 -41
  253. data/generators/foundation/public/stylesheets/foundation6/forms/_error.scss +0 -88
  254. data/generators/foundation/public/stylesheets/foundation6/forms/_fieldset.scss +0 -53
  255. data/generators/foundation/public/stylesheets/foundation6/forms/_forms.scss +0 -34
  256. data/generators/foundation/public/stylesheets/foundation6/forms/_help-text.scss +0 -30
  257. data/generators/foundation/public/stylesheets/foundation6/forms/_input-group.scss +0 -142
  258. data/generators/foundation/public/stylesheets/foundation6/forms/_label.scss +0 -50
  259. data/generators/foundation/public/stylesheets/foundation6/forms/_meter.scss +0 -116
  260. data/generators/foundation/public/stylesheets/foundation6/forms/_progress.scss +0 -94
  261. data/generators/foundation/public/stylesheets/foundation6/forms/_range.scss +0 -149
  262. data/generators/foundation/public/stylesheets/foundation6/forms/_select.scss +0 -86
  263. data/generators/foundation/public/stylesheets/foundation6/forms/_text.scss +0 -179
  264. data/generators/foundation/public/stylesheets/foundation6/foundation.scss +0 -133
  265. data/generators/foundation/public/stylesheets/foundation6/grid/_classes.scss +0 -176
  266. data/generators/foundation/public/stylesheets/foundation6/grid/_column.scss +0 -112
  267. data/generators/foundation/public/stylesheets/foundation6/grid/_flex-grid.scss +0 -259
  268. data/generators/foundation/public/stylesheets/foundation6/grid/_grid.scss +0 -48
  269. data/generators/foundation/public/stylesheets/foundation6/grid/_gutter.scss +0 -82
  270. data/generators/foundation/public/stylesheets/foundation6/grid/_layout.scss +0 -76
  271. data/generators/foundation/public/stylesheets/foundation6/grid/_position.scss +0 -76
  272. data/generators/foundation/public/stylesheets/foundation6/grid/_row.scss +0 -99
  273. data/generators/foundation/public/stylesheets/foundation6/grid/_size.scss +0 -24
  274. data/generators/foundation/public/stylesheets/foundation6/motion-ui/_classes.scss +0 -109
  275. data/generators/foundation/public/stylesheets/foundation6/motion-ui/_settings.scss +0 -61
  276. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_fade.scss +0 -32
  277. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_hinge.scss +0 -65
  278. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_shake.scss +0 -15
  279. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_slide.scss +0 -41
  280. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_spin.scss +0 -28
  281. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_wiggle.scss +0 -13
  282. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_zoom.scss +0 -15
  283. data/generators/foundation/public/stylesheets/foundation6/motion-ui/motion-ui.scss +0 -29
  284. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_fade.scss +0 -28
  285. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_hinge.scss +0 -43
  286. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_slide.scss +0 -42
  287. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_spin.scss +0 -39
  288. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_zoom.scss +0 -39
  289. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_animation.scss +0 -7
  290. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_args.scss +0 -15
  291. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_keyframe.scss +0 -136
  292. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_selector.scss +0 -23
  293. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_series.scss +0 -54
  294. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_transition.scss +0 -45
  295. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_unit.scss +0 -7
  296. data/generators/foundation/public/stylesheets/foundation6/prototype/_arrow.scss +0 -36
  297. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-box.scss +0 -35
  298. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-none.scss +0 -35
  299. data/generators/foundation/public/stylesheets/foundation6/prototype/_bordered.scss +0 -54
  300. data/generators/foundation/public/stylesheets/foundation6/prototype/_box.scss +0 -23
  301. data/generators/foundation/public/stylesheets/foundation6/prototype/_display.scss +0 -50
  302. data/generators/foundation/public/stylesheets/foundation6/prototype/_font-styling.scss +0 -95
  303. data/generators/foundation/public/stylesheets/foundation6/prototype/_list-style-type.scss +0 -95
  304. data/generators/foundation/public/stylesheets/foundation6/prototype/_overflow.scss +0 -72
  305. data/generators/foundation/public/stylesheets/foundation6/prototype/_position.scss +0 -114
  306. data/generators/foundation/public/stylesheets/foundation6/prototype/_prototype.scss +0 -87
  307. data/generators/foundation/public/stylesheets/foundation6/prototype/_relation.scss +0 -157
  308. data/generators/foundation/public/stylesheets/foundation6/prototype/_rotate.scss +0 -31
  309. data/generators/foundation/public/stylesheets/foundation6/prototype/_rounded.scss +0 -54
  310. data/generators/foundation/public/stylesheets/foundation6/prototype/_separator.scss +0 -96
  311. data/generators/foundation/public/stylesheets/foundation6/prototype/_shadow.scss +0 -43
  312. data/generators/foundation/public/stylesheets/foundation6/prototype/_sizing.scss +0 -73
  313. data/generators/foundation/public/stylesheets/foundation6/prototype/_spacing.scss +0 -204
  314. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-decoration.scss +0 -48
  315. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-transformation.scss +0 -48
  316. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-utilities.scss +0 -88
  317. data/generators/foundation/public/stylesheets/foundation6/settings/_settings.scss +0 -869
  318. data/generators/foundation/public/stylesheets/foundation6/typography/_alignment.scss +0 -22
  319. data/generators/foundation/public/stylesheets/foundation6/typography/_base.scss +0 -509
  320. data/generators/foundation/public/stylesheets/foundation6/typography/_helpers.scss +0 -80
  321. data/generators/foundation/public/stylesheets/foundation6/typography/_print.scss +0 -86
  322. data/generators/foundation/public/stylesheets/foundation6/typography/_typography.scss +0 -26
  323. data/generators/foundation/public/stylesheets/foundation6/util/_breakpoint.scss +0 -348
  324. data/generators/foundation/public/stylesheets/foundation6/util/_color.scss +0 -129
  325. data/generators/foundation/public/stylesheets/foundation6/util/_direction.scss +0 -31
  326. data/generators/foundation/public/stylesheets/foundation6/util/_flex.scss +0 -85
  327. data/generators/foundation/public/stylesheets/foundation6/util/_math.scss +0 -72
  328. data/generators/foundation/public/stylesheets/foundation6/util/_mixins.scss +0 -313
  329. data/generators/foundation/public/stylesheets/foundation6/util/_selector.scss +0 -41
  330. data/generators/foundation/public/stylesheets/foundation6/util/_typography.scss +0 -26
  331. data/generators/foundation/public/stylesheets/foundation6/util/_unit.scss +0 -152
  332. data/generators/foundation/public/stylesheets/foundation6/util/_util.scss +0 -14
  333. data/generators/foundation/public/stylesheets/foundation6/util/_value.scss +0 -160
  334. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/_normalize.scss +0 -3
  335. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_import-now.scss +0 -11
  336. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +0 -676
  337. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_variables.scss +0 -36
  338. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +0 -61
  339. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_contain.scss +0 -31
  340. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_purge.scss +0 -38
  341. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_remove.scss +0 -31
  342. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_replace.scss +0 -46
  343. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_to-list.scss +0 -27
  344. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +0 -25
  345. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_true.scss +0 -13
  346. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_cell.scss +0 -169
  347. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_classes.scss +0 -476
  348. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_collapse.scss +0 -74
  349. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_frame.scss +0 -85
  350. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_grid.scss +0 -35
  351. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_gutters.scss +0 -45
  352. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_layout.scss +0 -33
  353. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_position.scss +0 -28
  354. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_xy-grid.scss +0 -51
  355. data/generators/page/template.liquid.haml.tt +0 -47
  356. data/generators/snippet/template.liquid.haml.tt +0 -4
  357. data/lib/locomotive/wagon/generators/site/bootstrap.rb +0 -52
  358. data/lib/locomotive/wagon/generators/site/foundation.rb +0 -44
  359. data/lib/locomotive/wagon/generators/site/line_case.rb +0 -20
@@ -1,129 +0,0 @@
1
- // Foundation for Sites by ZURB
2
- // foundation.zurb.com
3
- // Licensed under MIT Open Source
4
-
5
- @import 'math';
6
-
7
- $contrast-warnings: true !default;
8
-
9
- ////
10
- /// @group functions
11
- ////
12
-
13
- /// Checks the luminance of `$color`.
14
- ///
15
- /// @param {Color} $color - Color to check the luminance of.
16
- ///
17
- /// @returns {Number} The luminance of `$color`.
18
- @function color-luminance($color) {
19
- // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js
20
- // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
21
- $rgba: red($color), green($color), blue($color);
22
- $rgba2: ();
23
-
24
- @for $i from 1 through 3 {
25
- $rgb: nth($rgba, $i);
26
- $rgb: $rgb / 255;
27
-
28
- $rgb: if($rgb < 0.03928, $rgb / 12.92, pow(($rgb + 0.055) / 1.055, 2.4));
29
-
30
- $rgba2: append($rgba2, $rgb);
31
- }
32
-
33
- @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);
34
- }
35
-
36
- /// Checks the contrast ratio of two colors.
37
- ///
38
- /// @param {Color} $color1 - First color to compare.
39
- /// @param {Color} $color2 - Second color to compare.
40
- ///
41
- /// @returns {Number} The contrast ratio of the compared colors.
42
- @function color-contrast($color1, $color2) {
43
- // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js
44
- // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
45
- $luminance1: color-luminance($color1) + 0.05;
46
- $luminance2: color-luminance($color2) + 0.05;
47
- $ratio: $luminance1 / $luminance2;
48
-
49
- @if $luminance2 > $luminance1 {
50
- $ratio: 1 / $ratio;
51
- }
52
-
53
- $ratio: round($ratio * 10) / 10;
54
-
55
- @return $ratio;
56
- }
57
-
58
- /// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.
59
- ///
60
- /// @param {Color} $base - Color to check luminance.
61
- /// @param {List} $colors [($white, $black)] - Colors to compare.
62
- /// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.
63
- ///
64
- /// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.
65
- @function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {
66
- $contrast: color-contrast($base, nth($colors, 1));
67
- $best: nth($colors, 1);
68
-
69
- @for $i from 2 through length($colors) {
70
- $current-contrast: color-contrast($base, nth($colors, $i));
71
- @if ($current-contrast - $contrast > $tolerance) {
72
- $contrast: color-contrast($base, nth($colors, $i));
73
- $best: nth($colors, $i);
74
- }
75
- }
76
-
77
- @if ($contrast-warnings and $contrast < 3) {
78
- @warn "Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}";
79
- }
80
-
81
- @return $best;
82
- }
83
-
84
- /// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.
85
- ///
86
- /// @param {Color} $color - Color to scale.
87
- /// @param {Percentage} $scale [5%] - Amount to scale up or down.
88
- /// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.
89
- ///
90
- /// @returns {Color} A scaled color.
91
- @function smart-scale($color, $scale: 5%, $threshold: 40%) {
92
- @if lightness($color) > $threshold {
93
- $scale: -$scale;
94
- }
95
- @return scale-color($color, $lightness: $scale);
96
- }
97
-
98
- /// Get color from foundation-palette
99
- ///
100
- /// @param {key} color key from foundation-palette
101
- ///
102
- /// @returns {Color} color from foundation-palette
103
- @function get-color($key) {
104
- @if map-has-key($foundation-palette, $key) {
105
- @return map-get($foundation-palette, $key);
106
- }
107
- @else {
108
- @error 'given $key is not available in $foundation-palette';
109
- }
110
- }
111
-
112
- /// Transfers the colors in the `$foundation-palette`map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.
113
- @mixin add-foundation-colors() {
114
- @if map-has-key($foundation-palette, primary) {
115
- $primary-color: map-get($foundation-palette, primary) !global;
116
- }
117
- @if map-has-key($foundation-palette, secondary) {
118
- $secondary-color: map-get($foundation-palette, secondary) !global;
119
- }
120
- @if map-has-key($foundation-palette, success) {
121
- $success-color: map-get($foundation-palette, success) !global;
122
- }
123
- @if map-has-key($foundation-palette, warning) {
124
- $warning-color: map-get($foundation-palette, warning) !global;
125
- }
126
- @if map-has-key($foundation-palette, alert) {
127
- $alert-color: map-get($foundation-palette, alert) !global;
128
- }
129
- }
@@ -1,31 +0,0 @@
1
- // Foundation for Sites by ZURB
2
- // foundation.zurb.com
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
- // Calcul 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
-
@@ -1,85 +0,0 @@
1
- $-zf-flex-justify: (
2
- 'left': flex-start,
3
- 'right': flex-end,
4
- 'center': center,
5
- 'justify': space-between,
6
- 'spaced': space-around,
7
- );
8
-
9
- $-zf-flex-align: (
10
- 'top': flex-start,
11
- 'bottom': flex-end,
12
- 'middle': center,
13
- 'stretch': stretch,
14
- );
15
-
16
- $-zf-flex-direction: (
17
- 'row': row,
18
- 'row-reverse': row-reverse,
19
- 'column': column,
20
- 'column-reverse': column-reverse,
21
- );
22
-
23
- /// Enables flexbox by adding `display: flex` to the element.
24
- @mixin flex {
25
- display: flex;
26
- }
27
-
28
- /// Horizontally or vertically aligns the items within a flex container.
29
- ///
30
- /// @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.
31
- /// @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.
32
- @mixin flex-align($x: null, $y: null) {
33
- @if $x {
34
- @if map-has-key($-zf-flex-justify, $x) {
35
- $x: map-get($-zf-flex-justify, $x);
36
- }
37
- @else {
38
- @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';
39
- }
40
- }
41
-
42
- @if $y {
43
- @if map-has-key($-zf-flex-align, $y) {
44
- $y: map-get($-zf-flex-align, $y);
45
- }
46
- @else {
47
- @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';
48
- }
49
- }
50
-
51
- justify-content: $x;
52
- align-items: $y;
53
- }
54
-
55
- /// Vertically align a single column within a flex row. Apply this mixin to a flex column.
56
- ///
57
- /// @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.
58
- @mixin flex-align-self($y: null) {
59
- @if $y {
60
- @if map-has-key($-zf-flex-align, $y) {
61
- $y: map-get($-zf-flex-align, $y);
62
- }
63
- @else {
64
- @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';
65
- }
66
- }
67
-
68
- align-self: $y;
69
- }
70
-
71
- /// Changes the source order of a flex child. Children with lower numbers appear first in the layout.
72
- /// @param {Number} $order [0] - Order number to apply.
73
- @mixin flex-order($order: 0) {
74
- order: $order;
75
- }
76
-
77
- /// Change flex-direction
78
- /// @param {Keyword} $direction [row] - Flex direction to use. Can be
79
- /// - row (default): same as text direction
80
- /// - row-reverse: opposite to text direction
81
- /// - column: same as row but top to bottom
82
- /// - column-reverse: same as row-reverse top to bottom
83
- @mixin flex-direction($direction: row) {
84
- flex-direction: $direction;
85
- }
@@ -1,72 +0,0 @@
1
- // Foundation for Sites by ZURB
2
- // foundation.zurb.com
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
- }
@@ -1,313 +0,0 @@
1
- // Foundation for Sites by ZURB
2
- // foundation.zurb.com
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
- @mixin element-invisible {
211
- position: absolute !important;
212
- width: 1px;
213
- height: 1px;
214
- padding: 0;
215
- overflow: hidden;
216
- clip: rect(0,0,0,0);
217
- white-space: nowrap;
218
- clip-path: inset(50%);
219
- border: 0;
220
- }
221
-
222
- /// Reverses the CSS output created by the `element-invisible()` mixin.
223
- @mixin element-invisible-off {
224
- position: static !important;
225
- width: auto;
226
- height: auto;
227
- overflow: visible;
228
- clip: auto;
229
- white-space: normal;
230
- clip-path: none;
231
- }
232
-
233
- /// Vertically centers the element inside of its first non-static parent,
234
- /// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass
235
- @mixin vertical-center {
236
- position: absolute;
237
- top: 50%;
238
- transform: translateY(-50%);
239
- }
240
-
241
- /// Horizontally centers the element inside of its first non-static parent,
242
- /// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass
243
- @mixin horizontal-center {
244
- position: absolute;
245
- left: 50%;
246
- transform: translateX(-50%);
247
- }
248
-
249
- /// Absolutely centers the element inside of its first non-static parent,
250
- /// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass
251
- @mixin absolute-center {
252
- position: absolute;
253
- top: 50%;
254
- left: 50%;
255
- transform: translate(-50%, -50%);
256
- }
257
-
258
- /// 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.
259
- ///
260
- /// @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.
261
- /// @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.
262
- @mixin -zf-each-breakpoint($small: true, $auto-insert-breakpoints: true) {
263
- $list: $breakpoint-classes;
264
-
265
- @if not $small {
266
- $list: sl-remove($list, $-zf-zero-breakpoint);
267
- }
268
-
269
- @each $name in $list {
270
- $-zf-size: $name !global;
271
-
272
- @if $auto-insert-breakpoints {
273
- @include breakpoint($name) {
274
- @content;
275
- }
276
- }
277
- @else {
278
- @content;
279
- }
280
- }
281
- }
282
-
283
- /// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:
284
- /// - For a single value, `$-zf-bp-value` is this value.
285
- /// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.
286
- /// - 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`.
287
- /// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. "auto" by default.
288
- /// @param {Number|Map} $map - Map of breakpoints and values or single value to use.
289
- @mixin -zf-breakpoint-value(
290
- $name: auto,
291
- $map: null
292
- ) {
293
- @if $name == auto and type-of($map) == 'map' {
294
- // "auto"
295
- @each $k, $v in $map {
296
- @include breakpoint($k) {
297
- @include -zf-breakpoint-value($v, $map) {
298
- @content;
299
- }
300
- }
301
- }
302
- }
303
- @else {
304
- // breakpoint name
305
- @if type-of($name) == 'string' {
306
- $name: -zf-get-bp-val($map, $name);
307
- }
308
-
309
- // breakpoint value
310
- $-zf-bp-value: $name !global;
311
- @content;
312
- }
313
- }