uikit 3.13.2-dev.d4aecc3e6 → 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 (71) hide show
  1. package/.eslintrc.json +9 -0
  2. package/CHANGELOG.md +15 -1
  3. package/dist/css/uikit-core-rtl.css +31 -71
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +31 -71
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +31 -71
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +31 -71
  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 +43 -58
  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 +47 -63
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +10 -10
  44. package/src/js/components/tooltip.js +2 -3
  45. package/src/js/core/drop.js +7 -10
  46. package/src/js/core/navbar.js +12 -13
  47. package/src/js/core/responsive.js +1 -1
  48. package/src/js/core/sticky.js +1 -1
  49. package/src/js/core/video.js +1 -1
  50. package/src/js/mixin/media.js +4 -4
  51. package/src/js/mixin/position.js +4 -9
  52. package/src/js/util/observer.js +2 -1
  53. package/src/js/util/style.js +13 -19
  54. package/src/less/components/drop.less +3 -11
  55. package/src/less/components/dropdown.less +3 -11
  56. package/src/less/components/navbar.less +13 -23
  57. package/src/less/components/offcanvas.less +19 -1
  58. package/src/less/components/tooltip.less +2 -11
  59. package/src/less/theme/navbar.less +1 -3
  60. package/src/scss/components/drop.scss +3 -11
  61. package/src/scss/components/dropdown.scss +3 -11
  62. package/src/scss/components/navbar.scss +13 -23
  63. package/src/scss/components/offcanvas.scss +19 -1
  64. package/src/scss/components/tooltip.scss +2 -11
  65. package/src/scss/mixins-theme.scss +1 -2
  66. package/src/scss/mixins.scss +0 -1
  67. package/src/scss/theme/navbar.scss +0 -2
  68. package/src/scss/variables-theme.scss +7 -5
  69. package/src/scss/variables.scss +7 -5
  70. package/tests/navbar.html +2 -8
  71. package/tests/search.html +1 -1
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.d4aecc3e6",
5
+ "version": "3.13.2",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -34,27 +34,27 @@
34
34
  },
35
35
  "homepage": "https://getuikit.com",
36
36
  "devDependencies": {
37
- "@babel/core": "^7.16.0",
37
+ "@babel/core": "^7.17.8",
38
38
  "@babel/preset-env": "^7.16.4",
39
39
  "@rollup/plugin-alias": "^3.1.9",
40
- "@rollup/plugin-babel": "^5.3.0",
40
+ "@rollup/plugin-babel": "^5.3.1",
41
41
  "@rollup/plugin-replace": "^3.0.1",
42
42
  "archiver": "^5.3.0",
43
43
  "camelcase": "^6.3.0",
44
44
  "clean-css": "^5.2.4",
45
45
  "dateformat": "^5.0.3",
46
- "esbuild": "^0.14.23",
47
- "eslint": "^8.9.0",
48
- "eslint-config-prettier": "^8.3.0",
49
- "fs-extra": "^10.0.0",
46
+ "esbuild": "^0.14.27",
47
+ "eslint": "^8.11.0",
48
+ "eslint-config-prettier": "^8.5.0",
49
+ "fs-extra": "^10.0.1",
50
50
  "glob": "^7.2.0",
51
- "inquirer": "^8.2.0",
51
+ "inquirer": "^8.2.1",
52
52
  "less": "^4.1.2",
53
53
  "minimist": "^1.2.5",
54
54
  "number-precision": "^1.5.2",
55
55
  "p-limit": "^4.0.0",
56
- "prettier": "^2.5.1",
57
- "rollup": "^2.68.0",
56
+ "prettier": "^2.6.0",
57
+ "rollup": "^2.70.1",
58
58
  "rollup-plugin-esbuild": "^4.8.2",
59
59
  "rollup-plugin-html": "^0.2.1",
60
60
  "rollup-plugin-modify": "^3.0.0",
@@ -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) {
@@ -129,7 +129,7 @@ export default {
129
129
  if (this.isToggled()) {
130
130
  this.hide(false);
131
131
  } else {
132
- this.show(toggle.$el, false);
132
+ this.show(toggle?.$el, false);
133
133
  }
134
134
  },
135
135
  },
@@ -141,7 +141,7 @@ export default {
141
141
 
142
142
  handler(e, toggle) {
143
143
  e.preventDefault();
144
- this.show(toggle.$el);
144
+ this.show(toggle?.$el);
145
145
  },
146
146
  },
147
147
 
@@ -352,23 +352,20 @@ export default {
352
352
  },
353
353
 
354
354
  position() {
355
- const boundary = this.boundary === true ? window : query(this.boundary, this.$el);
355
+ const boundary = query(this.boundary, this.$el) || window;
356
356
  removeClass(this.$el, `${this.clsDrop}-stack`);
357
357
  toggleClass(this.$el, `${this.clsDrop}-boundary`, this.boundaryAlign);
358
358
 
359
359
  const boundaryOffset = offset(boundary);
360
- const alignTo = this.boundaryAlign ? boundaryOffset : offset(this.target);
360
+ const targetOffset = offset(this.target);
361
+ const alignTo = this.boundaryAlign ? boundaryOffset : targetOffset;
361
362
 
362
363
  if (this.align === 'justify') {
363
364
  const prop = this.getAxis() === 'y' ? 'width' : 'height';
364
365
  css(this.$el, prop, alignTo[prop]);
365
366
  } else if (
366
- boundary &&
367
367
  this.$el.offsetWidth >
368
- Math.max(
369
- boundaryOffset.right - alignTo.left,
370
- alignTo.right - boundaryOffset.left
371
- )
368
+ Math.max(boundaryOffset.right - alignTo.left, alignTo.right - boundaryOffset.left)
372
369
  ) {
373
370
  addClass(this.$el, `${this.clsDrop}-stack`);
374
371
  }
@@ -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,
@@ -42,7 +43,6 @@ export default {
42
43
  delayShow: Number,
43
44
  delayHide: Number,
44
45
  dropbar: Boolean,
45
- dropbarMode: String,
46
46
  dropbarAnchor: Boolean,
47
47
  duration: Number,
48
48
  },
@@ -59,7 +59,6 @@ export default {
59
59
  flip: 'x',
60
60
  boundary: true,
61
61
  dropbar: false,
62
- dropbarMode: 'slide',
63
62
  dropbarAnchor: false,
64
63
  duration: 200,
65
64
  forceHeight: true,
@@ -68,8 +67,8 @@ export default {
68
67
  },
69
68
 
70
69
  computed: {
71
- boundary({ boundary, boundaryAlign }, $el) {
72
- return boundary === true || boundaryAlign ? $el : boundary;
70
+ boundary({ boundary }, $el) {
71
+ return boundary === true ? $el : boundary;
73
72
  },
74
73
 
75
74
  dropbarAnchor({ dropbarAnchor }, $el) {
@@ -276,10 +275,16 @@ export default {
276
275
  return this.dropbar;
277
276
  },
278
277
 
279
- handler() {
278
+ handler(_, { $el }) {
279
+ if (!hasClass($el, this.clsDrop)) {
280
+ return;
281
+ }
282
+
280
283
  if (!parent(this.dropbar)) {
281
284
  after(this.dropbarAnchor || this.$el, this.dropbar);
282
285
  }
286
+
287
+ addClass($el, `${this.clsDrop}-dropbar`);
283
288
  },
284
289
  },
285
290
 
@@ -299,16 +304,10 @@ export default {
299
304
  return;
300
305
  }
301
306
 
302
- if (this.dropbarMode === 'slide') {
303
- addClass(this.dropbar, 'uk-navbar-dropbar-slide');
304
- }
305
-
306
- this.clsDrop && addClass($el, `${this.clsDrop}-dropbar`);
307
-
308
307
  if (dir === 'bottom') {
309
308
  this.transitionTo(
310
- $el.offsetHeight +
311
- toFloat(css($el, 'marginTop')) +
309
+ offset($el).bottom -
310
+ offset(this.dropbar).top +
312
311
  toFloat(css($el, 'marginBottom')),
313
312
  $el
314
313
  );
@@ -2,7 +2,7 @@ import Resize from '../mixin/resize';
2
2
  import { addClass, Dimensions, height, isVisible, parent, width } from 'uikit-util';
3
3
 
4
4
  export default {
5
- mixin: [Resize],
5
+ mixins: [Resize],
6
6
 
7
7
  props: ['width', 'height'],
8
8
 
@@ -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
 
@@ -468,20 +467,12 @@
468
467
  ========================================================================== */
469
468
 
470
469
  .uk-navbar-dropbar {
471
- background: @navbar-dropbar-background;
472
- .hook-navbar-dropbar();
473
- }
474
-
475
- /*
476
- * Slide modifier
477
- */
478
-
479
- .uk-navbar-dropbar-slide {
480
470
  position: absolute;
481
471
  z-index: @navbar-dropbar-z-index;
482
472
  left: 0;
483
473
  right: 0;
484
- .hook-navbar-dropbar-slide();
474
+ background: @navbar-dropbar-background;
475
+ .hook-navbar-dropbar();
485
476
  }
486
477
 
487
478
 
@@ -514,7 +505,6 @@
514
505
  .hook-navbar-dropdown-nav-header() {}
515
506
  .hook-navbar-dropdown-nav-divider() {}
516
507
  .hook-navbar-dropbar(){}
517
- .hook-navbar-dropbar-slide(){}
518
508
  .hook-navbar-misc() {}
519
509
 
520
510
 
@@ -35,9 +35,11 @@
35
35
  @offcanvas-bar-padding-vertical-m: @global-medium-gutter;
36
36
  @offcanvas-bar-padding-horizontal-m: @global-medium-gutter;
37
37
 
38
- @offcanvas-close-position: 20px;
38
+ @offcanvas-close-position: 5px;
39
39
  @offcanvas-close-padding: 5px;
40
40
 
41
+ @offcanvas-close-position-m: 20px;
42
+
41
43
  @offcanvas-overlay-background: rgba(0,0,0,0.1);
42
44
 
43
45
 
@@ -206,6 +208,22 @@
206
208
  .hook-offcanvas-close();
207
209
  }
208
210
 
211
+ /* Tablet landscape and bigger */
212
+ @media (min-width: @breakpoint-medium) {
213
+
214
+ .uk-offcanvas-close {
215
+ top: @offcanvas-close-position-m;
216
+ right: @offcanvas-close-position-m;
217
+ }
218
+
219
+ }
220
+
221
+ /*
222
+ * Remove margin from adjacent element
223
+ */
224
+
225
+ .uk-offcanvas-close:first-child + * { margin-top: 0; }
226
+
209
227
 
210
228
  /* Overlay
211
229
  ========================================================================== */
@@ -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
 
@@ -117,9 +117,7 @@
117
117
  // Dropbar
118
118
  // ========================================================================
119
119
 
120
- .hook-navbar-dropbar() {}
121
-
122
- .hook-navbar-dropbar-slide() { box-shadow: @navbar-dropbar-box-shadow; }
120
+ .hook-navbar-dropbar() { box-shadow: @navbar-dropbar-box-shadow; }
123
121
 
124
122
 
125
123
  // Miscellaneous