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.
- checksums.yaml +5 -5
- data/.gitignore +2 -2
- data/.ruby-version +1 -1
- data/.travis.yml +17 -4
- data/Appraisals +19 -0
- data/Gemfile +5 -2
- data/Gemfile.lock +210 -0
- data/LICENSE.txt +1 -1
- data/README.md +64 -28
- data/Rakefile +30 -0
- data/app/views/foundation/rails/styleguide/show.html.erb +10 -13
- data/bower.json +3 -2
- data/foundation-rails.gemspec +12 -7
- data/gemfiles/rails_4.1.gemfile +10 -0
- data/gemfiles/rails_4.1.gemfile.lock +181 -0
- data/gemfiles/rails_4.2.gemfile +10 -0
- data/gemfiles/rails_4.2.gemfile.lock +181 -0
- data/gemfiles/rails_5.0.gemfile +10 -0
- data/gemfiles/rails_5.0.gemfile.lock +196 -0
- data/gemfiles/rails_5.1.gemfile +10 -0
- data/gemfiles/rails_5.1.gemfile.lock +196 -0
- data/gemfiles/rails_5.2.gemfile +10 -0
- data/gemfiles/rails_5.2.gemfile.lock +196 -0
- data/lib/foundation/rails/engine.rb +2 -3
- data/lib/foundation/rails/version.rb +1 -1
- data/lib/foundation-rails.rb +1 -0
- data/lib/generators/foundation/install_generator.rb +39 -27
- data/lib/generators/foundation/templates/_settings.scss +895 -0
- data/lib/generators/foundation/templates/application.html.erb +1 -2
- data/lib/generators/foundation/templates/application.html.haml +2 -4
- data/lib/generators/foundation/templates/application.html.slim +1 -3
- data/lib/generators/foundation/templates/browserslist +4 -0
- data/lib/generators/foundation/templates/foundation_and_overrides.scss +56 -0
- data/spec/features/generator_spec.rb +1 -1
- data/spec/support/helpers.rb +8 -2
- data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_contain.scss +31 -0
- data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
- data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
- data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
- data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
- data/vendor/assets/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
- data/vendor/assets/_vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
- data/vendor/assets/js/foundation.cjs.js +12529 -0
- data/vendor/assets/js/foundation.cjs.js.map +1 -0
- data/vendor/assets/js/foundation.es6.js +11006 -0
- data/vendor/assets/js/foundation.es6.js.map +1 -0
- data/vendor/assets/js/foundation.esm.js +12490 -0
- data/vendor/assets/js/foundation.esm.js.map +1 -0
- data/vendor/assets/js/foundation.js +13897 -0
- data/vendor/assets/js/foundation.js.map +1 -0
- data/vendor/assets/js/foundation.min.js +2 -0
- data/vendor/assets/js/foundation.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.abide.js +1142 -0
- data/vendor/assets/js/plugins/foundation.abide.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.abide.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordion.js +661 -0
- data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordion.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.js +616 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.core.js +1180 -0
- data/vendor/assets/js/plugins/foundation.core.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.core.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.drilldown.js +968 -0
- data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.drilldown.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdown.js +1328 -0
- data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdown.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.js +799 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.equalizer.js +614 -0
- data/vendor/assets/js/plugins/foundation.equalizer.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.equalizer.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.equalizer.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.interchange.js +796 -0
- data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.interchange.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.magellan.js +850 -0
- data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.magellan.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.js +1318 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.orbit.js +886 -0
- data/vendor/assets/js/plugins/foundation.orbit.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.orbit.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.orbit.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +585 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.js +413 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.js +394 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.reveal.js +1275 -0
- data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.reveal.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.slider.js +1346 -0
- data/vendor/assets/js/plugins/foundation.slider.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.slider.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.js +359 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.sticky.js +1105 -0
- data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.sticky.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tabs.js +792 -0
- data/vendor/assets/js/plugins/foundation.tabs.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tabs.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.tabs.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.toggler.js +704 -0
- data/vendor/assets/js/plugins/foundation.toggler.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.toggler.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.toggler.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tooltip.js +1333 -0
- data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tooltip.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.box.js +354 -0
- data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.box.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.js +218 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.js +341 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +509 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.motion.js +274 -0
- data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.motion.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.nest.js +240 -0
- data/vendor/assets/js/plugins/foundation.util.nest.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.nest.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.timer.js +226 -0
- data/vendor/assets/js/plugins/foundation.util.timer.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.timer.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.timer.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.touch.js +365 -0
- data/vendor/assets/js/plugins/foundation.util.touch.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.touch.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.touch.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.js +470 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.min.js.map +1 -0
- data/vendor/assets/scss/_global.scss +244 -0
- data/vendor/assets/scss/components/_accordion-menu.scss +174 -0
- data/vendor/assets/scss/components/_accordion.scss +164 -0
- data/vendor/assets/scss/components/_badge.scss +63 -0
- data/vendor/assets/scss/components/_breadcrumbs.scss +119 -0
- data/vendor/assets/scss/components/_button-group.scss +304 -0
- data/vendor/assets/scss/components/_button.scss +428 -0
- data/vendor/assets/scss/components/_callout.scss +108 -0
- data/vendor/assets/scss/components/_card.scss +129 -0
- data/vendor/assets/scss/components/_close-button.scss +127 -0
- data/vendor/assets/scss/components/_drilldown.scss +140 -0
- data/vendor/assets/scss/components/_dropdown-menu.scss +279 -0
- data/vendor/assets/scss/components/_dropdown.scss +82 -0
- data/vendor/assets/scss/components/_flex-video.scss +1 -0
- data/vendor/assets/scss/components/_flex.scss +119 -0
- data/vendor/assets/scss/components/_float.scss +27 -0
- data/vendor/assets/scss/components/_label.scss +64 -0
- data/vendor/assets/scss/components/_media-object.scss +114 -0
- data/vendor/assets/scss/components/_menu-icon.scss +9 -0
- data/vendor/assets/scss/components/_menu.scss +495 -0
- data/vendor/assets/scss/components/_off-canvas.scss +511 -0
- data/vendor/assets/scss/components/_orbit.scss +197 -0
- data/vendor/assets/scss/components/_pagination.scss +201 -0
- data/vendor/assets/scss/components/_progress-bar.scss +63 -0
- data/vendor/assets/scss/components/_responsive-embed.scss +57 -0
- data/vendor/assets/scss/components/_reveal.scss +185 -0
- data/vendor/assets/scss/components/_slider.scss +137 -0
- data/vendor/assets/scss/components/_sticky.scss +39 -0
- data/vendor/assets/scss/components/_switch.scss +261 -0
- data/vendor/assets/scss/components/_table.scss +328 -0
- data/vendor/assets/scss/components/_tabs.scss +193 -0
- data/vendor/assets/scss/components/_thumbnail.scss +67 -0
- data/vendor/assets/scss/components/_title-bar.scss +84 -0
- data/vendor/assets/scss/components/_tooltip.scss +160 -0
- data/vendor/assets/scss/components/_top-bar.scss +175 -0
- data/vendor/assets/scss/components/_visibility.scss +135 -0
- data/vendor/assets/scss/forms/_checkbox.scss +41 -0
- data/vendor/assets/scss/forms/_error.scss +89 -0
- data/vendor/assets/scss/forms/_fieldset.scss +53 -0
- data/vendor/assets/scss/forms/_forms.scss +34 -0
- data/vendor/assets/scss/forms/_help-text.scss +30 -0
- data/vendor/assets/scss/forms/_input-group.scss +142 -0
- data/vendor/assets/scss/forms/_label.scss +50 -0
- data/vendor/assets/scss/forms/_meter.scss +116 -0
- data/vendor/assets/scss/forms/_progress.scss +94 -0
- data/vendor/assets/scss/forms/_range.scss +149 -0
- data/vendor/assets/scss/forms/_select.scss +90 -0
- data/vendor/assets/scss/forms/_text.scss +179 -0
- data/vendor/assets/scss/foundation.scss +155 -0
- data/vendor/assets/scss/grid/_classes.scss +189 -0
- data/vendor/assets/scss/grid/_column.scss +78 -0
- data/vendor/assets/scss/grid/_flex-grid.scss +260 -0
- data/vendor/assets/scss/grid/_grid.scss +48 -0
- data/vendor/assets/scss/grid/_gutter.scss +67 -0
- data/vendor/assets/scss/grid/_layout.scss +76 -0
- data/vendor/assets/scss/grid/_position.scss +100 -0
- data/vendor/assets/scss/grid/_row.scss +99 -0
- data/vendor/assets/scss/grid/_size.scss +24 -0
- data/vendor/assets/scss/motion-ui/_classes.scss +109 -0
- data/vendor/assets/scss/motion-ui/_settings.scss +62 -0
- data/vendor/assets/scss/motion-ui/effects/_fade.scss +29 -0
- data/vendor/assets/scss/motion-ui/effects/_hinge.scss +66 -0
- data/vendor/assets/scss/motion-ui/effects/_shake.scss +15 -0
- data/vendor/assets/scss/motion-ui/effects/_slide.scss +42 -0
- data/vendor/assets/scss/motion-ui/effects/_spin.scss +29 -0
- data/vendor/assets/scss/motion-ui/effects/_wiggle.scss +13 -0
- data/vendor/assets/scss/motion-ui/effects/_zoom.scss +15 -0
- data/vendor/assets/scss/motion-ui/motion-ui.scss +31 -0
- data/vendor/assets/scss/motion-ui/transitions/_fade.scss +30 -0
- data/vendor/assets/scss/motion-ui/transitions/_hinge.scss +44 -0
- data/vendor/assets/scss/motion-ui/transitions/_slide.scss +43 -0
- data/vendor/assets/scss/motion-ui/transitions/_spin.scss +40 -0
- data/vendor/assets/scss/motion-ui/transitions/_zoom.scss +41 -0
- data/vendor/assets/scss/motion-ui/util/_animation.scss +7 -0
- data/vendor/assets/scss/motion-ui/util/_args.scss +15 -0
- data/vendor/assets/scss/motion-ui/util/_function.scss +94 -0
- data/vendor/assets/scss/motion-ui/util/_keyframe.scss +136 -0
- data/vendor/assets/scss/motion-ui/util/_selector.scss +23 -0
- data/vendor/assets/scss/motion-ui/util/_series.scss +57 -0
- data/vendor/assets/scss/motion-ui/util/_string.scss +36 -0
- data/vendor/assets/scss/motion-ui/util/_transition.scss +45 -0
- data/vendor/assets/scss/motion-ui/util/_unit.scss +7 -0
- data/vendor/assets/scss/prototype/_arrow.scss +36 -0
- data/vendor/assets/scss/prototype/_border-box.scss +35 -0
- data/vendor/assets/scss/prototype/_border-none.scss +35 -0
- data/vendor/assets/scss/prototype/_bordered.scss +54 -0
- data/vendor/assets/scss/prototype/_box.scss +23 -0
- data/vendor/assets/scss/prototype/_display.scss +50 -0
- data/vendor/assets/scss/prototype/_font-styling.scss +95 -0
- data/vendor/assets/scss/prototype/_list-style-type.scss +95 -0
- data/vendor/assets/scss/prototype/_overflow.scss +72 -0
- data/vendor/assets/scss/prototype/_position.scss +114 -0
- data/vendor/assets/scss/prototype/_prototype.scss +87 -0
- data/vendor/assets/scss/prototype/_relation.scss +157 -0
- data/vendor/assets/scss/prototype/_rotate.scss +31 -0
- data/vendor/assets/scss/prototype/_rounded.scss +61 -0
- data/vendor/assets/scss/prototype/_separator.scss +96 -0
- data/vendor/assets/scss/prototype/_shadow.scss +43 -0
- data/vendor/assets/scss/prototype/_sizing.scss +73 -0
- data/vendor/assets/scss/prototype/_spacing.scss +179 -0
- data/vendor/assets/scss/prototype/_text-decoration.scss +48 -0
- data/vendor/assets/scss/prototype/_text-transformation.scss +48 -0
- data/vendor/assets/scss/prototype/_text-utilities.scss +88 -0
- data/vendor/assets/scss/settings/_settings.scss +895 -0
- data/vendor/assets/scss/typography/_alignment.scss +22 -0
- data/vendor/assets/scss/typography/_base.scss +474 -0
- data/vendor/assets/scss/typography/_helpers.scss +180 -0
- data/vendor/assets/scss/typography/_print.scss +96 -0
- data/vendor/assets/scss/typography/_typography.scss +26 -0
- data/vendor/assets/scss/util/_breakpoint.scss +435 -0
- data/vendor/assets/scss/util/_color.scss +139 -0
- data/vendor/assets/scss/util/_direction.scss +31 -0
- data/vendor/assets/scss/util/_flex.scss +90 -0
- data/vendor/assets/scss/util/_math.scss +147 -0
- data/vendor/assets/scss/util/_mixins.scss +373 -0
- data/vendor/assets/scss/util/_selector.scss +41 -0
- data/vendor/assets/scss/util/_typography.scss +26 -0
- data/vendor/assets/scss/util/_unit.scss +152 -0
- data/vendor/assets/scss/util/_util.scss +14 -0
- data/vendor/assets/scss/util/_value.scss +200 -0
- data/vendor/assets/scss/vendor/normalize.scss +281 -0
- data/vendor/assets/scss/xy-grid/_cell.scss +272 -0
- data/vendor/assets/scss/xy-grid/_classes.scss +493 -0
- data/vendor/assets/scss/xy-grid/_collapse.scss +75 -0
- data/vendor/assets/scss/xy-grid/_frame.scss +86 -0
- data/vendor/assets/scss/xy-grid/_grid.scss +37 -0
- data/vendor/assets/scss/xy-grid/_gutters.scss +45 -0
- data/vendor/assets/scss/xy-grid/_layout.scss +36 -0
- data/vendor/assets/scss/xy-grid/_position.scss +55 -0
- data/vendor/assets/scss/xy-grid/_xy-grid.scss +51 -0
- metadata +342 -83
- data/update-gem.sh +0 -20
- data/vendor/assets/javascripts/foundation/foundation.abide.js +0 -426
- data/vendor/assets/javascripts/foundation/foundation.accordion.js +0 -125
- data/vendor/assets/javascripts/foundation/foundation.alert.js +0 -43
- data/vendor/assets/javascripts/foundation/foundation.clearing.js +0 -586
- data/vendor/assets/javascripts/foundation/foundation.dropdown.js +0 -468
- data/vendor/assets/javascripts/foundation/foundation.equalizer.js +0 -104
- data/vendor/assets/javascripts/foundation/foundation.interchange.js +0 -360
- data/vendor/assets/javascripts/foundation/foundation.joyride.js +0 -935
- data/vendor/assets/javascripts/foundation/foundation.js +0 -732
- data/vendor/assets/javascripts/foundation/foundation.magellan.js +0 -214
- data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +0 -225
- data/vendor/assets/javascripts/foundation/foundation.orbit.js +0 -476
- data/vendor/assets/javascripts/foundation/foundation.reveal.js +0 -522
- data/vendor/assets/javascripts/foundation/foundation.slider.js +0 -296
- data/vendor/assets/javascripts/foundation/foundation.tab.js +0 -247
- data/vendor/assets/javascripts/foundation/foundation.tooltip.js +0 -348
- data/vendor/assets/javascripts/foundation/foundation.topbar.js +0 -458
- data/vendor/assets/javascripts/foundation.js +0 -17
- data/vendor/assets/javascripts/vendor/modernizr.js +0 -1406
- data/vendor/assets/stylesheets/foundation/_functions.scss +0 -156
- data/vendor/assets/stylesheets/foundation/_settings.scss +0 -1489
- data/vendor/assets/stylesheets/foundation/components/_accordion.scss +0 -161
- data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +0 -128
- data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +0 -133
- data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +0 -132
- data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +0 -208
- data/vendor/assets/stylesheets/foundation/components/_buttons.scss +0 -261
- data/vendor/assets/stylesheets/foundation/components/_clearing.scss +0 -260
- data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +0 -130
- data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +0 -269
- data/vendor/assets/stylesheets/foundation/components/_flex-video.scss +0 -51
- data/vendor/assets/stylesheets/foundation/components/_forms.scss +0 -607
- data/vendor/assets/stylesheets/foundation/components/_global.scss +0 -566
- data/vendor/assets/stylesheets/foundation/components/_grid.scss +0 -292
- data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +0 -460
- data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +0 -58
- data/vendor/assets/stylesheets/foundation/components/_joyride.scss +0 -220
- data/vendor/assets/stylesheets/foundation/components/_keystrokes.scss +0 -60
- data/vendor/assets/stylesheets/foundation/components/_labels.scss +0 -106
- data/vendor/assets/stylesheets/foundation/components/_magellan.scss +0 -34
- data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +0 -606
- data/vendor/assets/stylesheets/foundation/components/_orbit.scss +0 -388
- data/vendor/assets/stylesheets/foundation/components/_pagination.scss +0 -163
- data/vendor/assets/stylesheets/foundation/components/_panels.scss +0 -107
- data/vendor/assets/stylesheets/foundation/components/_pricing-tables.scss +0 -150
- data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +0 -85
- data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +0 -177
- data/vendor/assets/stylesheets/foundation/components/_reveal.scss +0 -212
- data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +0 -120
- data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +0 -203
- data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +0 -125
- data/vendor/assets/stylesheets/foundation/components/_switches.scss +0 -241
- data/vendor/assets/stylesheets/foundation/components/_tables.scss +0 -135
- data/vendor/assets/stylesheets/foundation/components/_tabs.scss +0 -142
- data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +0 -66
- data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +0 -142
- data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +0 -745
- data/vendor/assets/stylesheets/foundation/components/_type.scss +0 -525
- data/vendor/assets/stylesheets/foundation/components/_visibility.scss +0 -425
- data/vendor/assets/stylesheets/foundation.scss +0 -42
- data/vendor/assets/stylesheets/normalize.scss +0 -424
@@ -0,0 +1,31 @@
|
|
1
|
+
// Motion UI by ZURB
|
2
|
+
// foundation.zurb.com/motion-ui
|
3
|
+
// Licensed under MIT Open Source
|
4
|
+
|
5
|
+
@import 'settings';
|
6
|
+
|
7
|
+
@import 'util/animation';
|
8
|
+
@import 'util/args';
|
9
|
+
@import 'util/function';
|
10
|
+
@import 'util/keyframe';
|
11
|
+
@import 'util/selector';
|
12
|
+
@import 'util/series';
|
13
|
+
@import 'util/transition';
|
14
|
+
@import 'util/unit';
|
15
|
+
@import 'util/string';
|
16
|
+
|
17
|
+
@import 'effects/fade';
|
18
|
+
@import 'effects/hinge';
|
19
|
+
@import 'effects/spin';
|
20
|
+
@import 'effects/zoom';
|
21
|
+
@import 'effects/shake';
|
22
|
+
@import 'effects/slide';
|
23
|
+
@import 'effects/wiggle';
|
24
|
+
|
25
|
+
@import 'transitions/fade';
|
26
|
+
@import 'transitions/hinge';
|
27
|
+
@import 'transitions/zoom';
|
28
|
+
@import 'transitions/slide';
|
29
|
+
@import 'transitions/spin';
|
30
|
+
|
31
|
+
@import 'classes';
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/// Creates a fade transition by adjusting the opacity of the element.
|
2
|
+
/// @param {Keyword} $state [in] - State to transition to.
|
3
|
+
/// @param {Number} $from [null] - Opacity to start at. Must be a number between 0 and 1. By default `0` and `1` for `in` and `out` states respectively.
|
4
|
+
/// @param {Number} $to [null] - Opacity to end on. By default `1` and `0` for `in` and `out` states respectively.
|
5
|
+
/// @param {Keyword} $duration [null] - Length (speed) of the transition.
|
6
|
+
/// @param {Keyword|Function} $timing [null] - Easing of the transition.
|
7
|
+
/// @param {Duration} $delay [null] - Delay in seconds or milliseconds before the transition starts.
|
8
|
+
@mixin mui-fade(
|
9
|
+
$state: in,
|
10
|
+
$from: null,
|
11
|
+
$to: null,
|
12
|
+
$duration: null,
|
13
|
+
$timing: null,
|
14
|
+
$delay: null
|
15
|
+
) {
|
16
|
+
$from: if($from != null, $from, if($state == in, 0, 1));
|
17
|
+
$to: if($to != null, $to, if($state == in, 1, 0));
|
18
|
+
$fade: fade($from, $to);
|
19
|
+
|
20
|
+
@include transition-start($state) {
|
21
|
+
@include transition-basics($duration, $timing, $delay);
|
22
|
+
@include -mui-keyframe-get($fade, 0);
|
23
|
+
|
24
|
+
transition-property: opacity;
|
25
|
+
}
|
26
|
+
|
27
|
+
@include transition-end($state) {
|
28
|
+
@include -mui-keyframe-get($fade, 100);
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
/// Creates a hinge transition by rotating the element.
|
2
|
+
/// @param {Keyword} $state [in] - State to transition to.
|
3
|
+
/// @param {Keyword} $from [left] - Edge of the element to rotate from. Can be `top`, `right`, `bottom`, or `left`.
|
4
|
+
/// @param {Keyword} $axis [edge] - Axis of the element to rotate on. Can be `edge` or `center`.
|
5
|
+
/// @param {Length} $perspective [2000px] - Perceived distance between the viewer and the element. A higher number will make the rotation effect more pronounced.
|
6
|
+
/// @param {Keyword} $turn-origin [null] - Side of the element to start the rotation from. Can be `from-back` or `from-front`. By default `from-back` and `from-front` for `in` and `out` states respectively.
|
7
|
+
/// @param {Boolean} $fade [true] - Set to `true` to fade the element in or out simultaneously.
|
8
|
+
/// @param {Duration} $duration [null] - Length (speed) of the transition.
|
9
|
+
/// @param {Keyword|Function} $timing [null] - Easing of the transition.
|
10
|
+
/// @param {Duration} $delay [null] - Delay in seconds or milliseconds before the transition starts.
|
11
|
+
@mixin mui-hinge (
|
12
|
+
$state: in,
|
13
|
+
$from: left,
|
14
|
+
$axis: edge,
|
15
|
+
$perspective: 2000px,
|
16
|
+
$turn-origin: null,
|
17
|
+
$fade: map-get($motion-ui-settings, hinge-and-fade),
|
18
|
+
$duration: null,
|
19
|
+
$timing: null,
|
20
|
+
$delay: null
|
21
|
+
) {
|
22
|
+
$turn-origin: if($turn-origin != null, $turn-origin, if($state == in, from-back, from-front));
|
23
|
+
$hinge: hinge($state, $from, $axis, $perspective, $turn-origin);
|
24
|
+
|
25
|
+
@include transition-start($state) {
|
26
|
+
@include transition-basics($duration, $timing, $delay);
|
27
|
+
@include -mui-keyframe-get($hinge, 0);
|
28
|
+
|
29
|
+
@if $fade {
|
30
|
+
transition-property: transform, opacity;
|
31
|
+
opacity: if($state == in, 0, 1);
|
32
|
+
} @else {
|
33
|
+
transition-property: transform, opacity;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
@include transition-end($state) {
|
38
|
+
@include -mui-keyframe-get($hinge, 100);
|
39
|
+
|
40
|
+
@if $fade {
|
41
|
+
opacity: if($state == in, 1, 0);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/// Creates a sliding transition by translating the element horizontally or vertically.
|
2
|
+
/// @param {Keyword} $state [in] - State to transition to.
|
3
|
+
/// @param {Keyword} $direction [null] - Direction to slide to. Can be `up`, `right`, `down`, or `left`. By default `left` and `right` for `in` and `out` states respectively.
|
4
|
+
/// @param {Length} $amount [100%] - Length of the slide as a percentage value.
|
5
|
+
/// @param {Boolean} $fade [false] - Set to `true` to fade the element in or out simultaneously.
|
6
|
+
/// @param {Duration} $duration [null] - Length (speed) of the transition.
|
7
|
+
/// @param {Keyword|Function} $timing [null] - Easing of the transition.
|
8
|
+
/// @param {Duration} $delay [null] - Delay in seconds or milliseconds before the transition starts.
|
9
|
+
@mixin mui-slide (
|
10
|
+
$state: in,
|
11
|
+
$direction: null,
|
12
|
+
$amount: 100%,
|
13
|
+
$fade: map-get($motion-ui-settings, slide-and-fade),
|
14
|
+
$duration: null,
|
15
|
+
$timing: null,
|
16
|
+
$delay: null
|
17
|
+
) {
|
18
|
+
$direction: if($direction != null, $direction, if($state == in, left, right));
|
19
|
+
$slide: slide($state, $direction, $amount);
|
20
|
+
|
21
|
+
// CSS Output
|
22
|
+
@include transition-start($state) {
|
23
|
+
@include transition-basics($duration, $timing, $delay);
|
24
|
+
@include -mui-keyframe-get($slide, 0);
|
25
|
+
|
26
|
+
@if $fade {
|
27
|
+
transition-property: transform, opacity;
|
28
|
+
opacity: if($state == in, 0, 1);
|
29
|
+
} @else {
|
30
|
+
transition-property: transform, opacity;
|
31
|
+
}
|
32
|
+
|
33
|
+
backface-visibility: hidden;
|
34
|
+
}
|
35
|
+
|
36
|
+
@include transition-end($state) {
|
37
|
+
@include -mui-keyframe-get($slide, 100);
|
38
|
+
|
39
|
+
@if $fade {
|
40
|
+
opacity: if($state == in, 1, 0);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
/// Creates a spinning transition by rotating the element. The `turn` unit is used to specify how far to rotate. `1turn` is equal to a 360-degree spin.
|
2
|
+
/// @param {Keyword} $state [in] - State to transition to.
|
3
|
+
/// @param {Keyword} $direction [null] - Direction to spin. Should be `cw` (clockwise) or `ccw` (counterclockwise). By default `cw` and `ccw` for `in` and `out` states respectively.
|
4
|
+
/// @param {Number} $amount [0.75turn] - Amount to element the element.
|
5
|
+
/// @param {Boolean} $fade [false] - Set to `true` to fade the element in or out simultaneously.
|
6
|
+
/// @param {Duration} $duration [null] - Length (speed) of the transition.
|
7
|
+
/// @param {Keyword|Function} $timing [null] - Easing of the transition.
|
8
|
+
/// @param {Duration} $delay [null] - Delay in seconds or milliseconds before the transition starts.
|
9
|
+
@mixin mui-spin(
|
10
|
+
$state: in,
|
11
|
+
$direction: cw,
|
12
|
+
$amount: 0.75turn,
|
13
|
+
$fade: map-get($motion-ui-settings, spin-and-fade),
|
14
|
+
$duration: null,
|
15
|
+
$timing: null,
|
16
|
+
$delay: null
|
17
|
+
) {
|
18
|
+
$direction: if($direction != null, $direction, if($state == in, cw, ccw));
|
19
|
+
$spin: spin($state, $direction, $amount);
|
20
|
+
|
21
|
+
@include transition-start($state) {
|
22
|
+
@include transition-basics($duration, $timing, $delay);
|
23
|
+
@include -mui-keyframe-get($spin, 0);
|
24
|
+
|
25
|
+
@if $fade {
|
26
|
+
transition-property: transform, opacity;
|
27
|
+
opacity: if($state == in, 0, 1);
|
28
|
+
} @else {
|
29
|
+
transition-property: transform, opacity;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
@include transition-end($state) {
|
34
|
+
@include -mui-keyframe-get($spin, 100);
|
35
|
+
|
36
|
+
@if $fade {
|
37
|
+
opacity: if($state == in, 1, 0);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
/// Creates a scaling transition. A scale of `1` means the element is the same size. Larger numbers make the element bigger, while numbers less than 1 make the element smaller.
|
2
|
+
/// @param {Keyword} $state [in] - State to transition to.
|
3
|
+
/// @param {Number} $from [null] - Size to start at. By default `0` and `1` for `in` and `out` states respectively.
|
4
|
+
/// @param {Number} $to [null] - Size to end at. By default `1` and `0` for `in` and `out` states respectively.
|
5
|
+
/// @param {Boolean} $fade [true] - Set to `true` to fade the element in or out simultaneously.
|
6
|
+
/// @param {Duration} $duration [null] - Length (speed) of the transition.
|
7
|
+
/// @param {Keyword|Function} $timing [null] - Easing of the transition.
|
8
|
+
/// @param {Duration} $delay [null] - Delay in seconds or milliseconds before the transition starts.
|
9
|
+
@mixin mui-zoom(
|
10
|
+
$state: in,
|
11
|
+
$from: null,
|
12
|
+
$to: null,
|
13
|
+
$fade: map-get($motion-ui-settings, scale-and-fade),
|
14
|
+
$duration: null,
|
15
|
+
$timing: null,
|
16
|
+
$delay: null
|
17
|
+
) {
|
18
|
+
$from: if($from != null, $from, if($state == in, 0, 1));
|
19
|
+
$to: if($to != null, $to, if($state == in, 1, 0));
|
20
|
+
$scale: zoom($from, $to);
|
21
|
+
|
22
|
+
@include transition-start($state) {
|
23
|
+
@include transition-basics($duration, $timing, $delay);
|
24
|
+
@include -mui-keyframe-get($scale, 0);
|
25
|
+
|
26
|
+
@if $fade {
|
27
|
+
transition-property: transform, opacity;
|
28
|
+
opacity: if($state == in, 0, 1);
|
29
|
+
} @else {
|
30
|
+
transition-property: transform, opacity;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
@include transition-end($state) {
|
35
|
+
@include -mui-keyframe-get($scale, 100);
|
36
|
+
|
37
|
+
@if $fade {
|
38
|
+
opacity: if($state == in, 1, 0);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/// Creates a keyframe from one or more effect functions and assigns it to the element by adding the `animation-name` property.
|
2
|
+
/// @param {Arglist} $effects... - One or more effect functions to build the keyframe with.
|
3
|
+
@mixin mui-animation($args...) {
|
4
|
+
$name: map-get(-mui-process-args($args...), name);
|
5
|
+
@include mui-keyframes($name, $args...);
|
6
|
+
animation-name: unquote($name);
|
7
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/// Processes a series of keyframe function arguments.
|
2
|
+
/// @access private
|
3
|
+
@function -mui-process-args($args...) {
|
4
|
+
@if length($args) == 1 {
|
5
|
+
$arg: nth($args, 1);
|
6
|
+
|
7
|
+
@if -mui-is-function($arg) {
|
8
|
+
@return -mui-safe-call($arg);
|
9
|
+
} @else if type-of($arg) == 'map' {
|
10
|
+
@return $arg;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
@return -mui-keyframe-combine($args...);
|
15
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
////
|
2
|
+
/// In order to improve modular namespacing, LibSass 4 only accepts first-class
|
3
|
+
/// functions as argument so functions are called in their own context.
|
4
|
+
/// In most case, `get-function()` must only be used by the user in its own
|
5
|
+
/// context. It is used in this library to keep a maximum compatibility.
|
6
|
+
/// End developer must be encouraged to use first-class functions.
|
7
|
+
///
|
8
|
+
/// @link http://oddbird.net/2017/03/30/safe-get
|
9
|
+
/// @link http://sass.logdown.com/posts/809572-sass-35-release-candidate
|
10
|
+
////
|
11
|
+
|
12
|
+
///
|
13
|
+
/// Return if a given value is a function or a function name string.
|
14
|
+
///
|
15
|
+
/// @access private
|
16
|
+
///
|
17
|
+
/// @param {*} $value - Value to test
|
18
|
+
/// @return {Boolean}
|
19
|
+
///
|
20
|
+
@function -mui-is-function($value) {
|
21
|
+
@return type-of($value) == 'function' or type-of($value) == 'string';
|
22
|
+
}
|
23
|
+
|
24
|
+
///
|
25
|
+
/// Return if a given value is callable.
|
26
|
+
///
|
27
|
+
/// @access private
|
28
|
+
///
|
29
|
+
/// @param {*} $value - Value to test
|
30
|
+
/// @return {Boolean}
|
31
|
+
///
|
32
|
+
@function -mui-is-callable($value) {
|
33
|
+
@return type-of($value) == 'function' or (type-of($value) == 'string' and function-exists($value));
|
34
|
+
}
|
35
|
+
|
36
|
+
///
|
37
|
+
/// Check if a given value is callable and throw the appropriate error otherwise
|
38
|
+
///
|
39
|
+
/// @access private
|
40
|
+
///
|
41
|
+
/// @param {*} $value - Value to check
|
42
|
+
/// @return {Boolean}
|
43
|
+
///
|
44
|
+
@function -mui-assert-function($value) {
|
45
|
+
@if -mui-is-callable($value) {
|
46
|
+
@return true;
|
47
|
+
} @else if (type-of($value) == 'string' and function-exists('get-function') == true) {
|
48
|
+
@error 'Assertion Error: function name string "#{$value}" cannot be found. You may need to use `get-function()` and first-class functions instead. See http://oddbird.net/2017/03/30/safe-get';
|
49
|
+
} @else if (type-of($value) == 'string' and function-exists('get-function') == false) {
|
50
|
+
@error 'Assertion Error: function name string "#{$value}" cannot be found.';
|
51
|
+
} @else {
|
52
|
+
@error 'Assertion Error: #{$value} (#{type-of($value)}) is not a function.';
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
///
|
57
|
+
/// Return a reference to the given function or function name string compatible
|
58
|
+
/// with the current Sass version.
|
59
|
+
///
|
60
|
+
/// * For Sass < 3.5, return the passed argument
|
61
|
+
/// * For Sass >= 3.5, return a first-class function if a function name string
|
62
|
+
/// was passed
|
63
|
+
///
|
64
|
+
/// @access private
|
65
|
+
///
|
66
|
+
/// @param {Function|String} - $func - Function or name of the function
|
67
|
+
/// @return {Function|String} Function or name of the function following
|
68
|
+
/// the support of first-class functions.
|
69
|
+
///
|
70
|
+
@function -mui-safe-get-function($func) {
|
71
|
+
@if -mui-assert-function($func) {
|
72
|
+
@if function-exists('get-function') and type-of($func) == 'string' {
|
73
|
+
@return get-function($func);
|
74
|
+
} @else {
|
75
|
+
@return $func;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
///
|
81
|
+
/// Polyfill for the `call` function supporting both functions and strings.
|
82
|
+
///
|
83
|
+
/// @access private
|
84
|
+
///
|
85
|
+
/// @param {Function|String} $func - Function or name of the function to call
|
86
|
+
/// @param {Arglist} $args... - Arguments to call the function with
|
87
|
+
///
|
88
|
+
/// @return {*}
|
89
|
+
///
|
90
|
+
@function -mui-safe-call($func, $args...) {
|
91
|
+
@if -mui-assert-function($func) {
|
92
|
+
@return call(-mui-safe-get-function($func), $args...);
|
93
|
+
}
|
94
|
+
}
|
@@ -0,0 +1,136 @@
|
|
1
|
+
// Internal counter for creating unique keyframe names
|
2
|
+
$-mui-custom: 0;
|
3
|
+
|
4
|
+
/// Creates a keyframe from one or more effect functions. Use this function instead of `mui-animation` if you want to create a keyframe animation *without* automatically assigning it to the element.
|
5
|
+
/// @param {String} $name - Name of the keyframe.
|
6
|
+
/// @param {Arglist} $effects... - One or more effect functions to build the keyframe with.
|
7
|
+
@mixin mui-keyframes($name, $effects...) {
|
8
|
+
$obj: -mui-process-args($effects...);
|
9
|
+
$obj: map-remove($obj, name);
|
10
|
+
|
11
|
+
@keyframes #{$name} {
|
12
|
+
// Now iterate through each keyframe percentage
|
13
|
+
@each $pct, $props in $obj {
|
14
|
+
#{-mui-keyframe-pct($pct)} {
|
15
|
+
// Lastly, iterate through each CSS property within a percentage and print it out
|
16
|
+
@each $prop, $value in $props {
|
17
|
+
#{$prop}: #{$value};
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
/// Creates a string for a CSS keyframe, by converting a list of numbers to a comma-separated list of percentage values.
|
25
|
+
/// @param {Number|List} $input - List of numbers to use.
|
26
|
+
/// @return {String} A set of comma-separated percentage values.
|
27
|
+
/// @access private
|
28
|
+
@function -mui-keyframe-pct($input) {
|
29
|
+
$output: ();
|
30
|
+
|
31
|
+
@if type-of($input) == 'number' {
|
32
|
+
$output: ($input * 1%);
|
33
|
+
} @else if type-of($input) == 'list' {
|
34
|
+
@each $i in $input {
|
35
|
+
$output: append($output, ($i * 1%), comma);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
@return "#{$output}";
|
40
|
+
}
|
41
|
+
|
42
|
+
/// Prints the CSS properties from a specific key in a keyframes map. Used to borrow CSS from keyframe functions for use in transitions.
|
43
|
+
/// @param {Map} $kf - Keyframe map to extract from.
|
44
|
+
/// @param {Number} $key - Key in the map to print the CSS of.
|
45
|
+
/// @access private
|
46
|
+
@mixin -mui-keyframe-get($kf, $key) {
|
47
|
+
$map: map-get($kf, $key);
|
48
|
+
|
49
|
+
@each $prop, $value in $map or () {
|
50
|
+
// Some keyframe maps store transforms as quoted strings
|
51
|
+
@if type-of($value) == 'string' {
|
52
|
+
$value: unquote($value);
|
53
|
+
}
|
54
|
+
#{$prop}: $value;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
/// Reformats a map containing keys with a list of values, so that each key is a single value.
|
59
|
+
/// @param {Map} $map - Map to split up.
|
60
|
+
/// @return {Map} A reformatted map.
|
61
|
+
/// @access private
|
62
|
+
@function -mui-keyframe-split($map) {
|
63
|
+
$new-map: ();
|
64
|
+
|
65
|
+
// Split keys with multiple values into individual keys
|
66
|
+
@each $key, $item in $map {
|
67
|
+
$key-type: type-of($key);
|
68
|
+
|
69
|
+
@if $key-type == 'number' {
|
70
|
+
$new-map: map-merge($new-map, ($key: $item));
|
71
|
+
} @else if $key-type == 'list' {
|
72
|
+
@each $k in $key {
|
73
|
+
$new-map: map-merge($new-map, ($k: $item));
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
@return $new-map;
|
79
|
+
}
|
80
|
+
|
81
|
+
/// Combines a series of keyframe objects into one.
|
82
|
+
/// @param {Arglist} $maps... - A series of maps to merge, as individual parameters.
|
83
|
+
/// @return {Map} A combined keyframe object.
|
84
|
+
/// @access private
|
85
|
+
@function -mui-keyframe-combine($maps...) {
|
86
|
+
$new-map: ();
|
87
|
+
|
88
|
+
// Iterate through each map passed in
|
89
|
+
@each $map in $maps {
|
90
|
+
@if -mui-is-function($map) {
|
91
|
+
$map: -mui-safe-call($map);
|
92
|
+
}
|
93
|
+
|
94
|
+
$map: -mui-keyframe-split($map);
|
95
|
+
|
96
|
+
// Iterate through each keyframe in the map
|
97
|
+
// $key is the keyframe percentage
|
98
|
+
// $value is a map of CSS properties
|
99
|
+
@each $key, $value in $map {
|
100
|
+
$new-value: ();
|
101
|
+
|
102
|
+
@if map-has-key($new-map, $key) {
|
103
|
+
// If the map already has the keyframe %, append the new property
|
104
|
+
$new-value: -mui-merge-properties(map-get($new-map, $key), $value);
|
105
|
+
} @else {
|
106
|
+
// Otherwise, create a new map with the new property
|
107
|
+
$new-value: $value;
|
108
|
+
}
|
109
|
+
|
110
|
+
// Finally, merge the modified keyframe value into the output map
|
111
|
+
$new-map: map-merge($new-map, ($key: $new-value));
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
// Make a name for the keyframes
|
116
|
+
$-mui-custom: $-mui-custom + 1 !global;
|
117
|
+
$map-name: (name: 'custom-#{$-mui-custom}');
|
118
|
+
$new-map: map-merge($new-map, $map-name);
|
119
|
+
|
120
|
+
@return $new-map;
|
121
|
+
}
|
122
|
+
|
123
|
+
/// Combines two maps of CSS properties into one map. If both maps have a transform property, the values from each will be combined into one property.
|
124
|
+
/// @param {Map} $one - First map to merge.
|
125
|
+
/// @param {Map} $two - Second map to merge.
|
126
|
+
/// @return {Map} A combined map.
|
127
|
+
/// @access private
|
128
|
+
@function -mui-merge-properties($one, $two) {
|
129
|
+
@if map-has-key($one, transform) and map-has-key($two, transform) {
|
130
|
+
$transform: join(map-get($one, transform), map-get($two, transform));
|
131
|
+
$one: map-merge($one, (transform: $transform));
|
132
|
+
$two: map-remove($two, transform);
|
133
|
+
}
|
134
|
+
|
135
|
+
@return map-merge($one, $two);
|
136
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/// Builds a selector for a motion class, using the settings defined in the `$motion-ui-classes` and `$motion-ui-states` maps.
|
2
|
+
/// @param {String|List} $states - One or more strings that correlate to a state.
|
3
|
+
/// @param {Boolean} $active - Defines if the selector is for the setup or active class.
|
4
|
+
/// @return {String} A selector that can be interpolated into your Sass code.
|
5
|
+
/// @access private
|
6
|
+
@function -mui-build-selector($states, $active: false) {
|
7
|
+
$return: '';
|
8
|
+
$chain: map-get($motion-ui-classes, chain);
|
9
|
+
$prefix: map-get($motion-ui-classes, prefix);
|
10
|
+
$suffix: map-get($motion-ui-classes, active);
|
11
|
+
|
12
|
+
@each $sel in $states {
|
13
|
+
$return: $return + if($chain, '&.', '#{&}-') + $prefix + $sel;
|
14
|
+
|
15
|
+
@if $active {
|
16
|
+
$return: $return + if($chain, '.', '#{&}-') + $prefix + $sel + $suffix;
|
17
|
+
}
|
18
|
+
|
19
|
+
$return: $return + ', ';
|
20
|
+
}
|
21
|
+
|
22
|
+
@return str-slice($return, 1, -3);
|
23
|
+
}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
$-mui-queue: ();
|
2
|
+
|
3
|
+
/// Creates a new animation queue.
|
4
|
+
/// @param {Duration} $delay [0s] - Delay in seconds or milliseconds to place at the front of the animation queue.
|
5
|
+
@mixin mui-series($delay: 0s) {
|
6
|
+
$-mui-queue: () !global;
|
7
|
+
|
8
|
+
@if $delay > 0 {
|
9
|
+
$item: ($delay, 0s);
|
10
|
+
$-mui-queue: append($-mui-queue, $item) !global;
|
11
|
+
}
|
12
|
+
|
13
|
+
@content;
|
14
|
+
}
|
15
|
+
|
16
|
+
/// Adds an animation to an animation queue. Only use this mixin inside of `mui-series()`.
|
17
|
+
/// @param {Duration} $duration [1s] - Length of the animation.
|
18
|
+
/// @param {Duration} $gap [0s] - Amount of time to pause before playing the animation after this one. Use a negative value to make the next effect overlap with the current one.
|
19
|
+
/// @param {Arglist} $keyframes... - One or more effect functions to build the keyframe with.
|
20
|
+
@mixin mui-queue(
|
21
|
+
$duration: 1s,
|
22
|
+
$gap: 0s,
|
23
|
+
$keyframes...
|
24
|
+
) {
|
25
|
+
// Build the animation
|
26
|
+
$kf: -mui-process-args($keyframes...);
|
27
|
+
|
28
|
+
// Calculate the delay for this animation based on how long the previous ones take
|
29
|
+
$actual-delay: 0s;
|
30
|
+
@each $anim in $-mui-queue {
|
31
|
+
$actual-delay: $actual-delay + nth($anim, 1) + nth($anim, 2);
|
32
|
+
}
|
33
|
+
|
34
|
+
// Append this animation's length and gap to the end of the queue
|
35
|
+
$item: ($duration, $gap);
|
36
|
+
$-mui-queue: append($-mui-queue, $item) !global;
|
37
|
+
|
38
|
+
// --- CSS output ---
|
39
|
+
// Initial properties
|
40
|
+
@include -mui-keyframe-get($kf, 0);
|
41
|
+
animation-fill-mode: both;
|
42
|
+
|
43
|
+
// Start the animation
|
44
|
+
.#{map-get($motion-ui-settings, activate-queue-class)} & {
|
45
|
+
@include mui-animation($kf);
|
46
|
+
animation-delay: $actual-delay;
|
47
|
+
animation-duration: $duration;
|
48
|
+
}
|
49
|
+
|
50
|
+
// Pause the animation.
|
51
|
+
// For macOS Safari to play it correctly, `animation-play-state`
|
52
|
+
// must not be `paused` before the animation start.
|
53
|
+
// See https://git.io/motion-ui-97
|
54
|
+
.#{map-get($motion-ui-settings, pause-queue-class)} & {
|
55
|
+
animation-play-state: paused;
|
56
|
+
}
|
57
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/// Convert any string to a "safe" string that can be used anywhere in CSS (as class or keyframe name for example).
|
2
|
+
/// Unsupported characters are replaced by the given `$delimiter` ("-").
|
3
|
+
/// Several unsupported characters following each others are replaced by a single delimiter.
|
4
|
+
///
|
5
|
+
/// @param {*} $str - String to convert. If not a string, it will be converted to with `quote()`.
|
6
|
+
/// @param {String} $delimiter ['-'] - Character to use instead of unsupported characters.
|
7
|
+
/// @return {String} - Safe string usable everywhere in CSS.
|
8
|
+
@function -mui-string-safe(
|
9
|
+
$str,
|
10
|
+
$delimiter: '-'
|
11
|
+
) {
|
12
|
+
$str: quote($str);
|
13
|
+
$length: str_length($str);
|
14
|
+
$safe-chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
|
15
|
+
|
16
|
+
$ret: '';
|
17
|
+
$delimited: false;
|
18
|
+
|
19
|
+
@for $i from 1 through $length {
|
20
|
+
$c: str_slice($str, $i, $i);
|
21
|
+
|
22
|
+
@if (str_index($safe-chars, $c) != null) {
|
23
|
+
$ret: '#{$ret}#{$c}';
|
24
|
+
$delimited: false;
|
25
|
+
}
|
26
|
+
@else if (($delimited == false)
|
27
|
+
and (str_length($ret) > 0)
|
28
|
+
and ($i < $length))
|
29
|
+
{
|
30
|
+
$ret: '#{$ret}#{$delimiter}';
|
31
|
+
$delimited: true;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
@return $ret;
|
36
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
/// Applies basic transition settings to an element.
|
2
|
+
/// @param {Duration} $duration [null] - Length (speed) of the transition.
|
3
|
+
/// @param {Keyword|Function} $timing [null] - Easing of the transition.
|
4
|
+
/// @param {Duration} $delay [null] - Delay in seconds or milliseconds before the transition starts.
|
5
|
+
@mixin transition-basics(
|
6
|
+
$duration: null,
|
7
|
+
$timing: null,
|
8
|
+
$delay: null
|
9
|
+
) {
|
10
|
+
@include -motion-ui-defaults;
|
11
|
+
transition-duration: $duration;
|
12
|
+
transition-timing-function: $timing;
|
13
|
+
transition-delay: $delay;
|
14
|
+
}
|
15
|
+
|
16
|
+
/// Wraps the content in the setup class for a transition.
|
17
|
+
/// @param {Keyword} $dir - State to setup for transition.
|
18
|
+
@mixin transition-start($dir) {
|
19
|
+
$selector: -mui-build-selector(map-get($motion-ui-states, $dir));
|
20
|
+
|
21
|
+
@at-root {
|
22
|
+
#{$selector} {
|
23
|
+
@content;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
/// Wraps the content in the active class for a transition.
|
29
|
+
/// @param {Keyword} $dir - State to activate a transition on.
|
30
|
+
@mixin transition-end($dir) {
|
31
|
+
$selector: -mui-build-selector(map-get($motion-ui-states, $dir), true);
|
32
|
+
|
33
|
+
@at-root {
|
34
|
+
#{$selector} {
|
35
|
+
@content;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
/// Adds styles for a stagger animation, which can be used with Angular's `ng-repeat`.
|
41
|
+
/// @param {Duration} $delay-amount - Amount of time in seconds or milliseconds to add between each item's animation.
|
42
|
+
@mixin stagger($delay-amount) {
|
43
|
+
transition-delay: $delay-amount;
|
44
|
+
transition-duration: 0; // Prevent accidental CSS inheritance
|
45
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.
|
2
|
+
/// @param {Number} $num - Number to strip unit from.
|
3
|
+
/// @return {Number} The same number, sans unit.
|
4
|
+
/// @access private
|
5
|
+
@function strip-unit($num) {
|
6
|
+
@return $num / ($num * 0 + 1);
|
7
|
+
}
|