uikit 3.14.4-dev.838f092aa → 3.14.4-dev.846652f92

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 (72) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/css/uikit-core-rtl.css +45 -11
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +45 -11
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +42 -11
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +42 -11
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +1 -1
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +23 -8
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +23 -8
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +1 -1
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +22 -7
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +1 -1
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +22 -7
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +3 -3
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +23 -6
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +50 -42
  37. package/dist/js/uikit-core.min.js +1 -1
  38. package/dist/js/uikit-icons.js +1 -1
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +97 -74
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/images/backgrounds/nav-parent-close.svg +1 -1
  44. package/src/images/backgrounds/nav-parent-open.svg +1 -1
  45. package/src/js/components/sortable.js +2 -3
  46. package/src/js/core/drop.js +2 -1
  47. package/src/js/core/height-viewport.js +9 -5
  48. package/src/js/core/sticky.js +8 -9
  49. package/src/js/mixin/modal.js +1 -1
  50. package/src/js/mixin/position.js +27 -5
  51. package/src/js/mixin/slider-drag.js +20 -8
  52. package/src/js/util/dimensions.js +6 -6
  53. package/src/js/util/position.js +1 -0
  54. package/src/js/util/viewport.js +2 -27
  55. package/src/less/components/dropdown.less +8 -0
  56. package/src/less/components/nav.less +22 -4
  57. package/src/less/components/navbar.less +12 -3
  58. package/src/less/components/utility.less +12 -3
  59. package/src/less/theme/nav.less +3 -7
  60. package/src/less/theme/navbar.less +2 -0
  61. package/src/scss/components/dropdown.scss +8 -0
  62. package/src/scss/components/nav.scss +24 -6
  63. package/src/scss/components/navbar.scss +12 -3
  64. package/src/scss/components/utility.scss +12 -3
  65. package/src/scss/mixins-theme.scss +1 -1
  66. package/src/scss/theme/nav.scss +3 -7
  67. package/src/scss/theme/navbar.scss +2 -0
  68. package/src/scss/variables-theme.scss +13 -6
  69. package/src/scss/variables.scss +13 -5
  70. package/tests/drop.html +66 -16
  71. package/tests/dropdown.html +103 -16
  72. package/tests/navbar.html +1927 -1125
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.14.4-dev.838f092aa",
5
+ "version": "3.14.4-dev.846652f92",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -1,3 +1,3 @@
1
1
  <svg width="14" height="14" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
2
- <polyline fill="none" stroke="#000" stroke-width="1.1" points="10 1 4 7 10 13" />
2
+ <polyline fill="none" stroke="#000" stroke-width="1.1" points="1 4 7 10 13 4" />
3
3
  </svg>
@@ -1,3 +1,3 @@
1
1
  <svg width="14" height="14" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
2
- <polyline fill="none" stroke="#000" stroke-width="1.1" points="1 4 7 10 13 4" />
2
+ <polyline fill="none" stroke="#000" stroke-width="1.1" points="13 10 7 4 1 10" />
3
3
  </svg>
@@ -26,7 +26,6 @@ import {
26
26
  remove,
27
27
  removeClass,
28
28
  scrollParents,
29
- scrollTop,
30
29
  toggleClass,
31
30
  Transition,
32
31
  trigger,
@@ -313,7 +312,7 @@ function trackScroll(pos) {
313
312
  let last = Date.now();
314
313
  trackTimer = setInterval(() => {
315
314
  let { x, y } = pos;
316
- y += scrollTop(window);
315
+ y += document.scrollingElement.scrollTop;
317
316
 
318
317
  const dist = (Date.now() - last) * 0.3;
319
318
  last = Date.now();
@@ -334,7 +333,7 @@ function trackScroll(pos) {
334
333
  }
335
334
 
336
335
  if (scroll > 0 && scroll < scrollHeight - height) {
337
- scrollTop(scrollEl, scroll);
336
+ scrollEl.scrollTop = scroll;
338
337
  return true;
339
338
  }
340
339
  });
@@ -415,7 +415,8 @@ export default {
415
415
 
416
416
  const viewport = offsetViewport(scrollParent);
417
417
  const targetDim = offset(target);
418
- const elOffset = Math.abs(this.getPositionOffset(this.$el)) + viewportOffset;
418
+ const elOffset =
419
+ Math.abs(this.getPositionOffset(this.$el, target)) + viewportOffset;
419
420
 
420
421
  css(this.$el, {
421
422
  width:
@@ -56,14 +56,18 @@ export default {
56
56
  0
57
57
  );
58
58
  } else {
59
+ const isScrollingElement = document.scrollingElement === scrollElement;
60
+
59
61
  // on mobile devices (iOS and Android) window.innerHeight !== 100vh
60
- minHeight = `calc(${
61
- document.scrollingElement === scrollElement ? '100vh' : `${viewportHeight}px`
62
- }`;
62
+ minHeight = `calc(${isScrollingElement ? '100vh' : `${viewportHeight}px`}`;
63
63
 
64
64
  if (this.offsetTop) {
65
- const top = offsetPosition(this.$el)[0] - offsetPosition(scrollElement)[0];
66
- minHeight += top > 0 && top < viewportHeight / 2 ? ` - ${top}px` : '';
65
+ if (isScrollingElement) {
66
+ const top = offsetPosition(this.$el)[0] - offsetPosition(scrollElement)[0];
67
+ minHeight += top > 0 && top < viewportHeight / 2 ? ` - ${top}px` : '';
68
+ } else {
69
+ minHeight += ` - ${css(scrollElement, 'paddingTop')}`;
70
+ }
67
71
  }
68
72
 
69
73
  if (this.offsetBottom === true) {
@@ -23,7 +23,6 @@ import {
23
23
  remove,
24
24
  removeClass,
25
25
  replaceClass,
26
- scrollTop,
27
26
  toFloat,
28
27
  toggleClass,
29
28
  toPx,
@@ -125,7 +124,9 @@ export default {
125
124
  },
126
125
 
127
126
  handler() {
128
- if (!location.hash || scrollTop(window) === 0) {
127
+ const { scrollingElement } = document;
128
+
129
+ if (!location.hash || scrollingElement.scrollTop === 0) {
129
130
  return;
130
131
  }
131
132
 
@@ -134,13 +135,11 @@ export default {
134
135
  const elOffset = getOffset(this.$el);
135
136
 
136
137
  if (this.isFixed && intersectRect(targetOffset, elOffset)) {
137
- scrollTop(
138
- window,
138
+ scrollingElement.scrollTop =
139
139
  targetOffset.top -
140
- elOffset.height -
141
- toPx(this.targetOffset, 'height', this.placeholder) -
142
- toPx(this.offset, 'height', this.placeholder)
143
- );
140
+ elOffset.height -
141
+ toPx(this.targetOffset, 'height', this.placeholder) -
142
+ toPx(this.offset, 'height', this.placeholder);
144
143
  }
145
144
  });
146
145
  },
@@ -238,7 +237,7 @@ export default {
238
237
  start,
239
238
  end,
240
239
  }) {
241
- const scroll = scrollTop(window);
240
+ const scroll = document.scrollingElement.scrollTop;
242
241
  const dir = prevScroll <= scroll ? 'down' : 'up';
243
242
 
244
243
  return {
@@ -127,7 +127,7 @@ export default {
127
127
  this.$el,
128
128
  'hide',
129
129
  on(document, 'focusin', (e) => {
130
- if (!within(e.target, this.panel)) {
130
+ if (last(active) === this && !within(e.target, this.$el)) {
131
131
  this.$el.focus();
132
132
  }
133
133
  })
@@ -1,11 +1,16 @@
1
1
  import {
2
+ $,
2
3
  css,
3
4
  dimensions,
4
5
  flipPosition,
5
6
  getCssVar,
7
+ offset as getOffset,
6
8
  includes,
9
+ isNumeric,
7
10
  isRtl,
11
+ isString,
8
12
  positionAt,
13
+ scrollParents,
9
14
  toPx,
10
15
  } from 'uikit-util';
11
16
 
@@ -30,7 +35,7 @@ export default {
30
35
 
31
36
  methods: {
32
37
  positionAt(element, target, boundary) {
33
- let offset = [this.getPositionOffset(element), this.getShiftOffset(element)];
38
+ let offset = [this.getPositionOffset(element, target), this.getShiftOffset(element)];
34
39
 
35
40
  const attach = {
36
41
  element: [flipPosition(this.dir), this.align],
@@ -44,6 +49,9 @@ export default {
44
49
  offset = offset.reverse();
45
50
  }
46
51
 
52
+ const [scrollElement] = scrollParents(element, /auto|scroll/);
53
+ const { scrollTop, scrollLeft } = scrollElement;
54
+
47
55
  // Ensure none positioned element does not generate scrollbars
48
56
  const elDim = dimensions(element);
49
57
  css(element, { top: -elDim.height, left: -elDim.width });
@@ -55,15 +63,29 @@ export default {
55
63
  flip: this.flip,
56
64
  viewportOffset: this.getViewportOffset(element),
57
65
  });
66
+
67
+ // Restore scroll position
68
+ scrollElement.scrollTop = scrollTop;
69
+ scrollElement.scrollLeft = scrollLeft;
58
70
  },
59
71
 
60
- getPositionOffset(element) {
72
+ getPositionOffset(element, target) {
73
+ let { axis, dir, offset } = this;
74
+
75
+ if (offset && !isNumeric(offset) && !(isString(offset) && offset.match(/^-?\d/))) {
76
+ const node = $(offset);
77
+ offset = node
78
+ ? getOffset(node)[axis === 'x' ? 'left' : 'top'] -
79
+ getOffset(target)[axis === 'x' ? 'right' : 'bottom']
80
+ : 0;
81
+ }
82
+
61
83
  return (
62
84
  toPx(
63
- this.offset === false ? getCssVar('position-offset', element) : this.offset,
64
- this.axis === 'x' ? 'width' : 'height',
85
+ offset === false ? getCssVar('position-offset', element) : offset,
86
+ axis === 'x' ? 'width' : 'height',
65
87
  element
66
- ) * (includes(['left', 'top'], this.dir) ? -1 : 1)
88
+ ) * (includes(['left', 'top'], dir) ? -1 : 1)
67
89
  );
68
90
  },
69
91
 
@@ -5,16 +5,18 @@ import {
5
5
  includes,
6
6
  isRtl,
7
7
  isTouch,
8
+ noop,
8
9
  off,
9
10
  on,
10
- pointerCancel,
11
- pointerDown,
12
- pointerMove,
13
- pointerUp,
14
11
  selInput,
15
12
  trigger,
16
13
  } from 'uikit-util';
17
14
 
15
+ const pointerOptions = { passive: false, capture: true };
16
+ const pointerDown = 'touchstart mousedown';
17
+ const pointerMove = 'touchmove mousemove';
18
+ const pointerUp = 'touchend touchcancel mouseup click input';
19
+
18
20
  export default {
19
21
  props: {
20
22
  draggable: Boolean,
@@ -69,6 +71,16 @@ export default {
69
71
  e.preventDefault();
70
72
  },
71
73
  },
74
+
75
+ {
76
+ // iOS workaround for slider stopping if swiping fast
77
+ name: `${pointerMove} ${pointerUp}`,
78
+ el() {
79
+ return this.list;
80
+ },
81
+ handler: noop,
82
+ ...pointerOptions,
83
+ },
72
84
  ],
73
85
 
74
86
  methods: {
@@ -89,10 +101,10 @@ export default {
89
101
  this.prevIndex = this.index;
90
102
  }
91
103
 
92
- on(document, pointerMove, this.move, { passive: false });
104
+ on(document, pointerMove, this.move, pointerOptions);
93
105
 
94
106
  // 'input' event is triggered by video controls
95
- on(document, `${pointerUp} ${pointerCancel} input`, this.end, true);
107
+ on(document, pointerUp, this.end, pointerOptions);
96
108
 
97
109
  css(this.list, 'userSelect', 'none');
98
110
  },
@@ -172,8 +184,8 @@ export default {
172
184
  },
173
185
 
174
186
  end() {
175
- off(document, pointerMove, this.move, { passive: false });
176
- off(document, `${pointerUp} ${pointerCancel} input`, this.end, true);
187
+ off(document, pointerMove, this.move, pointerOptions);
188
+ off(document, pointerUp, this.end, pointerOptions);
177
189
 
178
190
  if (this.dragging) {
179
191
  this.dragging = null;
@@ -94,13 +94,13 @@ export function position(element) {
94
94
  }
95
95
 
96
96
  export function offsetPosition(element) {
97
- const offset = [0, 0];
98
-
99
97
  element = toNode(element);
100
98
 
101
- do {
102
- offset[0] += element.offsetTop;
103
- offset[1] += element.offsetLeft;
99
+ const offset = [element.offsetTop, element.offsetLeft];
100
+
101
+ while ((element = element.offsetParent)) {
102
+ offset[0] += element.offsetTop + toFloat(css(element, `borderTopWidth`));
103
+ offset[1] += element.offsetLeft + toFloat(css(element, `borderLeftWidth`));
104
104
 
105
105
  if (css(element, 'position') === 'fixed') {
106
106
  const win = toWindow(element);
@@ -108,7 +108,7 @@ export function offsetPosition(element) {
108
108
  offset[1] += win.scrollX;
109
109
  return offset;
110
110
  }
111
- } while ((element = element.offsetParent));
111
+ }
112
112
 
113
113
  return offset;
114
114
  }
@@ -159,6 +159,7 @@ function attachToWithFlip(element, target, options) {
159
159
  return newPos;
160
160
  }
161
161
  }
162
+ continue;
162
163
  }
163
164
 
164
165
  // Move
@@ -1,18 +1,7 @@
1
1
  import { css } from './style';
2
2
  import { isVisible, parents } from './filter';
3
3
  import { offset, offsetPosition } from './dimensions';
4
- import {
5
- clamp,
6
- findIndex,
7
- intersectRect,
8
- isDocument,
9
- isUndefined,
10
- isWindow,
11
- toFloat,
12
- toNode,
13
- toWindow,
14
- ucfirst,
15
- } from './lang';
4
+ import { clamp, findIndex, intersectRect, isWindow, toFloat, toWindow, ucfirst } from './lang';
16
5
 
17
6
  export function isInView(element, offsetTop = 0, offsetLeft = 0) {
18
7
  if (!isVisible(element)) {
@@ -35,20 +24,6 @@ export function isInView(element, offsetTop = 0, offsetLeft = 0) {
35
24
  );
36
25
  }
37
26
 
38
- export function scrollTop(element, top) {
39
- if (isWindow(element) || isDocument(element)) {
40
- element = scrollingElement(element);
41
- } else {
42
- element = toNode(element);
43
- }
44
-
45
- if (isUndefined(top)) {
46
- return element.scrollTop;
47
- } else {
48
- element.scrollTop = top;
49
- }
50
- }
51
-
52
27
  export function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
53
28
  const parents = isVisible(element) ? scrollParents(element) : [];
54
29
  return parents.reduce(
@@ -90,7 +65,7 @@ export function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
90
65
  (function step() {
91
66
  const percent = ease(clamp((Date.now() - start) / duration));
92
67
 
93
- scrollTop(element, scroll + top * percent);
68
+ element.scrollTop = scroll + top * percent;
94
69
 
95
70
  // scroll more if we have not reached our destination
96
71
  if (percent === 1) {
@@ -25,6 +25,8 @@
25
25
  @dropdown-background: @global-muted-background;
26
26
  @dropdown-color: @global-color;
27
27
 
28
+ @dropdown-large-padding: 40px;
29
+
28
30
  @dropdown-nav-item-color: @global-muted-color;
29
31
  @dropdown-nav-item-hover-color: @global-color;
30
32
  @dropdown-nav-subtitle-font-size: @global-small-font-size;
@@ -69,6 +71,12 @@
69
71
  .uk-dropdown.uk-open { display: block; }
70
72
 
71
73
 
74
+ /* Size modifier
75
+ ========================================================================== */
76
+
77
+ .uk-dropdown-large { padding: @dropdown-large-padding; }
78
+
79
+
72
80
  /* Stretch modifier
73
81
  ========================================================================== */
74
82
 
@@ -46,6 +46,8 @@
46
46
  @nav-divider-margin-vertical: 5px;
47
47
  @nav-divider-margin-horizontal: 0;
48
48
 
49
+ @nav-default-font-size: @global-font-size;
50
+ @nav-default-line-height: @global-line-height;
49
51
  @nav-default-item-color: @global-muted-color;
50
52
  @nav-default-item-hover-color: @global-color;
51
53
  @nav-default-item-active-color: @global-emphasis-color;
@@ -53,12 +55,14 @@
53
55
  @nav-default-header-color: @global-emphasis-color;
54
56
  @nav-default-divider-border-width: @global-border-width;
55
57
  @nav-default-divider-border: @global-border;
58
+ @nav-default-sublist-font-size: @nav-default-font-size;
59
+ @nav-default-sublist-line-height: @nav-default-line-height;
56
60
  @nav-default-sublist-item-color: @global-muted-color;
57
61
  @nav-default-sublist-item-hover-color: @global-color;
58
62
  @nav-default-sublist-item-active-color: @global-emphasis-color;
59
63
 
60
- @nav-primary-item-font-size: @global-large-font-size;
61
- @nav-primary-item-line-height: @global-line-height;
64
+ @nav-primary-font-size: @global-large-font-size;
65
+ @nav-primary-line-height: @global-line-height;
62
66
  @nav-primary-item-color: @global-muted-color;
63
67
  @nav-primary-item-hover-color: @global-color;
64
68
  @nav-primary-item-active-color: @global-emphasis-color;
@@ -66,6 +70,8 @@
66
70
  @nav-primary-header-color: @global-emphasis-color;
67
71
  @nav-primary-divider-border-width: @global-border-width;
68
72
  @nav-primary-divider-border: @global-border;
73
+ @nav-primary-sublist-font-size: @global-medium-font-size;
74
+ @nav-primary-sublist-line-height: @global-line-height;
69
75
  @nav-primary-sublist-item-color: @global-muted-color;
70
76
  @nav-primary-sublist-item-hover-color: @global-color;
71
77
  @nav-primary-sublist-item-active-color: @global-emphasis-color;
@@ -186,6 +192,8 @@ ul.uk-nav-sub {
186
192
  ========================================================================== */
187
193
 
188
194
  .uk-nav-default {
195
+ font-size: @nav-default-font-size;
196
+ line-height: @nav-default-line-height;
189
197
  .hook-nav-default();
190
198
  }
191
199
 
@@ -241,6 +249,11 @@ ul.uk-nav-sub {
241
249
  * Sublists
242
250
  */
243
251
 
252
+ .uk-nav-default .uk-nav-sub {
253
+ font-size: @nav-default-sublist-font-size;
254
+ line-height: @nav-default-sublist-line-height;
255
+ }
256
+
244
257
  .uk-nav-default .uk-nav-sub a { color: @nav-default-sublist-item-color; }
245
258
 
246
259
  .uk-nav-default .uk-nav-sub a:hover { color: @nav-default-sublist-item-hover-color; }
@@ -252,6 +265,8 @@ ul.uk-nav-sub {
252
265
  ========================================================================== */
253
266
 
254
267
  .uk-nav-primary {
268
+ font-size: @nav-primary-font-size;
269
+ line-height: @nav-primary-line-height;
255
270
  .hook-nav-primary();
256
271
  }
257
272
 
@@ -260,8 +275,6 @@ ul.uk-nav-sub {
260
275
  */
261
276
 
262
277
  .uk-nav-primary > li > a {
263
- font-size: @nav-primary-item-font-size;
264
- line-height: @nav-primary-item-line-height;
265
278
  color: @nav-primary-item-color;
266
279
  .hook-nav-primary-item();
267
280
  }
@@ -309,6 +322,11 @@ ul.uk-nav-sub {
309
322
  * Sublists
310
323
  */
311
324
 
325
+ .uk-nav-primary .uk-nav-sub {
326
+ font-size: @nav-primary-sublist-font-size;
327
+ line-height: @nav-primary-sublist-line-height;
328
+ }
329
+
312
330
  .uk-nav-primary .uk-nav-sub a { color: @nav-primary-sublist-item-color; }
313
331
 
314
332
  .uk-nav-primary .uk-nav-sub a:hover { color: @nav-primary-sublist-item-hover-color; }
@@ -51,7 +51,7 @@
51
51
  @navbar-nav-item-onclick-color: @global-emphasis-color;
52
52
  @navbar-nav-item-active-color: @global-emphasis-color;
53
53
 
54
- @navbar-item-padding-horizontal: @navbar-nav-item-padding-horizontal;
54
+ @navbar-item-padding-horizontal: 15px;
55
55
  @navbar-item-color: @global-color;
56
56
 
57
57
  @navbar-toggle-color: @global-muted-color;
@@ -71,6 +71,8 @@
71
71
  @navbar-dropdown-grid-gutter-horizontal: @global-gutter;
72
72
  @navbar-dropdown-grid-gutter-vertical: @navbar-dropdown-grid-gutter-horizontal;
73
73
 
74
+ @navbar-dropdown-large-padding: 40px;
75
+
74
76
  @navbar-dropdown-dropbar-margin-top: 0px;
75
77
  @navbar-dropdown-dropbar-margin-bottom: @navbar-dropdown-dropbar-margin-top;
76
78
  @navbar-dropdown-dropbar-padding-horizontal: @navbar-nav-item-padding-horizontal;
@@ -227,7 +229,6 @@
227
229
  /* 3 */
228
230
  box-sizing: border-box;
229
231
  min-height: @navbar-nav-item-height;
230
- padding: 0 @navbar-nav-item-padding-horizontal;
231
232
  /* 4 */
232
233
  font-size: @navbar-nav-item-font-size;
233
234
  font-family: @navbar-nav-item-font-family;
@@ -240,6 +241,7 @@
240
241
  */
241
242
 
242
243
  .uk-navbar-nav > li > a {
244
+ padding: 0 @navbar-nav-item-padding-horizontal;
243
245
  color: @navbar-nav-item-color;
244
246
  .hook-navbar-nav-item();
245
247
  }
@@ -288,6 +290,7 @@
288
290
  ========================================================================== */
289
291
 
290
292
  .uk-navbar-toggle {
293
+ padding: 0 @navbar-item-padding-horizontal;
291
294
  color: @navbar-toggle-color;
292
295
  .hook-navbar-toggle();
293
296
  }
@@ -384,7 +387,7 @@
384
387
  /* Show */
385
388
  .uk-navbar-dropdown.uk-open { display: block; }
386
389
 
387
-
390
+ // Color Mode
388
391
  .uk-navbar-dropdown:extend(.uk-light all) when (@navbar-dropdown-color-mode = light) {}
389
392
  .uk-navbar-dropdown:extend(.uk-dark all) when (@navbar-dropdown-color-mode = dark) {}
390
393
 
@@ -412,6 +415,12 @@
412
415
  .uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) { width: (@navbar-dropdown-width * 4); }
413
416
  .uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) { width: (@navbar-dropdown-width * 5); }
414
417
 
418
+ /*
419
+ * Size modifier
420
+ */
421
+
422
+ .uk-navbar-dropdown-large { padding: @navbar-dropdown-large-padding; }
423
+
415
424
  /*
416
425
  * Stretch modifier
417
426
  * 1. Allow scrolling
@@ -384,18 +384,27 @@
384
384
  ========================================================================== */
385
385
 
386
386
  /*
387
- * 1. Required for `a`
387
+ * 1. Style
388
+ * 2. Required for `a`
389
+ * 3. Behave like image but can be overridden through flex utility classes
388
390
  */
389
391
 
390
392
  .uk-logo {
393
+ /* 1 */
391
394
  font-size: @logo-font-size;
392
395
  font-family: @logo-font-family;
393
396
  color: @logo-color;
394
- /* 1 */
397
+ /* 2 */
395
398
  text-decoration: none;
396
399
  .hook-logo();
397
400
  }
398
401
 
402
+ /* 3 */
403
+ :where(.uk-logo) {
404
+ display: inline-block;
405
+ vertical-align: middle;
406
+ }
407
+
399
408
  /* Hover */
400
409
  .uk-logo:hover {
401
410
  color: @logo-hover-color;
@@ -404,7 +413,7 @@
404
413
  .hook-logo-hover();
405
414
  }
406
415
 
407
- .uk-logo > :where(img, svg, video) { display: inline-block; }
416
+ .uk-logo > :where(img, svg, video) { display: block; }
408
417
 
409
418
  .uk-logo-inverse { display: none; }
410
419
 
@@ -7,14 +7,10 @@
7
7
  // Variables
8
8
  // ========================================================================
9
9
 
10
- @nav-default-subtitle-font-size: 12px;
11
-
12
- //
13
- // New
14
- //
15
-
16
10
  @nav-default-font-size: @global-small-font-size;
17
11
 
12
+ @nav-default-subtitle-font-size: 12px;
13
+
18
14
 
19
15
  // Sublists
20
16
  // ========================================================================
@@ -43,7 +39,7 @@
43
39
  // Default style modifier
44
40
  // ========================================================================
45
41
 
46
- .hook-nav-default() { font-size: @nav-default-font-size; }
42
+ .hook-nav-default() {}
47
43
 
48
44
  .hook-nav-default-item() {}
49
45
 
@@ -14,6 +14,8 @@
14
14
 
15
15
  @navbar-nav-item-font-size: @global-small-font-size;
16
16
 
17
+ @navbar-item-padding-horizontal: 0;
18
+
17
19
  @navbar-dropdown-margin: 15px;
18
20
  @navbar-dropdown-padding: 25px;
19
21
  @navbar-dropdown-background: @global-background;
@@ -25,6 +25,8 @@ $dropdown-padding: 15px !default;
25
25
  $dropdown-background: $global-muted-background !default;
26
26
  $dropdown-color: $global-color !default;
27
27
 
28
+ $dropdown-large-padding: 40px !default;
29
+
28
30
  $dropdown-nav-item-color: $global-muted-color !default;
29
31
  $dropdown-nav-item-hover-color: $global-color !default;
30
32
  $dropdown-nav-subtitle-font-size: $global-small-font-size !default;
@@ -69,6 +71,12 @@ $dropdown-nav-sublist-item-hover-color: $global-color !default;
69
71
  .uk-dropdown.uk-open { display: block; }
70
72
 
71
73
 
74
+ /* Size modifier
75
+ ========================================================================== */
76
+
77
+ .uk-dropdown-large { padding: $dropdown-large-padding; }
78
+
79
+
72
80
  /* Stretch modifier
73
81
  ========================================================================== */
74
82