uikit 3.13.2-dev.f6cd10e37 → 3.13.2

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 (62) hide show
  1. package/.eslintrc.json +9 -0
  2. package/CHANGELOG.md +10 -1
  3. package/dist/css/uikit-core-rtl.css +15 -63
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +15 -63
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +15 -63
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +15 -63
  10. package/dist/css/uikit.min.css +1 -1
  11. package/dist/js/components/countdown.js +1 -1
  12. package/dist/js/components/countdown.min.js +1 -1
  13. package/dist/js/components/filter.js +1 -1
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +1 -1
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +1 -1
  18. package/dist/js/components/lightbox.min.js +1 -1
  19. package/dist/js/components/notification.js +1 -1
  20. package/dist/js/components/notification.min.js +1 -1
  21. package/dist/js/components/parallax.js +1 -1
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +1 -1
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +1 -1
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +1 -1
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +1 -1
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +1 -1
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +9 -15
  34. package/dist/js/components/tooltip.min.js +1 -1
  35. package/dist/js/components/upload.js +1 -1
  36. package/dist/js/components/upload.min.js +1 -1
  37. package/dist/js/uikit-core.js +35 -47
  38. package/dist/js/uikit-core.min.js +1 -1
  39. package/dist/js/uikit-icons.js +1 -1
  40. package/dist/js/uikit-icons.min.js +1 -1
  41. package/dist/js/uikit.js +39 -52
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +1 -1
  44. package/src/js/components/tooltip.js +2 -3
  45. package/src/js/core/drop.js +2 -8
  46. package/src/js/core/navbar.js +10 -5
  47. package/src/js/core/sticky.js +1 -1
  48. package/src/js/core/video.js +1 -1
  49. package/src/js/mixin/media.js +4 -4
  50. package/src/js/mixin/position.js +4 -9
  51. package/src/js/util/observer.js +2 -1
  52. package/src/js/util/style.js +13 -19
  53. package/src/less/components/drop.less +3 -11
  54. package/src/less/components/dropdown.less +3 -11
  55. package/src/less/components/navbar.less +11 -12
  56. package/src/less/components/tooltip.less +2 -11
  57. package/src/scss/components/drop.scss +3 -11
  58. package/src/scss/components/dropdown.scss +3 -11
  59. package/src/scss/components/navbar.scss +11 -12
  60. package/src/scss/components/tooltip.scss +2 -11
  61. package/src/scss/variables-theme.scss +5 -4
  62. package/src/scss/variables.scss +5 -4
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "uikit",
3
3
  "title": "UIkit",
4
4
  "description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
5
- "version": "3.13.2-dev.f6cd10e37",
5
+ "version": "3.13.2",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -35,7 +35,6 @@ export default {
35
35
  animation: ['uk-animation-scale-up'],
36
36
  duration: 100,
37
37
  cls: 'uk-active',
38
- clsPos: 'uk-tooltip',
39
38
  },
40
39
 
41
40
  beforeConnect() {
@@ -91,8 +90,8 @@ export default {
91
90
  _show() {
92
91
  this.tooltip = append(
93
92
  this.container,
94
- `<div class="${this.clsPos}">
95
- <div class="${this.clsPos}-inner">${this.title}</div>
93
+ `<div class="uk-${this.$options.name}">
94
+ <div class="uk-${this.$options.name}-inner">${this.title}</div>
96
95
  </div>`
97
96
  );
98
97
 
@@ -63,7 +63,7 @@ export default {
63
63
  },
64
64
 
65
65
  connected() {
66
- this.clsPos = this.clsDrop = this.$props.clsDrop || `uk-${this.$options.name}`;
66
+ this.clsDrop = this.$props.clsDrop || `uk-${this.$options.name}`;
67
67
  addClass(this.$el, this.clsDrop);
68
68
 
69
69
  if (this.toggle && !this.target) {
@@ -362,13 +362,7 @@ export default {
362
362
 
363
363
  if (this.align === 'justify') {
364
364
  const prop = this.getAxis() === 'y' ? 'width' : 'height';
365
- css(
366
- this.$el,
367
- prop,
368
- (this.boundaryAlign || boundary !== window ? boundaryOffset : targetOffset)[
369
- prop
370
- ]
371
- );
365
+ css(this.$el, prop, alignTo[prop]);
372
366
  } else if (
373
367
  this.$el.offsetWidth >
374
368
  Math.max(boundaryOffset.right - alignTo.left, alignTo.right - boundaryOffset.left)
@@ -16,6 +16,7 @@ import {
16
16
  isVisible,
17
17
  matches,
18
18
  noop,
19
+ offset,
19
20
  once,
20
21
  parent,
21
22
  query,
@@ -274,10 +275,16 @@ export default {
274
275
  return this.dropbar;
275
276
  },
276
277
 
277
- handler() {
278
+ handler(_, { $el }) {
279
+ if (!hasClass($el, this.clsDrop)) {
280
+ return;
281
+ }
282
+
278
283
  if (!parent(this.dropbar)) {
279
284
  after(this.dropbarAnchor || this.$el, this.dropbar);
280
285
  }
286
+
287
+ addClass($el, `${this.clsDrop}-dropbar`);
281
288
  },
282
289
  },
283
290
 
@@ -297,12 +304,10 @@ export default {
297
304
  return;
298
305
  }
299
306
 
300
- this.clsDrop && addClass($el, `${this.clsDrop}-dropbar`);
301
-
302
307
  if (dir === 'bottom') {
303
308
  this.transitionTo(
304
- $el.offsetHeight +
305
- toFloat(css($el, 'marginTop')) +
309
+ offset($el).bottom -
310
+ offset(this.dropbar).top +
306
311
  toFloat(css($el, 'marginBottom')),
307
312
  $el
308
313
  );
@@ -14,6 +14,7 @@ import {
14
14
  height as getHeight,
15
15
  offset as getOffset,
16
16
  getScrollingElement,
17
+ intersectRect,
17
18
  isString,
18
19
  isVisible,
19
20
  noop,
@@ -29,7 +30,6 @@ import {
29
30
  toPx,
30
31
  trigger,
31
32
  within,
32
- intersectRect,
33
33
  } from 'uikit-util';
34
34
 
35
35
  export default {
@@ -34,7 +34,7 @@ export default {
34
34
  mute(this.$el);
35
35
  }
36
36
 
37
- this.registerObserver(observeIntersection(this.$el, () => this.$emit('scroll'), {}, false));
37
+ this.registerObserver(observeIntersection(this.$el, () => this.$emit(), {}, false));
38
38
  },
39
39
 
40
40
  update: {
@@ -1,12 +1,12 @@
1
1
  import {
2
+ createEvent,
2
3
  getCssVar,
4
+ isNumeric,
3
5
  isString,
4
6
  on,
5
- trigger,
6
- toFloat,
7
7
  startsWith,
8
- isNumeric,
9
- createEvent,
8
+ toFloat,
9
+ trigger,
10
10
  } from 'uikit-util';
11
11
 
12
12
  export default {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  $,
3
3
  flipPosition,
4
+ getCssVar,
4
5
  offset as getOffset,
5
6
  isNumeric,
6
7
  isRtl,
7
8
  positionAt,
8
- removeClasses,
9
- toggleClass,
9
+ toPx,
10
10
  } from 'uikit-util';
11
11
 
12
12
  export default {
@@ -14,14 +14,12 @@ export default {
14
14
  pos: String,
15
15
  offset: null,
16
16
  flip: Boolean,
17
- clsPos: String,
18
17
  },
19
18
 
20
19
  data: {
21
20
  pos: `bottom-${isRtl ? 'right' : 'left'}`,
22
21
  flip: true,
23
22
  offset: false,
24
- clsPos: '',
25
23
  },
26
24
 
27
25
  connected() {
@@ -32,13 +30,11 @@ export default {
32
30
 
33
31
  methods: {
34
32
  positionAt(element, target, boundary) {
35
- removeClasses(element, `${this.clsPos}-(top|bottom|left|right)(-[a-z]+)?`);
36
-
37
- let { offset } = this;
38
33
  const axis = this.getAxis();
39
34
  const dir = this.pos[0];
40
35
  const align = this.pos[1];
41
36
 
37
+ let { offset } = this;
42
38
  if (!isNumeric(offset)) {
43
39
  const node = $(offset);
44
40
  offset = node
@@ -46,6 +42,7 @@ export default {
46
42
  getOffset(target)[axis === 'x' ? 'right' : 'bottom']
47
43
  : 0;
48
44
  }
45
+ offset += toPx(getCssVar('position-margin-offset', element));
49
46
 
50
47
  const { x, y } = positionAt(
51
48
  element,
@@ -62,8 +59,6 @@ export default {
62
59
 
63
60
  this.dir = axis === 'x' ? x : y;
64
61
  this.align = axis === 'x' ? y : x;
65
-
66
- toggleClass(element, `${this.clsPos}-${this.dir}-${this.align}`, this.offset === false);
67
62
  },
68
63
 
69
64
  getAxis() {
@@ -1,6 +1,7 @@
1
1
  import { on } from './event';
2
2
  import { toNodes } from './lang';
3
3
  import { fastdom } from './fastdom';
4
+ import { inBrowser } from './env';
4
5
 
5
6
  export function observeIntersection(targets, cb, options, intersecting = true) {
6
7
  return observe(
@@ -17,7 +18,7 @@ export function observeIntersection(targets, cb, options, intersecting = true) {
17
18
  );
18
19
  }
19
20
 
20
- const hasResizeObserver = window.ResizeObserver;
21
+ const hasResizeObserver = inBrowser && window.ResizeObserver;
21
22
  export function observeResize(targets, cb, options = { box: 'border-box' }) {
22
23
  if (hasResizeObserver) {
23
24
  return observe(ResizeObserver, targets, cb, options);
@@ -9,7 +9,6 @@ import {
9
9
  isUndefined,
10
10
  memoize,
11
11
  toNodes,
12
- toWindow,
13
12
  } from './lang';
14
13
 
15
14
  const cssNumber = {
@@ -37,21 +36,22 @@ export function css(element, property, value, priority = '') {
37
36
  property = propName(property);
38
37
 
39
38
  if (isUndefined(value)) {
40
- return getStyle(element, property);
41
- } else if (!value && !isNumber(value)) {
42
- element.style.removeProperty(property);
39
+ return getComputedStyle(element).getPropertyValue(property);
43
40
  } else {
44
41
  element.style.setProperty(
45
42
  property,
46
- isNumeric(value) && !cssNumber[property] ? `${value}px` : value,
43
+ isNumeric(value) && !cssNumber[property]
44
+ ? `${value}px`
45
+ : value || isNumber(value)
46
+ ? value
47
+ : '',
47
48
  priority
48
49
  );
49
50
  }
50
51
  } else if (isArray(property)) {
51
- const styles = getStyles(element);
52
52
  const props = {};
53
53
  for (const prop of property) {
54
- props[prop] = styles[propName(prop)];
54
+ props[prop] = css(element, prop);
55
55
  }
56
56
  return props;
57
57
  } else if (isObject(property)) {
@@ -62,19 +62,9 @@ export function css(element, property, value, priority = '') {
62
62
  return elements[0];
63
63
  }
64
64
 
65
- function getStyles(element, pseudoElt) {
66
- return toWindow(element).getComputedStyle(element, pseudoElt);
67
- }
68
-
69
- function getStyle(element, property, pseudoElt) {
70
- return getStyles(element, pseudoElt)[property];
71
- }
72
-
73
65
  const propertyRe = /^\s*(["'])?(.*?)\1\s*$/;
74
- export function getCssVar(name) {
75
- return getStyles(document.documentElement)
76
- .getPropertyValue(`--uk-${name}`)
77
- .replace(propertyRe, '$2');
66
+ export function getCssVar(name, element = document.documentElement) {
67
+ return css(element, `--uk-${name}`).replace(propertyRe, '$2');
78
68
  }
79
69
 
80
70
  // https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty
@@ -83,6 +73,10 @@ export const propName = memoize((name) => vendorPropName(name));
83
73
  const cssPrefixes = ['webkit', 'moz'];
84
74
 
85
75
  function vendorPropName(name) {
76
+ if (name[0] === '-') {
77
+ return name;
78
+ }
79
+
86
80
  name = hyphenate(name);
87
81
 
88
82
  const { style } = document.documentElement;
@@ -21,8 +21,8 @@
21
21
  // ========================================================================
22
22
 
23
23
  @drop-z-index: @global-z-index + 20;
24
- @drop-width: 300px;
25
24
  @drop-margin: @global-margin;
25
+ @drop-width: 300px;
26
26
 
27
27
 
28
28
  /* ========================================================================
@@ -41,25 +41,17 @@
41
41
  /* 2 */
42
42
  position: absolute;
43
43
  z-index: @drop-z-index;
44
+ --uk-position-margin-offset: @drop-margin;
44
45
  /* 3 */
45
46
  box-sizing: border-box;
46
47
  width: @drop-width;
48
+ max-width: 100vw;
47
49
  }
48
50
 
49
51
  /* Show */
50
52
  .uk-drop.uk-open { display: block; }
51
53
 
52
54
 
53
- /* Direction / Alignment modifiers
54
- ========================================================================== */
55
-
56
- /* Direction */
57
- [class*='uk-drop-top'] { margin-top: -@drop-margin; }
58
- [class*='uk-drop-bottom'] { margin-top: @drop-margin; }
59
- [class*='uk-drop-left'] { margin-left: -@drop-margin; }
60
- [class*='uk-drop-right'] { margin-left: @drop-margin; }
61
-
62
-
63
55
  /* Grid modifiers
64
56
  ========================================================================== */
65
57
 
@@ -21,11 +21,11 @@
21
21
  // ========================================================================
22
22
 
23
23
  @dropdown-z-index: @global-z-index + 20;
24
+ @dropdown-margin: @global-small-margin;
24
25
  @dropdown-min-width: 200px;
25
26
  @dropdown-padding: 15px;
26
27
  @dropdown-background: @global-muted-background;
27
28
  @dropdown-color: @global-color;
28
- @dropdown-margin: @global-small-margin;
29
29
 
30
30
  @dropdown-nav-item-color: @global-muted-color;
31
31
  @dropdown-nav-item-hover-color: @global-color;
@@ -53,9 +53,11 @@
53
53
  /* 2 */
54
54
  position: absolute;
55
55
  z-index: @dropdown-z-index;
56
+ --uk-position-margin-offset: @dropdown-margin;
56
57
  /* 3 */
57
58
  box-sizing: border-box;
58
59
  min-width: @dropdown-min-width;
60
+ max-width: 100vw;
59
61
  /* 4 */
60
62
  padding: @dropdown-padding;
61
63
  background: @dropdown-background;
@@ -120,16 +122,6 @@
120
122
  .uk-dropdown-nav .uk-nav-sub li.uk-active > a { color: @dropdown-nav-sublist-item-hover-color; }
121
123
 
122
124
 
123
- /* Direction / Alignment modifiers
124
- ========================================================================== */
125
-
126
- /* Direction */
127
- [class*='uk-dropdown-top'] { margin-top: -@dropdown-margin; }
128
- [class*='uk-dropdown-bottom'] { margin-top: @dropdown-margin; }
129
- [class*='uk-dropdown-left'] { margin-left: -@dropdown-margin; }
130
- [class*='uk-dropdown-right'] { margin-left: @dropdown-margin; }
131
-
132
-
133
125
  /* Grid modifiers
134
126
  ========================================================================== */
135
127
 
@@ -56,8 +56,8 @@
56
56
  @navbar-subtitle-font-size: @global-small-font-size;
57
57
 
58
58
  @navbar-dropdown-z-index: @global-z-index + 20;
59
- @navbar-dropdown-width: 200px;
60
59
  @navbar-dropdown-margin: 0;
60
+ @navbar-dropdown-width: 200px;
61
61
  @navbar-dropdown-padding: 15px;
62
62
  @navbar-dropdown-background: @global-muted-background;
63
63
  @navbar-dropdown-color: @global-color;
@@ -66,6 +66,7 @@
66
66
 
67
67
  @navbar-dropdown-dropbar-margin-top: 0;
68
68
  @navbar-dropdown-dropbar-margin-bottom: @navbar-dropdown-dropbar-margin-top;
69
+ @navbar-dropdown-dropbar-padding: @navbar-nav-item-padding-horizontal;
69
70
 
70
71
  @navbar-dropdown-nav-item-color: @global-muted-color;
71
72
  @navbar-dropdown-nav-item-hover-color: @global-color;
@@ -348,9 +349,11 @@
348
349
  /* 2 */
349
350
  position: absolute;
350
351
  z-index: @navbar-dropdown-z-index;
352
+ --uk-position-margin-offset: @navbar-dropdown-margin;
351
353
  /* 3 */
352
354
  box-sizing: border-box;
353
355
  width: @navbar-dropdown-width;
356
+ max-width: 100vw;
354
357
  /* 4 */
355
358
  padding: @navbar-dropdown-padding;
356
359
  background: @navbar-dropdown-background;
@@ -361,16 +364,6 @@
361
364
  /* Show */
362
365
  .uk-navbar-dropdown.uk-open { display: block; }
363
366
 
364
- /*
365
- * Direction / Alignment modifiers
366
- */
367
-
368
- /* Direction */
369
- [class*='uk-navbar-dropdown-top'] { margin-top: -@navbar-dropdown-margin; }
370
- [class*='uk-navbar-dropdown-bottom'] { margin-top: @navbar-dropdown-margin; }
371
- [class*='uk-navbar-dropdown-left'] { margin-left: -@navbar-dropdown-margin; }
372
- [class*='uk-navbar-dropdown-right'] { margin-left: @navbar-dropdown-margin; }
373
-
374
367
  /*
375
368
  * Grid
376
369
  * Adopts `uk-grid`
@@ -397,11 +390,17 @@
397
390
 
398
391
  /*
399
392
  * Dropbar modifier
393
+ * 1. Set position
394
+ * 2. Bottom padding for dropbar
395
+ * 3. Horizontal padding
400
396
  */
401
397
 
402
398
  .uk-navbar-dropdown-dropbar {
403
- margin-top: @navbar-dropdown-dropbar-margin-top;
399
+ /* 1 */
400
+ --uk-position-margin-offset: @navbar-dropdown-dropbar-margin-top;
401
+ /* 2 */
404
402
  margin-bottom: @navbar-dropdown-dropbar-margin-bottom;
403
+ padding: @navbar-dropdown-dropbar-padding;
405
404
  .hook-navbar-dropdown-dropbar();
406
405
  }
407
406
 
@@ -21,6 +21,7 @@
21
21
  // ========================================================================
22
22
 
23
23
  @tooltip-z-index: @global-z-index + 30;
24
+ @tooltip-margin: 10px;
24
25
  @tooltip-max-width: 200px;
25
26
  @tooltip-padding-vertical: 3px;
26
27
  @tooltip-padding-horizontal: 6px;
@@ -29,7 +30,6 @@
29
30
  @tooltip-color: @global-inverse-color;
30
31
  @tooltip-font-size: 12px;
31
32
 
32
- @tooltip-margin: 10px;
33
33
 
34
34
 
35
35
  /* ========================================================================
@@ -50,6 +50,7 @@
50
50
  /* 2 */
51
51
  position: absolute;
52
52
  z-index: @tooltip-z-index;
53
+ --uk-position-margin-offset: @dropdown-margin;
53
54
  /* 3 */
54
55
  top: 0;
55
56
  /* 4 */
@@ -68,16 +69,6 @@
68
69
  .uk-tooltip.uk-active { display: block; }
69
70
 
70
71
 
71
- /* Direction / Alignment modifiers
72
- ========================================================================== */
73
-
74
- /* Direction */
75
- [class*='uk-tooltip-top'] { margin-top: -@tooltip-margin; }
76
- [class*='uk-tooltip-bottom'] { margin-top: @tooltip-margin; }
77
- [class*='uk-tooltip-left'] { margin-left: -@tooltip-margin; }
78
- [class*='uk-tooltip-right'] { margin-left: @tooltip-margin; }
79
-
80
-
81
72
  // Hooks
82
73
  // ========================================================================
83
74
 
@@ -21,8 +21,8 @@
21
21
  // ========================================================================
22
22
 
23
23
  $drop-z-index: $global-z-index + 20 !default;
24
- $drop-width: 300px !default;
25
24
  $drop-margin: $global-margin !default;
25
+ $drop-width: 300px !default;
26
26
 
27
27
 
28
28
  /* ========================================================================
@@ -41,25 +41,17 @@ $drop-margin: $global-margin !default;
41
41
  /* 2 */
42
42
  position: absolute;
43
43
  z-index: $drop-z-index;
44
+ --uk-position-margin-offset: #{$drop-margin};
44
45
  /* 3 */
45
46
  box-sizing: border-box;
46
47
  width: $drop-width;
48
+ max-width: 100vw;
47
49
  }
48
50
 
49
51
  /* Show */
50
52
  .uk-drop.uk-open { display: block; }
51
53
 
52
54
 
53
- /* Direction / Alignment modifiers
54
- ========================================================================== */
55
-
56
- /* Direction */
57
- [class*='uk-drop-top'] { margin-top: (-$drop-margin); }
58
- [class*='uk-drop-bottom'] { margin-top: $drop-margin; }
59
- [class*='uk-drop-left'] { margin-left: (-$drop-margin); }
60
- [class*='uk-drop-right'] { margin-left: $drop-margin; }
61
-
62
-
63
55
  /* Grid modifiers
64
56
  ========================================================================== */
65
57
 
@@ -21,11 +21,11 @@
21
21
  // ========================================================================
22
22
 
23
23
  $dropdown-z-index: $global-z-index + 20 !default;
24
+ $dropdown-margin: $global-small-margin !default;
24
25
  $dropdown-min-width: 200px !default;
25
26
  $dropdown-padding: 15px !default;
26
27
  $dropdown-background: $global-muted-background !default;
27
28
  $dropdown-color: $global-color !default;
28
- $dropdown-margin: $global-small-margin !default;
29
29
 
30
30
  $dropdown-nav-item-color: $global-muted-color !default;
31
31
  $dropdown-nav-item-hover-color: $global-color !default;
@@ -53,9 +53,11 @@ $dropdown-nav-sublist-item-hover-color: $global-color !default;
53
53
  /* 2 */
54
54
  position: absolute;
55
55
  z-index: $dropdown-z-index;
56
+ --uk-position-margin-offset: #{$dropdown-margin};
56
57
  /* 3 */
57
58
  box-sizing: border-box;
58
59
  min-width: $dropdown-min-width;
60
+ max-width: 100vw;
59
61
  /* 4 */
60
62
  padding: $dropdown-padding;
61
63
  background: $dropdown-background;
@@ -120,16 +122,6 @@ $dropdown-nav-sublist-item-hover-color: $global-color !default;
120
122
  .uk-dropdown-nav .uk-nav-sub li.uk-active > a { color: $dropdown-nav-sublist-item-hover-color; }
121
123
 
122
124
 
123
- /* Direction / Alignment modifiers
124
- ========================================================================== */
125
-
126
- /* Direction */
127
- [class*='uk-dropdown-top'] { margin-top: (-$dropdown-margin); }
128
- [class*='uk-dropdown-bottom'] { margin-top: $dropdown-margin; }
129
- [class*='uk-dropdown-left'] { margin-left: (-$dropdown-margin); }
130
- [class*='uk-dropdown-right'] { margin-left: $dropdown-margin; }
131
-
132
-
133
125
  /* Grid modifiers
134
126
  ========================================================================== */
135
127
 
@@ -56,8 +56,8 @@ $navbar-toggle-hover-color: $global-color !default;
56
56
  $navbar-subtitle-font-size: $global-small-font-size !default;
57
57
 
58
58
  $navbar-dropdown-z-index: $global-z-index + 20 !default;
59
- $navbar-dropdown-width: 200px !default;
60
59
  $navbar-dropdown-margin: 0 !default;
60
+ $navbar-dropdown-width: 200px !default;
61
61
  $navbar-dropdown-padding: 15px !default;
62
62
  $navbar-dropdown-background: $global-muted-background !default;
63
63
  $navbar-dropdown-color: $global-color !default;
@@ -66,6 +66,7 @@ $navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-ho
66
66
 
67
67
  $navbar-dropdown-dropbar-margin-top: 0 !default;
68
68
  $navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default;
69
+ $navbar-dropdown-dropbar-padding: $navbar-nav-item-padding-horizontal !default;
69
70
 
70
71
  $navbar-dropdown-nav-item-color: $global-muted-color !default;
71
72
  $navbar-dropdown-nav-item-hover-color: $global-color !default;
@@ -348,9 +349,11 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
348
349
  /* 2 */
349
350
  position: absolute;
350
351
  z-index: $navbar-dropdown-z-index;
352
+ --uk-position-margin-offset: #{$navbar-dropdown-margin};
351
353
  /* 3 */
352
354
  box-sizing: border-box;
353
355
  width: $navbar-dropdown-width;
356
+ max-width: 100vw;
354
357
  /* 4 */
355
358
  padding: $navbar-dropdown-padding;
356
359
  background: $navbar-dropdown-background;
@@ -361,16 +364,6 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
361
364
  /* Show */
362
365
  .uk-navbar-dropdown.uk-open { display: block; }
363
366
 
364
- /*
365
- * Direction / Alignment modifiers
366
- */
367
-
368
- /* Direction */
369
- [class*='uk-navbar-dropdown-top'] { margin-top: (-$navbar-dropdown-margin); }
370
- [class*='uk-navbar-dropdown-bottom'] { margin-top: $navbar-dropdown-margin; }
371
- [class*='uk-navbar-dropdown-left'] { margin-left: (-$navbar-dropdown-margin); }
372
- [class*='uk-navbar-dropdown-right'] { margin-left: $navbar-dropdown-margin; }
373
-
374
367
  /*
375
368
  * Grid
376
369
  * Adopts `uk-grid`
@@ -397,11 +390,17 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
397
390
 
398
391
  /*
399
392
  * Dropbar modifier
393
+ * 1. Set position
394
+ * 2. Bottom padding for dropbar
395
+ * 3. Horizontal padding
400
396
  */
401
397
 
402
398
  .uk-navbar-dropdown-dropbar {
403
- margin-top: $navbar-dropdown-dropbar-margin-top;
399
+ /* 1 */
400
+ --uk-position-margin-offset: #{$navbar-dropdown-dropbar-margin-top};
401
+ /* 2 */
404
402
  margin-bottom: $navbar-dropdown-dropbar-margin-bottom;
403
+ padding: $navbar-dropdown-dropbar-padding;
405
404
  @if(mixin-exists(hook-navbar-dropdown-dropbar)) {@include hook-navbar-dropdown-dropbar();}
406
405
  }
407
406
 
@@ -21,6 +21,7 @@
21
21
  // ========================================================================
22
22
 
23
23
  $tooltip-z-index: $global-z-index + 30 !default;
24
+ $tooltip-margin: 10px !default;
24
25
  $tooltip-max-width: 200px !default;
25
26
  $tooltip-padding-vertical: 3px !default;
26
27
  $tooltip-padding-horizontal: 6px !default;
@@ -29,7 +30,6 @@ $tooltip-border-radius: 2px !default;
29
30
  $tooltip-color: $global-inverse-color !default;
30
31
  $tooltip-font-size: 12px !default;
31
32
 
32
- $tooltip-margin: 10px !default;
33
33
 
34
34
 
35
35
  /* ========================================================================
@@ -50,6 +50,7 @@ $tooltip-margin: 10px !default;
50
50
  /* 2 */
51
51
  position: absolute;
52
52
  z-index: $tooltip-z-index;
53
+ --uk-position-margin-offset: #{$dropdown-margin};
53
54
  /* 3 */
54
55
  top: 0;
55
56
  /* 4 */
@@ -68,16 +69,6 @@ $tooltip-margin: 10px !default;
68
69
  .uk-tooltip.uk-active { display: block; }
69
70
 
70
71
 
71
- /* Direction / Alignment modifiers
72
- ========================================================================== */
73
-
74
- /* Direction */
75
- [class*='uk-tooltip-top'] { margin-top: (-$tooltip-margin); }
76
- [class*='uk-tooltip-bottom'] { margin-top: $tooltip-margin; }
77
- [class*='uk-tooltip-left'] { margin-left: (-$tooltip-margin); }
78
- [class*='uk-tooltip-right'] { margin-left: $tooltip-margin; }
79
-
80
-
81
72
  // Hooks
82
73
  // ========================================================================
83
74