uikit 3.14.4-dev.6a00f7fe6 → 3.14.4-dev.cd89debeb

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 (54) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/css/uikit-core-rtl.css +7 -10
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +7 -10
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +7 -10
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +7 -10
  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 +89 -5
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +89 -5
  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 +1 -1
  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 +1 -1
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +1 -1
  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 +667 -612
  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 +667 -612
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/drop.js +7 -0
  44. package/src/js/core/offcanvas.js +1 -47
  45. package/src/js/mixin/modal.js +90 -4
  46. package/src/js/util/viewport.js +20 -9
  47. package/src/less/components/navbar.less +9 -11
  48. package/src/less/theme/navbar.less +3 -1
  49. package/src/scss/components/navbar.scss +9 -11
  50. package/src/scss/theme/navbar.scss +3 -1
  51. package/src/scss/variables-theme.scss +2 -1
  52. package/src/scss/variables.scss +2 -1
  53. package/tests/drop.html +6 -0
  54. package/tests/navbar.html +4 -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.14.4-dev.6a00f7fe6",
5
+ "version": "3.14.4-dev.cd89debeb",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -30,6 +30,7 @@ import {
30
30
  toggleClass,
31
31
  within,
32
32
  } from 'uikit-util';
33
+ import { preventBackgroundScroll, preventOverscroll } from '../mixin/modal';
33
34
 
34
35
  export let active;
35
36
 
@@ -48,6 +49,7 @@ export default {
48
49
  display: String,
49
50
  clsDrop: String,
50
51
  animateOut: Boolean,
52
+ bgScroll: Boolean,
51
53
  },
52
54
 
53
55
  data: {
@@ -63,6 +65,7 @@ export default {
63
65
  cls: 'uk-open',
64
66
  container: false,
65
67
  animateOut: false,
68
+ bgScroll: true,
66
69
  },
67
70
 
68
71
  created() {
@@ -250,6 +253,10 @@ export default {
250
253
  }
251
254
  }),
252
255
 
256
+ ...(this.bgScroll
257
+ ? []
258
+ : [preventOverscroll(this.$el), preventBackgroundScroll()]),
259
+
253
260
  ...(this.display === 'static' && this.align !== 'stretch'
254
261
  ? []
255
262
  : (() => {
@@ -93,22 +93,6 @@ export default {
93
93
  },
94
94
  },
95
95
 
96
- {
97
- name: 'touchstart',
98
-
99
- passive: true,
100
-
101
- el() {
102
- return this.panel;
103
- },
104
-
105
- handler({ targetTouches }) {
106
- if (targetTouches.length === 1) {
107
- this.clientY = targetTouches[0].clientY;
108
- }
109
- },
110
- },
111
-
112
96
  {
113
97
  name: 'touchmove',
114
98
 
@@ -124,33 +108,6 @@ export default {
124
108
  },
125
109
  },
126
110
 
127
- {
128
- name: 'touchmove',
129
-
130
- passive: false,
131
-
132
- el() {
133
- return this.panel;
134
- },
135
-
136
- handler(e) {
137
- if (e.targetTouches.length !== 1) {
138
- return;
139
- }
140
-
141
- const clientY = e.targetTouches[0].clientY - this.clientY;
142
- const { scrollTop, scrollHeight, clientHeight } = this.panel;
143
-
144
- if (
145
- clientHeight >= scrollHeight ||
146
- (scrollTop === 0 && clientY > 0) ||
147
- (scrollHeight - scrollTop <= clientHeight && clientY < 0)
148
- ) {
149
- e.cancelable && e.preventDefault();
150
- }
151
- },
152
- },
153
-
154
111
  {
155
112
  name: 'show',
156
113
 
@@ -162,7 +119,6 @@ export default {
162
119
  addClass(parent(this.panel), this.clsMode);
163
120
  }
164
121
 
165
- css(document.documentElement, 'overflowY', this.overlay ? 'hidden' : '');
166
122
  addClass(document.body, this.clsContainer, this.clsFlip);
167
123
  css(document.body, 'touch-action', 'pan-y pinch-zoom');
168
124
  css(this.$el, 'display', 'block');
@@ -170,7 +126,7 @@ export default {
170
126
  addClass(
171
127
  this.panel,
172
128
  this.clsSidebarAnimation,
173
- this.mode !== 'reveal' ? this.clsMode : ''
129
+ this.mode === 'reveal' ? '' : this.clsMode
174
130
  );
175
131
 
176
132
  height(document.body); // force reflow
@@ -207,8 +163,6 @@ export default {
207
163
  removeClass(this.$el, this.clsOverlay);
208
164
  css(this.$el, 'display', '');
209
165
  removeClass(document.body, this.clsContainer, this.clsFlip);
210
-
211
- css(document.documentElement, 'overflowY', '');
212
166
  },
213
167
  },
214
168
 
@@ -2,6 +2,7 @@ import {
2
2
  $,
3
3
  addClass,
4
4
  append,
5
+ apply,
5
6
  attr,
6
7
  css,
7
8
  endsWith,
@@ -15,6 +16,7 @@ import {
15
16
  pointerDown,
16
17
  pointerUp,
17
18
  removeClass,
19
+ scrollParents,
18
20
  toFloat,
19
21
  width,
20
22
  within,
@@ -121,17 +123,26 @@ export default {
121
123
  self: true,
122
124
 
123
125
  handler() {
124
- const docEl = document.documentElement;
126
+ once(
127
+ this.$el,
128
+ 'hide',
129
+ on(document, 'focusin', (e) => {
130
+ if (last(active) === this && !within(e.target, this.$el)) {
131
+ this.$el.focus();
132
+ }
133
+ })
134
+ );
125
135
 
126
- if (width(window) > docEl.clientWidth && this.overlay) {
127
- css(document.body, 'overflowY', 'scroll');
136
+ if (this.overlay) {
137
+ once(this.$el, 'hide', preventOverscroll(this.$el));
138
+ once(this.$el, 'hide', preventBackgroundScroll());
128
139
  }
129
140
 
130
141
  if (this.stack) {
131
142
  css(this.$el, 'zIndex', toFloat(css(this.$el, 'zIndex')) + active.length);
132
143
  }
133
144
 
134
- addClass(docEl, this.clsPage);
145
+ addClass(document.documentElement, this.clsPage);
135
146
 
136
147
  if (this.bgClose) {
137
148
  once(
@@ -273,3 +284,78 @@ function animate({ transitionElement, _toggle }) {
273
284
  function toMs(time) {
274
285
  return time ? (endsWith(time, 'ms') ? toFloat(time) : toFloat(time) * 1000) : 0;
275
286
  }
287
+
288
+ export function preventOverscroll(el) {
289
+ if (CSS.supports('overscroll-behavior', 'contain')) {
290
+ const elements = filterChildren(el, (child) => /auto|scroll/.test(css(child, 'overflow')));
291
+ css(elements, 'overscrollBehavior', 'contain');
292
+ return () => css(elements, 'overscrollBehavior', '');
293
+ }
294
+
295
+ let startClientY;
296
+
297
+ const events = [
298
+ on(
299
+ el,
300
+ 'touchstart',
301
+ ({ targetTouches }) => {
302
+ if (targetTouches.length === 1) {
303
+ startClientY = targetTouches[0].clientY;
304
+ }
305
+ },
306
+ { passive: true }
307
+ ),
308
+
309
+ on(
310
+ el,
311
+ 'touchmove',
312
+ (e) => {
313
+ if (e.targetTouches.length !== 1) {
314
+ return;
315
+ }
316
+
317
+ let [scrollParent] = scrollParents(e.target, /auto|scroll/);
318
+ if (!within(scrollParent, el)) {
319
+ scrollParent = el;
320
+ }
321
+
322
+ const clientY = e.targetTouches[0].clientY - startClientY;
323
+ const { scrollTop, scrollHeight, clientHeight } = scrollParent;
324
+
325
+ if (
326
+ clientHeight >= scrollHeight ||
327
+ (scrollTop === 0 && clientY > 0) ||
328
+ (scrollHeight - scrollTop <= clientHeight && clientY < 0)
329
+ ) {
330
+ e.cancelable && e.preventDefault();
331
+ }
332
+ },
333
+ { passive: false }
334
+ ),
335
+ ];
336
+
337
+ return () => events.forEach((fn) => fn());
338
+ }
339
+
340
+ export function preventBackgroundScroll() {
341
+ const { body, documentElement } = document;
342
+ css(body, {
343
+ overflowY: width(window) > documentElement.clientWidth ? 'scroll' : '',
344
+ touchAction: 'none',
345
+ });
346
+ css(documentElement, 'overflowY', 'hidden');
347
+ return () => {
348
+ css(documentElement, 'overflowY', '');
349
+ css(body, { overflowY: '', touchAction: '' });
350
+ };
351
+ }
352
+
353
+ function filterChildren(el, fn) {
354
+ const children = [];
355
+ apply(el, (node) => {
356
+ if (fn(node)) {
357
+ children.push(node);
358
+ }
359
+ });
360
+ return children;
361
+ }
@@ -151,18 +151,33 @@ export function scrollParents(element, overflowRe = /auto|scroll|hidden|clip/, s
151
151
  }
152
152
 
153
153
  export function offsetViewport(scrollElement) {
154
- let viewportElement = getViewport(scrollElement);
154
+ const window = toWindow(scrollElement);
155
+ const {
156
+ document: { body, documentElement },
157
+ } = window;
158
+ let viewportElement =
159
+ scrollElement === scrollingElement(scrollElement) || scrollElement === body
160
+ ? window
161
+ : scrollElement;
162
+
163
+ const { visualViewport } = window;
164
+ if (isWindow(viewportElement) && visualViewport) {
165
+ let { height, width, scale, pageTop: top, pageLeft: left } = visualViewport;
166
+ height = Math.round(height * scale);
167
+ width = Math.round(width * scale);
168
+ return { height, width, top, left, bottom: top + height, right: left + width };
169
+ }
155
170
 
156
171
  let rect = offset(viewportElement);
157
172
  for (let [prop, dir, start, end] of [
158
173
  ['width', 'x', 'left', 'right'],
159
174
  ['height', 'y', 'top', 'bottom'],
160
175
  ]) {
161
- if (!isWindow(viewportElement)) {
162
- rect[start] += toFloat(css(viewportElement, `border${ucfirst(start)}Width`));
163
- } else {
176
+ if (isWindow(viewportElement)) {
164
177
  // iOS 12 returns <body> as scrollingElement
165
- viewportElement = viewportElement.document.documentElement;
178
+ viewportElement = documentElement;
179
+ } else {
180
+ rect[start] += toFloat(css(viewportElement, `border${ucfirst(start)}Width`));
166
181
  }
167
182
  rect[prop] = rect[dir] = viewportElement[`client${ucfirst(prop)}`];
168
183
  rect[end] = rect[prop] + rect[start];
@@ -173,7 +188,3 @@ export function offsetViewport(scrollElement) {
173
188
  function scrollingElement(element) {
174
189
  return toWindow(element).document.scrollingElement;
175
190
  }
176
-
177
- function getViewport(scrollElement) {
178
- return scrollElement === scrollingElement(scrollElement) ? window : scrollElement;
179
- }
@@ -37,10 +37,12 @@
37
37
  // ========================================================================
38
38
 
39
39
  @navbar-background: @global-muted-background;
40
+ @navbar-gap: 0px; // Must have a unit because of `calc`
40
41
  @navbar-color-mode: none;
41
42
 
43
+ @navbar-nav-gap: 0px; // Must have a unit because of `calc`
44
+
42
45
  @navbar-nav-item-height: 80px;
43
- @navbar-nav-item-gap: 0px; // Must have a unit because of `calc`
44
46
  @navbar-nav-item-padding-horizontal: 15px;
45
47
  @navbar-nav-item-color: @global-muted-color;
46
48
  @navbar-nav-item-font-size: @global-font-size;
@@ -98,7 +100,6 @@
98
100
 
99
101
  .uk-navbar {
100
102
  display: flex;
101
- --uk-navbar-nav-item-gap: @navbar-nav-item-gap;
102
103
  /* 1 */
103
104
  position: relative;
104
105
  .hook-navbar();
@@ -123,17 +124,13 @@
123
124
 
124
125
  /*
125
126
  * 1. Align navs and items vertically if they have a different height
126
- * 2. Note: IE 11 requires an extra `div` which affects the center selector
127
127
  */
128
128
 
129
129
  .uk-navbar-left,
130
130
  .uk-navbar-right,
131
- // 2. [class*='uk-navbar-center'],
132
- .uk-navbar-center,
133
- .uk-navbar-center-left > *,
134
- .uk-navbar-center-right > * {
131
+ [class*='uk-navbar-center'] {
135
132
  display: flex;
136
- gap: var(--uk-navbar-nav-item-gap);
133
+ gap: @navbar-gap;
137
134
  /* 1 */
138
135
  align-items: center;
139
136
  }
@@ -175,8 +172,8 @@
175
172
  top: 0;
176
173
  }
177
174
 
178
- .uk-navbar-center-left { right: ~'calc(100% + var(--uk-navbar-nav-item-gap))'; }
179
- .uk-navbar-center-right { left: ~'calc(100% + var(--uk-navbar-nav-item-gap))'; }
175
+ .uk-navbar-center-left { right: ~'calc(100% + @{navbar-gap})'; }
176
+ .uk-navbar-center-right { left: ~'calc(100% + @{navbar-gap})'; }
180
177
 
181
178
  [class*='uk-navbar-center-'] {
182
179
  width: max-content;
@@ -193,7 +190,7 @@
193
190
 
194
191
  .uk-navbar-nav {
195
192
  display: flex;
196
- gap: var(--uk-navbar-nav-item-gap);
193
+ gap: @navbar-nav-gap;
197
194
  /* 1 */
198
195
  margin: 0;
199
196
  padding: 0;
@@ -443,6 +440,7 @@
443
440
  width: auto;
444
441
  /* 2 */
445
442
  --uk-position-offset: @navbar-dropdown-dropbar-margin-top;
443
+ --uk-position-viewport-offset: 0;
446
444
  /* 3 */
447
445
  margin-bottom: @navbar-dropdown-dropbar-margin-bottom;
448
446
  /* 4 */
@@ -7,7 +7,9 @@
7
7
  // Variables
8
8
  // ========================================================================
9
9
 
10
- @navbar-nav-item-gap: 30px;
10
+ @navbar-gap: 30px;
11
+
12
+ @navbar-nav-gap: 30px;
11
13
  @navbar-nav-item-padding-horizontal: 0;
12
14
 
13
15
  @navbar-nav-item-font-size: @global-small-font-size;
@@ -37,10 +37,12 @@
37
37
  // ========================================================================
38
38
 
39
39
  $navbar-background: $global-muted-background !default;
40
+ $navbar-gap: 0px !default; // Must have a unit because of `calc`
40
41
  $navbar-color-mode: none !default;
41
42
 
43
+ $navbar-nav-gap: 0px !default; // Must have a unit because of `calc`
44
+
42
45
  $navbar-nav-item-height: 80px !default;
43
- $navbar-nav-item-gap: 0px !default; // Must have a unit because of `calc`
44
46
  $navbar-nav-item-padding-horizontal: 15px !default;
45
47
  $navbar-nav-item-color: $global-muted-color !default;
46
48
  $navbar-nav-item-font-size: $global-font-size !default;
@@ -98,7 +100,6 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
98
100
 
99
101
  .uk-navbar {
100
102
  display: flex;
101
- --uk-navbar-nav-item-gap: #{$navbar-nav-item-gap};
102
103
  /* 1 */
103
104
  position: relative;
104
105
  @if(mixin-exists(hook-navbar)) {@include hook-navbar();}
@@ -123,17 +124,13 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
123
124
 
124
125
  /*
125
126
  * 1. Align navs and items vertically if they have a different height
126
- * 2. Note: IE 11 requires an extra `div` which affects the center selector
127
127
  */
128
128
 
129
129
  .uk-navbar-left,
130
130
  .uk-navbar-right,
131
- // 2. [class*='uk-navbar-center'],
132
- .uk-navbar-center,
133
- .uk-navbar-center-left > *,
134
- .uk-navbar-center-right > * {
131
+ [class*='uk-navbar-center'] {
135
132
  display: flex;
136
- gap: var(--uk-navbar-nav-item-gap);
133
+ gap: $navbar-gap;
137
134
  /* 1 */
138
135
  align-items: center;
139
136
  }
@@ -175,8 +172,8 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
175
172
  top: 0;
176
173
  }
177
174
 
178
- .uk-navbar-center-left { right: unquote('calc(100% + var(--uk-navbar-nav-item-gap))'); }
179
- .uk-navbar-center-right { left: unquote('calc(100% + var(--uk-navbar-nav-item-gap))'); }
175
+ .uk-navbar-center-left { right: unquote('calc(100% + #{$navbar-gap})'); }
176
+ .uk-navbar-center-right { left: unquote('calc(100% + #{$navbar-gap})'); }
180
177
 
181
178
  [class*='uk-navbar-center-'] {
182
179
  width: max-content;
@@ -193,7 +190,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
193
190
 
194
191
  .uk-navbar-nav {
195
192
  display: flex;
196
- gap: var(--uk-navbar-nav-item-gap);
193
+ gap: $navbar-nav-gap;
197
194
  /* 1 */
198
195
  margin: 0;
199
196
  padding: 0;
@@ -443,6 +440,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
443
440
  width: auto;
444
441
  /* 2 */
445
442
  --uk-position-offset: #{$navbar-dropdown-dropbar-margin-top};
443
+ --uk-position-viewport-offset: 0;
446
444
  /* 3 */
447
445
  margin-bottom: $navbar-dropdown-dropbar-margin-bottom;
448
446
  /* 4 */
@@ -7,7 +7,9 @@
7
7
  // Variables
8
8
  // ========================================================================
9
9
 
10
- $navbar-nav-item-gap: 30px !default;
10
+ $navbar-gap: 30px !default;
11
+
12
+ $navbar-nav-gap: 30px !default;
11
13
  $navbar-nav-item-padding-horizontal: 0 !default;
12
14
 
13
15
  $navbar-nav-item-font-size: $global-small-font-size !default;
@@ -736,9 +736,10 @@ $inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default;
736
736
  $inverse-nav-primary-sublist-item-active-color: $inverse-global-emphasis-color !default;
737
737
  $inverse-nav-dividers-border: $inverse-global-border !default;
738
738
  $navbar-background: $global-muted-background !default;
739
+ $navbar-gap: 30px !default;
739
740
  $navbar-color-mode: none !default;
741
+ $navbar-nav-gap: 30px !default;
740
742
  $navbar-nav-item-height: 80px !default;
741
- $navbar-nav-item-gap: 30px !default;
742
743
  $navbar-nav-item-padding-horizontal: 0 !default;
743
744
  $navbar-nav-item-color: $global-muted-color !default;
744
745
  $navbar-nav-item-font-size: $global-small-font-size !default;
@@ -734,9 +734,10 @@ $inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default;
734
734
  $inverse-nav-primary-sublist-item-active-color: $inverse-global-emphasis-color !default;
735
735
  $inverse-nav-dividers-border: $inverse-global-border !default;
736
736
  $navbar-background: $global-muted-background !default;
737
+ $navbar-gap: 0px !default;
737
738
  $navbar-color-mode: none !default;
739
+ $navbar-nav-gap: 0px !default;
738
740
  $navbar-nav-item-height: 80px !default;
739
- $navbar-nav-item-gap: 0px !default;
740
741
  $navbar-nav-item-padding-horizontal: 15px !default;
741
742
  $navbar-nav-item-color: $global-muted-color !default;
742
743
  $navbar-nav-item-font-size: $global-font-size !default;
package/tests/drop.html CHANGED
@@ -622,6 +622,12 @@
622
622
  <td>false</td>
623
623
  <td>Use animation when closing the Drop.</td>
624
624
  </tr>
625
+ <tr>
626
+ <td><code>bg-scroll</code></td>
627
+ <td>Boolean</td>
628
+ <td>true</td>
629
+ <td>Allow background scrolling while drop is opened.</td>
630
+ </tr>
625
631
  <tr>
626
632
  <td><code>duration</code></td>
627
633
  <td>Number</td>
package/tests/navbar.html CHANGED
@@ -1609,7 +1609,7 @@
1609
1609
  <nav class="uk-navbar-container uk-margin" uk-navbar>
1610
1610
  <div class="uk-navbar-center">
1611
1611
 
1612
- <div class="uk-navbar-center-left"><div>
1612
+ <div class="uk-navbar-center-left">
1613
1613
  <ul class="uk-navbar-nav">
1614
1614
  <li class="uk-active"><a href="#">Active</a></li>
1615
1615
  <li>
@@ -1637,7 +1637,7 @@
1637
1637
  <div class="uk-navbar-dropdown">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
1638
1638
  </li>
1639
1639
  </ul>
1640
- </div></div>
1640
+ </div>
1641
1641
 
1642
1642
  <a class="uk-navbar-item uk-logo" href="#">Logo</a>
1643
1643
 
@@ -1706,7 +1706,7 @@
1706
1706
  </div>
1707
1707
  <div class="uk-navbar-center">
1708
1708
 
1709
- <div class="uk-navbar-center-left"><div>
1709
+ <div class="uk-navbar-center-left">
1710
1710
  <ul class="uk-navbar-nav">
1711
1711
  <li class="uk-active"><a href="#">Active</a></li>
1712
1712
  <li>
@@ -1734,7 +1734,7 @@
1734
1734
  <div class="uk-navbar-dropdown">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
1735
1735
  </li>
1736
1736
  </ul>
1737
- </div></div>
1737
+ </div>
1738
1738
 
1739
1739
  <a class="uk-navbar-item uk-logo" href="#">Logo</a>
1740
1740