uikit 3.14.4-dev.6a00f7fe6 → 3.14.4-dev.7db3661de

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 (91) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/css/uikit-core-rtl.css +146 -77
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +146 -77
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +143 -78
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +143 -78
  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 +7 -5
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +115 -24
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +115 -24
  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 +4 -5
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +4 -5
  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 +4 -5
  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 +26 -19
  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 +765 -647
  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 +1593 -1458
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/images/{backgrounds/nav-parent-open.svg → components/nav-parent-icon-large.svg} +0 -0
  44. package/src/images/components/nav-parent-icon.svg +3 -0
  45. package/src/images/components/navbar-parent-icon.svg +3 -0
  46. package/src/js/components/filter.js +5 -3
  47. package/src/js/components/sortable.js +2 -3
  48. package/src/js/core/drop.js +7 -0
  49. package/src/js/core/height-viewport.js +14 -6
  50. package/src/js/core/icon.js +16 -0
  51. package/src/js/core/index.js +2 -0
  52. package/src/js/core/leader.js +2 -2
  53. package/src/js/core/navbar.js +44 -15
  54. package/src/js/core/offcanvas.js +1 -47
  55. package/src/js/core/scroll.js +37 -10
  56. package/src/js/core/sticky.js +8 -9
  57. package/src/js/mixin/media.js +4 -5
  58. package/src/js/mixin/modal.js +90 -4
  59. package/src/js/mixin/position.js +27 -11
  60. package/src/js/mixin/slider-drag.js +20 -8
  61. package/src/js/mixin/togglable.js +8 -17
  62. package/src/js/util/dimensions.js +6 -6
  63. package/src/js/util/position.js +1 -0
  64. package/src/js/util/style.js +4 -13
  65. package/src/js/util/viewport.js +20 -36
  66. package/src/less/components/dropdown.less +14 -0
  67. package/src/less/components/leader.less +1 -1
  68. package/src/less/components/nav.less +37 -44
  69. package/src/less/components/navbar.less +108 -24
  70. package/src/less/components/utility.less +21 -4
  71. package/src/less/theme/nav.less +3 -15
  72. package/src/less/theme/navbar.less +7 -7
  73. package/src/scss/components/dropdown.scss +14 -0
  74. package/src/scss/components/leader.scss +1 -1
  75. package/src/scss/components/nav.scss +36 -32
  76. package/src/scss/components/navbar.scss +96 -24
  77. package/src/scss/components/utility.scss +19 -3
  78. package/src/scss/mixins-theme.scss +18 -20
  79. package/src/scss/mixins.scss +16 -15
  80. package/src/scss/theme/nav.scss +3 -15
  81. package/src/scss/theme/navbar.scss +6 -3
  82. package/src/scss/variables-theme.scss +27 -15
  83. package/src/scss/variables.scss +27 -13
  84. package/tests/drop.html +72 -16
  85. package/tests/dropdown.html +103 -16
  86. package/tests/index.html +3 -3
  87. package/tests/nav.html +20 -87
  88. package/tests/navbar.html +2128 -1133
  89. package/tests/offcanvas.html +8 -8
  90. package/tests/utility.html +19 -0
  91. package/src/images/backgrounds/nav-parent-close.svg +0 -3
@@ -3,13 +3,13 @@
3
3
  //
4
4
  // Component: `uk-nav`
5
5
  //
6
- // Sub-objects: `uk-nav-header`
6
+ // Sub-objects: `uk-nav-parent-icon`
7
+ // `uk-nav-header`
7
8
  // `uk-nav-divider`
8
9
  // `uk-nav-subtitle`
9
10
  // `uk-nav-sub`
10
11
  //
11
- // Modifiers: `uk-nav-parent-icon`
12
- // `uk-nav-default`
12
+ // Modifiers: `uk-nav-default`
13
13
  // `uk-nav-primary`
14
14
  // `uk-nav-center`,
15
15
  // `uk-nav-divider`
@@ -33,10 +33,6 @@ $nav-sublist-padding-left: 15px !default;
33
33
  $nav-sublist-deeper-padding-left: 15px !default;
34
34
  $nav-sublist-item-padding-vertical: 2px !default;
35
35
 
36
- $nav-parent-icon-width: ($global-line-height * 1em) !default;
37
- $nav-parent-icon-height: $nav-parent-icon-width !default;
38
- $nav-parent-icon-color: $global-color !default;
39
-
40
36
  $nav-header-padding-vertical: $nav-item-padding-vertical !default;
41
37
  $nav-header-padding-horizontal: $nav-item-padding-horizontal !default;
42
38
  $nav-header-font-size: $global-small-font-size !default;
@@ -46,6 +42,8 @@ $nav-header-margin-top: $global-margin !default;
46
42
  $nav-divider-margin-vertical: 5px !default;
47
43
  $nav-divider-margin-horizontal: 0 !default;
48
44
 
45
+ $nav-default-font-size: $global-font-size !default;
46
+ $nav-default-line-height: $global-line-height !default;
49
47
  $nav-default-item-color: $global-muted-color !default;
50
48
  $nav-default-item-hover-color: $global-color !default;
51
49
  $nav-default-item-active-color: $global-emphasis-color !default;
@@ -53,12 +51,14 @@ $nav-default-subtitle-font-size: $global-small-font-size !defaul
53
51
  $nav-default-header-color: $global-emphasis-color !default;
54
52
  $nav-default-divider-border-width: $global-border-width !default;
55
53
  $nav-default-divider-border: $global-border !default;
54
+ $nav-default-sublist-font-size: $nav-default-font-size !default;
55
+ $nav-default-sublist-line-height: $nav-default-line-height !default;
56
56
  $nav-default-sublist-item-color: $global-muted-color !default;
57
57
  $nav-default-sublist-item-hover-color: $global-color !default;
58
58
  $nav-default-sublist-item-active-color: $global-emphasis-color !default;
59
59
 
60
- $nav-primary-item-font-size: $global-large-font-size !default;
61
- $nav-primary-item-line-height: $global-line-height !default;
60
+ $nav-primary-font-size: $global-large-font-size !default;
61
+ $nav-primary-line-height: $global-line-height !default;
62
62
  $nav-primary-item-color: $global-muted-color !default;
63
63
  $nav-primary-item-hover-color: $global-color !default;
64
64
  $nav-primary-item-active-color: $global-emphasis-color !default;
@@ -66,17 +66,16 @@ $nav-primary-subtitle-font-size: $global-medium-font-size !defau
66
66
  $nav-primary-header-color: $global-emphasis-color !default;
67
67
  $nav-primary-divider-border-width: $global-border-width !default;
68
68
  $nav-primary-divider-border: $global-border !default;
69
+ $nav-primary-sublist-font-size: $global-medium-font-size !default;
70
+ $nav-primary-sublist-line-height: $global-line-height !default;
69
71
  $nav-primary-sublist-item-color: $global-muted-color !default;
70
72
  $nav-primary-sublist-item-hover-color: $global-color !default;
71
73
  $nav-primary-sublist-item-active-color: $global-emphasis-color !default;
72
74
 
73
- $nav-dividers-margin-top: 0 !default;
75
+ $nav-dividers-margin-top: 5px !default;
74
76
  $nav-dividers-border-width: $global-border-width !default;
75
77
  $nav-dividers-border: $global-border !default;
76
78
 
77
- $internal-nav-parent-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E" !default;
78
- $internal-nav-parent-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E" !default;
79
-
80
79
 
81
80
  /* ========================================================================
82
81
  Component: Nav
@@ -143,21 +142,12 @@ ul.uk-nav-sub {
143
142
  .uk-nav-sub a { padding: $nav-sublist-item-padding-vertical 0; }
144
143
 
145
144
 
146
- /* Parent icon modifier
145
+ /* Parent icon
147
146
  ========================================================================== */
148
147
 
149
- .uk-nav-parent-icon > .uk-parent > a::after {
150
- content: "";
151
- width: $nav-parent-icon-width;
152
- height: $nav-parent-icon-height;
153
- margin-left: auto;
154
- @include svg-fill($internal-nav-parent-close-image, "#000", $nav-parent-icon-color);
155
- background-repeat: no-repeat;
156
- background-position: 50% 50%;
157
- @if(mixin-exists(hook-nav-parent-icon)) {@include hook-nav-parent-icon();}
158
- }
148
+ .uk-nav-parent-icon { margin-left: auto; }
159
149
 
160
- .uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $nav-parent-icon-color); }
150
+ .uk-nav > li > a[aria-expanded="true"] .uk-nav-parent-icon { transform: rotate(180deg); }
161
151
 
162
152
 
163
153
  /* Header
@@ -186,6 +176,8 @@ ul.uk-nav-sub {
186
176
  ========================================================================== */
187
177
 
188
178
  .uk-nav-default {
179
+ font-size: $nav-default-font-size;
180
+ line-height: $nav-default-line-height;
189
181
  @if(mixin-exists(hook-nav-default)) {@include hook-nav-default();}
190
182
  }
191
183
 
@@ -241,6 +233,11 @@ ul.uk-nav-sub {
241
233
  * Sublists
242
234
  */
243
235
 
236
+ .uk-nav-default .uk-nav-sub {
237
+ font-size: $nav-default-sublist-font-size;
238
+ line-height: $nav-default-sublist-line-height;
239
+ }
240
+
244
241
  .uk-nav-default .uk-nav-sub a { color: $nav-default-sublist-item-color; }
245
242
 
246
243
  .uk-nav-default .uk-nav-sub a:hover { color: $nav-default-sublist-item-hover-color; }
@@ -252,6 +249,8 @@ ul.uk-nav-sub {
252
249
  ========================================================================== */
253
250
 
254
251
  .uk-nav-primary {
252
+ font-size: $nav-primary-font-size;
253
+ line-height: $nav-primary-line-height;
255
254
  @if(mixin-exists(hook-nav-primary)) {@include hook-nav-primary();}
256
255
  }
257
256
 
@@ -260,8 +259,6 @@ ul.uk-nav-sub {
260
259
  */
261
260
 
262
261
  .uk-nav-primary > li > a {
263
- font-size: $nav-primary-item-font-size;
264
- line-height: $nav-primary-item-line-height;
265
262
  color: $nav-primary-item-color;
266
263
  @if(mixin-exists(hook-nav-primary-item)) {@include hook-nav-primary-item();}
267
264
  }
@@ -309,6 +306,11 @@ ul.uk-nav-sub {
309
306
  * Sublists
310
307
  */
311
308
 
309
+ .uk-nav-primary .uk-nav-sub {
310
+ font-size: $nav-primary-sublist-font-size;
311
+ line-height: $nav-primary-sublist-line-height;
312
+ }
313
+
312
314
  .uk-nav-primary .uk-nav-sub a { color: $nav-primary-sublist-item-color; }
313
315
 
314
316
  .uk-nav-primary .uk-nav-sub a:hover { color: $nav-primary-sublist-item-hover-color; }
@@ -333,13 +335,18 @@ ul.uk-nav-sub {
333
335
  .uk-nav-center .uk-nav-sub,
334
336
  .uk-nav-center .uk-nav-sub ul { padding-left: 0; }
335
337
 
336
- /* Parent icon modifier */
337
- .uk-nav-center.uk-nav-parent-icon > .uk-parent > a::after { margin-left: 0; }
338
+ /* Parent icon */
339
+ .uk-nav-center .uk-nav-parent-icon { margin-left: 0; }
338
340
 
339
341
 
340
342
  /* Style modifier
341
343
  ========================================================================== */
342
344
 
345
+ /*
346
+ * Divider
347
+ * Naming is in plural to prevent conflicts with divider sub object.
348
+ */
349
+
343
350
  .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider) {
344
351
  margin-top: $nav-dividers-margin-top;
345
352
  padding-top: $nav-dividers-margin-top;
@@ -354,7 +361,6 @@ ul.uk-nav-sub {
354
361
  @if(mixin-exists(hook-nav-misc)) {@include hook-nav-misc();}
355
362
 
356
363
  // @mixin hook-nav-sub(){}
357
- // @mixin hook-nav-parent-icon(){}
358
364
  // @mixin hook-nav-header(){}
359
365
  // @mixin hook-nav-divider(){}
360
366
  // @mixin hook-nav-default(){}
@@ -378,7 +384,6 @@ ul.uk-nav-sub {
378
384
  // Inverse
379
385
  // ========================================================================
380
386
 
381
- $inverse-nav-parent-icon-color: $inverse-global-color !default;
382
387
  $inverse-nav-default-item-color: $inverse-global-muted-color !default;
383
388
  $inverse-nav-default-item-hover-color: $inverse-global-color !default;
384
389
  $inverse-nav-default-item-active-color: $inverse-global-emphasis-color !default;
@@ -401,7 +406,6 @@ $inverse-nav-dividers-border: $inverse-global-border !default
401
406
 
402
407
 
403
408
 
404
- // @mixin hook-inverse-nav-parent-icon(){}
405
409
  // @mixin hook-inverse-nav-default-item(){}
406
410
  // @mixin hook-inverse-nav-default-item-hover(){}
407
411
  // @mixin hook-inverse-nav-default-item-active(){}
@@ -10,6 +10,7 @@
10
10
  // `uk-navbar-center-left`
11
11
  // `uk-navbar-center-right`
12
12
  // `uk-navbar-nav`
13
+ // `uk-navbar-parent-icon`
13
14
  // `uk-navbar-item`
14
15
  // `uk-navbar-toggle`
15
16
  // `uk-navbar-subtitle`
@@ -37,10 +38,12 @@
37
38
  // ========================================================================
38
39
 
39
40
  $navbar-background: $global-muted-background !default;
41
+ $navbar-gap: 0px !default; // Must have a unit because of `calc`
40
42
  $navbar-color-mode: none !default;
41
43
 
44
+ $navbar-nav-gap: 0px !default; // Must have a unit because of `calc`
45
+
42
46
  $navbar-nav-item-height: 80px !default;
43
- $navbar-nav-item-gap: 0px !default; // Must have a unit because of `calc`
44
47
  $navbar-nav-item-padding-horizontal: 15px !default;
45
48
  $navbar-nav-item-color: $global-muted-color !default;
46
49
  $navbar-nav-item-font-size: $global-font-size !default;
@@ -49,7 +52,9 @@ $navbar-nav-item-hover-color: $global-color !default;
49
52
  $navbar-nav-item-onclick-color: $global-emphasis-color !default;
50
53
  $navbar-nav-item-active-color: $global-emphasis-color !default;
51
54
 
52
- $navbar-item-padding-horizontal: $navbar-nav-item-padding-horizontal !default;
55
+ $navbar-parent-icon-margin-left: 4px !default;
56
+
57
+ $navbar-item-padding-horizontal: 15px !default;
53
58
  $navbar-item-color: $global-color !default;
54
59
 
55
60
  $navbar-toggle-color: $global-muted-color !default;
@@ -69,9 +74,22 @@ $navbar-dropdown-color-mode: none !default;
69
74
  $navbar-dropdown-grid-gutter-horizontal: $global-gutter !default;
70
75
  $navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-horizontal !default;
71
76
 
72
- $navbar-dropdown-dropbar-margin-top: 0px !default;
73
- $navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default;
77
+ $navbar-dropdown-large-shift-margin: 0 !default;
78
+ $navbar-dropdown-large-padding: 40px !default;
79
+
80
+ $navbar-dropdown-stretch-padding-top: 15px !default;
81
+ $navbar-dropdown-stretch-padding-bottom: $navbar-dropdown-stretch-padding-top !default;
82
+ $navbar-dropdown-stretch-padding-horizontal: 15px !default;
83
+ $navbar-dropdown-stretch-padding-horizontal-s: $global-gutter !default;
84
+ $navbar-dropdown-stretch-padding-horizontal-m: $global-medium-gutter !default;
85
+ $navbar-dropdown-stretch-background: $navbar-dropdown-background !default;
86
+
87
+ $navbar-dropdown-dropbar-padding-top: $navbar-dropdown-padding !default;
88
+ $navbar-dropdown-dropbar-padding-bottom: $navbar-dropdown-dropbar-padding-top !default;
74
89
  $navbar-dropdown-dropbar-padding-horizontal: $navbar-nav-item-padding-horizontal !default;
90
+ $navbar-dropdown-dropbar-viewport-margin: 15px !default;
91
+ $navbar-dropdown-dropbar-viewport-margin-s: $global-gutter !default;
92
+ $navbar-dropdown-dropbar-viewport-margin-m: $global-medium-gutter !default;
75
93
 
76
94
  $navbar-dropdown-nav-item-color: $global-muted-color !default;
77
95
  $navbar-dropdown-nav-item-hover-color: $global-color !default;
@@ -98,7 +116,6 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
98
116
 
99
117
  .uk-navbar {
100
118
  display: flex;
101
- --uk-navbar-nav-item-gap: #{$navbar-nav-item-gap};
102
119
  /* 1 */
103
120
  position: relative;
104
121
  @if(mixin-exists(hook-navbar)) {@include hook-navbar();}
@@ -123,17 +140,13 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
123
140
 
124
141
  /*
125
142
  * 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
143
  */
128
144
 
129
145
  .uk-navbar-left,
130
146
  .uk-navbar-right,
131
- // 2. [class*='uk-navbar-center'],
132
- .uk-navbar-center,
133
- .uk-navbar-center-left > *,
134
- .uk-navbar-center-right > * {
147
+ [class*='uk-navbar-center'] {
135
148
  display: flex;
136
- gap: var(--uk-navbar-nav-item-gap);
149
+ gap: $navbar-gap;
137
150
  /* 1 */
138
151
  align-items: center;
139
152
  }
@@ -175,8 +188,8 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
175
188
  top: 0;
176
189
  }
177
190
 
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))'); }
191
+ .uk-navbar-center-left { right: unquote('calc(100% + #{$navbar-gap})'); }
192
+ .uk-navbar-center-right { left: unquote('calc(100% + #{$navbar-gap})'); }
180
193
 
181
194
  [class*='uk-navbar-center-'] {
182
195
  width: max-content;
@@ -193,7 +206,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
193
206
 
194
207
  .uk-navbar-nav {
195
208
  display: flex;
196
- gap: var(--uk-navbar-nav-item-gap);
209
+ gap: $navbar-nav-gap;
197
210
  /* 1 */
198
211
  margin: 0;
199
212
  padding: 0;
@@ -230,7 +243,6 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
230
243
  /* 3 */
231
244
  box-sizing: border-box;
232
245
  min-height: $navbar-nav-item-height;
233
- padding: 0 $navbar-nav-item-padding-horizontal;
234
246
  /* 4 */
235
247
  font-size: $navbar-nav-item-font-size;
236
248
  font-family: $navbar-nav-item-font-family;
@@ -243,6 +255,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
243
255
  */
244
256
 
245
257
  .uk-navbar-nav > li > a {
258
+ padding: 0 $navbar-nav-item-padding-horizontal;
246
259
  color: $navbar-nav-item-color;
247
260
  @if(mixin-exists(hook-navbar-nav-item)) {@include hook-navbar-nav-item();}
248
261
  }
@@ -271,6 +284,14 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
271
284
  }
272
285
 
273
286
 
287
+ /* Parent icon modifier
288
+ ========================================================================== */
289
+
290
+ .uk-navbar-parent-icon { margin-left: $navbar-parent-icon-margin-left; }
291
+
292
+ .uk-navbar-nav > li > a[aria-expanded="true"] .uk-navbar-parent-icon { transform: rotate(180deg); }
293
+
294
+
274
295
  /* Item
275
296
  ========================================================================== */
276
297
 
@@ -291,6 +312,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
291
312
  ========================================================================== */
292
313
 
293
314
  .uk-navbar-toggle {
315
+ padding: 0 $navbar-item-padding-horizontal;
294
316
  color: $navbar-toggle-color;
295
317
  @if(mixin-exists(hook-navbar-toggle)) {@include hook-navbar-toggle();}
296
318
  }
@@ -387,7 +409,13 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
387
409
  /* Show */
388
410
  .uk-navbar-dropdown.uk-open { display: block; }
389
411
 
412
+ /*
413
+ * Remove margin from the last-child
414
+ */
415
+
416
+ .uk-navbar-dropdown > :last-child { margin-bottom: 0; }
390
417
 
418
+ // Color Mode
391
419
  @if ( $navbar-dropdown-color-mode == light ) { .uk-navbar-dropdown { @extend .uk-light !optional;} }
392
420
  @if ( $navbar-dropdown-color-mode == dark ) { .uk-navbar-dropdown { @extend .uk-dark !optional;} }
393
421
 
@@ -415,43 +443,87 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
415
443
  .uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 4); }
416
444
  .uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 5); }
417
445
 
446
+ /*
447
+ * Size modifier
448
+ */
449
+
450
+ .uk-navbar-dropdown-large {
451
+ --uk-position-shift-offset: #{$navbar-dropdown-large-shift-margin};
452
+ padding: $navbar-dropdown-large-padding;
453
+ }
454
+
418
455
  /*
419
456
  * Stretch modifier
420
457
  * 1. Allow scrolling
458
+ * 2. Style
421
459
  */
422
460
 
423
- .uk-navbar-dropdown-stretch {
461
+ .uk-navbar-dropdown-stretch {
424
462
  --uk-position-offset: 0;
425
463
  --uk-position-shift-offset: 0;
426
464
  --uk-position-viewport-offset: 0;
427
465
  /* 1 */
428
466
  overflow-y: auto;
429
467
  -webkit-overflow-scrolling: touch;
468
+ /* 2 */
469
+ padding: $navbar-dropdown-stretch-padding-top $navbar-dropdown-stretch-padding-horizontal $navbar-dropdown-stretch-padding-bottom $navbar-dropdown-stretch-padding-horizontal;
470
+ background: $navbar-dropdown-stretch-background;
430
471
  @if(mixin-exists(hook-navbar-dropdown-stretch)) {@include hook-navbar-dropdown-stretch();}
431
472
  }
432
473
 
474
+ /* Phone landscape and bigger */
475
+ @media (min-width: $breakpoint-small) {
476
+
477
+ .uk-navbar-dropdown-stretch {
478
+ padding-left: $navbar-dropdown-stretch-padding-horizontal-s;
479
+ padding-right: $navbar-dropdown-stretch-padding-horizontal-s;
480
+ }
481
+
482
+ }
483
+
484
+ /* Tablet landscape and bigger */
485
+ @media (min-width: $breakpoint-medium) {
486
+
487
+ .uk-navbar-dropdown-stretch {
488
+ padding-left: $navbar-dropdown-stretch-padding-horizontal-m;
489
+ padding-right: $navbar-dropdown-stretch-padding-horizontal-m;
490
+ }
491
+
492
+ }
493
+
433
494
  /*
434
495
  * Dropbar modifier
435
496
  * 1. Reset dropdown width to prevent to early shifting
436
- * 2. Set position
437
- * 3. Bottom padding for dropbar
438
- * 4. Horizontal padding
497
+ * 2. Reset style
498
+ * 3. Padding
439
499
  */
440
500
 
441
501
  .uk-navbar-dropdown-dropbar {
442
502
  /* 1 */
443
503
  width: auto;
444
504
  /* 2 */
445
- --uk-position-offset: #{$navbar-dropdown-dropbar-margin-top};
505
+ background: transparent;
446
506
  /* 3 */
447
- margin-bottom: $navbar-dropdown-dropbar-margin-bottom;
448
- /* 4 */
449
- padding-left: $navbar-dropdown-dropbar-padding-horizontal;
450
- padding-right: $navbar-dropdown-dropbar-padding-horizontal;
507
+ padding: $navbar-dropdown-dropbar-padding-top $navbar-dropdown-dropbar-padding-horizontal $navbar-dropdown-dropbar-padding-bottom $navbar-dropdown-dropbar-padding-horizontal;
451
508
  --uk-position-shift-offset: 0;
509
+ --uk-position-viewport-offset: #{$navbar-dropdown-dropbar-viewport-margin};
452
510
  @if(mixin-exists(hook-navbar-dropdown-dropbar)) {@include hook-navbar-dropdown-dropbar();}
453
511
  }
454
512
 
513
+ /* Phone landscape and bigger */
514
+ @media (min-width: $breakpoint-small) {
515
+
516
+ .uk-navbar-dropdown-dropbar { --uk-position-viewport-offset: #{$navbar-dropdown-dropbar-viewport-margin-s}; }
517
+
518
+ }
519
+
520
+ /* Tablet landscape and bigger */
521
+ @media (min-width: $breakpoint-medium) {
522
+
523
+ .uk-navbar-dropdown-dropbar { --uk-position-viewport-offset: #{$navbar-dropdown-dropbar-viewport-margin-m}; }
524
+
525
+ }
526
+
455
527
 
456
528
  /* Dropdown Nav
457
529
  * Adopts `uk-nav`
@@ -147,6 +147,13 @@ $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3)
147
147
  .uk-overflow-auto > :last-child { margin-bottom: 0; }
148
148
 
149
149
 
150
+ /* Box Sizing
151
+ ========================================================================== */
152
+
153
+ .uk-box-sizing-content { box-sizing: content-box; }
154
+ .uk-box-sizing-border { box-sizing: border-box; }
155
+
156
+
150
157
  /* Resize
151
158
  ========================================================================== */
152
159
 
@@ -384,18 +391,27 @@ $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3)
384
391
  ========================================================================== */
385
392
 
386
393
  /*
387
- * 1. Required for `a`
394
+ * 1. Style
395
+ * 2. Required for `a`
396
+ * 3. Behave like image but can be overridden through flex utility classes
388
397
  */
389
398
 
390
399
  .uk-logo {
400
+ /* 1 */
391
401
  font-size: $logo-font-size;
392
402
  font-family: $logo-font-family;
393
403
  color: $logo-color;
394
- /* 1 */
404
+ /* 2 */
395
405
  text-decoration: none;
396
406
  @if(mixin-exists(hook-logo)) {@include hook-logo();}
397
407
  }
398
408
 
409
+ /* 3 */
410
+ :where(.uk-logo) {
411
+ display: inline-block;
412
+ vertical-align: middle;
413
+ }
414
+
399
415
  /* Hover */
400
416
  .uk-logo:hover {
401
417
  color: $logo-hover-color;
@@ -404,7 +420,7 @@ $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3)
404
420
  @if(mixin-exists(hook-logo-hover)) {@include hook-logo-hover();}
405
421
  }
406
422
 
407
- .uk-logo > :where(img, svg, video) { display: inline-block; }
423
+ .uk-logo :where(img, svg, video) { display: block; }
408
424
 
409
425
  .uk-logo-inverse { display: none; }
410
426
 
@@ -1269,17 +1269,6 @@
1269
1269
  }
1270
1270
  @mixin hook-inverse-component-nav(){
1271
1271
 
1272
- //
1273
- // Parent icon modifier
1274
- //
1275
-
1276
- .uk-nav-parent-icon > .uk-parent > a::after {
1277
- @include svg-fill($internal-nav-parent-close-image, "#000", $inverse-nav-parent-icon-color);
1278
- @if(mixin-exists(hook-inverse-nav-parent-icon)) {@include hook-inverse-nav-parent-icon();}
1279
- }
1280
-
1281
- .uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $inverse-nav-parent-icon-color); }
1282
-
1283
1272
  //
1284
1273
  // Default
1285
1274
  //
@@ -1356,12 +1345,16 @@
1356
1345
 
1357
1346
  .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider) {
1358
1347
  border-top-color: $inverse-nav-dividers-border;
1359
- @if(mixin-exists(hook-nav-dividers)) {@include hook-nav-dividers();}
1348
+ @if(mixin-exists(hook-inverse-nav-dividers)) {@include hook-inverse-nav-dividers();}
1360
1349
  }
1361
1350
 
1362
1351
  }
1363
1352
  @mixin hook-inverse-component-navbar(){
1364
1353
 
1354
+ //
1355
+ // Nav Item
1356
+ //
1357
+
1365
1358
  .uk-navbar-nav > li > a {
1366
1359
  color: $inverse-navbar-nav-item-color;
1367
1360
  @if(mixin-exists(hook-inverse-navbar-nav-item)) {@include hook-inverse-navbar-nav-item();}
@@ -1383,11 +1376,19 @@
1383
1376
  @if(mixin-exists(hook-inverse-navbar-nav-item-active)) {@include hook-inverse-navbar-nav-item-active();}
1384
1377
  }
1385
1378
 
1379
+ //
1380
+ // Item
1381
+ //
1382
+
1386
1383
  .uk-navbar-item {
1387
1384
  color: $inverse-navbar-item-color;
1388
1385
  @if(mixin-exists(hook-inverse-navbar-item)) {@include hook-inverse-navbar-item();}
1389
1386
  }
1390
1387
 
1388
+ //
1389
+ // Toggle
1390
+ //
1391
+
1391
1392
  .uk-navbar-toggle {
1392
1393
  color: $inverse-navbar-toggle-color;
1393
1394
  @if(mixin-exists(hook-inverse-navbar-toggle)) {@include hook-inverse-navbar-toggle();}
@@ -1567,7 +1568,8 @@
1567
1568
  @if(mixin-exists(hook-inverse-logo-hover)) {@include hook-inverse-logo-hover();}
1568
1569
  }
1569
1570
 
1570
- .uk-logo > :not(.uk-logo-inverse):not(:only-of-type) { display: none; }
1571
+ .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
1572
+ .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type) { display: none; }
1571
1573
  .uk-logo-inverse { display: block; }
1572
1574
 
1573
1575
  }
@@ -1704,10 +1706,9 @@
1704
1706
  @mixin hook-modal-close-full-hover(){}
1705
1707
  @mixin hook-modal-misc(){}
1706
1708
  @mixin hook-nav-sub(){}
1707
- @mixin hook-nav-parent-icon(){}
1708
1709
  @mixin hook-nav-header(){}
1709
1710
  @mixin hook-nav-divider(){}
1710
- @mixin hook-nav-default(){ font-size: $nav-default-font-size; }
1711
+ @mixin hook-nav-default(){}
1711
1712
  @mixin hook-nav-default-item(){}
1712
1713
  @mixin hook-nav-default-item-hover(){}
1713
1714
  @mixin hook-nav-default-item-active(){}
@@ -1723,7 +1724,6 @@
1723
1724
  @mixin hook-nav-primary-divider(){}
1724
1725
  @mixin hook-nav-dividers(){}
1725
1726
  @mixin hook-nav-misc(){}
1726
- @mixin hook-inverse-nav-parent-icon(){}
1727
1727
  @mixin hook-inverse-nav-default-item(){}
1728
1728
  @mixin hook-inverse-nav-default-item-hover(){}
1729
1729
  @mixin hook-inverse-nav-default-item-active(){}
@@ -1734,6 +1734,7 @@
1734
1734
  @mixin hook-inverse-nav-primary-item-active(){}
1735
1735
  @mixin hook-inverse-nav-primary-header(){}
1736
1736
  @mixin hook-inverse-nav-primary-divider(){}
1737
+ @mixin hook-inverse-nav-dividers(){}
1737
1738
  @mixin hook-navbar(){}
1738
1739
  @mixin hook-navbar-container(){}
1739
1740
  @mixin hook-navbar-nav-item(){
@@ -1754,10 +1755,7 @@
1754
1755
  @mixin hook-navbar-transparent(){}
1755
1756
  @mixin hook-navbar-sticky(){}
1756
1757
  @mixin hook-navbar-dropdown(){ box-shadow: $navbar-dropdown-box-shadow; }
1757
- @mixin hook-navbar-dropdown-stretch(){
1758
- box-shadow: none;
1759
- background: $navbar-dropdown-stretch-background;
1760
- }
1758
+ @mixin hook-navbar-dropdown-stretch(){ box-shadow: none; }
1761
1759
  @mixin hook-navbar-dropdown-dropbar(){ box-shadow: none; }
1762
1760
  @mixin hook-navbar-dropdown-nav(){ font-size: $navbar-dropdown-nav-font-size; }
1763
1761
  @mixin hook-navbar-dropdown-nav-item(){}
@@ -1020,17 +1020,6 @@
1020
1020
  }
1021
1021
  @mixin hook-inverse-component-nav(){
1022
1022
 
1023
- //
1024
- // Parent icon modifier
1025
- //
1026
-
1027
- .uk-nav-parent-icon > .uk-parent > a::after {
1028
- @include svg-fill($internal-nav-parent-close-image, "#000", $inverse-nav-parent-icon-color);
1029
- @if(mixin-exists(hook-inverse-nav-parent-icon)) {@include hook-inverse-nav-parent-icon();}
1030
- }
1031
-
1032
- .uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $inverse-nav-parent-icon-color); }
1033
-
1034
1023
  //
1035
1024
  // Default
1036
1025
  //
@@ -1107,12 +1096,16 @@
1107
1096
 
1108
1097
  .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider) {
1109
1098
  border-top-color: $inverse-nav-dividers-border;
1110
- @if(mixin-exists(hook-nav-dividers)) {@include hook-nav-dividers();}
1099
+ @if(mixin-exists(hook-inverse-nav-dividers)) {@include hook-inverse-nav-dividers();}
1111
1100
  }
1112
1101
 
1113
1102
  }
1114
1103
  @mixin hook-inverse-component-navbar(){
1115
1104
 
1105
+ //
1106
+ // Nav Item
1107
+ //
1108
+
1116
1109
  .uk-navbar-nav > li > a {
1117
1110
  color: $inverse-navbar-nav-item-color;
1118
1111
  @if(mixin-exists(hook-inverse-navbar-nav-item)) {@include hook-inverse-navbar-nav-item();}
@@ -1134,11 +1127,19 @@
1134
1127
  @if(mixin-exists(hook-inverse-navbar-nav-item-active)) {@include hook-inverse-navbar-nav-item-active();}
1135
1128
  }
1136
1129
 
1130
+ //
1131
+ // Item
1132
+ //
1133
+
1137
1134
  .uk-navbar-item {
1138
1135
  color: $inverse-navbar-item-color;
1139
1136
  @if(mixin-exists(hook-inverse-navbar-item)) {@include hook-inverse-navbar-item();}
1140
1137
  }
1141
1138
 
1139
+ //
1140
+ // Toggle
1141
+ //
1142
+
1142
1143
  .uk-navbar-toggle {
1143
1144
  color: $inverse-navbar-toggle-color;
1144
1145
  @if(mixin-exists(hook-inverse-navbar-toggle)) {@include hook-inverse-navbar-toggle();}
@@ -1318,7 +1319,8 @@
1318
1319
  @if(mixin-exists(hook-inverse-logo-hover)) {@include hook-inverse-logo-hover();}
1319
1320
  }
1320
1321
 
1321
- .uk-logo > :not(.uk-logo-inverse):not(:only-of-type) { display: none; }
1322
+ .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
1323
+ .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type) { display: none; }
1322
1324
  .uk-logo-inverse { display: block; }
1323
1325
 
1324
1326
  }
@@ -1431,7 +1433,6 @@
1431
1433
  @mixin hook-modal-close-full-hover(){}
1432
1434
  @mixin hook-modal-misc(){}
1433
1435
  @mixin hook-nav-sub(){}
1434
- @mixin hook-nav-parent-icon(){}
1435
1436
  @mixin hook-nav-header(){}
1436
1437
  @mixin hook-nav-divider(){}
1437
1438
  @mixin hook-nav-default(){}
@@ -1450,7 +1451,6 @@
1450
1451
  @mixin hook-nav-primary-divider(){}
1451
1452
  @mixin hook-nav-dividers(){}
1452
1453
  @mixin hook-nav-misc(){}
1453
- @mixin hook-inverse-nav-parent-icon(){}
1454
1454
  @mixin hook-inverse-nav-default-item(){}
1455
1455
  @mixin hook-inverse-nav-default-item-hover(){}
1456
1456
  @mixin hook-inverse-nav-default-item-active(){}
@@ -1461,6 +1461,7 @@
1461
1461
  @mixin hook-inverse-nav-primary-item-active(){}
1462
1462
  @mixin hook-inverse-nav-primary-header(){}
1463
1463
  @mixin hook-inverse-nav-primary-divider(){}
1464
+ @mixin hook-inverse-nav-dividers(){}
1464
1465
  @mixin hook-navbar(){}
1465
1466
  @mixin hook-navbar-container(){}
1466
1467
  @mixin hook-navbar-nav-item(){}