locomotivecms_wagon 2.4.0.rc2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/generators/foundation/public/javascripts/vendor/foundation.js +10839 -6523
  3. data/generators/foundation/public/javascripts/vendor/foundation.min.js +5 -3
  4. data/generators/foundation/public/stylesheets/_settings.scss +455 -115
  5. data/generators/foundation/public/stylesheets/app.css +0 -3
  6. data/generators/foundation/public/stylesheets/app.scss +15 -6
  7. data/generators/foundation/public/stylesheets/foundation.css +4191 -1885
  8. data/generators/foundation/public/stylesheets/foundation6/_global.scss +106 -54
  9. data/generators/foundation/public/stylesheets/foundation6/components/_accordion-menu.scss +157 -14
  10. data/generators/foundation/public/stylesheets/foundation6/components/_accordion.scss +71 -28
  11. data/generators/foundation/public/stylesheets/foundation6/components/_badge.scss +17 -9
  12. data/generators/foundation/public/stylesheets/foundation6/components/_breadcrumbs.scss +33 -10
  13. data/generators/foundation/public/stylesheets/foundation6/components/_button-group.scss +168 -30
  14. data/generators/foundation/public/stylesheets/foundation6/components/_button.scss +165 -44
  15. data/generators/foundation/public/stylesheets/foundation6/components/_callout.scss +9 -18
  16. data/generators/foundation/public/stylesheets/foundation6/components/_card.scss +129 -0
  17. data/generators/foundation/public/stylesheets/foundation6/components/_close-button.scss +54 -13
  18. data/generators/foundation/public/stylesheets/foundation6/components/_drilldown.scss +108 -33
  19. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown-menu.scss +215 -64
  20. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown.scss +22 -7
  21. data/generators/foundation/public/stylesheets/foundation6/components/_flex-video.scss +1 -68
  22. data/generators/foundation/public/stylesheets/foundation6/components/_flex.scss +117 -0
  23. data/generators/foundation/public/stylesheets/foundation6/components/_float.scss +1 -1
  24. data/generators/foundation/public/stylesheets/foundation6/components/_label.scss +16 -8
  25. data/generators/foundation/public/stylesheets/foundation6/components/_media-object.scss +50 -10
  26. data/generators/foundation/public/stylesheets/foundation6/components/_menu-icon.scss +9 -0
  27. data/generators/foundation/public/stylesheets/foundation6/components/_menu.scss +373 -91
  28. data/generators/foundation/public/stylesheets/foundation6/components/_off-canvas.scss +418 -83
  29. data/generators/foundation/public/stylesheets/foundation6/components/_orbit.scss +17 -7
  30. data/generators/foundation/public/stylesheets/foundation6/components/_pagination.scss +77 -45
  31. data/generators/foundation/public/stylesheets/foundation6/components/_progress-bar.scss +16 -35
  32. data/generators/foundation/public/stylesheets/foundation6/components/_responsive-embed.scss +70 -0
  33. data/generators/foundation/public/stylesheets/foundation6/components/_reveal.scss +59 -34
  34. data/generators/foundation/public/stylesheets/foundation6/components/_slider.scss +17 -38
  35. data/generators/foundation/public/stylesheets/foundation6/components/_sticky.scss +5 -4
  36. data/generators/foundation/public/stylesheets/foundation6/components/_switch.scss +52 -36
  37. data/generators/foundation/public/stylesheets/foundation6/components/_table.scss +197 -79
  38. data/generators/foundation/public/stylesheets/foundation6/components/_tabs.scss +126 -67
  39. data/generators/foundation/public/stylesheets/foundation6/components/_thumbnail.scss +17 -4
  40. data/generators/foundation/public/stylesheets/foundation6/components/_title-bar.scss +61 -21
  41. data/generators/foundation/public/stylesheets/foundation6/components/_tooltip.scss +74 -24
  42. data/generators/foundation/public/stylesheets/foundation6/components/_top-bar.scss +128 -10
  43. data/generators/foundation/public/stylesheets/foundation6/components/_visibility.scss +6 -5
  44. data/generators/foundation/public/stylesheets/foundation6/forms/_checkbox.scss +14 -9
  45. data/generators/foundation/public/stylesheets/foundation6/forms/_error.scss +12 -5
  46. data/generators/foundation/public/stylesheets/foundation6/forms/_fieldset.scss +6 -6
  47. data/generators/foundation/public/stylesheets/foundation6/forms/_forms.scss +11 -9
  48. data/generators/foundation/public/stylesheets/foundation6/forms/_help-text.scss +1 -1
  49. data/generators/foundation/public/stylesheets/foundation6/forms/_input-group.scss +82 -10
  50. data/generators/foundation/public/stylesheets/foundation6/forms/_label.scss +2 -0
  51. data/generators/foundation/public/stylesheets/foundation6/forms/_meter.scss +116 -0
  52. data/generators/foundation/public/stylesheets/foundation6/forms/_progress.scss +94 -0
  53. data/generators/foundation/public/stylesheets/foundation6/forms/_range.scss +149 -0
  54. data/generators/foundation/public/stylesheets/foundation6/forms/_select.scss +36 -14
  55. data/generators/foundation/public/stylesheets/foundation6/forms/_text.scss +53 -27
  56. data/generators/foundation/public/stylesheets/foundation6/foundation.scss +59 -17
  57. data/generators/foundation/public/stylesheets/foundation6/grid/_classes.scss +100 -56
  58. data/generators/foundation/public/stylesheets/foundation6/grid/_column.scss +22 -22
  59. data/generators/foundation/public/stylesheets/foundation6/grid/_flex-grid.scss +164 -96
  60. data/generators/foundation/public/stylesheets/foundation6/grid/_grid.scss +19 -4
  61. data/generators/foundation/public/stylesheets/foundation6/grid/_gutter.scss +61 -10
  62. data/generators/foundation/public/stylesheets/foundation6/grid/_layout.scss +49 -5
  63. data/generators/foundation/public/stylesheets/foundation6/grid/_position.scss +14 -9
  64. data/generators/foundation/public/stylesheets/foundation6/grid/_row.scss +42 -15
  65. data/generators/foundation/public/stylesheets/foundation6/motion-ui/_classes.scss +11 -4
  66. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_fade.scss +4 -1
  67. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_zoom.scss +1 -1
  68. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_slide.scss +1 -1
  69. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_transition.scss +1 -1
  70. data/generators/foundation/public/stylesheets/foundation6/prototype/_arrow.scss +36 -0
  71. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-box.scss +35 -0
  72. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-none.scss +35 -0
  73. data/generators/foundation/public/stylesheets/foundation6/prototype/_bordered.scss +54 -0
  74. data/generators/foundation/public/stylesheets/foundation6/prototype/_box.scss +23 -0
  75. data/generators/foundation/public/stylesheets/foundation6/prototype/_display.scss +50 -0
  76. data/generators/foundation/public/stylesheets/foundation6/prototype/_font-styling.scss +95 -0
  77. data/generators/foundation/public/stylesheets/foundation6/prototype/_list-style-type.scss +95 -0
  78. data/generators/foundation/public/stylesheets/foundation6/prototype/_overflow.scss +72 -0
  79. data/generators/foundation/public/stylesheets/foundation6/prototype/_position.scss +114 -0
  80. data/generators/foundation/public/stylesheets/foundation6/prototype/_prototype.scss +87 -0
  81. data/generators/foundation/public/stylesheets/foundation6/prototype/_relation.scss +157 -0
  82. data/generators/foundation/public/stylesheets/foundation6/prototype/_rotate.scss +31 -0
  83. data/generators/foundation/public/stylesheets/foundation6/prototype/_rounded.scss +54 -0
  84. data/generators/foundation/public/stylesheets/foundation6/prototype/_separator.scss +96 -0
  85. data/generators/foundation/public/stylesheets/foundation6/prototype/_shadow.scss +43 -0
  86. data/generators/foundation/public/stylesheets/foundation6/prototype/_sizing.scss +73 -0
  87. data/generators/foundation/public/stylesheets/foundation6/prototype/_spacing.scss +204 -0
  88. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-decoration.scss +48 -0
  89. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-transformation.scss +48 -0
  90. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-utilities.scss +88 -0
  91. data/generators/foundation/public/stylesheets/foundation6/settings/_settings.scss +454 -116
  92. data/generators/foundation/public/stylesheets/foundation6/typography/_alignment.scss +9 -8
  93. data/generators/foundation/public/stylesheets/foundation6/typography/_base.scss +128 -55
  94. data/generators/foundation/public/stylesheets/foundation6/typography/_helpers.scss +7 -4
  95. data/generators/foundation/public/stylesheets/foundation6/typography/_print.scss +22 -9
  96. data/generators/foundation/public/stylesheets/foundation6/typography/_typography.scss +0 -2
  97. data/generators/foundation/public/stylesheets/foundation6/util/_breakpoint.scss +213 -47
  98. data/generators/foundation/public/stylesheets/foundation6/util/_color.scss +105 -17
  99. data/generators/foundation/public/stylesheets/foundation6/util/_direction.scss +31 -0
  100. data/generators/foundation/public/stylesheets/foundation6/util/_flex.scss +85 -0
  101. data/generators/foundation/public/stylesheets/foundation6/util/_math.scss +72 -0
  102. data/generators/foundation/public/stylesheets/foundation6/util/_mixins.scss +161 -38
  103. data/generators/foundation/public/stylesheets/foundation6/util/_selector.scss +5 -3
  104. data/generators/foundation/public/stylesheets/foundation6/util/_typography.scss +26 -0
  105. data/generators/foundation/public/stylesheets/foundation6/util/_unit.scss +100 -17
  106. data/generators/foundation/public/stylesheets/foundation6/util/_util.scss +4 -5
  107. data/generators/foundation/public/stylesheets/foundation6/util/_value.scss +68 -25
  108. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/_normalize.scss +3 -0
  109. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_import-now.scss +11 -0
  110. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +676 -0
  111. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_variables.scss +36 -0
  112. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +61 -0
  113. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_contain.scss +31 -0
  114. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
  115. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
  116. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
  117. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
  118. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
  119. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
  120. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_cell.scss +169 -0
  121. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_classes.scss +476 -0
  122. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_collapse.scss +74 -0
  123. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_frame.scss +85 -0
  124. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_grid.scss +35 -0
  125. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_gutters.scss +45 -0
  126. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_layout.scss +33 -0
  127. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_position.scss +28 -0
  128. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_xy-grid.scss +51 -0
  129. data/lib/locomotive/wagon/tools/styled_yaml.rb +1 -1
  130. data/lib/locomotive/wagon/version.rb +1 -1
  131. data/locomotivecms_wagon.gemspec +2 -2
  132. data/spec/fixtures/cassettes/authenticate.yml +102 -48
  133. data/spec/fixtures/cassettes/delete.yml +519 -259
  134. data/spec/fixtures/cassettes/push.yml +2724 -1486
  135. metadata +61 -10
  136. data/generators/foundation/public/stylesheets/foundation6/motion-ui.scss +0 -4
  137. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize.scss +0 -424
@@ -6,163 +6,498 @@
6
6
  /// @group off-canvas
7
7
  ////
8
8
 
9
- /// Width of an off-canvas menu.
9
+ /// Width map of a left/right off-canvas panel.
10
+ /// @type Map
11
+ $offcanvas-sizes: (
12
+ small: 250px,
13
+ ) !default;
14
+
15
+ /// Height map of a top/bottom off-canvas panel.
16
+ /// @type Map
17
+ $offcanvas-vertical-sizes: (
18
+ small: 250px,
19
+ ) !default;
20
+
21
+ /// Background color of an off-canvas panel.
22
+ /// @type Color
23
+ $offcanvas-background: $light-gray !default;
24
+
25
+ /// Box shadow for the off-canvas overlap panel.
26
+ /// @type Shadow
27
+ $offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;
28
+
29
+ /// Inner box shadow size for the off-canvas push panel.
10
30
  /// @type Number
11
- $offcanvas-size: 250px;
31
+ $offcanvas-inner-shadow-size: 20px !default;
12
32
 
13
- /// Background color of an off-canvas menu.
33
+ /// Inner box shadow color for the off-canvas push panel.
14
34
  /// @type Color
15
- $offcanvas-background: $light-gray;
35
+ $offcanvas-inner-shadow-color: rgba($black, 0.25) !default;
36
+
37
+ /// Z-index of an off-canvas content overlay.
38
+ /// @type Number
39
+ $offcanvas-overlay-zindex: 11 !default;
40
+
41
+ /// Z-index of an off-canvas panel with the `push` transition.
42
+ /// @type Number
43
+ $offcanvas-push-zindex: 12 !default;
44
+
45
+ /// Z-index of an off-canvas panel with the `overlap` transition.
46
+ /// @type Number
47
+ $offcanvas-overlap-zindex: 13 !default;
16
48
 
17
- /// Z-index of an off-canvas menu.
49
+ /// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.
18
50
  /// @type Number
19
- $offcanvas-zindex: -1;
51
+ $offcanvas-reveal-zindex: 12 !default;
20
52
 
21
- /// Length of the animation on an off-canvas menu.
53
+ /// Length of the animation on an off-canvas panel.
22
54
  /// @type Number
23
- $offcanvas-transition-length: 0.5s;
55
+ $offcanvas-transition-length: 0.5s !default;
24
56
 
25
- /// Timing function of the animation on an off-canvas menu.
57
+ /// Timing function of the animation on an off-canvas panel.
26
58
  /// @type Keyword
27
- $offcanvas-transition-timing: ease;
59
+ $offcanvas-transition-timing: ease !default;
28
60
 
29
- /// Background color for the overlay that appears when an off-canvas menu is open.
30
- /// @type Color
31
- $offcanvas-exit-background: rgba($white, 0.25);
61
+ /// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.
62
+ /// @type Bool
63
+ $offcanvas-fixed-reveal: true !default;
32
64
 
33
- /// CSS class used for the main content area. The off-canvas mixins use this to target the page body.
34
- $maincontent-class: 'off-canvas-content';
65
+ /// Background color for the overlay that appears when an off-canvas panel is open.
66
+ /// @type Color
67
+ $offcanvas-exit-background: rgba($white, 0.25) !default;
35
68
 
36
- /// Box shadow to place under the main content area. This shadow overlaps the off-canvas menus.
37
- /// @type Shadow
38
- $maincontent-shadow: 0 0 10px rgba($black, 0.5);
69
+ /// CSS class used for the main content area. The off-canvas mixins use this to target the page content.
70
+ $maincontent-class: 'off-canvas-content' !default;
39
71
 
40
72
  /// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.
41
73
  @mixin off-canvas-basics {
42
- // Extra properties needed on <html> and <body> to make off-canvas work
43
- html,
44
- body {
45
- height: 100%;
46
- }
47
74
 
48
- .off-canvas-wrapper {
49
- width: 100%;
50
- overflow-x: hidden;
51
- position: relative;
52
- backface-visibility: hidden;
53
- -webkit-overflow-scrolling: touch;
75
+ /// Transform deprecated size settings into map & show warning
76
+ @if variable-exists(offcanvas-size) {
77
+ $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;
78
+ @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';
54
79
  }
55
-
56
- .off-canvas-wrapper-inner {
57
- @include clearfix;
58
- position: relative;
59
- width: 100%;
60
- transition: transform $offcanvas-transition-length $offcanvas-transition-timing;
80
+ @if variable-exists(offcanvas-vertical-size) {
81
+ $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;
82
+ @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';
61
83
  }
62
84
 
63
- // Container for page content
64
- .off-canvas-content {
65
- min-height: 100%;
66
- background: $body-background;
67
- transition: transform $offcanvas-transition-length $offcanvas-transition-timing;
68
- backface-visibility: hidden;
69
- z-index: 1;
85
+ // Checks the z-indexes and increase them due to backwards compatibility.
86
+ // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.
87
+ @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }
88
+ @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }
89
+ @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }
70
90
 
71
- @if hasvalue($maincontent-shadow) {
72
- box-shadow: $maincontent-shadow;
73
- }
91
+ // Hides overflow on body when an off-canvas panel is open.
92
+ .is-off-canvas-open {
93
+ overflow: hidden;
74
94
  }
75
95
 
76
- // Click-to-exit overlay (generated by JavaScript)
77
- .js-off-canvas-exit {
78
- display: none;
96
+ // Off-canvas overlay (generated by JavaScript)
97
+ .js-off-canvas-overlay {
79
98
  position: absolute;
80
99
  top: 0;
81
100
  left: 0;
101
+ z-index: $offcanvas-overlay-zindex;
102
+
82
103
  width: 100%;
83
104
  height: 100%;
105
+
106
+ transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;
107
+
84
108
  background: $offcanvas-exit-background;
85
- cursor: pointer;
86
- transition: background $offcanvas-transition-length $offcanvas-transition-timing;
87
109
 
88
- .is-off-canvas-open & {
89
- display: block;
110
+ opacity: 0;
111
+ visibility: hidden;
112
+
113
+ overflow: hidden;
114
+
115
+ &.is-visible {
116
+ opacity: 1;
117
+ visibility: visible;
118
+ }
119
+
120
+ &.is-closable {
121
+ cursor: pointer;
122
+ }
123
+
124
+ &.is-overlay-absolute {
125
+ position: absolute;
126
+ }
127
+
128
+ &.is-overlay-fixed {
129
+ position: fixed;
90
130
  }
91
131
  }
92
132
  }
93
133
 
94
- /// Adds basic styles for an off-canvas menu.
95
- @mixin off-canvas-base {
134
+ // Adds basic styles for an off-canvas wrapper.
135
+ @mixin off-canvas-wrapper() {
136
+ position: relative;
137
+ overflow: hidden;
138
+ }
139
+
140
+ /// Adds basic styles for an off-canvas panel.
141
+ @mixin off-canvas-base(
142
+ $background: $offcanvas-background,
143
+ $transition: $offcanvas-transition-length $offcanvas-transition-timing,
144
+ $fixed: true
145
+ ) {
96
146
  @include disable-mouse-outline;
97
- position: absolute;
98
- background: $offcanvas-background;
99
- z-index: $offcanvas-zindex;
100
- max-height: 100%;
101
- overflow-y: auto;
102
- transform: translateX(0px);
147
+
148
+ @if $fixed == true {
149
+ position: fixed;
150
+ }
151
+ @else {
152
+ position: absolute;
153
+ }
154
+
155
+ // Set the off-canvas z-index.
156
+ z-index: $offcanvas-push-zindex;
157
+
158
+ // Increase CSS specificity
159
+ &.is-transition-push {
160
+ z-index: $offcanvas-push-zindex;
161
+ }
162
+
163
+ transition: transform $transition;
164
+ backface-visibility: hidden;
165
+
166
+ background: $background;
167
+
168
+ // Hide inactive off-canvas within the content that have the same position
169
+ &.is-closed {
170
+ visibility: hidden;
171
+ }
172
+
173
+ // Overlap only styles.
174
+ &.is-transition-overlap {
175
+ z-index: $offcanvas-overlap-zindex;
176
+
177
+ &.is-open {
178
+ box-shadow: $offcanvas-shadow;
179
+ }
180
+ }
181
+
182
+ // Sets transform to 0 to show an off-canvas panel.
183
+ &.is-open {
184
+ transform: translate(0, 0);
185
+ }
103
186
  }
104
187
 
188
+ /// Adds styles to position an off-canvas panel to the left/right/top/bottom.
105
189
  @mixin off-canvas-position(
106
190
  $position: left,
107
- $size: $offcanvas-size,
108
- $fixed: false
191
+ $orientation: horizontal,
192
+ $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)
109
193
  ) {
110
194
  @if $position == left {
111
- left: -$size;
112
195
  top: 0;
113
- width: $size;
196
+ left: 0;
197
+ height: 100%;
198
+ overflow-y: auto;
199
+
200
+ @each $name, $size in $sizes {
201
+ @include breakpoint($name) {
202
+ width: $size;
203
+ transform: translateX(-$size);
204
+ }
205
+ }
206
+
207
+ // Sets the position for nested off-canvas element
208
+ @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {
209
+
210
+ @each $name, $size in $sizes {
211
+ @include breakpoint($name) {
212
+ transform: translateX(-$size);
213
+ }
214
+ }
215
+ &.is-transition-overlap.is-open {
216
+ transform: translate(0, 0);
217
+ }
218
+ }
219
+
220
+ // Sets the open position for the content
221
+ @at-root .#{$maincontent-class}.is-open-#{$position} {
222
+ &.has-transition-push {
223
+ @each $name, $size in $sizes {
224
+ @include breakpoint($name) {
225
+ transform: translateX($size);
226
+ }
227
+ }
228
+ }
229
+ }
114
230
  }
115
231
  @else if $position == right {
116
- right: -$size;
117
232
  top: 0;
118
- width: $size;
233
+ right: 0;
234
+ height: 100%;
235
+ overflow-y: auto;
236
+
237
+ @each $name, $size in $sizes {
238
+ @include breakpoint($name) {
239
+ width: $size;
240
+ transform: translateX($size);
241
+ }
242
+ }
243
+
244
+ // Sets the position for nested off-canvas element
245
+ @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {
246
+
247
+ @each $name, $size in $sizes {
248
+ @include breakpoint($name) {
249
+ transform: translateX($size);
250
+ }
251
+ }
252
+ &.is-transition-overlap.is-open {
253
+ transform: translate(0, 0);
254
+ }
255
+ }
256
+
257
+ // Sets the open position for the content
258
+ @at-root .#{$maincontent-class}.is-open-#{$position} {
259
+ &.has-transition-push {
260
+ @each $name, $size in $sizes {
261
+ @include breakpoint($name) {
262
+ transform: translateX(-$size);
263
+ }
264
+ }
265
+ }
266
+ }
267
+ }
268
+ @else if $position == top {
269
+ top: 0;
270
+ left: 0;
271
+ width: 100%;
272
+ overflow-x: auto;
273
+
274
+ @each $name, $size in $sizes {
275
+ @include breakpoint($name) {
276
+ height: $size;
277
+ transform: translateY(-$size);
278
+ }
279
+ }
280
+
281
+ // Sets the position for nested off-canvas element
282
+ @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {
283
+ @each $name, $size in $sizes {
284
+ @include breakpoint($name) {
285
+ transform: translateY(-$size);
286
+ }
287
+ }
288
+ &.is-transition-overlap.is-open {
289
+ transform: translate(0, 0);
290
+ }
291
+ }
292
+
293
+ // Sets the open position for the content
294
+ @at-root .#{$maincontent-class}.is-open-#{$position} {
295
+ &.has-transition-push {
296
+ @each $name, $size in $sizes {
297
+ @include breakpoint($name) {
298
+ transform: translateY($size);
299
+ }
300
+ }
301
+ }
302
+ }
119
303
  }
304
+ @else if $position == bottom {
305
+ bottom: 0;
306
+ left: 0;
307
+ width: 100%;
308
+ overflow-x: auto;
120
309
 
121
- // Generates an open state class that matches the width of the menu
122
- @at-root {
123
- .is-open-#{$position} {
310
+ @each $name, $size in $sizes {
311
+ @include breakpoint($name) {
312
+ height: $size;
313
+ transform: translateY($size);
314
+ }
315
+ }
316
+
317
+ // Sets the position for nested off-canvas element
318
+ @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {
319
+ @each $name, $size in $sizes {
320
+ @include breakpoint($name) {
321
+ transform: translateY($size);
322
+ }
323
+ }
324
+ &.is-transition-overlap.is-open {
325
+ transform: translate(0, 0);
326
+ }
327
+ }
328
+
329
+ // Sets the open position for the content
330
+ @at-root .#{$maincontent-class}.is-open-#{$position} {
331
+ &.has-transition-push {
332
+ @each $name, $size in $sizes {
333
+ @include breakpoint($name) {
334
+ transform: translateY(-$size);
335
+ }
336
+ }
337
+ }
338
+ }
339
+ }
340
+
341
+ // If $offcanvas-inner-shadow-size is set, add inner box-shadow.
342
+ // This mimics the off-canvas panel having a lower z-index, without having to have one.
343
+ @if $offcanvas-inner-shadow-size {
344
+ &.is-transition-push {
124
345
  @if $position == left {
125
- transform: translateX($size);
346
+ @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);
126
347
  }
127
348
  @else if $position == right {
128
- transform: translateX(-$size);
349
+ @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);
350
+ }
351
+ @else if $position == top {
352
+ @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);
353
+ }
354
+ @else if $position == bottom {
355
+ @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);
129
356
  }
130
357
  }
131
358
  }
359
+
132
360
  }
133
361
 
134
- /// Adds styles that reveal an off-canvas menu.
135
- /// @param {Keyword} $position [left] - Position of the off-canvas menu being revealed.
362
+ /// Sets the styles for the content container.
363
+ @mixin off-canvas-content() {
364
+ transform: none;
365
+ transition: transform $offcanvas-transition-length $offcanvas-transition-timing;
366
+ backface-visibility: hidden;
367
+
368
+ // Transform scope until the element is closed (makes sure transitionend gets triggered)
369
+ &.has-transition-push {
370
+ transform: translate(0, 0);
371
+ }
372
+
373
+ // Consider element & content, nested in another content
374
+ .off-canvas.is-open {
375
+ transform: translate(0, 0);
376
+ }
377
+ }
378
+
379
+ /// Adds styles that reveal an off-canvas panel.
136
380
  @mixin off-canvas-reveal(
137
- $position: left
381
+ $position: left,
382
+ $zindex: $offcanvas-reveal-zindex,
383
+ $content: $maincontent-class,
384
+ $breakpoint: small
138
385
  ) {
139
- #{$position}: 0;
386
+ transform: none;
387
+ z-index: $zindex;
388
+ transition: none;
389
+ visibility: visible;
390
+
391
+ @if not $offcanvas-fixed-reveal {
392
+ position: absolute;
393
+ }
394
+
395
+ .close-button {
396
+ display: none;
397
+ }
398
+
399
+ // Consider revealed element is nested in content
400
+ .#{$maincontent-class} & {
401
+ transform: none;
402
+ }
140
403
 
141
- & ~ .#{$maincontent-class} {
142
- margin-#{$position}: $offcanvas-size;
404
+ @at-root .#{$content}.has-reveal-#{$position} {
405
+ margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);
406
+ }
407
+
408
+ // backwards compatibility (prior to v6.4)
409
+ & ~ .#{$content} {
410
+ margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);
411
+ }
412
+ }
413
+
414
+ /// Overrides the off-canvas styles
415
+ @mixin in-canvas() {
416
+ visibility: visible;
417
+ height: auto;
418
+ position: static;
419
+ background: inherit;
420
+ width: inherit;
421
+ overflow: inherit;
422
+ transition: inherit;
423
+
424
+ // Increase CSS specificity
425
+ &.position-left,
426
+ &.position-right,
427
+ &.position-top,
428
+ &.position-bottom {
429
+ box-shadow: none;
430
+ transform: none;
431
+ }
432
+
433
+ .close-button {
434
+ display: none;
143
435
  }
144
436
  }
145
437
 
146
438
  @mixin foundation-off-canvas {
147
439
  @include off-canvas-basics;
148
440
 
441
+ // Off-canvas wrapper
442
+ .off-canvas-wrapper {
443
+ @include off-canvas-wrapper;
444
+ }
445
+
149
446
  // Off-canvas container
150
447
  .off-canvas {
151
448
  @include off-canvas-base;
152
449
 
153
- &.position-left { @include off-canvas-position(left); }
154
- &.position-right { @include off-canvas-position(right); }
450
+ // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.
451
+ @at-root .#{$maincontent-class} & {
452
+ // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.
453
+ // position: absolute;
454
+ }
455
+ }
456
+
457
+ // Off-canvas container with absolute position
458
+ .off-canvas-absolute {
459
+ @include off-canvas-base($fixed: false);
155
460
  }
156
461
 
157
- // Reveal off-canvas menu on larger screens
462
+ // Off-canvas position classes
463
+ .position-left { @include off-canvas-position(left, horizontal); }
464
+ .position-right { @include off-canvas-position(right, horizontal); }
465
+ .position-top { @include off-canvas-position(top, vertical); }
466
+ .position-bottom { @include off-canvas-position(bottom, vertical); }
467
+
468
+ .off-canvas-content {
469
+ @include off-canvas-content;
470
+ }
471
+
472
+ // Reveal off-canvas panel on larger screens
158
473
  @each $name, $value in $breakpoint-classes {
159
- @if $name != small {
474
+ @if $name != $-zf-zero-breakpoint {
160
475
  @include breakpoint($name) {
161
476
  .position-left.reveal-for-#{$name} {
162
- @include off-canvas-reveal(left);
477
+ @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);
163
478
  }
479
+
164
480
  .position-right.reveal-for-#{$name} {
165
- @include off-canvas-reveal(right);
481
+ @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);
482
+ }
483
+
484
+ .position-top.reveal-for-#{$name} {
485
+ @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);
486
+ }
487
+
488
+ .position-bottom.reveal-for-#{$name} {
489
+ @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);
490
+ }
491
+ }
492
+ }
493
+ }
494
+
495
+ // Move in-canvas for larger screens
496
+ @each $name, $value in $breakpoint-classes {
497
+ @if $name != $-zf-zero-breakpoint {
498
+ @include breakpoint($name) {
499
+ .off-canvas.in-canvas-for-#{$name} {
500
+ @include in-canvas;
166
501
  }
167
502
  }
168
503
  }