foundation-rails 5.1.1.0 → 5.2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -7
  3. data/bower.json +2 -2
  4. data/lib/foundation/rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/foundation/foundation.abide.js +3 -6
  6. data/vendor/assets/javascripts/foundation/foundation.accordion.js +5 -4
  7. data/vendor/assets/javascripts/foundation/foundation.alert.js +1 -1
  8. data/vendor/assets/javascripts/foundation/foundation.clearing.js +70 -34
  9. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +121 -28
  10. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +6 -6
  11. data/vendor/assets/javascripts/foundation/foundation.interchange.js +34 -25
  12. data/vendor/assets/javascripts/foundation/foundation.joyride.js +4 -8
  13. data/vendor/assets/javascripts/foundation/foundation.js +94 -78
  14. data/vendor/assets/javascripts/foundation/foundation.magellan.js +3 -4
  15. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +19 -1
  16. data/vendor/assets/javascripts/foundation/foundation.orbit.js +151 -102
  17. data/vendor/assets/javascripts/foundation/foundation.reveal.js +43 -15
  18. data/vendor/assets/javascripts/foundation/foundation.slider.js +187 -0
  19. data/vendor/assets/javascripts/foundation/foundation.tab.js +116 -18
  20. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +112 -60
  21. data/vendor/assets/javascripts/foundation/foundation.topbar.js +47 -14
  22. data/vendor/assets/javascripts/vendor/modernizr.js +3 -3
  23. data/vendor/assets/stylesheets/foundation.scss +7 -0
  24. data/vendor/assets/stylesheets/foundation/_functions.scss +4 -0
  25. data/vendor/assets/stylesheets/foundation/_settings.scss +11 -2
  26. data/vendor/assets/stylesheets/foundation/components/_accordion.scss +5 -1
  27. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +4 -0
  28. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +44 -12
  29. data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +4 -0
  30. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +4 -0
  31. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +7 -5
  32. data/vendor/assets/stylesheets/foundation/components/_clearing.scss +4 -0
  33. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +4 -0
  34. data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +100 -11
  35. data/vendor/assets/stylesheets/foundation/components/_flex-video.scss +4 -0
  36. data/vendor/assets/stylesheets/foundation/components/_forms.scss +25 -21
  37. data/vendor/assets/stylesheets/foundation/components/_global.scss +79 -44
  38. data/vendor/assets/stylesheets/foundation/components/_grid.scss +6 -2
  39. data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +4 -0
  40. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +4 -0
  41. data/vendor/assets/stylesheets/foundation/components/_keystrokes.scss +5 -1
  42. data/vendor/assets/stylesheets/foundation/components/_labels.scss +4 -0
  43. data/vendor/assets/stylesheets/foundation/components/_magellan.scss +4 -0
  44. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +51 -59
  45. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +97 -14
  46. data/vendor/assets/stylesheets/foundation/components/_pagination.scss +7 -2
  47. data/vendor/assets/stylesheets/foundation/components/_panels.scss +5 -1
  48. data/vendor/assets/stylesheets/foundation/components/_pricing-tables.scss +4 -0
  49. data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +4 -0
  50. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +148 -0
  51. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +36 -7
  52. data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +8 -3
  53. data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +4 -0
  54. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +6 -2
  55. data/vendor/assets/stylesheets/foundation/components/_switch.scss +4 -0
  56. data/vendor/assets/stylesheets/foundation/components/_tables.scss +4 -0
  57. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +12 -6
  58. data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +4 -0
  59. data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +9 -0
  60. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +52 -25
  61. data/vendor/assets/stylesheets/foundation/components/_type.scss +132 -75
  62. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +198 -538
  63. data/vendor/assets/stylesheets/normalize.scss +179 -166
  64. metadata +4 -2
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.topbar = {
5
5
  name : 'topbar',
6
6
 
7
- version: '5.1.1',
7
+ version: '5.2.0',
8
8
 
9
9
  settings : {
10
10
  index : 0,
@@ -13,7 +13,8 @@
13
13
  back_text: 'Back',
14
14
  is_hover: true,
15
15
  mobile_show_parent_link: false,
16
- scrolltop : true // jump to top when sticky nav menu toggle is clicked
16
+ scrolltop : true, // jump to top when sticky nav menu toggle is clicked
17
+ sticky_on : 'all'
17
18
  },
18
19
 
19
20
  init : function (section, method, options) {
@@ -25,15 +26,13 @@
25
26
  this.bindings(method, options);
26
27
 
27
28
  self.S('[' + this.attr_name() + ']', this.scope).each(function () {
28
- var topbar = self.S(this),
29
+ var topbar = $(this),
29
30
  settings = topbar.data(self.attr_name(true) + '-init'),
30
31
  section = self.S('section', this),
31
- titlebar = $('> ul', this).first();
32
-
32
+ titlebar = topbar.children().filter('ul').first();
33
33
  topbar.data('index', 0);
34
-
35
34
  var topbarContainer = topbar.parent();
36
- if(topbarContainer.hasClass('fixed') || topbarContainer.hasClass(settings.sticky_class)) {
35
+ if(topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
37
36
  self.settings.sticky_class = settings.sticky_class;
38
37
  self.settings.sticky_topbar = topbar;
39
38
  topbar.data('height', topbarContainer.outerHeight());
@@ -60,6 +59,22 @@
60
59
 
61
60
  },
62
61
 
62
+ is_sticky: function (topbar, topbarContainer, settings) {
63
+ var sticky = topbarContainer.hasClass(settings.sticky_class);
64
+
65
+ if (sticky && settings.sticky_on === 'all') {
66
+ return true;
67
+ } else if (sticky && this.small() && settings.sticky_on === 'small') {
68
+ return true;
69
+ } else if (sticky && this.medium() && settings.sticky_on === 'medium') {
70
+ return true;
71
+ } else if (sticky && this.large() && settings.sticky_on === 'large') {
72
+ return true;
73
+ }
74
+
75
+ return false;
76
+ },
77
+
63
78
  toggle: function (toggleEl) {
64
79
  var self = this;
65
80
 
@@ -109,7 +124,7 @@
109
124
  }
110
125
  }
111
126
  } else {
112
- if(topbar.parent().hasClass(self.settings.sticky_class)) {
127
+ if(self.is_sticky(topbar, topbar.parent(), settings)) {
113
128
  topbar.parent().addClass('fixed');
114
129
  }
115
130
 
@@ -139,6 +154,13 @@
139
154
  e.preventDefault();
140
155
  self.toggle(this);
141
156
  })
157
+ .on('click.fndtn.topbar','.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]',function (e) {
158
+ var li = $(this).closest('li');
159
+ if(self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown'))
160
+ {
161
+ self.toggle();
162
+ }
163
+ })
142
164
  .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
143
165
  var li = S(this),
144
166
  target = S(e.target),
@@ -266,7 +288,7 @@
266
288
  }
267
289
  }
268
290
 
269
- if(stickyContainer.length > 0) {
291
+ if(self.is_sticky(topbar, stickyContainer, settings)) {
270
292
  if(stickyContainer.hasClass('fixed')) {
271
293
  // Remove the fixed to allow for correct calculation of the offset.
272
294
  stickyContainer.removeClass('fixed');
@@ -291,11 +313,23 @@
291
313
  return !matchMedia(Foundation.media_queries['topbar']).matches;
292
314
  },
293
315
 
316
+ small : function () {
317
+ return matchMedia(Foundation.media_queries['small']).matches;
318
+ },
319
+
320
+ medium : function () {
321
+ return matchMedia(Foundation.media_queries['medium']).matches;
322
+ },
323
+
324
+ large : function () {
325
+ return matchMedia(Foundation.media_queries['large']).matches;
326
+ },
327
+
294
328
  assemble : function (topbar) {
295
329
  var self = this,
296
330
  settings = topbar.data(this.attr_name(true) + '-init'),
297
331
  section = self.S('section', topbar),
298
- titlebar = $('> ul', topbar).first();
332
+ titlebar = $(this).children().filter('ul').first();
299
333
 
300
334
  // Pull element out of the DOM for manipulation
301
335
  section.detach();
@@ -355,11 +389,10 @@
355
389
 
356
390
  update_sticky_positioning: function() {
357
391
  var klass = '.' + this.settings.sticky_class,
358
- $window = this.S(window),
392
+ $window = this.S(window),
359
393
  self = this;
360
394
 
361
-
362
- if (self.S(klass).length > 0) {
395
+ if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) {
363
396
  var distance = this.settings.sticky_topbar.data('stickyoffset');
364
397
  if (!self.S(klass).hasClass('expanded')) {
365
398
  if ($window.scrollTop() > (distance)) {
@@ -384,4 +417,4 @@
384
417
 
385
418
  reflow : function () {}
386
419
  };
387
- }(jQuery, this, this.document));
420
+ }(jQuery, this, this.document));
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Modernizr v2.7.1
2
+ * Modernizr v2.7.2
3
3
  * www.modernizr.com
4
4
  *
5
5
  * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
@@ -24,7 +24,7 @@
24
24
 
25
25
  window.Modernizr = (function( window, document, undefined ) {
26
26
 
27
- var version = '2.7.1',
27
+ var version = '2.7.2',
28
28
 
29
29
  Modernizr = {},
30
30
 
@@ -605,7 +605,7 @@ window.Modernizr = (function( window, document, undefined ) {
605
605
 
606
606
  // Note, Android < 4 will pass this test, but can only animate
607
607
  // a single property at a time
608
- // daneden.me/2011/12/putting-up-with-androids-bullshit/
608
+ // goo.gl/v3V4Gp
609
609
  tests['cssanimations'] = function() {
610
610
  return testPropsAll('animationName');
611
611
  };
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  // Make sure the charset is set appropriately
2
6
  @charset "UTF-8";
3
7
 
@@ -25,6 +29,7 @@
25
29
  "foundation/components/panels",
26
30
  "foundation/components/pricing-tables",
27
31
  "foundation/components/progress-bars",
32
+ "foundation/components/range-slider",
28
33
  "foundation/components/reveal",
29
34
  "foundation/components/side-nav",
30
35
  "foundation/components/split-buttons",
@@ -38,3 +43,5 @@
38
43
  "foundation/components/type",
39
44
  "foundation/components/offcanvas",
40
45
  "foundation/components/visibility";
46
+
47
+ // * { border-radius: 500px !important; }
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  // This is the default html and body font-size for the base rem value.
2
6
  $rem-base: 16px !default;
3
7
 
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  //
2
6
  // FOUNDATION SETTINGS
3
7
  //
@@ -114,7 +118,7 @@
114
118
 
115
119
  // We use these to control header font styles
116
120
  // $header-font-family: $body-font-family;
117
- // $header-font-weight: 300;
121
+ // $header-font-weight: normal;
118
122
  // $header-font-style: normal;
119
123
  // $header-font-color: #222;
120
124
  // $header-line-height: 1.4;
@@ -1151,12 +1155,15 @@
1151
1155
  // $topbar-link-weight: normal;
1152
1156
  // $topbar-link-font-size: rem-calc(13);
1153
1157
  // $topbar-link-hover-lightness: -10%; // Darken by 10%
1154
- // $topbar-link-bg-hover: #272727 ;
1158
+ // $topbar-link-bg-hover: #272727;
1155
1159
  // $topbar-link-bg-active: $primary-color;
1156
1160
  // $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%);
1157
1161
  // $topbar-link-font-family: $body-font-family;
1162
+ // $topbar-link-text-transform: none;
1163
+ // $topbar-link-padding: $topbar-height / 3;
1158
1164
 
1159
1165
  // $topbar-button-font-size: 0.75rem;
1166
+ // $topbar-button-top: 7px;
1160
1167
 
1161
1168
  // $topbar-dropdown-label-color: #777;
1162
1169
  // $topbar-dropdown-label-text-transform: uppercase;
@@ -1192,3 +1199,5 @@
1192
1199
  //
1193
1200
 
1194
1201
  // $include-html-visibility-classes: $include-html-classes;
1202
+ // $include-table-visibility-classes: true;
1203
+ // $include-legacy-visibility-classes: true;
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
  @import "grid";
3
7
 
@@ -25,7 +29,7 @@ $accordion-content-active-bg-color: #fff !default;
25
29
  dd {
26
30
  display: block;
27
31
  margin-bottom: 0 !important;
28
- &.active a { background: $accordion-navigation-active-bg-color; }
32
+ &.active > a { background: $accordion-navigation-active-bg-color; }
29
33
  > a {
30
34
  background: $accordion-navigation-bg-color;
31
35
  color: $accordion-navigation-font-color;
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
 
3
7
  //
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
 
3
7
  //
@@ -9,6 +13,11 @@ $include-html-grid-classes: $include-html-classes !default;
9
13
  $block-grid-elements: 12 !default;
10
14
  $block-grid-default-spacing: rem-calc(20) !default;
11
15
 
16
+ $align-block-grid-to-grid: true;
17
+ @if $align-block-grid-to-grid {
18
+ $block-grid-default-spacing: $column-gutter;
19
+ }
20
+
12
21
  // Enables media queries for block-grid classes. Set to false if writing semantic HTML.
13
22
  $block-grid-media-queries: true !default;
14
23
 
@@ -30,7 +39,11 @@ $block-grid-media-queries: true !default;
30
39
  @if $base-style {
31
40
  display: block;
32
41
  padding: 0;
33
- margin: 0 (-$spacing/2);
42
+ @if $align-block-grid-to-grid {
43
+ margin: 0;
44
+ } @else {
45
+ margin: 0 (-$spacing/2);
46
+ }
34
47
  @include clearfix;
35
48
 
36
49
  &>li {
@@ -53,9 +66,26 @@ $block-grid-media-queries: true !default;
53
66
 
54
67
  &:nth-of-type(n) { clear: none; }
55
68
  &:nth-of-type(#{$per-row}n+1) { clear: both; }
69
+ @if $align-block-grid-to-grid {
70
+ @include block-grid-aligned($per-row, $spacing);
71
+ }
56
72
  }
57
73
  }
74
+ }
58
75
 
76
+ @mixin block-grid-aligned($per-row, $spacing) {
77
+ @for $i from 1 through $block-grid-elements {
78
+ @if $per-row >= $i {
79
+ $grid-column: '+' + $i;
80
+ @if $per-row == $i {
81
+ $grid-column: '';
82
+ }
83
+ &:nth-child(#{$per-row}n#{unquote($grid-column)}) {
84
+ padding-left: ($spacing - (($spacing / $per-row) * ($per-row - ($i - 1))));
85
+ padding-right: ($spacing - (($spacing / $per-row) * $i));
86
+ }
87
+ }
88
+ }
59
89
  }
60
90
 
61
91
  // Generate presentational markup for block grid.
@@ -73,17 +103,19 @@ $block-grid-media-queries: true !default;
73
103
  @if $include-html-grid-classes {
74
104
 
75
105
  [class*="block-grid-"] { @include block-grid; }
76
-
77
- @media #{$small-up} {
78
- @include block-grid-html-classes($size:small,$include-spacing:false);
79
- }
80
-
81
- @media #{$medium-up} {
82
- @include block-grid-html-classes($size:medium,$include-spacing:false);
83
- }
84
-
85
- @media #{$large-up} {
86
- @include block-grid-html-classes($size:large,$include-spacing:false);
106
+
107
+ @if $block-grid-media-queries {
108
+ @media #{$small-up} {
109
+ @include block-grid-html-classes($size:small,$include-spacing:false);
110
+ }
111
+
112
+ @media #{$medium-up} {
113
+ @include block-grid-html-classes($size:medium,$include-spacing:false);
114
+ }
115
+
116
+ @media #{$large-up} {
117
+ @include block-grid-html-classes($size:large,$include-spacing:false);
118
+ }
87
119
  }
88
120
  }
89
121
  }
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
 
3
7
  //
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
  @import "buttons";
3
7
 
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
 
3
7
  //
@@ -111,14 +115,12 @@ $button-disabled-opacity: 0.7 !default;
111
115
  padding-top: $is-input + rem-calc(.5);
112
116
  padding-bottom: $is-input + rem-calc(.5);
113
117
  -webkit-appearance: none;
114
- border: none;
115
118
  font-weight: $button-font-weight !important;
116
119
  }
117
120
  @else if $is-input {
118
121
  padding-top: $is-input + rem-calc(1);
119
122
  padding-bottom: $is-input;
120
123
  -webkit-appearance: none;
121
- border: none;
122
124
  font-weight: $button-font-weight !important;
123
125
  }
124
126
  }
@@ -128,7 +130,7 @@ $button-disabled-opacity: 0.7 !default;
128
130
  // We use this mixin to add button color styles
129
131
  //
130
132
  // $bg - Primary color set in settings file. Default: $primary-color.
131
- // $radius - If true, set to button radius which is $global-radius || explicitly set radius amount in px (ex. $radius:10px). Default: false
133
+ // $radius - If true, set to button radius which is $global-radius || explicitly set radius amount in px (ex. $radius:10px). Default: true
132
134
  // $disabled - We can set $disabled:true to create a disabled transparent button. Default: false
133
135
  @mixin button-style($bg:$primary-color, $radius:false, $disabled:false) {
134
136
 
@@ -202,7 +204,7 @@ $button-disabled-opacity: 0.7 !default;
202
204
  @include button-style;
203
205
 
204
206
  @include single-transition(background-color);
205
- @include button-size($padding:false, $is-input:$button-med);
207
+ @include button-size($padding:$button-med, $full-width:false, $is-input:false);
206
208
 
207
209
  &.secondary { @include button-style($bg:$secondary-color); }
208
210
  &.success { @include button-style($bg:$success-color); }
@@ -233,4 +235,4 @@ $button-disabled-opacity: 0.7 !default;
233
235
  }
234
236
  }
235
237
  }
236
- }
238
+ }
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
 
3
7
  //
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
 
3
7
  //
@@ -1,3 +1,7 @@
1
+ // Foundation by ZURB
2
+ // foundation.zurb.com
3
+ // Licensed under MIT Open Source
4
+
1
5
  @import "global";
2
6
 
3
7
  //
@@ -9,8 +13,19 @@ $include-html-dropdown-classes: $include-html-classes !default;
9
13
  $f-dropdown-max-width: 200px !default;
10
14
  $f-dropdown-height: auto !default;
11
15
  $f-dropdown-max-height: none !default;
16
+
17
+ // Used for bottom position
12
18
  $f-dropdown-margin-top: 2px !default;
13
19
 
20
+ // Used for right position
21
+ $f-dropdown-margin-left: $f-dropdown-margin-top !default;
22
+
23
+ // Used for left position
24
+ $f-dropdown-margin-right: $f-dropdown-margin-top !default;
25
+
26
+ // Used for top position
27
+ $f-dropdown-margin-bottom: $f-dropdown-margin-top !default;
28
+
14
29
  // We use this to control the background color
15
30
  $f-dropdown-bg: #fff !default;
16
31
 
@@ -60,7 +75,7 @@ $f-dropdown-content-padding: rem-calc(20) !default;
60
75
  height: $f-dropdown-height;
61
76
  background: $f-dropdown-bg;
62
77
  border: $f-dropdown-border-style $f-dropdown-border-width $f-dropdown-border-color;
63
- font-size: $rem-base;
78
+ font-size: $f-dropdown-font-size;
64
79
  z-index: 99;
65
80
  }
66
81
  @else if $content == content {
@@ -70,11 +85,11 @@ $f-dropdown-content-padding: rem-calc(20) !default;
70
85
  max-height: $f-dropdown-max-height;
71
86
  background: $f-dropdown-bg;
72
87
  border: $f-dropdown-border-style $f-dropdown-border-width $f-dropdown-border-color;
73
- font-size: $rem-base;
88
+ font-size: $f-dropdown-font-size;
74
89
  z-index: 99;
75
90
  }
76
91
 
77
- @if $triangle {
92
+ @if $triangle == bottom {
78
93
  margin-top: $f-dropdown-margin-top;
79
94
 
80
95
  &:before {
@@ -102,6 +117,75 @@ $f-dropdown-content-padding: rem-calc(20) !default;
102
117
  }
103
118
  }
104
119
 
120
+ @if $triangle == left {
121
+ margin-top: 0;
122
+ margin-left: $f-dropdown-margin-right;
123
+
124
+ &:before {
125
+ @include css-triangle($f-dropdown-triangle-size, $f-dropdown-triangle-color, right);
126
+ position: absolute;
127
+ top: $f-dropdown-triangle-side-offset;
128
+ #{$default-float}: -($f-dropdown-triangle-size * 2);
129
+ z-index: 99;
130
+ }
131
+ &:after {
132
+ @include css-triangle($f-dropdown-triangle-size + 1, $f-dropdown-border-color, right);
133
+ position: absolute;
134
+ top: $f-dropdown-triangle-side-offset - 1;
135
+ #{$default-float}: -($f-dropdown-triangle-size * 2) - 2;
136
+ z-index: 98;
137
+ }
138
+
139
+ }
140
+
141
+ @if $triangle == right {
142
+ margin-top: 0;
143
+ margin-left: -$f-dropdown-margin-right;
144
+
145
+ &:before {
146
+ @include css-triangle($f-dropdown-triangle-size, $f-dropdown-triangle-color, left);
147
+ position: absolute;
148
+ top: $f-dropdown-triangle-side-offset;
149
+ #{$opposite-direction}: -($f-dropdown-triangle-size * 2);
150
+ left: auto;
151
+ z-index: 99;
152
+ }
153
+ &:after {
154
+ @include css-triangle($f-dropdown-triangle-size + 1, $f-dropdown-border-color, left);
155
+ position: absolute;
156
+ top: $f-dropdown-triangle-side-offset - 1;
157
+ #{$opposite-direction}: -($f-dropdown-triangle-size * 2) - 2;
158
+ left: auto;
159
+ z-index: 98;
160
+ }
161
+
162
+ }
163
+
164
+ @if $triangle == top {
165
+ margin-top: -$f-dropdown-margin-bottom;
166
+ margin-left: 0;
167
+
168
+ &:before {
169
+ @include css-triangle($f-dropdown-triangle-size, $f-dropdown-triangle-color, top);
170
+ position: absolute;
171
+ top: auto;
172
+ bottom: -($f-dropdown-triangle-size * 2);
173
+ #{$default-float}: $f-dropdown-triangle-side-offset;
174
+ right: auto;
175
+ z-index: 99;
176
+ }
177
+ &:after {
178
+ @include css-triangle($f-dropdown-triangle-size + 1, $f-dropdown-border-color, top);
179
+ position: absolute;
180
+ top: auto;
181
+ bottom: -($f-dropdown-triangle-size * 2) - 2;
182
+ #{$default-float}: $f-dropdown-triangle-side-offset - 1;
183
+ right: auto;
184
+ z-index: 98;
185
+ }
186
+
187
+ }
188
+
105
189
  @if $max-width { max-width: $max-width; }
106
190
  @else { max-width: $f-dropdown-max-width; }
107
191
 
@@ -131,16 +215,21 @@ $f-dropdown-content-padding: rem-calc(20) !default;
131
215
  @include exports("dropdown") {
132
216
  @if $include-html-dropdown-classes {
133
217
 
134
- @media #{$small-only} {
135
- .f-dropdown {
136
- max-width: 100%;
137
- #{$default-float}: $dropdown-mobile-default-float;
138
- }
139
- }
140
-
141
218
  /* Foundation Dropdowns */
142
219
  .f-dropdown {
143
- @include dropdown-container(list);
220
+ @include dropdown-container(list, bottom);
221
+
222
+ &.drop-right {
223
+ @include dropdown-container(list, left);
224
+ }
225
+
226
+ &.drop-left {
227
+ @include dropdown-container(list, right);
228
+ }
229
+
230
+ &.drop-top {
231
+ @include dropdown-container(list, top);
232
+ }
144
233
  // max-width: none;
145
234
 
146
235
  li { @include dropdown-style; }