foundation-rails 6.1.1.1 → 6.1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -0
  3. data/Rakefile +6 -4
  4. data/bower.json +2 -1
  5. data/lib/foundation/rails/version.rb +1 -1
  6. data/lib/generators/foundation/install_generator.rb +13 -12
  7. data/lib/generators/foundation/templates/foundation_and_overrides.scss +3 -3
  8. data/vendor/assets/js/foundation.js +1 -1
  9. data/vendor/assets/scss/motion-ui/_classes.scss +102 -0
  10. data/vendor/assets/scss/motion-ui/_settings.scss +61 -0
  11. data/vendor/assets/scss/motion-ui/effects/_fade.scss +29 -0
  12. data/vendor/assets/scss/motion-ui/effects/_hinge.scss +65 -0
  13. data/vendor/assets/scss/motion-ui/effects/_shake.scss +15 -0
  14. data/vendor/assets/scss/motion-ui/effects/_slide.scss +41 -0
  15. data/vendor/assets/scss/motion-ui/effects/_spin.scss +28 -0
  16. data/vendor/assets/scss/motion-ui/effects/_wiggle.scss +13 -0
  17. data/vendor/assets/scss/motion-ui/effects/_zoom.scss +15 -0
  18. data/vendor/assets/scss/motion-ui/motion-ui.scss +29 -0
  19. data/vendor/assets/scss/motion-ui/transitions/_fade.scss +28 -0
  20. data/vendor/assets/scss/motion-ui/transitions/_hinge.scss +43 -0
  21. data/vendor/assets/scss/motion-ui/transitions/_slide.scss +42 -0
  22. data/vendor/assets/scss/motion-ui/transitions/_spin.scss +39 -0
  23. data/vendor/assets/scss/motion-ui/transitions/_zoom.scss +39 -0
  24. data/vendor/assets/scss/motion-ui/util/_animation.scss +7 -0
  25. data/vendor/assets/scss/motion-ui/util/_args.scss +15 -0
  26. data/vendor/assets/scss/motion-ui/util/_keyframe.scss +136 -0
  27. data/vendor/assets/scss/motion-ui/util/_selector.scss +23 -0
  28. data/vendor/assets/scss/motion-ui/util/_series.scss +54 -0
  29. data/vendor/assets/scss/motion-ui/util/_transition.scss +45 -0
  30. data/vendor/assets/scss/motion-ui/util/_unit.scss +7 -0
  31. metadata +24 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd443f4e1ba793e2319dc38153c0902decb48ba6
4
- data.tar.gz: a7067499ad0b516977c2a07c34674fc45c962c8a
3
+ metadata.gz: 8d79edccd460fb3cf16526f278c2ebda7dca1918
4
+ data.tar.gz: 7c9cbe0bb4d31a3c828f42dcc0e1bc7f3dcbd5b9
5
5
  SHA512:
6
- metadata.gz: b4618cc5d4da3fe059b93b500a0e7b8dbf26112e4c853362710a0a408937d555d3e522953bd714c50689b50a1a049b5e7c76deaaa7fb79d2ceb710919bb4bcc8
7
- data.tar.gz: cd5982ef40eab86284abdd907900165a7509eb69c3d029a75e4ee7a7a18352ae2bac04e7eb393ee30777c2b1c3703820a8c3cfc5c6c7eb7a78cd67f23259bc13
6
+ metadata.gz: 59f23edecc5f15f85cf64cdd02815df79db64a4ad86675b01fcb44869d306c963da64c3be02ef57a0a8c1b93d180fb0d3d0c34c6e7f2cd81c270cd918f4f2dd9
7
+ data.tar.gz: 2b7292b15665471a1b58ea2112a07f5f78d6df9c24692294f959c80ff38b2e53333471cf0352d4ed79eb14e0d71e714174d350c7d1c2aec4500ac8fb33495912
data/README.md CHANGED
@@ -24,6 +24,16 @@ You can run the following command to add Foundation:
24
24
 
25
25
  $ rails g foundation:install
26
26
 
27
+ To generate Haml or Slim instead of erb, append the `--haml` or `--slim` options to the above command, respectively.
28
+
29
+ ### Motion-UI
30
+
31
+ [Motion UI](https://github.com/zurb/motion-ui) is a Sass library for creating flexible UI transitions and animations, and it comes packaged with the `foundation-rails` gem. To use Motion UI, uncomment the following lines from `foundation_and_overrides.scss`:
32
+
33
+ // @import 'motion-ui/motion-ui';
34
+ // @include motion-ui-transitions;
35
+ // @include motion-ui-animations;
36
+
27
37
  ## Manual Installation
28
38
 
29
39
  ### Add Foundation to your CSS
data/Rakefile CHANGED
@@ -13,10 +13,12 @@ namespace :assets do
13
13
  sh 'bower install'
14
14
  sh 'cp -R bower_components/foundation-sites/js/* vendor/assets/js/'
15
15
  sh 'cp -R bower_components/foundation-sites/scss/* vendor/assets/scss/'
16
+ sh 'cp -R bower_components/motion-ui/src/* vendor/assets/scss/motion-ui'
16
17
 
17
- manifest = Dir['vendor/assets/js/*.js'].
18
- map { |file| "//= require #{File.basename(file, '.js')}" }.
19
- sort.join("\n")
18
+ js_files = Dir['vendor/assets/js/*.js'].sort
19
+ # Move foundation.core.js to beginning of js_files
20
+ js_files.insert(0, js_files.delete(js_files.find { |file| file[/foundation.core.js/] }))
21
+ manifest = js_files.map { |file| "//= require #{File.basename(file, '.js')}" }.join("\n")
20
22
  File.write('vendor/assets/js/foundation.js', manifest)
21
23
 
22
24
  puts 'Now update version.rb'
@@ -25,7 +27,7 @@ namespace :assets do
25
27
  desc 'Remove old Foundation for Sites assets'
26
28
  task :clean do
27
29
  sh 'rm -rf vendor'
28
- sh 'mkdir -p vendor/assets/js/ vendor/assets/scss'
30
+ sh 'mkdir -p vendor/assets/js/ vendor/assets/scss vendor/assets/scss/motion-ui'
29
31
  end
30
32
 
31
33
  end
data/bower.json CHANGED
@@ -2,6 +2,7 @@
2
2
  "name": "foundation-rails",
3
3
  "version": "6.1.1.0",
4
4
  "dependencies": {
5
- "foundation-sites": "6.1.1"
5
+ "foundation-sites": "6.1.1",
6
+ "motion-ui": "1.1.1"
6
7
  }
7
8
  }
@@ -1,5 +1,5 @@
1
1
  module Foundation
2
2
  module Rails
3
- VERSION = "6.1.1.1"
3
+ VERSION = "6.1.1.2"
4
4
  end
5
5
  end
@@ -3,11 +3,12 @@ require 'rails/generators'
3
3
  module Foundation
4
4
  module Generators
5
5
  class InstallGenerator < ::Rails::Generators::Base
6
- source_root File.join(File.dirname(__FILE__), 'templates')
7
- argument :layout_name, :type => :string, :default => 'application', :banner => 'layout_name'
6
+ desc "Install Foundation within a Rails project"
7
+ source_root File.join(File.dirname(__FILE__), "templates")
8
+ argument :layout_name, :type => :string, :default => "application", :banner => "layout_name"
8
9
 
9
- class_option :haml, :desc => 'Generate HAML layout instead of erb', :type => :boolean
10
- class_option :slim, :desc => 'Generate Slim layout instead of erb', :type => :boolean
10
+ class_option :haml, :desc => "Generate Haml layout instead of erb", :type => :boolean
11
+ class_option :slim, :desc => "Generate Slim layout instead of erb", :type => :boolean
11
12
 
12
13
  def add_assets
13
14
  # rails_ujs breaks, need to incorporate rails-behavior plugin for this to work seamlessly
@@ -44,17 +45,17 @@ module Foundation
44
45
 
45
46
  def create_layout
46
47
  if options.haml? || (defined?(Haml) && options.haml?)
47
- template 'application.html.haml', File.join(layouts_base_dir, "#{file_name}.html.haml")
48
+ template "application.html.haml", File.join(layouts_base_dir, "#{file_name}.html.haml")
48
49
  elsif options.slim? || (defined?(Slim) && options.slim?)
49
- template 'application.html.slim', File.join(layouts_base_dir, "#{file_name}.html.slim")
50
+ template "application.html.slim", File.join(layouts_base_dir, "#{file_name}.html.slim")
50
51
  else
51
- template 'application.html.erb', File.join(layouts_base_dir, "#{file_name}.html.erb")
52
+ template "application.html.erb", File.join(layouts_base_dir, "#{file_name}.html.erb")
52
53
  end
53
54
  end
54
55
 
55
56
  def create_app_scss
56
- template 'foundation_and_overrides.scss', File.join(stylesheets_base_dir, "foundation_and_overrides.scss")
57
- template '_settings.scss', File.join(stylesheets_base_dir, "_settings.scss")
57
+ template "foundation_and_overrides.scss", File.join(stylesheets_base_dir, "foundation_and_overrides.scss")
58
+ template "_settings.scss", File.join(stylesheets_base_dir, "_settings.scss")
58
59
  end
59
60
 
60
61
  private
@@ -64,15 +65,15 @@ module Foundation
64
65
  end
65
66
 
66
67
  def javascripts_base_dir
67
- File.join('app', 'assets', 'javascripts')
68
+ File.join("app", "assets", "javascripts")
68
69
  end
69
70
 
70
71
  def stylesheets_base_dir
71
- File.join('app', 'assets', 'stylesheets')
72
+ File.join("app", "assets", "stylesheets")
72
73
  end
73
74
 
74
75
  def layouts_base_dir
75
- File.join('app', 'views', 'layouts')
76
+ File.join("app", "views", "layouts")
76
77
  end
77
78
  end
78
79
  end
@@ -5,7 +5,7 @@
5
5
 
6
6
  // If you'd like to include motion-ui, you need to install the motion-ui sass package.
7
7
  //
8
- //@import 'motion-ui';
8
+ // @import 'motion-ui/motion-ui';
9
9
 
10
10
  // We include everything by default. To slim your CSS, remove components you don't use.
11
11
 
@@ -47,5 +47,5 @@
47
47
 
48
48
  // If you'd like to include motion-ui, you need to install the motion-ui sass package.
49
49
  //
50
- //@include motion-ui-transitions;
51
- //@include motion-ui-animations;
50
+ // @include motion-ui-transitions;
51
+ // @include motion-ui-animations;
@@ -25,4 +25,4 @@
25
25
  //= require foundation.util.nest
26
26
  //= require foundation.util.timerAndImageLoader
27
27
  //= require foundation.util.touch
28
- //= require foundation.util.triggers
28
+ //= require foundation.util.triggers
@@ -0,0 +1,102 @@
1
+ // scss-lint:disable ImportantRule, SpaceAfterComma, SingleLinePerProperty
2
+
3
+ %mui-defaults {
4
+ transition-duration: map-get($motion-ui-speeds, default);
5
+ transition-timing-function: map-get($motion-ui-easings, default);
6
+ }
7
+
8
+ // Transitions
9
+ // - - - - - - - - - - - - - - -
10
+ @mixin motion-ui-transitions {
11
+ // Slide
12
+ .slide-in-down { @include mui-slide(in, down); }
13
+ .slide-in-left { @include mui-slide(in, right); }
14
+ .slide-in-up { @include mui-slide(in, bottom); }
15
+ .slide-in-right { @include mui-slide(in, left); }
16
+ .slide-out-down { @include mui-slide(out, down); }
17
+ .slide-out-right { @include mui-slide(out, right); }
18
+ .slide-out-up { @include mui-slide(out, top); }
19
+ .slide-out-left { @include mui-slide(out, left); }
20
+
21
+ // Fade
22
+ .fade-in { @include mui-fade(in, 0, 1); }
23
+ .fade-out { @include mui-fade(out, 1, 0); }
24
+
25
+ // Hinge
26
+ .hinge-in-from-top { @include mui-hinge(in, top); }
27
+ .hinge-in-from-right { @include mui-hinge(in, right); }
28
+ .hinge-in-from-bottom { @include mui-hinge(in, bottom); }
29
+ .hinge-in-from-left { @include mui-hinge(in, left); }
30
+ .hinge-in-from-middle-x { @include mui-hinge(in, top, center); }
31
+ .hinge-in-from-middle-y { @include mui-hinge(in, right, center); }
32
+ .hinge-out-from-top { @include mui-hinge(out, top); }
33
+ .hinge-out-from-right { @include mui-hinge(out, right); }
34
+ .hinge-out-from-bottom { @include mui-hinge(out, bottom); }
35
+ .hinge-out-from-left { @include mui-hinge(out, left); }
36
+ .hinge-out-from-middle-x { @include mui-hinge(out, top, center); }
37
+ .hinge-out-from-middle-y { @include mui-hinge(out, right, center); }
38
+
39
+ // Scale
40
+ .scale-in-up { @include mui-zoom(in, 0.5, 1); }
41
+ .scale-in-down { @include mui-zoom(in, 1.5, 1); }
42
+ .scale-out-up { @include mui-zoom(out, 1, 1.5); }
43
+ .scale-out-down { @include mui-zoom(out, 1, 0.5); }
44
+
45
+ // Spin
46
+ .spin-in { @include mui-spin(in, cw); }
47
+ .spin-out { @include mui-spin(out, cw); }
48
+ .spin-in-ccw { @include mui-spin(in, ccw); }
49
+ .spin-out-ccw { @include mui-spin(out, ccw); }
50
+
51
+ // Transition Modifiers
52
+ // - - - - - - - - - - - - - - -
53
+
54
+ @each $name, $value in $motion-ui-speeds {
55
+ @if $name != default {
56
+ .#{$name} { transition-duration: $value !important; }
57
+ }
58
+ }
59
+
60
+ @each $name, $value in $motion-ui-easings {
61
+ @if $name != default {
62
+ .#{$name} { transition-timing-function: $value !important; }
63
+ }
64
+ }
65
+
66
+ @each $name, $value in $motion-ui-delays {
67
+ @if $name != default {
68
+ .#{$name}-delay { transition-delay: $value !important; }
69
+ }
70
+ }
71
+ }
72
+
73
+ // Animations
74
+ // - - - - - - - - - - - - - - -
75
+ @mixin motion-ui-animations {
76
+ .shake { @include mui-animation(shake); }
77
+ .spin-cw { @include mui-animation(spin); }
78
+ .spin-ccw { @include mui-animation(spin(ccw)); }
79
+ .wiggle { @include mui-animation(wiggle); }
80
+
81
+ // Animation Modifiers
82
+ // - - - - - - - - - - - - - - -
83
+ .infinite { animation-iteration-count: infinite; }
84
+
85
+ @each $name, $value in $motion-ui-speeds {
86
+ @if $name != default {
87
+ .#{$name} { animation-duration: $value !important; }
88
+ }
89
+ }
90
+
91
+ @each $name, $value in $motion-ui-easings {
92
+ @if $name != default {
93
+ .#{$name} { animation-timing-function: $value !important; }
94
+ }
95
+ }
96
+
97
+ @each $name, $value in $motion-ui-delays {
98
+ @if $name != default {
99
+ .#{$name}-delay { animation-delay: $value !important; }
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,61 @@
1
+ /// Format for CSS classes created with Motion UI.
2
+ /// @type Map
3
+ /// @prop {Boolean} append [true] - Defines if selectors are chained to the selector (`.class.enter`), or appended as a new class (`.class-enter`).
4
+ /// @prop {String} prefix ['mui-'] - Prefix to add before the state of a class. Enter an empty string to use no prefix.
5
+ /// @prop {String} prefix ['-active'] - Suffix to add to the active state class.
6
+ $motion-ui-classes: (
7
+ chain: true,
8
+ prefix: 'mui-',
9
+ active: '-active',
10
+ ) !default;
11
+
12
+ /// State names to reference when writing motion classes. To use multiple class names for one state, enter a list of strings instead of one string.
13
+ /// @type Map
14
+ $motion-ui-states: (
15
+ in: 'enter',
16
+ out: 'leave',
17
+ ) !default;
18
+
19
+ /// Default speed that transitions and animations play at, along with values for modifier classes to change the speed.
20
+ /// @type Map
21
+ $motion-ui-speeds: (
22
+ default: 500ms,
23
+ slow: 750ms,
24
+ fast: 250ms,
25
+ ) !default;
26
+
27
+ /// Default delay to add before motion, along with values for modifier classes to change the delay.
28
+ /// @type Map
29
+ $motion-ui-delays: (
30
+ default: 0,
31
+ short: 300ms,
32
+ long: 700ms,
33
+ ) !default;
34
+
35
+ /// Default easing for transitions and animations, along with values for modifier classes to change the easing.
36
+ /// @type Map
37
+ $motion-ui-easings: (
38
+ default: linear,
39
+ linear: linear,
40
+ ease: ease,
41
+ ease-in: ease-in,
42
+ ease-out: ease-out,
43
+ ease-in-out: ease-in-out,
44
+ bounce-in: cubic-bezier(0.485, 0.155, 0.24, 1.245),
45
+ bounce-out: cubic-bezier(0.485, 0.155, 0.515, 0.845),
46
+ bounce-in-out: cubic-bezier(0.76, -0.245, 0.24, 1.245),
47
+ ) !default;
48
+
49
+ /// Miscellaneous settings related to Motion UI.
50
+ /// @type Map
51
+ /// @prop {Boolean} slide-and-fade [false] - Defines if slide motions should also fade in/out.
52
+ /// @prop {Boolean} slide-and-fade [true] - Defines if hinge motions should also fade in/out.
53
+ /// @prop {Boolean} slide-and-fade [true] - Defines if scale motions should also fade in/out.
54
+ /// @prop {Boolean} slide-and-fade [true] - Defines if spin motions should also fade in/out.
55
+ $motion-ui-settings: (
56
+ slide-and-fade: false,
57
+ hinge-and-fade: true,
58
+ scale-and-fade: true,
59
+ spin-and-fade: true,
60
+ activate-queue-class: 'is-animating',
61
+ ) !default;
@@ -0,0 +1,29 @@
1
+ /// Creates a fading animation.
2
+ /// @param {Number} $from [0] - Opacity to start at.
3
+ /// @param {Number} $to [1] - Opacity to end at.
4
+ /// @return {Map} A keyframes map that can be used with the `generate-keyframes()` mixin.
5
+ @function fade(
6
+ $from: 0,
7
+ $to: 1
8
+ ) {
9
+ $type: type-of($from);
10
+ $keyframes: ();
11
+
12
+ @if $type == 'string' {
13
+ @if $from == in {
14
+ $from: 0;
15
+ $to: 1;
16
+ } @else if $from == out {
17
+ $from: 1;
18
+ $to: 0;
19
+ }
20
+ }
21
+
22
+ $keyframes: (
23
+ name: 'fade-#{$from}-to-#{$to}',
24
+ 0: (opacity: $from),
25
+ 100: (opacity: $to),
26
+ );
27
+
28
+ @return $keyframes;
29
+ }
@@ -0,0 +1,65 @@
1
+ /// Creates a hinge effect 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 {Number} $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 [from-back] - Side of the element to start the rotation from. Can be `from-back` or `from-front`.
7
+ @function hinge (
8
+ $state: in,
9
+ $from: left,
10
+ $axis: edge,
11
+ $perspective: 2000px,
12
+ $turn-origin: from-back
13
+ ) {
14
+ // Rotation directions when hinging from back vs. front
15
+ $rotation-amount: 90deg;
16
+ $rotations-back: (
17
+ top: rotateX($rotation-amount * -1),
18
+ right: rotateY($rotation-amount * -1),
19
+ bottom: rotateX($rotation-amount),
20
+ left: rotateY($rotation-amount),
21
+ );
22
+ $rotations-from: (
23
+ top: rotateX($rotation-amount),
24
+ right: rotateY($rotation-amount),
25
+ bottom: rotateX($rotation-amount * -1),
26
+ left: rotateY($rotation-amount * -1),
27
+ );
28
+
29
+ // Rotation origin
30
+ $rotation: '';
31
+ @if $turn-origin == from-front {
32
+ $rotation: map-get($rotations-from, $from);
33
+ } @else if $turn-origin == from-back {
34
+ $rotation: map-get($rotations-back, $from);
35
+ } @else {
36
+ @warn '$turn-origin must be either "from-back" or "from-front"';
37
+ }
38
+
39
+ // Start and end state
40
+ $start: '';
41
+ $end: '';
42
+ @if $state == in {
43
+ $start: perspective($perspective) $rotation;
44
+ $end: perspective($perspective) rotate(0deg);
45
+ } @else {
46
+ $start: perspective($perspective) rotate(0deg);
47
+ $end: perspective($perspective) $rotation;
48
+ }
49
+
50
+ // Turn axis
51
+ $origin: '';
52
+ @if $axis == edge {
53
+ $origin: $from;
54
+ } @else {
55
+ $origin: center;
56
+ }
57
+
58
+ $keyframes: (
59
+ name: 'hinge-#{$state}-#{$from}-#{$axis}-#{$turn-origin}',
60
+ 0: (transform: $start, transform-origin: $origin),
61
+ 100: (transform: $end),
62
+ );
63
+
64
+ @return $keyframes;
65
+ }
@@ -0,0 +1,15 @@
1
+ /// Creates a shaking animation.
2
+ /// @param {Percentage} $intensity [7%] - Intensity of the shake, as a percentage value.
3
+ /// @return {Map} A keyframes map that can be used with the `generate-keyframes()` mixin.
4
+ @function shake($intensity: 7%) {
5
+ $right: (0, 10, 20, 30, 40, 50, 60, 70, 80, 90);
6
+ $left: (5, 15, 25, 35, 45, 55, 65, 75, 85, 95);
7
+
8
+ $keyframes: (
9
+ name: 'shake-#{($intensity / 1%)}',
10
+ $right: (transform: translateX($intensity)),
11
+ $left: (transform: translateX(-$intensity)),
12
+ );
13
+
14
+ @return $keyframes;
15
+ }
@@ -0,0 +1,41 @@
1
+ /// Creates a sliding animation.
2
+ /// @param {Keyword} $state [in] - Whether to move to (`in`) or from (`out`) the element's default position.
3
+ /// @param {Keyword} $direction [up] - Direction to move. Can be `up`, `down`, `left`, or `right`.
4
+ /// @param {Number} $amount [100%] - Distance to move. Can be any CSS length unit.
5
+ /// @return {Map} A keyframes map that can be used with the `generate-keyframes()` mixin.
6
+ @function slide(
7
+ $state: in,
8
+ $direction: up,
9
+ $amount: 100%
10
+ ) {
11
+ $from: $amount;
12
+ $to: 0;
13
+ $func: 'translateY';
14
+
15
+ @if $direction == left or $direction == right {
16
+ $func: 'translateX';
17
+ }
18
+
19
+ @if $state == out {
20
+ $from: 0;
21
+ $to: $amount;
22
+ }
23
+
24
+ @if $direction == down or $direction == right {
25
+ @if $state == in {
26
+ $from: -$from;
27
+ }
28
+ } @else {
29
+ @if $state == out {
30
+ $to: -$to;
31
+ }
32
+ }
33
+
34
+ $keyframes: (
35
+ name: 'slide-#{$state}-#{$direction}-#{strip-unit($amount)}',
36
+ 0: (transform: '#{$func}(#{$from})'),
37
+ 100: (transform: '#{$func}(#{$to})'),
38
+ );
39
+
40
+ @return $keyframes;
41
+ }
@@ -0,0 +1,28 @@
1
+ /// Creates a spinning animation.
2
+ /// @param {Keyword} $direction [cw] - Direction to spin. Should be `cw` (clockwise) or `ccw` (counterclockwise).
3
+ /// @param {Number} $amount [360deg] - Amount to spin. Can be any CSS angle unit.
4
+ /// @return {Map} A keyframes map that can be used with the `generate-keyframes()` mixin.
5
+ @function spin(
6
+ $state: in,
7
+ $direction: cw,
8
+ $amount: 1turn
9
+ ) {
10
+ $start: 0;
11
+ $end: 0;
12
+
13
+ @if $state == in {
14
+ $start: if($direction == ccw, $amount, $amount * -1);
15
+ $end: 0;
16
+ } @else {
17
+ $start: 0;
18
+ $end: if($direction == ccw, $amount * -1, $amount);
19
+ }
20
+
21
+ $keyframes: (
22
+ name: 'spin-#{$direction}-#{$amount}',
23
+ 0: (transform: rotate($start)),
24
+ 100: (transform: rotate($end)),
25
+ );
26
+
27
+ @return $keyframes;
28
+ }
@@ -0,0 +1,13 @@
1
+ /// Creates a wiggling animation.
2
+ /// @param {Number} $intensity [7deg] - Intensity of the wiggle. Can be any CSS angle unit.
3
+ /// @return {Map} A keyframes map that can be used with the `generate-keyframes()` mixin.
4
+ @function wiggle($intensity: 7deg) {
5
+ $keyframes: (
6
+ name: 'wiggle-#{$intensity}',
7
+ (40, 50, 60): (transform: rotate($intensity)),
8
+ (35, 45, 55, 65): (transform: rotate(-$intensity)),
9
+ (0, 30, 70, 100): (transform: rotate(0)),
10
+ );
11
+
12
+ @return $keyframes;
13
+ }
@@ -0,0 +1,15 @@
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 {Number} $from [1.5] - Size to start at.
3
+ /// @param {Number} $from [1] - Size to end at.
4
+ @function zoom(
5
+ $from: 0,
6
+ $to: 1
7
+ ) {
8
+ $keyframes: (
9
+ name: 'scale-#{$to}-to-#{$from}',
10
+ 0: (transform: scale($from)),
11
+ 100: (transform: scale($to)),
12
+ );
13
+
14
+ @return $keyframes;
15
+ }
@@ -0,0 +1,29 @@
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/keyframe';
10
+ @import 'util/selector';
11
+ @import 'util/series';
12
+ @import 'util/transition';
13
+ @import 'util/unit';
14
+
15
+ @import 'effects/fade';
16
+ @import 'effects/hinge';
17
+ @import 'effects/spin';
18
+ @import 'effects/zoom';
19
+ @import 'effects/shake';
20
+ @import 'effects/slide';
21
+ @import 'effects/wiggle';
22
+
23
+ @import 'transitions/fade';
24
+ @import 'transitions/hinge';
25
+ @import 'transitions/zoom';
26
+ @import 'transitions/slide';
27
+ @import 'transitions/spin';
28
+
29
+ @import 'classes';
@@ -0,0 +1,28 @@
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 [0] - Opacity to start at. Must be a number between 0 and 1.
4
+ /// @param {Number} $to [1] - Opacity to end on.
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: 0,
11
+ $to: 1,
12
+ $duration: null,
13
+ $timing: null,
14
+ $delay: null
15
+ ) {
16
+ $fade: fade($from, $to);
17
+
18
+ @include transition-start($state) {
19
+ @include transition-basics($duration, $timing, $delay);
20
+ @include -mui-keyframe-get($fade, 0);
21
+
22
+ transition-property: opacity;
23
+ }
24
+
25
+ @include transition-end($state) {
26
+ @include -mui-keyframe-get($fade, 100);
27
+ }
28
+ }
@@ -0,0 +1,43 @@
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 [from-back] - Side of the element to start the rotation from. Can be `from-back` or `from-front`.
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: from-back,
17
+ $fade: map-get($motion-ui-settings, hinge-and-fade),
18
+ $duration: null,
19
+ $timing: null,
20
+ $delay: null
21
+ ) {
22
+ $hinge: hinge($state, $from, $axis, $perspective, $turn-origin);
23
+
24
+ @include transition-start($state) {
25
+ @include transition-basics($duration, $timing, $delay);
26
+ @include -mui-keyframe-get($hinge, 0);
27
+
28
+ @if $fade {
29
+ transition-property: transform, opacity;
30
+ opacity: if($state == in, 0, 1);
31
+ } @else {
32
+ transition-property: transform, opacity;
33
+ }
34
+ }
35
+
36
+ @include transition-end($state) {
37
+ @include -mui-keyframe-get($hinge, 100);
38
+
39
+ @if $fade {
40
+ opacity: if($state == in, 1, 0);
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,42 @@
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 [left] - Side of the element to slide from. Can be `top`, `right`, `bottom`, or `left`.
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: left,
12
+ $amount: 100%,
13
+ $fade: map-get($motion-ui-settings, slide-and-fade),
14
+ $duration: null,
15
+ $timing: null,
16
+ $delay: null
17
+ ) {
18
+ $slide: slide($state, $direction, $amount);
19
+
20
+ // CSS Output
21
+ @include transition-start($state) {
22
+ @include transition-basics($duration, $timing, $delay);
23
+ @include -mui-keyframe-get($slide, 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
+ backface-visibility: hidden;
33
+ }
34
+
35
+ @include transition-end($state) {
36
+ @include -mui-keyframe-get($slide, 100);
37
+
38
+ @if $fade {
39
+ opacity: if($state == in, 1, 0);
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,39 @@
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 {Boolean} $direction [cw] - Direction to spin. Should be `cw` (clockwise) or `ccw` (counterclockwise).
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
+ $spin: spin($state, $direction, $amount);
19
+
20
+ @include transition-start($state) {
21
+ @include transition-basics($duration, $timing, $delay);
22
+ @include -mui-keyframe-get($spin, 0);
23
+
24
+ @if $fade {
25
+ transition-property: transform, opacity;
26
+ opacity: if($state == in, 0, 1);
27
+ } @else {
28
+ transition-property: transform, opacity;
29
+ }
30
+ }
31
+
32
+ @include transition-end($state) {
33
+ @include -mui-keyframe-get($spin, 100);
34
+
35
+ @if $fade {
36
+ opacity: if($state == in, 1, 0);
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,39 @@
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 [1.5] - Size to start at.
4
+ /// @param {Number} $from [1] - Size to end at.
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: 1.5,
12
+ $to: 1,
13
+ $fade: map-get($motion-ui-settings, scale-and-fade),
14
+ $duration: null,
15
+ $timing: null,
16
+ $delay: null
17
+ ) {
18
+ $scale: zoom($from, $to);
19
+
20
+ @include transition-start($state) {
21
+ @include transition-basics($duration, $timing, $delay);
22
+ @include -mui-keyframe-get($scale, 0);
23
+
24
+ @if $fade {
25
+ transition-property: transform, opacity;
26
+ opacity: if($state == in, 0, 1);
27
+ } @else {
28
+ transition-property: transform, opacity;
29
+ }
30
+ }
31
+
32
+ @include transition-end($state) {
33
+ @include -mui-keyframe-get($scale, 100);
34
+
35
+ @if $fade {
36
+ opacity: if($state == in, 1, 0);
37
+ }
38
+ }
39
+ }
@@ -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 {Function} $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 type-of($arg) == 'string' {
8
+ @return 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,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 {Function} $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 {Map} $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 type-of($map) == 'string' {
91
+ $map: 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,54 @@
1
+ $-mui-queue: ();
2
+
3
+ /// Pauses the animation on an element by default, and then plays it when an active class is added to a parent. Also sets the fill mode of the animation to `both`. This pauses the element at the first frame of the animation, and holds it in place at the end.
4
+ /// @access private
5
+ %animated-element {
6
+ animation-play-state: paused;
7
+ animation-fill-mode: both;
8
+
9
+ .#{map-get($motion-ui-settings, activate-queue-class)} & {
10
+ animation-play-state: running;
11
+ }
12
+ }
13
+
14
+ /// Creates a new animation queue.
15
+ /// @param {Duration} $delay [0s] - Delay in seconds or milliseconds to place at the front of the animation queue.
16
+ @mixin mui-series($delay: 0s) {
17
+ $-mui-queue: () !global;
18
+
19
+ @if $delay > 0 {
20
+ $item: ($delay, 0s);
21
+ $-mui-queue: append($-mui-queue, $item) !global;
22
+ }
23
+
24
+ @content;
25
+ }
26
+
27
+ /// Adds an animation to an animation queue. Only use this mixin inside of `mui-series()`.
28
+ /// @param {Duration} $duration [1s] - Length of the animation.
29
+ /// @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.
30
+ /// @param {Function} $keyframes... - One or more effect functions to build the keyframe with.
31
+ @mixin mui-queue(
32
+ $duration: 1s,
33
+ $gap: 0s,
34
+ $keyframes...
35
+ ) {
36
+ // Build the animation
37
+ $kf: -mui-process-args($keyframes...);
38
+
39
+ // Calculate the delay for this animation based on how long the previous ones take
40
+ $actual-delay: 0s;
41
+ @each $anim in $-mui-queue {
42
+ $actual-delay: $actual-delay + nth($anim, 1) + nth($anim, 2);
43
+ }
44
+
45
+ // Append this animation's length and gap to the end of the queue
46
+ $item: ($duration, $gap);
47
+ $-mui-queue: append($-mui-queue, $item) !global;
48
+
49
+ // CSS output
50
+ @extend %animated-element;
51
+ @include mui-animation($kf);
52
+ animation-duration: $duration;
53
+ animation-delay: $actual-delay;
54
+ }
@@ -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
+ @extend %mui-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
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foundation-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.1.1
4
+ version: 6.1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ZURB
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-14 00:00:00.000000000 Z
11
+ date: 2016-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -226,6 +226,28 @@ files:
226
226
  - vendor/assets/scss/grid/_position.scss
227
227
  - vendor/assets/scss/grid/_row.scss
228
228
  - vendor/assets/scss/grid/_size.scss
229
+ - vendor/assets/scss/motion-ui/_classes.scss
230
+ - vendor/assets/scss/motion-ui/_settings.scss
231
+ - vendor/assets/scss/motion-ui/effects/_fade.scss
232
+ - vendor/assets/scss/motion-ui/effects/_hinge.scss
233
+ - vendor/assets/scss/motion-ui/effects/_shake.scss
234
+ - vendor/assets/scss/motion-ui/effects/_slide.scss
235
+ - vendor/assets/scss/motion-ui/effects/_spin.scss
236
+ - vendor/assets/scss/motion-ui/effects/_wiggle.scss
237
+ - vendor/assets/scss/motion-ui/effects/_zoom.scss
238
+ - vendor/assets/scss/motion-ui/motion-ui.scss
239
+ - vendor/assets/scss/motion-ui/transitions/_fade.scss
240
+ - vendor/assets/scss/motion-ui/transitions/_hinge.scss
241
+ - vendor/assets/scss/motion-ui/transitions/_slide.scss
242
+ - vendor/assets/scss/motion-ui/transitions/_spin.scss
243
+ - vendor/assets/scss/motion-ui/transitions/_zoom.scss
244
+ - vendor/assets/scss/motion-ui/util/_animation.scss
245
+ - vendor/assets/scss/motion-ui/util/_args.scss
246
+ - vendor/assets/scss/motion-ui/util/_keyframe.scss
247
+ - vendor/assets/scss/motion-ui/util/_selector.scss
248
+ - vendor/assets/scss/motion-ui/util/_series.scss
249
+ - vendor/assets/scss/motion-ui/util/_transition.scss
250
+ - vendor/assets/scss/motion-ui/util/_unit.scss
229
251
  - vendor/assets/scss/settings/_settings.scss
230
252
  - vendor/assets/scss/typography/_alignment.scss
231
253
  - vendor/assets/scss/typography/_base.scss