foundation-rails 6.1.2.0 → 6.2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -6
  3. data/README.md +1 -1
  4. data/Rakefile +5 -1
  5. data/bower.json +3 -3
  6. data/foundation-rails.gemspec +1 -0
  7. data/lib/foundation-rails.rb +1 -0
  8. data/lib/foundation/rails/version.rb +1 -1
  9. data/lib/generators/foundation/templates/foundation_and_overrides.scss +2 -2
  10. data/vendor/assets/js/foundation.abide.js.es6 +462 -0
  11. data/vendor/assets/js/{foundation.accordion.js → foundation.accordion.js.es6} +55 -47
  12. data/vendor/assets/js/{foundation.accordionMenu.js → foundation.accordionMenu.js.es6} +46 -35
  13. data/vendor/assets/js/{foundation.core.js → foundation.core.js.es6} +10 -8
  14. data/vendor/assets/js/{foundation.drilldown.js → foundation.drilldown.js.es6} +75 -49
  15. data/vendor/assets/js/{foundation.dropdown.js → foundation.dropdown.js.es6} +100 -88
  16. data/vendor/assets/js/{foundation.dropdownMenu.js → foundation.dropdownMenu.js.es6} +134 -128
  17. data/vendor/assets/js/{foundation.equalizer.js → foundation.equalizer.js.es6} +72 -61
  18. data/vendor/assets/js/{foundation.interchange.js → foundation.interchange.js.es6} +44 -45
  19. data/vendor/assets/js/{foundation.js → foundation.js.es6} +0 -0
  20. data/vendor/assets/js/{foundation.magellan.js → foundation.magellan.js.es6} +80 -83
  21. data/vendor/assets/js/foundation.offcanvas.js.es6 +395 -0
  22. data/vendor/assets/js/foundation.orbit.js.es6 +445 -0
  23. data/vendor/assets/js/{foundation.responsiveMenu.js → foundation.responsiveMenu.js.es6} +37 -31
  24. data/vendor/assets/js/foundation.responsiveToggle.js.es6 +112 -0
  25. data/vendor/assets/js/foundation.reveal.js.es6 +544 -0
  26. data/vendor/assets/js/{foundation.slider.js → foundation.slider.js.es6} +235 -184
  27. data/vendor/assets/js/{foundation.sticky.js → foundation.sticky.js.es6} +177 -166
  28. data/vendor/assets/js/{foundation.tabs.js → foundation.tabs.js.es6} +138 -118
  29. data/vendor/assets/js/{foundation.toggler.js → foundation.toggler.js.es6} +34 -37
  30. data/vendor/assets/js/{foundation.tooltip.js → foundation.tooltip.js.es6} +162 -153
  31. data/vendor/assets/js/foundation.util.box.js.es6 +183 -0
  32. data/vendor/assets/js/{foundation.util.keyboard.js → foundation.util.keyboard.js.es6} +54 -54
  33. data/vendor/assets/js/{foundation.util.mediaQuery.js → foundation.util.mediaQuery.js.es6} +46 -46
  34. data/vendor/assets/js/{foundation.util.motion.js → foundation.util.motion.js.es6} +58 -48
  35. data/vendor/assets/js/foundation.util.nest.js.es6 +76 -0
  36. data/vendor/assets/js/foundation.util.timerAndImageLoader.js.es6 +86 -0
  37. data/vendor/assets/js/{foundation.util.touch.js → foundation.util.touch.js.es6} +2 -2
  38. data/vendor/assets/js/foundation.util.triggers.js.es6 +239 -0
  39. data/vendor/assets/scss/_global.scss +28 -27
  40. data/vendor/assets/scss/components/_badge.scss +1 -1
  41. data/vendor/assets/scss/components/_button-group.scss +77 -26
  42. data/vendor/assets/scss/components/_button.scss +8 -8
  43. data/vendor/assets/scss/components/_callout.scss +2 -2
  44. data/vendor/assets/scss/components/_drilldown.scss +4 -0
  45. data/vendor/assets/scss/components/_dropdown-menu.scss +104 -54
  46. data/vendor/assets/scss/components/_flex.scss +28 -0
  47. data/vendor/assets/scss/components/_label.scss +1 -1
  48. data/vendor/assets/scss/components/_media-object.scss +37 -7
  49. data/vendor/assets/scss/components/_menu-icon.scss +9 -0
  50. data/vendor/assets/scss/components/_menu.scss +127 -29
  51. data/vendor/assets/scss/components/_off-canvas.scss +1 -0
  52. data/vendor/assets/scss/components/_pagination.scss +3 -3
  53. data/vendor/assets/scss/components/_progress-bar.scss +1 -25
  54. data/vendor/assets/scss/components/_reveal.scss +12 -6
  55. data/vendor/assets/scss/components/_slider.scss +3 -35
  56. data/vendor/assets/scss/components/_table.scss +8 -0
  57. data/vendor/assets/scss/components/_tabs.scss +5 -10
  58. data/vendor/assets/scss/components/_title-bar.scss +27 -10
  59. data/vendor/assets/scss/components/_tooltip.scss +0 -4
  60. data/vendor/assets/scss/components/_top-bar.scss +93 -21
  61. data/vendor/assets/scss/components/_visibility.scss +1 -1
  62. data/vendor/assets/scss/forms/_checkbox.scss +1 -1
  63. data/vendor/assets/scss/forms/_error.scss +7 -5
  64. data/vendor/assets/scss/forms/_forms.scss +3 -0
  65. data/vendor/assets/scss/forms/_help-text.scss +1 -1
  66. data/vendor/assets/scss/forms/_input-group.scss +44 -9
  67. data/vendor/assets/scss/forms/_meter.scss +109 -0
  68. data/vendor/assets/scss/forms/_progress.scss +85 -0
  69. data/vendor/assets/scss/forms/_range.scss +144 -0
  70. data/vendor/assets/scss/forms/_select.scss +1 -1
  71. data/vendor/assets/scss/forms/_text.scss +10 -1
  72. data/vendor/assets/scss/foundation.scss +16 -5
  73. data/vendor/assets/scss/grid/_classes.scss +5 -18
  74. data/vendor/assets/scss/grid/_column.scss +13 -11
  75. data/vendor/assets/scss/grid/_flex-grid.scss +54 -80
  76. data/vendor/assets/scss/grid/_grid.scss +22 -10
  77. data/vendor/assets/scss/grid/_layout.scss +18 -0
  78. data/vendor/assets/scss/grid/_row.scss +11 -15
  79. data/vendor/assets/scss/motion-ui/_classes.scss +10 -3
  80. data/vendor/assets/scss/motion-ui/effects/_fade.scss +4 -1
  81. data/vendor/assets/scss/motion-ui/effects/_zoom.scss +1 -1
  82. data/vendor/assets/scss/motion-ui/transitions/_slide.scss +1 -1
  83. data/vendor/assets/scss/motion-ui/util/_transition.scss +1 -1
  84. data/vendor/assets/scss/settings/_settings.scss +64 -47
  85. data/vendor/assets/scss/typography/_base.scss +4 -0
  86. data/vendor/assets/scss/typography/_print.scss +9 -5
  87. data/vendor/assets/scss/util/_breakpoint.scss +31 -25
  88. data/vendor/assets/scss/util/_color.scss +19 -0
  89. data/vendor/assets/scss/util/_flex.scss +68 -0
  90. data/vendor/assets/scss/util/_mixins.scss +13 -7
  91. data/vendor/assets/scss/util/_util.scss +1 -5
  92. data/vendor/assets/scss/util/_value.scss +9 -28
  93. metadata +51 -31
  94. data/vendor/assets/js/foundation.abide.js +0 -418
  95. data/vendor/assets/js/foundation.offcanvas.js +0 -376
  96. data/vendor/assets/js/foundation.orbit.js +0 -421
  97. data/vendor/assets/js/foundation.responsiveToggle.js +0 -106
  98. data/vendor/assets/js/foundation.reveal.js +0 -514
  99. data/vendor/assets/js/foundation.util.box.js +0 -169
  100. data/vendor/assets/js/foundation.util.nest.js +0 -63
  101. data/vendor/assets/js/foundation.util.timerAndImageLoader.js +0 -82
  102. data/vendor/assets/js/foundation.util.triggers.js +0 -224
@@ -20,25 +20,15 @@ $global-width: rem-calc(1200) !default;
20
20
  /// @type Number
21
21
  $global-lineheight: 1.5 !default;
22
22
 
23
- /// Primary color for interactive components like links and buttons.
24
- /// @type Color
25
- $primary-color: #2199e8 !default;
26
-
27
- /// Secondary color, used with components that support the `.secondary` class.
28
- /// @type Color
29
- $secondary-color: #777 !default;
30
-
31
- /// Color to indicate a positive status or action, used with the `.success` class.
32
- /// @type Color
33
- $success-color: #3adb76 !default;
34
-
35
- /// Color to indicate a caution status or action, used with the `.warning` class.
36
- /// @type Color
37
- $warning-color: #ffae00 !default;
38
-
39
- /// Color to indicate a negative status or action, used with the `.alert` class.
40
- /// @type Color
41
- $alert-color: #ec5840 !default;
23
+ /// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.
24
+ /// @type Map
25
+ $foundation-palette: (
26
+ primary: #2199e8,
27
+ secondary: #777,
28
+ success: #3adb76,
29
+ warning: #ffae00,
30
+ alert: #ec5840,
31
+ ) !default;
42
32
 
43
33
  /// Color used for light gray UI items.
44
34
  /// @type Color
@@ -97,20 +87,31 @@ $global-weight-bold: bold !default;
97
87
  $global-radius: 0 !default;
98
88
 
99
89
  /// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.
90
+ /// @type Keyword
100
91
  $global-text-direction: ltr !default;
101
92
 
93
+ /// Enables flexbox for components that support it.
94
+ /// @type Boolean
95
+ $global-flexbox: false !default;
96
+
97
+ @if not map-has-key($foundation-palette, primary) {
98
+ @error 'In $foundation-palette, you must have a color named "primary".';
99
+ }
100
+
102
101
  // Internal variables used for text direction
103
102
  $global-left: if($global-text-direction == rtl, right, left);
104
103
  $global-right: if($global-text-direction == rtl, left, right);
105
104
 
106
- // Internal map used to iterate through colors, to generate CSS classes with less code
107
- $foundation-colors: (
108
- primary: $primary-color,
109
- secondary: $secondary-color,
110
- success: $success-color,
111
- alert: $alert-color,
112
- warning: $warning-color,
113
- ) !default;
105
+ // Internal variables used for colors
106
+ $primary-color: map-get($foundation-palette, primary);
107
+ $secondary-color: map-get($foundation-palette, secondary);
108
+ $success-color: map-get($foundation-palette, success);
109
+ $warning-color: map-get($foundation-palette, warning);
110
+ $alert-color: map-get($foundation-palette, alert);
111
+
112
+ // Remove this in 6.3
113
+ $-zf-menu-icon-imported: false;
114
+ $-zf-flex-classes-imported: false;
114
115
 
115
116
  @mixin foundation-global-styles {
116
117
  @include -zf-normalize;
@@ -43,7 +43,7 @@ $badge-font-size: 0.6rem !default;
43
43
  background: $badge-background;
44
44
  color: $badge-color;
45
45
 
46
- @each $name, $color in $foundation-colors {
46
+ @each $name, $color in $foundation-palette {
47
47
  @if $name != primary {
48
48
  &.#{$name} {
49
49
  background: $color;
@@ -29,15 +29,32 @@ $buttongroup-expand-max: 6 !default;
29
29
  ) {
30
30
  @include clearfix;
31
31
  margin-bottom: $buttongroup-margin;
32
- font-size: map-get($button-sizes, default);
32
+ font-size: 0;
33
+
34
+ @if $global-flexbox {
35
+ display: flex;
36
+ flex-wrap: nowrap;
37
+ align-items: stretch;
38
+ }
33
39
 
34
40
  #{$child-selector} {
35
- float: #{$global-left};
36
41
  margin: 0;
37
- font-size: inherit;
42
+ font-size: map-get($button-sizes, default);
43
+
44
+ @if $global-flexbox {
45
+ flex: 0 0 auto;
46
+ }
47
+ @else {
48
+ float: #{$global-left};
49
+ }
38
50
 
39
51
  &:not(:last-child) {
40
- border-#{$global-right}: $buttongroup-spacing solid $body-background;
52
+ @if $global-flexbox {
53
+ margin-right: $buttongroup-spacing;
54
+ }
55
+ @else {
56
+ border-#{$global-right}: $buttongroup-spacing solid $body-background;
57
+ }
41
58
  }
42
59
  }
43
60
  }
@@ -48,22 +65,31 @@ $buttongroup-expand-max: 6 !default;
48
65
  $selector: $buttongroup-child-selector,
49
66
  $count: null
50
67
  ) {
51
- @if $count != null {
52
- @warn 'button-group-expand(): the $count property is no longer needed. This parameter will be removed in Foundation 6.2.';
53
- }
68
+ @if not $global-flexbox {
69
+ margin-right: -$buttongroup-spacing;
54
70
 
55
- display: table;
56
- table-layout: fixed;
57
- width: 100%;
58
-
59
- &::before,
60
- &::after {
61
- display: none;
71
+ &::before,
72
+ &::after {
73
+ display: none;
74
+ }
62
75
  }
63
76
 
77
+ // scss-lint:disable ZeroUnit
64
78
  #{$selector} {
65
- display: table-cell;
66
- float: none;
79
+ @if $global-flexbox {
80
+ flex: 1 1 0px;
81
+ }
82
+ @else {
83
+ @for $i from 2 through $buttongroup-expand-max {
84
+ &:first-child:nth-last-child(#{$i}) {
85
+ &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {
86
+ display: inline-block;
87
+ width: calc(#{percentage(1/$i)} - #{$buttongroup-spacing});
88
+ margin-right: $buttongroup-spacing;
89
+ }
90
+ }
91
+ }
92
+ }
67
93
  }
68
94
  }
69
95
 
@@ -72,11 +98,20 @@ $buttongroup-expand-max: 6 !default;
72
98
  @mixin button-group-stack(
73
99
  $selector: $buttongroup-child-selector
74
100
  ) {
101
+ @if $global-flexbox {
102
+ flex-wrap: wrap;
103
+ }
104
+
75
105
  #{$selector} {
76
- width: 100%;
106
+ @if $global-flexbox {
107
+ flex: 0 0 100%;
108
+ }
109
+ @else {
110
+ width: 100%;
111
+ }
77
112
 
78
113
  &:not(:last-child) {
79
- border-#{$global-right}: $buttongroup-spacing solid;
114
+ margin-#{$global-right}: 0;
80
115
  }
81
116
  }
82
117
  }
@@ -86,11 +121,17 @@ $buttongroup-expand-max: 6 !default;
86
121
  @mixin button-group-unstack(
87
122
  $selector: $buttongroup-child-selector
88
123
  ) {
124
+ // scss-lint:disable ZeroUnit
89
125
  #{$selector} {
90
- width: auto;
126
+ @if $global-flexbox {
127
+ flex: 1 1 0px;
128
+ }
129
+ @else {
130
+ width: auto;
131
+ }
91
132
 
92
133
  &:not(:last-child) {
93
- border-#{$global-right}: $buttongroup-spacing solid $body-background;
134
+ margin-#{$global-right}: $buttongroup-spacing;
94
135
  }
95
136
  }
96
137
  }
@@ -100,13 +141,15 @@ $buttongroup-expand-max: 6 !default;
100
141
  @include button-group;
101
142
 
102
143
  // Sizes
103
- &.tiny { font-size: map-get($button-sizes, tiny); }
104
- &.small { font-size: map-get($button-sizes, small); }
105
- &.large { font-size: map-get($button-sizes, large); }
144
+ @each $size, $value in map-remove($button-sizes, default) {
145
+ &.#{$size} #{$buttongroup-child-selector} { font-size: $value; }
146
+ }
147
+
148
+ // Even-width Group
106
149
  &.expanded { @include button-group-expand; }
107
150
 
108
151
  // Colors
109
- @each $name, $color in $foundation-colors {
152
+ @each $name, $color in $foundation-palette {
110
153
  @if $button-fill != hollow {
111
154
  &.#{$name} #{$buttongroup-child-selector} {
112
155
  @include button-style($color, auto, auto);
@@ -121,7 +164,8 @@ $buttongroup-expand-max: 6 !default;
121
164
  }
122
165
 
123
166
  &.stacked,
124
- &.stacked-for-small {
167
+ &.stacked-for-small,
168
+ &.stacked-for-medium {
125
169
  @include button-group-stack;
126
170
  }
127
171
 
@@ -131,13 +175,20 @@ $buttongroup-expand-max: 6 !default;
131
175
  }
132
176
  }
133
177
 
178
+ &.stacked-for-medium {
179
+ @include breakpoint(large) {
180
+ @include button-group-unstack;
181
+ }
182
+ }
183
+
184
+ // scss-lint:disable MergeableSelector
134
185
  &.stacked-for-small.expanded {
135
186
  @include breakpoint(small only) {
136
187
  display: block;
137
188
 
138
189
  #{$buttongroup-child-selector} {
139
190
  display: block;
140
- border-right: 0;
191
+ margin-right: 0;
141
192
  }
142
193
  }
143
194
  }
@@ -28,11 +28,11 @@ $button-background-hover: scale-color($button-background, $lightness: -15%) !def
28
28
 
29
29
  /// Font color for buttons.
30
30
  /// @type List
31
- $button-color: #fff !default;
31
+ $button-color: $white !default;
32
32
 
33
33
  /// Font color for buttons, if the background is light.
34
34
  /// @type List
35
- $button-color-alt: #000 !default;
35
+ $button-color-alt: $black !default;
36
36
 
37
37
  /// Border radius for buttons, defaulted to global-radius.
38
38
  /// @type Number
@@ -194,13 +194,13 @@ $button-opacity-disabled: 0.25 !default;
194
194
  @include button;
195
195
 
196
196
  // Sizes
197
- &.tiny { font-size: map-get($button-sizes, tiny); }
198
- &.small { font-size: map-get($button-sizes, small); }
199
- &.large { font-size: map-get($button-sizes, large); }
197
+ @each $size, $value in map-remove($button-sizes, default) {
198
+ &.#{$size} { font-size: $value; }
199
+ }
200
200
  &.expanded { @include button-expand; }
201
201
 
202
202
  // Colors
203
- @each $name, $color in $foundation-colors {
203
+ @each $name, $color in $foundation-palette {
204
204
  @if $button-fill != hollow {
205
205
  &.#{$name} {
206
206
  @include button-style($color, auto);
@@ -223,7 +223,7 @@ $button-opacity-disabled: 0.25 !default;
223
223
  @include button-hollow;
224
224
  @include button-hollow-style;
225
225
 
226
- @each $name, $color in $foundation-colors {
226
+ @each $name, $color in $foundation-palette {
227
227
  &.#{$name} {
228
228
  @include button-hollow-style($color);
229
229
  }
@@ -252,7 +252,7 @@ $button-opacity-disabled: 0.25 !default;
252
252
  &.arrow-only::after {
253
253
  margin-#{$global-left}: 0;
254
254
  float: none;
255
- top: 0.2em;
255
+ top: -0.1em;
256
256
  }
257
257
  }
258
258
  }
@@ -14,7 +14,7 @@ $callout-background: $white !default;
14
14
  /// @type Number
15
15
  $callout-background-fade: 85% !default;
16
16
 
17
- /// Defualt border style for callouts.
17
+ /// Default border style for callouts.
18
18
  /// @type List
19
19
  $callout-border: 1px solid rgba($black, 0.25) !default;
20
20
 
@@ -88,7 +88,7 @@ $callout-link-tint: 30% !default;
88
88
  .callout {
89
89
  @include callout;
90
90
 
91
- @each $name, $color in $foundation-colors {
91
+ @each $name, $color in $foundation-palette {
92
92
  &.#{$name} {
93
93
  @include callout-style($color);
94
94
  }
@@ -27,6 +27,10 @@ $drilldown-background: $white !default;
27
27
  .is-drilldown {
28
28
  position: relative;
29
29
  overflow: hidden;
30
+
31
+ li {
32
+ display: block !important;
33
+ }
30
34
  }
31
35
 
32
36
  // Applied to nested <ul>s
@@ -31,24 +31,108 @@ $dropdownmenu-border: 1px solid $medium-gray !default;
31
31
  // @type Length
32
32
  $dropdownmenu-border-width: nth($dropdownmenu-border, 1);
33
33
 
34
+ @mixin left-right-arrows {
35
+ > a::after {
36
+ #{$global-right}: 14px;
37
+ margin-top: -3px;
38
+ }
39
+
40
+ &.opens-left > a::after {
41
+ @include css-triangle(5px, $dropdownmenu-arrow-color, left);
42
+ }
43
+
44
+ &.opens-right > a::after {
45
+ @include css-triangle(5px, $dropdownmenu-arrow-color, right);
46
+ }
47
+ }
48
+
49
+ @mixin dropdown-menu-direction($dir: horizontal) {
50
+ @if $dir == horizontal {
51
+ > li.opens-left {
52
+ > .is-dropdown-submenu {
53
+ left: auto;
54
+ right: 0;
55
+ top: 100%;
56
+ }
57
+ }
58
+
59
+ > li.opens-right {
60
+ > .is-dropdown-submenu {
61
+ right: auto;
62
+ left: 0;
63
+ top: 100%;
64
+ }
65
+ }
66
+
67
+ @if $dropdownmenu-arrows {
68
+ > li.is-dropdown-submenu-parent > a {
69
+ padding-#{$global-right}: 1.5rem;
70
+ position: relative;
71
+ }
72
+
73
+ > li.is-dropdown-submenu-parent > a::after {
74
+ @include css-triangle(5px, $dropdownmenu-arrow-color, down);
75
+ #{$global-right}: 5px;
76
+ margin-top: -2px;
77
+ }
78
+ }
79
+ }
80
+ @else if $dir == vertical {
81
+ > li {
82
+ .is-dropdown-submenu {
83
+ top: 0;
84
+ }
85
+
86
+ &.opens-left {
87
+ .is-dropdown-submenu {
88
+ left: auto;
89
+ right: 100%;
90
+ }
91
+ }
92
+
93
+ &.opens-right {
94
+ .is-dropdown-submenu {
95
+ right: auto;
96
+ left: 100%;
97
+ }
98
+ }
99
+
100
+ @if $dropdownmenu-arrows {
101
+ @include left-right-arrows;
102
+ }
103
+ }
104
+ }
105
+ @else {
106
+ @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';
107
+ }
108
+ }
109
+
34
110
  @mixin foundation-dropdown-menu {
35
111
  .dropdown.menu {
112
+ @include dropdown-menu-direction(horizontal);
113
+
36
114
  a {
37
115
  @include disable-mouse-outline;
38
116
  }
39
- &:not(.vertical) {
40
117
 
41
- }
42
118
  .no-js & ul {
43
119
  display: none;
44
120
  }
45
121
 
46
- &:not(.vertical) {
47
- .is-dropdown-submenu {
48
- &.first-sub {
49
- top: 100%;
50
- #{$global-left}: 0;
51
- #{$global-right}: auto;
122
+ &.vertical {
123
+ @include dropdown-menu-direction(vertical);
124
+ }
125
+
126
+ @each $size in $breakpoint-classes {
127
+ @if $size != small {
128
+ @include breakpoint($size) {
129
+ &.#{$size}-horizontal {
130
+ @include dropdown-menu-direction(horizontal);
131
+ }
132
+
133
+ &.#{$size}-vertical {
134
+ @include dropdown-menu-direction(vertical);
135
+ }
52
136
  }
53
137
  }
54
138
  }
@@ -68,55 +152,16 @@ $dropdownmenu-border-width: nth($dropdownmenu-border, 1);
68
152
  &.align-right {
69
153
  float: right;
70
154
  }
71
-
72
- > li .is-dropdown-submenu {
73
- top: 0;
74
- left: 100%;
75
- }
76
155
  }
77
156
 
78
157
  .is-dropdown-submenu-parent {
79
158
  position: relative;
80
159
 
81
160
  a::after {
82
- float: $global-right;
83
- margin-top: 3px;
84
- margin-#{$global-left}: 10px;
85
- }
86
-
87
- @if $dropdownmenu-arrows {
88
- &.is-down-arrow a {
89
- padding-#{$global-right}: 1.5rem;
90
- position: relative;
91
- }
92
-
93
- &.is-down-arrow > a::after {
94
- @include css-triangle(5px, $dropdownmenu-arrow-color, down);
95
- position: absolute;
96
- top: rem-calc(2px) + rem-calc(get-side($menu-item-padding, top));
97
- #{$global-right}: 5px;
98
- }
99
-
100
- &.is-left-arrow > a::after {
101
- @include css-triangle(5px, $dropdownmenu-arrow-color, left);
102
- float: left;
103
- margin-left: 0;
104
- margin-right: 10px;
105
- }
106
-
107
- &.is-right-arrow > a::after {
108
- @include css-triangle(5px, $dropdownmenu-arrow-color, right);
109
- }
110
- }
111
-
112
- &.is-left-arrow.opens-inner .is-dropdown-submenu {
113
- right: 0;
114
- left: auto;
115
- }
116
-
117
- &.is-right-arrow.opens-inner .is-dropdown-submenu {
118
- left: 0;
119
- right: auto;
161
+ position: absolute;
162
+ top: 50%;
163
+ #{$global-right}: 5px;
164
+ margin-top: -2px;
120
165
  }
121
166
 
122
167
  &.opens-inner .is-dropdown-submenu {
@@ -125,11 +170,11 @@ $dropdownmenu-border-width: nth($dropdownmenu-border, 1);
125
170
 
126
171
  &.opens-left .is-dropdown-submenu {
127
172
  left: auto;
128
- right: 100%;
173
+ right: 0;
174
+ top: 100%;
129
175
  }
130
176
  }
131
177
 
132
-
133
178
  .is-dropdown-submenu {
134
179
  display: none;
135
180
  position: absolute;
@@ -140,6 +185,12 @@ $dropdownmenu-border-width: nth($dropdownmenu-border, 1);
140
185
  background: $dropdownmenu-background;
141
186
  border: $dropdownmenu-border;
142
187
 
188
+ .is-dropdown-submenu-parent {
189
+ @if $dropdownmenu-arrows {
190
+ @include left-right-arrows;
191
+ }
192
+ }
193
+
143
194
  @if (type-of($dropdownmenu-border-width) == 'number') {
144
195
  .is-dropdown-submenu {
145
196
  margin-top: (-$dropdownmenu-border-width);
@@ -150,7 +201,6 @@ $dropdownmenu-border-width: nth($dropdownmenu-border, 1);
150
201
  width: 100%;
151
202
  }
152
203
 
153
-
154
204
  // [TODO] Cut back specificity
155
205
  // scss-lint:disable SelectorDepth
156
206
  &:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &,