pageflow 13.0.0.beta6 → 13.0.0.beta7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pageflow might be problematic. Click here for more details.

Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +74 -0
  3. data/README.md +1 -0
  4. data/app/assets/audios/pageflow/unmute.mp3 +0 -0
  5. data/app/assets/images/pageflow/editor/help/phone_horizontal_slideshow_mode.gif +0 -0
  6. data/app/assets/javascripts/pageflow/asset_urls.js.erb +1 -1
  7. data/app/assets/javascripts/pageflow/audio/multi_player.js +4 -0
  8. data/app/assets/javascripts/pageflow/audio_player.js +1 -1
  9. data/app/assets/javascripts/pageflow/background_media.js +22 -0
  10. data/app/assets/javascripts/pageflow/base.js +1 -0
  11. data/app/assets/javascripts/pageflow/browser/agent.js +92 -78
  12. data/app/assets/javascripts/pageflow/browser/autoplay_support.js +2 -2
  13. data/app/assets/javascripts/pageflow/dist/react.js +711 -252
  14. data/app/assets/javascripts/pageflow/editor/api/page_type.js +4 -0
  15. data/app/assets/javascripts/pageflow/editor/base.js +1 -0
  16. data/app/assets/javascripts/pageflow/editor/collections/files_collection.js +8 -0
  17. data/app/assets/javascripts/pageflow/editor/initializers/boot.js +6 -4
  18. data/app/assets/javascripts/pageflow/editor/initializers/setup_asset_urls.js +3 -0
  19. data/app/assets/javascripts/pageflow/editor/models/entry.js +2 -2
  20. data/app/assets/javascripts/pageflow/editor/models/file_stage.js +6 -1
  21. data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +9 -0
  22. data/app/assets/javascripts/pageflow/editor/models/mixins/transient_references.js +12 -2
  23. data/app/assets/javascripts/pageflow/editor/models/preview_entry_data.js +5 -0
  24. data/app/assets/javascripts/pageflow/editor/models/uploaded_file.js +6 -1
  25. data/app/assets/javascripts/pageflow/editor/templates/emulation_mode_button.jst.ejs +26 -0
  26. data/app/assets/javascripts/pageflow/editor/templates/entry_preview.jst.ejs +8 -3
  27. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/options.js +1 -1
  28. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/page_link.js +3 -6
  29. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/page_transitions.js +14 -4
  30. data/app/assets/javascripts/pageflow/editor/views/edit_storyline_view.js +3 -6
  31. data/app/assets/javascripts/pageflow/editor/views/embedded/background_image_embedded_view.js +47 -12
  32. data/app/assets/javascripts/pageflow/editor/views/emulation_mode_button_view.js +45 -0
  33. data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +62 -8
  34. data/app/assets/javascripts/pageflow/editor/views/file_stage_item_view.js +7 -0
  35. data/app/assets/javascripts/pageflow/editor/views/help_image_view.js +9 -0
  36. data/app/assets/javascripts/pageflow/editor/views/info_box_view.js +1 -1
  37. data/app/assets/javascripts/pageflow/editor/views/inputs/file_processing_state_display_view.js +60 -0
  38. data/app/assets/javascripts/pageflow/editor/views/sidebar_footer_view.js +12 -0
  39. data/app/assets/javascripts/pageflow/editor/views/widget_types/phone_horizontal_slideshow_mode.js +14 -0
  40. data/app/assets/javascripts/pageflow/entry_data.js +4 -0
  41. data/app/assets/javascripts/pageflow/media_player.js +7 -3
  42. data/app/assets/javascripts/pageflow/media_player/handle_failed_play.js +34 -0
  43. data/app/assets/javascripts/pageflow/media_player/volume_fading/web_audio.js +29 -3
  44. data/app/assets/javascripts/pageflow/page_transitions.js +59 -15
  45. data/app/assets/javascripts/pageflow/page_type.js +5 -1
  46. data/app/assets/javascripts/pageflow/seed_entry_data.js +13 -0
  47. data/app/assets/javascripts/pageflow/slideshow.js +31 -11
  48. data/app/assets/javascripts/pageflow/slideshow/atmo.js +23 -12
  49. data/app/assets/javascripts/pageflow/slideshow/lazy_page_widget.js +9 -3
  50. data/app/assets/javascripts/pageflow/slideshow/navigation_direction.js +37 -0
  51. data/app/assets/javascripts/pageflow/slideshow/page_widget.js +12 -6
  52. data/app/assets/javascripts/pageflow/slideshow/scroll_indicator_widget.js +13 -16
  53. data/app/assets/javascripts/pageflow/slideshow/scroller_widget.js +49 -14
  54. data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +10 -3
  55. data/app/assets/javascripts/pageflow/video_player/lazy.js +1 -1
  56. data/app/assets/stylesheets/pageflow/animations/bounce.scss +13 -1
  57. data/app/assets/stylesheets/pageflow/editor/base.scss +5 -0
  58. data/app/assets/stylesheets/pageflow/editor/emulation_mode_button.scss +78 -0
  59. data/app/assets/stylesheets/pageflow/editor/entry_preview.scss +41 -0
  60. data/app/assets/stylesheets/pageflow/editor/file_stages.scss +11 -3
  61. data/app/assets/stylesheets/pageflow/editor/help.scss +4 -14
  62. data/app/assets/stylesheets/pageflow/editor/help_image.scss +5 -0
  63. data/app/assets/stylesheets/pageflow/editor/info_box.scss +5 -0
  64. data/app/assets/stylesheets/pageflow/editor/inputs.scss +1 -0
  65. data/app/assets/stylesheets/pageflow/editor/inputs/file_processing_state_display.scss +18 -0
  66. data/app/assets/stylesheets/pageflow/editor/sidebar_footer.scss +12 -0
  67. data/app/assets/stylesheets/pageflow/entries.scss +29 -6
  68. data/app/assets/stylesheets/pageflow/mixins/breakpoints.scss +5 -3
  69. data/app/assets/stylesheets/pageflow/mixins/icons/fontawesome.scss +1 -1
  70. data/app/assets/stylesheets/pageflow/navigation_mobile.scss +5 -1
  71. data/app/assets/stylesheets/pageflow/page_transitions.scss +0 -6
  72. data/app/assets/stylesheets/pageflow/page_transitions/crossfade.scss +5 -1
  73. data/app/assets/stylesheets/pageflow/page_transitions/fade.scss +44 -36
  74. data/app/assets/stylesheets/pageflow/page_transitions/scroll.scss +96 -11
  75. data/app/assets/stylesheets/pageflow/slideshow.scss +0 -4
  76. data/app/assets/stylesheets/pageflow/themes/default/background_media_unmute_button.scss +68 -0
  77. data/app/assets/stylesheets/pageflow/themes/default/base.scss +1 -0
  78. data/app/assets/stylesheets/pageflow/themes/default/indicators/icons/icon_font.scss +7 -0
  79. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -0
  80. data/app/controllers/pageflow/editor/files_controller.rb +9 -1
  81. data/app/helpers/pageflow/asset_urls_helper.rb +9 -0
  82. data/app/helpers/pageflow/background_image_helper.rb +6 -10
  83. data/app/helpers/pageflow/file_background_images_helper.rb +78 -0
  84. data/app/helpers/pageflow/pages_helper.rb +2 -2
  85. data/app/helpers/pageflow/render_json_helper.rb +3 -2
  86. data/app/models/concerns/pageflow/hosted_file.rb +2 -9
  87. data/app/models/concerns/pageflow/uploaded_file.rb +9 -0
  88. data/app/models/pageflow/draft_entry.rb +2 -2
  89. data/app/models/pageflow/image_file.rb +5 -20
  90. data/app/models/pageflow/image_file_css_background_image_urls.rb +17 -0
  91. data/app/models/pageflow/video_file_css_background_image_urls.rb +13 -0
  92. data/app/views/pageflow/editor/asset_urls/_asset_urls.json.jbuilder +4 -0
  93. data/app/views/pageflow/editor/entries/seed.json.erb +3 -1
  94. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +1 -1
  95. data/app/views/pageflow/entries/_indicators.html.erb +8 -3
  96. data/app/views/pageflow/entries/edit.html.erb +1 -1
  97. data/app/views/pageflow/entries/show.css.erb +6 -20
  98. data/app/views/pageflow/file_background_images/_rule.css.erb +3 -0
  99. data/config/initializers/features.rb +1 -0
  100. data/config/locales/de.yml +20 -8
  101. data/config/locales/en.yml +23 -11
  102. data/config/routes.rb +1 -0
  103. data/lib/pageflow/built_in_file_type.rb +4 -0
  104. data/lib/pageflow/built_in_widget_type.rb +12 -0
  105. data/lib/pageflow/built_in_widget_types_plugin.rb +5 -0
  106. data/lib/pageflow/file_type.rb +39 -0
  107. data/lib/pageflow/file_types.rb +6 -0
  108. data/lib/pageflow/version.rb +1 -1
  109. data/spec/factories/hosted_files.rb +12 -8
  110. data/vendor/assets/javascripts/audio5.min.js +280 -129
  111. data/vendor/assets/javascripts/iscroll.js +16 -11
  112. metadata +47 -16
  113. data/app/assets/javascripts/pageflow/media_player/catch_play_promise.js +0 -23
  114. data/app/assets/stylesheets/pageflow/page_transitions/scroll_in.scss +0 -66
  115. data/app/assets/stylesheets/pageflow/page_transitions/scroll_in_right.scss +0 -68
  116. data/app/assets/stylesheets/pageflow/page_transitions/scroll_left.scss +0 -20
  117. data/app/assets/stylesheets/pageflow/page_transitions/scroll_over_from_left.scss +0 -12
  118. data/app/assets/stylesheets/pageflow/page_transitions/scroll_over_from_right.scss +0 -12
  119. data/app/assets/stylesheets/pageflow/page_transitions/scroll_right.scss +0 -20
  120. data/lib/pageflow/images/palette.png +0 -0
@@ -0,0 +1,78 @@
1
+ .emulation_mode_button {
2
+ @include background-icon-right($color: #444, $font-size: 16px, $top: 4px);
3
+ @include up-open-icon;
4
+ float: left;
5
+ height: 25px;
6
+ width: 100px;
7
+
8
+ &-menu {
9
+ background-color: #fff;
10
+ border: solid 1px #aaa;
11
+ padding: 1px;
12
+ position: absolute;
13
+ bottom: 1px;
14
+ left: 1px;
15
+ visibility: hidden;
16
+ width: 200px;
17
+ z-index: 1;
18
+ }
19
+
20
+ &-menu_header {
21
+ margin: 3px 6px;
22
+ }
23
+
24
+ &:hover .emulation_mode_button-menu {
25
+ visibility: visible;
26
+ }
27
+
28
+ &-display {
29
+ @include background-icon-center($color: #444, $font-size: 16px, $left: 15px);
30
+ display: none;
31
+ padding: 5px 10px 5px 30px;
32
+
33
+ &.active {
34
+ display: block;
35
+ }
36
+ }
37
+
38
+ &-menu_item {
39
+ @include background-icon-center($color: #444, $font-size: 16px, $left: 15px, $top: 15px);
40
+ }
41
+
42
+ &-menu_link {
43
+ padding: 7px 35px 7px 35px;
44
+ display: block;
45
+
46
+ &:hover {
47
+ background-color: #eee;
48
+ }
49
+ }
50
+
51
+ .active .emulation_mode_button-menu_link {
52
+ @include background-icon-right($color: #444, $font-size: 12px, $right: 15px, $top: 9px);
53
+ @include fa-check-icon;
54
+ pointer-events: none;
55
+ }
56
+
57
+ &-disabled_hint {
58
+ display: none;
59
+ font-size: 10px;
60
+ }
61
+
62
+ .disabled {
63
+ pointer-events: none;
64
+ opacity: 0.3;
65
+
66
+ .emulation_mode_button-disabled_hint {
67
+ display: block;
68
+ }
69
+ }
70
+
71
+ &-phone {
72
+ @include mobile-icon;
73
+ }
74
+
75
+ &-desktop {
76
+ @include monitor-icon;
77
+ }
78
+ }
@@ -0,0 +1,41 @@
1
+ .entry_preview {
2
+ background-color: #222;
3
+ height: 100%;
4
+
5
+ .container {
6
+ position: relative;
7
+ height: 100%;
8
+ }
9
+
10
+ &.emulation_mode_phone {
11
+ > .container {
12
+ width: 400px;
13
+ height: 700px;
14
+ margin: auto;
15
+ top: 30px;
16
+ box-shadow: rgba(0, 0, 0, 0.5) 0px 1px 4px 0px;
17
+ }
18
+
19
+ .scroll_next_indicator {
20
+ display: none;
21
+ }
22
+ }
23
+
24
+ .navigation_disabled_hint {
25
+ background-color: rgba(0, 0, 0, 0.7);
26
+ color: #fff;
27
+ position: absolute;
28
+ width: 300px;
29
+ top: 30%;
30
+ left: 50%;
31
+ @include transform(translateX(-50%));
32
+ padding: 10px;
33
+ border-radius: 5px;
34
+ z-index: 10;
35
+ pointer-events: none;
36
+ opacity: 0;
37
+ @include transition(opacity 0.2s);
38
+ text-align: center;
39
+ font-size: 12px;
40
+ }
41
+ }
@@ -6,11 +6,19 @@
6
6
  }
7
7
 
8
8
  .file_stage_item {
9
- @include background-icon-center($left: 20px, $color: #bbb);
10
- margin-left: -60px;
11
- padding: 10px 0 5px 60px;
12
9
  white-space: normal;
13
10
 
11
+ &.indented {
12
+ @include background-icon-center($left: 20px, $color: #bbb);
13
+ padding: 10px 0 5px 60px;
14
+ margin-left: -60px;
15
+ }
16
+
17
+ &.stand_alone {
18
+ @include background-icon-center($left: 31px, $color: #bbb);
19
+ padding-left: 70px;
20
+ }
21
+
14
22
  &.action_required,
15
23
  &.active {
16
24
  @include background-icon-color(#444);
@@ -158,21 +158,11 @@
158
158
  }
159
159
 
160
160
  .editor .help_button {
161
- @include background-icon-left($color: #a0c4e0, $font-size: 16px, $left: 5px);
161
+ @include background-icon-right($color: #a0c4e0, $font-size: 16px, $right: 5px, $top: 5px);
162
162
  @include help-circled-icon;
163
163
 
164
- position: absolute;
165
- bottom: 0;
166
- right: 0;
167
- left: 0;
164
+ padding: 5px 30px 0 5px;
165
+ float: right;
168
166
  height: 20px;
169
- padding: 5px 5px 0px 30px;
170
-
171
- font-family: Helvetica, "Sans-Serif";
172
- font-size: 13px;
173
-
174
- border-top: solid 1px #aaa;
175
-
176
- background-color: #fff;
177
167
  cursor: pointer;
178
- }
168
+ }
@@ -0,0 +1,5 @@
1
+ .help_image {
2
+ border: solid 1px #444;
3
+ display: block;
4
+ margin: 5px auto;
5
+ }
@@ -0,0 +1,5 @@
1
+ .info_box {
2
+ p {
3
+ margin-bottom: 1em;
4
+ }
5
+ }
@@ -1,2 +1,3 @@
1
1
  @import "./inputs/file_input";
2
+ @import "./inputs/file_processing_state_display";
2
3
  @import "./inputs/reference";
@@ -0,0 +1,18 @@
1
+ .file_processing_state_display {
2
+ position: relative;
3
+ margin-top: -6px;
4
+
5
+ &:before {
6
+ content: "";
7
+ position: absolute;
8
+ top: 0;
9
+ left: 0;
10
+ width: 62px;
11
+ height: 100%;
12
+ background-color: #eee;
13
+ }
14
+
15
+ &-empty {
16
+ display: none;
17
+ }
18
+ }
@@ -0,0 +1,12 @@
1
+ .sidebar_footer {
2
+ position: absolute;
3
+ bottom: 0;
4
+ right: 0;
5
+ left: 0;
6
+
7
+ font-family: Helvetica, "Sans-Serif";
8
+ font-size: 13px;
9
+
10
+ border-top: solid 1px #aaa;
11
+ background-color: #fff;
12
+ }
@@ -20,13 +20,23 @@
20
20
  opacity: 0;
21
21
  @include transition(opacity 1s ease);
22
22
 
23
+ &.visible.attract,
24
+ &.animate {
25
+ @include animation(bounce 0.5s ease);
26
+
27
+ .widget_phone_horizontal_slideshow_mode_present & {
28
+ @include phone {
29
+ @include animation-name(bounce_x)
30
+ }
31
+ }
32
+ }
33
+
23
34
  &.visible {
24
35
  opacity: 1;
25
36
  @include transition(opacity 0.5s ease 0.5s);
26
37
 
27
38
  &.attract {
28
- @include animation(bounce 0.5s ease);
29
- @include animation-iteration-count(3)
39
+ @include animation-iteration-count(3);
30
40
  }
31
41
  }
32
42
 
@@ -35,10 +45,6 @@
35
45
  @include transition(opacity 0.5s ease);
36
46
  top: auto; /* collision with .hidden class from application.css.scss */
37
47
  }
38
-
39
- &.animate {
40
- @include animation(bounce 0.5s ease);
41
- }
42
48
  }
43
49
 
44
50
  .scroll_indicator {
@@ -62,6 +68,10 @@
62
68
  right: 15px;
63
69
  }
64
70
 
71
+ .emulation_mode_phone & {
72
+ display: none;
73
+ }
74
+
65
75
  &.visible {
66
76
  pointer-events: all;
67
77
  visibility: visible;
@@ -78,12 +88,25 @@
78
88
  visibility: hidden;
79
89
  }
80
90
 
91
+ &.hidden_by_scoll_indicator_mode {
92
+ display: none;
93
+ }
94
+
81
95
  .bigScreen & {
82
96
  opacity: 0;
83
97
  visibility: 0;
84
98
  pointer-events: none;
85
99
  z-index: 0;
86
100
  }
101
+
102
+ &-swipe,
103
+ .has_mobile_platform &-scroll {
104
+ display: none;
105
+ }
106
+
107
+ .has_mobile_platform &-swipe {
108
+ display: inline;
109
+ }
87
110
  }
88
111
 
89
112
  .hidden_text_indicator {
@@ -20,7 +20,8 @@ $simulated-media-queries: false !default;
20
20
  }
21
21
  }
22
22
  @else {
23
- @media screen and (max-width: 700px) {
23
+ @media screen and (orientation: portrait) and (max-width: 500px),
24
+ screen and (orientation: landscape) and (max-height: 500px) {
24
25
  @content;
25
26
  }
26
27
  }
@@ -33,7 +34,8 @@ $simulated-media-queries: false !default;
33
34
  }
34
35
  }
35
36
  @else {
36
- @media screen and (min-width: 701px) {
37
+ @media screen and (orientation: portrait) and (min-width: 501px),
38
+ screen and (orientation: landscape) and (min-height: 501px) {
37
39
  @content;
38
40
  }
39
41
  }
@@ -89,4 +91,4 @@ $simulated-media-queries: false !default;
89
91
  @content;
90
92
  }
91
93
  }
92
- }
94
+ }
@@ -272,7 +272,7 @@
272
272
  @mixin fa-angle-double-up-icon { @include fontawesome-icon("\f102"); }
273
273
  @mixin fa-angle-double-down-icon { @include fontawesome-icon("\f103"); }
274
274
  @mixin fa-angle-left-icon { @include fontawesome-icon("\f104"); }
275
- @mixin fa-angle-right-icon { @include fontawesome-icon("\f105"); }
275
+ @mixin fa-angle-right-icon($args...) { @include fontawesome-icon("\f105", $args...); }
276
276
  @mixin fa-angle-up-icon { @include fontawesome-icon("\f106"); }
277
277
  @mixin fa-angle-down-icon($args...) { @include fontawesome-icon("\f107", $args...); }
278
278
  @mixin fa-desktop-icon { @include fontawesome-icon("\f108"); }
@@ -109,6 +109,10 @@ body {
109
109
  @include transform(translate3d(0, -100px, 0));
110
110
  @include transition(transform 0.4s ease, visibility 0.4s, right 250ms);
111
111
 
112
+ .widget_phone_horizontal_slideshow_mode_present & {
113
+ @include fa-arrow-up-icon;
114
+ }
115
+
112
116
  &.is_visible {
113
117
  visibility: visible;
114
118
  @include transform(translate3d(0, 0, 0));
@@ -375,4 +379,4 @@ body {
375
379
 
376
380
  .hideText .navigation_mobile .menu.index {
377
381
  display: none;
378
- }
382
+ }
@@ -5,9 +5,3 @@
5
5
  @import "./page_transitions/crossfade";
6
6
 
7
7
  @import "./page_transitions/cut";
8
-
9
- @import "./page_transitions/scroll_right";
10
- @import "./page_transitions/scroll_left";
11
-
12
- @import "./page_transitions/scroll_over_from_right";
13
- @import "./page_transitions/scroll_over_from_left";
@@ -4,6 +4,10 @@ section.crossfade {
4
4
  @include transition(1s ease);
5
5
  -webkit-backface-visibility: hidden;
6
6
 
7
+ &-fast {
8
+ @include transition(0.5s ease);
9
+ }
10
+
7
11
  .blackLayer {
8
12
  display: none;
9
13
  }
@@ -26,4 +30,4 @@ section.crossfade {
26
30
  &.active {
27
31
  opacity: 1;
28
32
  }
29
- }
33
+ }
@@ -5,7 +5,6 @@ section.page {
5
5
  }
6
6
 
7
7
  section.fade {
8
-
9
8
  background-color: transparent;
10
9
 
11
10
  &.invert {
@@ -15,6 +14,7 @@ section.fade {
15
14
  .blackLayer {
16
15
  display: none;
17
16
  }
17
+
18
18
  .backgroundArea {
19
19
  background-color: black;
20
20
  -webkit-backface-visibility: hidden;
@@ -24,23 +24,14 @@ section.fade {
24
24
  background-color: white;
25
25
  }
26
26
 
27
- &.animate-in-forwards .backgroundArea {
28
- opacity: 0;
29
- }
30
- &.animate-out-forwards .backgroundArea{
31
- @include transition (opacity 1s ease);
32
- opacity: 1;
33
- }
34
- &.animate-in-backwards .backgroundArea{
27
+ &.animate-in-forwards .backgroundArea,
28
+ &.animate-in-backwards .backgroundArea {
35
29
  opacity: 0;
36
30
  }
37
- &.animate-out-backwards .backgroundArea{
38
- @include transition (opacity 1s ease);
39
- opacity: 1;
40
- }
41
31
 
32
+ &.animate-out-forwards .backgroundArea,
33
+ &.animate-out-backwards .backgroundArea,
42
34
  &.active .backgroundArea {
43
- @include transition (opacity 1s ease);
44
35
  opacity: 1;
45
36
  }
46
37
 
@@ -48,35 +39,52 @@ section.fade {
48
39
  -webkit-backface-visibility: hidden;
49
40
  }
50
41
 
51
- &.active div.content {
52
- @include transition(1s ease);
53
- @include transform(translate3d(0,0,0));
42
+ &.animate-in-forwards,
43
+ &.animate-in-backwards {
44
+ z-index: 2;
54
45
  }
55
46
 
56
- &.animate-in-forwards {
57
- z-index: 2;
47
+ @mixin define($translate, $duration) {
48
+ &.active .backgroundArea,
49
+ &.animate-out-forwards .backgroundArea,
50
+ &.animate-out-backwards .backgroundArea {
51
+ @include transition(opacity $duration ease);
52
+ }
58
53
 
59
- .content {
60
- @include transform(translate3d(0,100%,0));
54
+ &.active .content,
55
+ &.animate-out-forwards .content,
56
+ &.animate-out-backwards .content {
57
+ @include transition($duration ease);
61
58
  }
62
- }
63
- &.animate-out-forwards {
64
- .content {
65
- @include transition(1s ease);
66
- @include transform(translate3d(0,-100%,0));
59
+
60
+ &.animate-in-forwards .content,
61
+ &.animate-out-backwards .content {
62
+ @include transform(call($translate, 100%));
67
63
  }
68
- }
69
- &.animate-in-backwards {
70
- z-index: 2;
71
64
 
72
- .content {
73
- @include transform(translate3d(0,-100%,0));
65
+ &.animate-out-forwards .content,
66
+ &.animate-in-backwards .content {
67
+ @include transform(call($translate, -100%));
74
68
  }
75
69
  }
76
- &.animate-out-backwards {
77
- .content {
78
- @include transition(1s ease);
79
- @include transform(translate3d(0,100%,0));
80
- }
70
+
71
+ @function translateV($value) {
72
+ @return translate3d(0, $value, 0);
73
+ }
74
+
75
+ @function translateH($value) {
76
+ @return translate3d($value, 0, 0);
77
+ }
78
+
79
+ &-v {
80
+ @include define("translateV", 1s);
81
+ }
82
+
83
+ &-h {
84
+ @include define("translateH", 0.5s);
85
+ }
86
+
87
+ &.active div.content {
88
+ @include transform(translate3d(0, 0, 0));
81
89
  }
82
90
  }