foundation-rails 5.5.3.2 → 6.1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +2 -8
  4. data/Rakefile +23 -0
  5. data/app/views/foundation/rails/styleguide/show.html.erb +2 -5
  6. data/bower.json +2 -2
  7. data/lib/foundation/rails/version.rb +1 -1
  8. data/lib/generators/foundation/install_generator.rb +6 -3
  9. data/lib/generators/foundation/templates/_settings.scss +546 -0
  10. data/lib/generators/foundation/templates/application.html.erb +0 -1
  11. data/lib/generators/foundation/templates/application.html.haml +0 -2
  12. data/lib/generators/foundation/templates/application.html.slim +0 -2
  13. data/lib/generators/foundation/templates/foundation_and_overrides.scss +51 -0
  14. data/vendor/assets/js/foundation.abide.js +418 -0
  15. data/vendor/assets/js/foundation.accordion.js +229 -0
  16. data/vendor/assets/js/foundation.accordionMenu.js +262 -0
  17. data/vendor/assets/js/foundation.core.js +378 -0
  18. data/vendor/assets/js/foundation.drilldown.js +321 -0
  19. data/vendor/assets/js/foundation.dropdown.js +390 -0
  20. data/vendor/assets/js/foundation.dropdownMenu.js +391 -0
  21. data/vendor/assets/js/foundation.equalizer.js +274 -0
  22. data/vendor/assets/js/foundation.interchange.js +184 -0
  23. data/vendor/assets/js/foundation.js +28 -0
  24. data/vendor/assets/js/foundation.magellan.js +212 -0
  25. data/vendor/assets/js/foundation.offcanvas.js +371 -0
  26. data/vendor/assets/js/foundation.orbit.js +419 -0
  27. data/vendor/assets/js/foundation.responsiveMenu.js +145 -0
  28. data/vendor/assets/js/foundation.responsiveToggle.js +106 -0
  29. data/vendor/assets/js/foundation.reveal.js +478 -0
  30. data/vendor/assets/js/foundation.slider.js +484 -0
  31. data/vendor/assets/js/foundation.sticky.js +436 -0
  32. data/vendor/assets/js/foundation.tabs.js +306 -0
  33. data/vendor/assets/js/foundation.toggler.js +147 -0
  34. data/vendor/assets/js/foundation.tooltip.js +429 -0
  35. data/vendor/assets/js/foundation.util.box.js +169 -0
  36. data/vendor/assets/js/foundation.util.keyboard.js +115 -0
  37. data/vendor/assets/js/foundation.util.mediaQuery.js +210 -0
  38. data/vendor/assets/js/foundation.util.motion.js +89 -0
  39. data/vendor/assets/js/foundation.util.nest.js +64 -0
  40. data/vendor/assets/js/foundation.util.timerAndImageLoader.js +78 -0
  41. data/vendor/assets/js/foundation.util.touch.js +339 -0
  42. data/vendor/assets/js/foundation.util.triggers.js +222 -0
  43. data/vendor/assets/scss/_global.scss +626 -0
  44. data/vendor/assets/scss/components/_accordion-menu.scss +32 -0
  45. data/vendor/assets/scss/components/_accordion.scss +113 -0
  46. data/vendor/assets/scss/components/_badge.scss +55 -0
  47. data/vendor/assets/scss/components/_breadcrumbs.scss +94 -0
  48. data/vendor/assets/scss/components/_button-group.scss +130 -0
  49. data/vendor/assets/scss/components/_button.scss +265 -0
  50. data/vendor/assets/scss/components/_callout.scss +105 -0
  51. data/vendor/assets/scss/components/_close-button.scss +61 -0
  52. data/vendor/assets/scss/components/_drilldown.scss +75 -0
  53. data/vendor/assets/scss/components/_dropdown-menu.scss +148 -0
  54. data/vendor/assets/scss/components/_dropdown.scss +64 -0
  55. data/vendor/assets/scss/components/_flex-video.scss +63 -0
  56. data/vendor/assets/scss/components/_float.scss +27 -0
  57. data/vendor/assets/scss/components/_label.scss +56 -0
  58. data/vendor/assets/scss/components/_media-object.scss +74 -0
  59. data/vendor/assets/scss/components/_menu.scss +209 -0
  60. data/vendor/assets/scss/components/_off-canvas.scss +180 -0
  61. data/vendor/assets/scss/components/_orbit.scss +193 -0
  62. data/vendor/assets/scss/components/_pagination.scss +158 -0
  63. data/vendor/assets/scss/components/_progress-bar.scss +83 -0
  64. data/vendor/assets/scss/components/_reveal.scss +156 -0
  65. data/vendor/assets/scss/components/_slider.scss +158 -0
  66. data/vendor/assets/scss/components/_sticky.scss +38 -0
  67. data/vendor/assets/scss/components/_switch.scss +232 -0
  68. data/vendor/assets/scss/components/_table.scss +213 -0
  69. data/vendor/assets/scss/components/_tabs.scss +170 -0
  70. data/vendor/assets/scss/components/_thumbnail.scss +54 -0
  71. data/vendor/assets/scss/components/_title-bar.scss +68 -0
  72. data/vendor/assets/scss/components/_tooltip.scss +100 -0
  73. data/vendor/assets/scss/components/_top-bar.scss +89 -0
  74. data/vendor/assets/scss/components/_visibility.scss +131 -0
  75. data/vendor/assets/scss/forms/_checkbox.scss +36 -0
  76. data/vendor/assets/scss/forms/_error.scss +82 -0
  77. data/vendor/assets/scss/forms/_fieldset.scss +53 -0
  78. data/vendor/assets/scss/forms/_forms.scss +32 -0
  79. data/vendor/assets/scss/forms/_help-text.scss +30 -0
  80. data/vendor/assets/scss/forms/_input-group.scss +91 -0
  81. data/vendor/assets/scss/forms/_label.scss +48 -0
  82. data/vendor/assets/scss/forms/_select.scss +63 -0
  83. data/vendor/assets/scss/forms/_text.scss +154 -0
  84. data/vendor/assets/scss/foundation.scss +91 -0
  85. data/vendor/assets/scss/grid/_classes.scss +153 -0
  86. data/vendor/assets/scss/grid/_column.scss +124 -0
  87. data/vendor/assets/scss/grid/_flex-grid.scss +281 -0
  88. data/vendor/assets/scss/grid/_grid.scss +48 -0
  89. data/vendor/assets/scss/grid/_gutter.scss +34 -0
  90. data/vendor/assets/scss/grid/_layout.scss +33 -0
  91. data/vendor/assets/scss/grid/_position.scss +72 -0
  92. data/vendor/assets/scss/grid/_row.scss +97 -0
  93. data/vendor/assets/scss/grid/_size.scss +24 -0
  94. data/vendor/assets/scss/settings/_settings.scss +547 -0
  95. data/vendor/assets/scss/typography/_alignment.scss +22 -0
  96. data/vendor/assets/scss/typography/_base.scss +439 -0
  97. data/vendor/assets/scss/typography/_helpers.scss +77 -0
  98. data/vendor/assets/scss/typography/_print.scss +73 -0
  99. data/vendor/assets/scss/typography/_typography.scss +28 -0
  100. data/vendor/assets/scss/util/_breakpoint.scss +266 -0
  101. data/vendor/assets/scss/util/_color.scss +41 -0
  102. data/vendor/assets/scss/util/_mixins.scss +223 -0
  103. data/vendor/assets/scss/util/_selector.scss +40 -0
  104. data/vendor/assets/scss/util/_unit.scss +90 -0
  105. data/vendor/assets/scss/util/_util.scss +15 -0
  106. data/vendor/assets/scss/util/_value.scss +126 -0
  107. metadata +97 -64
  108. data/update-gem.sh +0 -20
  109. data/vendor/assets/javascripts/foundation.js +0 -17
  110. data/vendor/assets/javascripts/foundation/foundation.abide.js +0 -426
  111. data/vendor/assets/javascripts/foundation/foundation.accordion.js +0 -125
  112. data/vendor/assets/javascripts/foundation/foundation.alert.js +0 -43
  113. data/vendor/assets/javascripts/foundation/foundation.clearing.js +0 -586
  114. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +0 -468
  115. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +0 -104
  116. data/vendor/assets/javascripts/foundation/foundation.interchange.js +0 -360
  117. data/vendor/assets/javascripts/foundation/foundation.joyride.js +0 -935
  118. data/vendor/assets/javascripts/foundation/foundation.js +0 -732
  119. data/vendor/assets/javascripts/foundation/foundation.magellan.js +0 -214
  120. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +0 -225
  121. data/vendor/assets/javascripts/foundation/foundation.orbit.js +0 -476
  122. data/vendor/assets/javascripts/foundation/foundation.reveal.js +0 -522
  123. data/vendor/assets/javascripts/foundation/foundation.slider.js +0 -296
  124. data/vendor/assets/javascripts/foundation/foundation.tab.js +0 -247
  125. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +0 -348
  126. data/vendor/assets/javascripts/foundation/foundation.topbar.js +0 -458
  127. data/vendor/assets/javascripts/vendor/modernizr.js +0 -1406
  128. data/vendor/assets/stylesheets/foundation.scss +0 -42
  129. data/vendor/assets/stylesheets/foundation/_functions.scss +0 -156
  130. data/vendor/assets/stylesheets/foundation/_settings.scss +0 -1489
  131. data/vendor/assets/stylesheets/foundation/components/_accordion.scss +0 -161
  132. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +0 -128
  133. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +0 -133
  134. data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +0 -132
  135. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +0 -208
  136. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +0 -261
  137. data/vendor/assets/stylesheets/foundation/components/_clearing.scss +0 -260
  138. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +0 -130
  139. data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +0 -269
  140. data/vendor/assets/stylesheets/foundation/components/_flex-video.scss +0 -51
  141. data/vendor/assets/stylesheets/foundation/components/_forms.scss +0 -607
  142. data/vendor/assets/stylesheets/foundation/components/_global.scss +0 -566
  143. data/vendor/assets/stylesheets/foundation/components/_grid.scss +0 -292
  144. data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +0 -460
  145. data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +0 -58
  146. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +0 -220
  147. data/vendor/assets/stylesheets/foundation/components/_keystrokes.scss +0 -60
  148. data/vendor/assets/stylesheets/foundation/components/_labels.scss +0 -106
  149. data/vendor/assets/stylesheets/foundation/components/_magellan.scss +0 -34
  150. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +0 -606
  151. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +0 -388
  152. data/vendor/assets/stylesheets/foundation/components/_pagination.scss +0 -163
  153. data/vendor/assets/stylesheets/foundation/components/_panels.scss +0 -107
  154. data/vendor/assets/stylesheets/foundation/components/_pricing-tables.scss +0 -150
  155. data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +0 -85
  156. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +0 -177
  157. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +0 -212
  158. data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +0 -120
  159. data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +0 -203
  160. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +0 -125
  161. data/vendor/assets/stylesheets/foundation/components/_switches.scss +0 -241
  162. data/vendor/assets/stylesheets/foundation/components/_tables.scss +0 -135
  163. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +0 -142
  164. data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +0 -66
  165. data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +0 -142
  166. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +0 -745
  167. data/vendor/assets/stylesheets/foundation/components/_type.scss +0 -525
  168. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +0 -425
  169. data/vendor/assets/stylesheets/normalize.scss +0 -424
@@ -0,0 +1,63 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group flex-video
7
+ ////
8
+
9
+ /// Margin below a flex video container.
10
+ /// @type Number
11
+ $flexvideo-margin-bottom: rem-calc(16) !default;
12
+
13
+ /// Padding used to create a 4:3 aspect ratio.
14
+ /// @type Number
15
+ $flexvideo-ratio: 4 by 3 !default;
16
+
17
+ /// Padding used to create a 16:9 aspect ratio.
18
+ /// @type Number
19
+ $flexvideo-ratio-widescreen: 16 by 9 !default;
20
+
21
+ /// Creates a percentage height that can be used as padding in a flex video container.
22
+ /// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.
23
+ /// @return {Number} A percentage value that can be used as the `padding-bottom` parameter of a flex video container.
24
+ @function flex-video($ratio) {
25
+ $w: nth($ratio, 1);
26
+ $h: nth($ratio, 3);
27
+ @return $h / $w * 100%;
28
+ }
29
+
30
+ /// Creates a flex video container.
31
+ /// @param {List} $ratio [$flexvideo-ratio] - Ratio to use for the container, formatted as `x by y`.
32
+ @mixin flex-video($ratio: $flexvideo-ratio) {
33
+ position: relative;
34
+ height: 0;
35
+ padding-bottom: flex-video($ratio);
36
+ margin-bottom: $flexvideo-margin-bottom;
37
+ overflow: hidden;
38
+
39
+ iframe,
40
+ object,
41
+ embed,
42
+ video {
43
+ position: absolute;
44
+ top: 0;
45
+ #{$global-left}: 0;
46
+ width: 100%;
47
+ height: 100%;
48
+ }
49
+ }
50
+
51
+ @mixin foundation-flex-video {
52
+ .flex-video {
53
+ @include flex-video;
54
+
55
+ &.widescreen {
56
+ padding-bottom: flex-video($flexvideo-ratio-widescreen);
57
+ }
58
+
59
+ &.vimeo {
60
+ padding-top: 0;
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,27 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group float
7
+ ////
8
+
9
+ @mixin foundation-float-classes {
10
+ .float-left {
11
+ float: left !important;
12
+ }
13
+
14
+ .float-right {
15
+ float: right !important;
16
+ }
17
+
18
+ .float-center {
19
+ display: block;
20
+ margin-left: auto;
21
+ margin-right: auto;
22
+ }
23
+
24
+ .clearfix {
25
+ @include clearfix;
26
+ }
27
+ }
@@ -0,0 +1,56 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group label
7
+ ////
8
+
9
+ /// Default background color for labels.
10
+ /// @type Color
11
+ $label-background: $primary-color !default;
12
+
13
+ /// Default text color for labels.
14
+ /// @type Color
15
+ $label-color: foreground($label-background) !default;
16
+
17
+ /// Default font size for labels.
18
+ /// @type Number
19
+ $label-font-size: 0.8rem !default;
20
+
21
+ /// Default padding inside labels.
22
+ /// @type Number
23
+ $label-padding: 0.33333rem 0.5rem !default;
24
+
25
+ /// Default radius of labels.
26
+ /// @type Number
27
+ $label-radius: $global-radius !default;
28
+
29
+ /// Generates base styles for a label.
30
+ @mixin label {
31
+ display: inline-block;
32
+ padding: $label-padding;
33
+ font-size: $label-font-size;
34
+ line-height: 1;
35
+ white-space: nowrap;
36
+ cursor: default;
37
+ border-radius: $label-radius;
38
+ }
39
+
40
+ @mixin foundation-label {
41
+ .label {
42
+ @include label;
43
+
44
+ background: $label-background;
45
+ color: $label-color;
46
+
47
+ @each $name, $color in $foundation-colors {
48
+ @if $name != primary {
49
+ &.#{$name} {
50
+ background: $color;
51
+ color: foreground($color);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,74 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group media-object
7
+ ////
8
+
9
+ /// Bottom margin of a media object.
10
+ /// @type Number
11
+ $mediaobject-margin-bottom: $global-margin !default;
12
+
13
+ /// Left and right padding on sections within a media object.
14
+ /// @type Number
15
+ $mediaobject-section-padding: $global-padding !default;
16
+
17
+ /// With of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.
18
+ /// @type Number
19
+ $mediaobject-image-width-stacked: 100% !default;
20
+
21
+ /// Adds styles for a media object container.
22
+ @mixin media-object-container {
23
+ margin-bottom: $mediaobject-margin-bottom;
24
+ display: block;
25
+ }
26
+
27
+ /// Adds styles for sections within a media object.
28
+ /// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.
29
+ @mixin media-object-section($padding: $mediaobject-section-padding) {
30
+ display: table-cell;
31
+ vertical-align: top;
32
+
33
+ &:first-child {
34
+ padding-#{$global-right}: $padding;
35
+ }
36
+
37
+ &:last-child:not(+ #{&}:first-child) {
38
+ padding-#{$global-left}: $padding;
39
+ }
40
+ }
41
+
42
+ /// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.
43
+ @mixin media-object-stack {
44
+ display: block;
45
+ padding: 0;
46
+ padding-bottom: $mediaobject-section-padding;
47
+
48
+ img {
49
+ width: $mediaobject-image-width-stacked;
50
+ }
51
+ }
52
+
53
+ @mixin foundation-media-object {
54
+ .media-object {
55
+ @include media-object-container;
56
+
57
+ img {
58
+ max-width: none;
59
+ }
60
+
61
+ &.stack-for-small .media-object-section {
62
+ @include breakpoint(small only) {
63
+ @include media-object-stack;
64
+ }
65
+ }
66
+ }
67
+
68
+ .media-object-section {
69
+ @include media-object-section;
70
+
71
+ &.middle { vertical-align: middle; }
72
+ &.bottom { vertical-align: bottom; }
73
+ }
74
+ }
@@ -0,0 +1,209 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group menu
7
+ ////
8
+
9
+ /// Margin of a menu.
10
+ /// @type Number
11
+ $menu-margin: 0 !default;
12
+
13
+ /// Left-hand margin of a nested menu.
14
+ /// @type Number
15
+ $menu-margin-nested: 1rem !default;
16
+
17
+ /// Padding for items in a menu.
18
+ /// @type Number
19
+ $menu-item-padding: 0.7rem 1rem !default;
20
+
21
+ /// Spacing between an icon and text in a menu item.
22
+ /// @type Number
23
+ $menu-icon-spacing: 0.25rem !default;
24
+
25
+ /// Maximum number of `expand-n` classes to include in the CSS.
26
+ /// @type Number
27
+ $menu-expand-max: 6 !default;
28
+
29
+ /// Creates the base styles for a Menu.
30
+ @mixin menu-base {
31
+ margin: $menu-margin;
32
+ list-style-type: none;
33
+
34
+ // List items are table cell to allow for vertical alignment
35
+ > li {
36
+ @include disable-mouse-outline;
37
+ display: table-cell;
38
+ vertical-align: middle;
39
+ }
40
+
41
+ // Reset line height to make the height of the overall item easier to calculate
42
+ > li:not(.menu-text) > a {
43
+ display: block;
44
+ padding: $menu-item-padding;
45
+ line-height: 1;
46
+ }
47
+
48
+ // Reset styles of inner elements
49
+ input,
50
+ a,
51
+ button {
52
+ margin-bottom: 0;
53
+ }
54
+ }
55
+
56
+ /// Expands the items of a Menu, so each item is the same width.
57
+ @mixin menu-expand {
58
+ display: table;
59
+ table-layout: fixed;
60
+ width: 100%;
61
+ }
62
+
63
+ /// Sets the direction of a Menu.
64
+ /// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.
65
+ @mixin menu-direction($dir: horizontal) {
66
+ @if $dir == horizontal {
67
+ > li {
68
+ display: table-cell;
69
+ }
70
+ }
71
+ @else if $dir == vertical {
72
+ > li {
73
+ display: block;
74
+ }
75
+ }
76
+ @else {
77
+ @warn 'The direction used for menu-direction() must be horizontal or vertical.';
78
+ }
79
+ }
80
+
81
+ /// Creates a simple Menu, which has no padding or hover state.
82
+ @mixin menu-simple {
83
+ a {
84
+ padding: 0;
85
+ margin-#{$global-right}: get-side($menu-item-padding, $global-right);
86
+ }
87
+ }
88
+
89
+ /// Adds styles for a nested Menu, by adding `margin-left` to the menu.
90
+ /// @param {Keyword|Number} $padding [auto] - Length of the margin.
91
+ @mixin menu-nested($margin: $menu-margin-nested) {
92
+ margin-#{$global-left}: $margin;
93
+ }
94
+
95
+ /// Adds support for icons to Menu items.
96
+ /// @param {Keyword} $position [side] - Positioning for icons. Can be `side` (left, or right on RTL) or `top`.
97
+ /// @param {Boolean} $base [true] - Set to `false` to prevent the shared CSS between side- and top-aligned icons from being printed. Set this to `false` if you're calling the mixin multiple times on the same element.
98
+ @mixin menu-icons($position: side, $base: true) {
99
+ @if $base {
100
+ > li > a {
101
+ > img,
102
+ > i {
103
+ vertical-align: middle;
104
+ }
105
+
106
+ > span {
107
+ vertical-align: middle;
108
+ }
109
+ }
110
+ }
111
+
112
+ @if $position == side {
113
+ > li > a {
114
+ > img,
115
+ > i {
116
+ display: inline-block;
117
+ margin-#{$global-right}: $menu-icon-spacing;
118
+ }
119
+ }
120
+ }
121
+ @else if $position == top {
122
+ > li > a {
123
+ text-align: center;
124
+
125
+ > img,
126
+ > i {
127
+ display: block;
128
+ margin: 0 auto $menu-icon-spacing;
129
+ }
130
+ }
131
+ }
132
+ }
133
+
134
+ @mixin menu-text {
135
+ font-weight: bold;
136
+ color: inherit;
137
+ line-height: 1;
138
+ padding-top: 0;
139
+ padding-bottom: 0;
140
+ padding: $menu-item-padding;
141
+ }
142
+
143
+ @mixin foundation-menu {
144
+ .menu {
145
+ @include menu-base;
146
+ @include menu-icons;
147
+
148
+ // Orientation
149
+ @include menu-direction(horizontal);
150
+
151
+ &.vertical {
152
+ @include menu-direction(vertical);
153
+ }
154
+
155
+ @each $size in $breakpoint-classes {
156
+ @if $size != small {
157
+ @include breakpoint($size) {
158
+ &.#{$size}-horizontal {
159
+ @include menu-direction(horizontal);
160
+ }
161
+
162
+ &.#{$size}-vertical {
163
+ @include menu-direction(vertical);
164
+ }
165
+ }
166
+ }
167
+ }
168
+
169
+ // Simple
170
+ &.simple {
171
+ @include menu-simple;
172
+ }
173
+
174
+ // Align right
175
+ &.align-#{$global-right} {
176
+ > li {
177
+ float: $global-right;
178
+ }
179
+ }
180
+
181
+ // Even-width
182
+ &.expanded {
183
+ @include menu-expand;
184
+
185
+ > li:first-child:last-child {
186
+ width: 100%;
187
+ }
188
+ }
189
+
190
+ // Vertical icons
191
+ &.icon-top {
192
+ @include menu-icons(top, $base: false);
193
+ }
194
+
195
+ // Nesting
196
+ &.nested {
197
+ @include menu-nested;
198
+ }
199
+ }
200
+
201
+ .menu-text {
202
+ @include menu-text;
203
+ }
204
+
205
+ // Prevent FOUC when using the Responsive Menu plugin
206
+ .no-js [data-responsive-menu] ul {
207
+ display: none;
208
+ }
209
+ }
@@ -0,0 +1,180 @@
1
+ // Foundation for Sites by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
5
+ ////
6
+ /// @group off-canvas
7
+ ////
8
+
9
+ /// Width of an off-canvas menu.
10
+ /// @type Number
11
+ $offcanvas-size: 250px !default;
12
+
13
+ /// Background color of an off-canvas menu.
14
+ /// @type Color
15
+ $offcanvas-background: $light-gray !default;
16
+
17
+ /// Z-index of an off-canvas menu.
18
+ /// @type Number
19
+ $offcanvas-zindex: -1 !default;
20
+
21
+ /// Length of the animation on an off-canvas menu.
22
+ /// @type Number
23
+ $offcanvas-transition-length: 0.5s !default;
24
+
25
+ /// Timing function of the animation on an off-canvas menu.
26
+ /// @type Keyword
27
+ $offcanvas-transition-timing: ease !default;
28
+
29
+ /// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.
30
+ $offcanvas-fixed-reveal: true !default;
31
+
32
+ /// Background color for the overlay that appears when an off-canvas menu is open.
33
+ /// @type Color
34
+ $offcanvas-exit-background: rgba($white, 0.25) !default;
35
+
36
+ /// CSS class used for the main content area. The off-canvas mixins use this to target the page body.
37
+ $maincontent-class: 'off-canvas-content' !default;
38
+
39
+ /// Box shadow to place under the main content area. This shadow overlaps the off-canvas menus.
40
+ /// @type Shadow
41
+ $maincontent-shadow: 0 0 10px rgba($black, 0.5) !default;
42
+
43
+ /// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.
44
+ @mixin off-canvas-basics {
45
+ // Extra properties needed on <html> and <body> to make off-canvas work
46
+ html,
47
+ body {
48
+ height: 100%;
49
+ }
50
+
51
+ .off-canvas-wrapper {
52
+ width: 100%;
53
+ overflow-x: hidden;
54
+ position: relative;
55
+ backface-visibility: hidden;
56
+ -webkit-overflow-scrolling: auto;
57
+ }
58
+
59
+ .off-canvas-wrapper-inner {
60
+ @include clearfix;
61
+ position: relative;
62
+ width: 100%;
63
+ transition: transform $offcanvas-transition-length $offcanvas-transition-timing;
64
+ }
65
+
66
+ // Container for page content
67
+ .off-canvas-content,
68
+ .#{$maincontent-class} {
69
+ min-height: 100%;
70
+ background: $body-background;
71
+ transition: transform $offcanvas-transition-length $offcanvas-transition-timing;
72
+ backface-visibility: hidden;
73
+ z-index: 1;
74
+
75
+ @if has-value($maincontent-shadow) {
76
+ box-shadow: $maincontent-shadow;
77
+ }
78
+ }
79
+
80
+ // Click-to-exit overlay (generated by JavaScript)
81
+ .js-off-canvas-exit {
82
+ display: none;
83
+ position: absolute;
84
+ top: 0;
85
+ left: 0;
86
+ width: 100%;
87
+ height: 100%;
88
+ background: $offcanvas-exit-background;
89
+ cursor: pointer;
90
+ transition: background $offcanvas-transition-length $offcanvas-transition-timing;
91
+
92
+ .is-off-canvas-open & {
93
+ display: block;
94
+ }
95
+ }
96
+ }
97
+
98
+ /// Adds basic styles for an off-canvas menu.
99
+ @mixin off-canvas-base {
100
+ @include disable-mouse-outline;
101
+ position: absolute;
102
+ background: $offcanvas-background;
103
+ z-index: $offcanvas-zindex;
104
+ max-height: 100%;
105
+ overflow-y: auto;
106
+ transform: translateX(0);
107
+ }
108
+
109
+ @mixin off-canvas-position(
110
+ $position: left,
111
+ $size: $offcanvas-size,
112
+ $fixed: false
113
+ ) {
114
+ @if $position == left {
115
+ left: -$size;
116
+ top: 0;
117
+ width: $size;
118
+ }
119
+ @else if $position == right {
120
+ right: -$size;
121
+ top: 0;
122
+ width: $size;
123
+ }
124
+
125
+ // Generates an open state class that matches the width of the menu
126
+ @at-root {
127
+ .is-open-#{$position} {
128
+ @if $position == left {
129
+ transform: translateX($size);
130
+ }
131
+ @else if $position == right {
132
+ transform: translateX(-$size);
133
+ }
134
+ }
135
+ }
136
+ }
137
+
138
+ /// Adds styles that reveal an off-canvas menu.
139
+ /// @param {Keyword} $position [left] - Position of the off-canvas menu being revealed.
140
+ @mixin off-canvas-reveal(
141
+ $position: left
142
+ ) {
143
+ #{$position}: 0;
144
+ z-index: auto;
145
+
146
+ @if $offcanvas-fixed-reveal {
147
+ position: fixed;
148
+ }
149
+
150
+ & ~ .#{$maincontent-class} {
151
+ margin-#{$position}: $offcanvas-size;
152
+ }
153
+ }
154
+
155
+ @mixin foundation-off-canvas {
156
+ @include off-canvas-basics;
157
+
158
+ // Off-canvas container
159
+ .off-canvas {
160
+ @include off-canvas-base;
161
+
162
+ &.position-left { @include off-canvas-position(left); }
163
+ &.position-right { @include off-canvas-position(right); }
164
+ }
165
+
166
+ // Reveal off-canvas menu on larger screens
167
+ @each $name, $value in $breakpoint-classes {
168
+ @if $name != small {
169
+ @include breakpoint($name) {
170
+ .position-left.reveal-for-#{$name} {
171
+ @include off-canvas-reveal(left);
172
+ }
173
+
174
+ .position-right.reveal-for-#{$name} {
175
+ @include off-canvas-reveal(right);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }