uikit 3.16.27 → 3.17.1-dev.7c0766a6f

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 (119) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/less.js +5 -4
  3. package/build/util.js +7 -9
  4. package/dist/css/uikit-core-rtl.css +53 -18
  5. package/dist/css/uikit-core-rtl.min.css +1 -1
  6. package/dist/css/uikit-core.css +53 -18
  7. package/dist/css/uikit-core.min.css +1 -1
  8. package/dist/css/uikit-rtl.css +56 -17
  9. package/dist/css/uikit-rtl.min.css +1 -1
  10. package/dist/css/uikit.css +56 -17
  11. package/dist/css/uikit.min.css +1 -1
  12. package/dist/js/components/countdown.js +1 -1
  13. package/dist/js/components/countdown.min.js +1 -1
  14. package/dist/js/components/filter.js +24 -43
  15. package/dist/js/components/filter.min.js +1 -1
  16. package/dist/js/components/lightbox-panel.js +2 -3
  17. package/dist/js/components/lightbox-panel.min.js +1 -1
  18. package/dist/js/components/lightbox.js +2 -3
  19. package/dist/js/components/lightbox.min.js +1 -1
  20. package/dist/js/components/notification.js +2 -2
  21. package/dist/js/components/notification.min.js +1 -1
  22. package/dist/js/components/parallax.js +7 -17
  23. package/dist/js/components/parallax.min.js +1 -1
  24. package/dist/js/components/slider-parallax.js +6 -13
  25. package/dist/js/components/slider-parallax.min.js +1 -1
  26. package/dist/js/components/slider.js +2 -2
  27. package/dist/js/components/slider.min.js +1 -1
  28. package/dist/js/components/slideshow-parallax.js +6 -13
  29. package/dist/js/components/slideshow-parallax.min.js +1 -1
  30. package/dist/js/components/slideshow.js +19 -4
  31. package/dist/js/components/slideshow.min.js +1 -1
  32. package/dist/js/components/sortable.js +24 -43
  33. package/dist/js/components/sortable.min.js +1 -1
  34. package/dist/js/components/tooltip.js +1 -2
  35. package/dist/js/components/tooltip.min.js +1 -1
  36. package/dist/js/components/upload.js +1 -1
  37. package/dist/js/components/upload.min.js +1 -1
  38. package/dist/js/uikit-core.js +455 -185
  39. package/dist/js/uikit-core.min.js +1 -1
  40. package/dist/js/uikit-icons.js +1 -1
  41. package/dist/js/uikit-icons.min.js +1 -1
  42. package/dist/js/uikit.js +483 -240
  43. package/dist/js/uikit.min.js +1 -9502
  44. package/package.json +1 -1
  45. package/src/js/api/boot.js +2 -2
  46. package/src/js/api/computed.js +1 -1
  47. package/src/js/api/observables.js +1 -4
  48. package/src/js/components/notification.js +1 -1
  49. package/src/js/components/slideshow.js +19 -2
  50. package/src/js/core/cover.js +30 -1
  51. package/src/js/core/drop.js +15 -9
  52. package/src/js/core/dropnav.js +16 -2
  53. package/src/js/core/grid.js +119 -64
  54. package/src/js/core/height-viewport.js +4 -1
  55. package/src/js/core/margin.js +23 -39
  56. package/src/js/core/navbar.js +219 -1
  57. package/src/js/core/scrollspy-nav.js +13 -4
  58. package/src/js/core/scrollspy.js +1 -1
  59. package/src/js/core/sticky.js +10 -11
  60. package/src/js/mixin/internal/animate-fade.js +1 -11
  61. package/src/js/mixin/internal/slideshow-animations.js +1 -1
  62. package/src/js/mixin/slider-reactive.js +1 -1
  63. package/src/js/mixin/togglable.js +0 -2
  64. package/src/js/util/animation.js +19 -13
  65. package/src/js/util/class.js +30 -26
  66. package/src/js/util/dom.js +3 -8
  67. package/src/js/util/filter.js +2 -6
  68. package/src/js/util/viewport.js +26 -4
  69. package/src/less/components/base.less +6 -3
  70. package/src/less/components/form.less +3 -0
  71. package/src/less/components/heading.less +18 -0
  72. package/src/less/components/navbar.less +6 -12
  73. package/src/less/components/pagination.less +13 -6
  74. package/src/less/components/position.less +1 -0
  75. package/src/less/components/section.less +6 -0
  76. package/src/less/theme/heading.less +4 -0
  77. package/src/less/theme/navbar.less +5 -0
  78. package/src/scss/components/base.scss +4 -2
  79. package/src/scss/components/form.scss +3 -0
  80. package/src/scss/components/heading.scss +13 -0
  81. package/src/scss/components/navbar.scss +5 -12
  82. package/src/scss/components/pagination.scss +13 -6
  83. package/src/scss/components/position.scss +1 -0
  84. package/src/scss/components/section.scss +4 -0
  85. package/src/scss/mixins-theme.scss +13 -1
  86. package/src/scss/mixins.scss +8 -1
  87. package/src/scss/theme/heading.scss +4 -0
  88. package/src/scss/variables-theme.scss +7 -0
  89. package/src/scss/variables.scss +7 -0
  90. package/tests/cover.html +2 -2
  91. package/tests/drop.html +13 -7
  92. package/tests/dropnav.html +22 -10
  93. package/tests/filter.html +5 -5
  94. package/tests/form.html +1 -1
  95. package/tests/grid-masonry.html +49 -73
  96. package/tests/grid-parallax.html +82 -40
  97. package/tests/grid.html +21 -3
  98. package/tests/heading.html +33 -4
  99. package/tests/height-viewport.html +3 -3
  100. package/tests/height.html +2 -2
  101. package/tests/icon.html +1 -1
  102. package/tests/image.html +6 -6
  103. package/tests/leader.html +3 -3
  104. package/tests/nav.html +1 -1
  105. package/tests/navbar.html +28 -10
  106. package/tests/notification.html +1 -1
  107. package/tests/offcanvas.html +2 -2
  108. package/tests/parallax.html +1 -1
  109. package/tests/scrollspy.html +3 -3
  110. package/tests/sortable.html +3 -3
  111. package/tests/sticky-navbar.html +233 -14
  112. package/tests/sticky.html +8 -8
  113. package/tests/svg.html +1 -1
  114. package/tests/tab.html +1 -1
  115. package/tests/toggle.html +2 -2
  116. package/tests/tooltip.html +2 -2
  117. package/tests/upload.html +16 -16
  118. package/tests/utility.html +2 -2
  119. package/tests/video.html +3 -3
@@ -60,26 +60,40 @@ export function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
60
60
  top = 0;
61
61
  }
62
62
 
63
- return () => scrollTo(scrollElement, top - scrollTop).then(fn);
63
+ return () => scrollTo(scrollElement, top - scrollTop, element, maxScroll).then(fn);
64
64
  },
65
65
  () => Promise.resolve(),
66
66
  )();
67
67
 
68
- function scrollTo(element, top) {
68
+ function scrollTo(element, top, targetEl, maxScroll) {
69
69
  return new Promise((resolve) => {
70
70
  const scroll = element.scrollTop;
71
71
  const duration = getDuration(Math.abs(top));
72
72
  const start = Date.now();
73
+ const targetTop = offset(targetEl).top;
74
+ let prev = 0;
75
+ let frames = 15;
73
76
 
74
77
  (function step() {
75
78
  const percent = ease(clamp((Date.now() - start) / duration));
79
+ let diff = 0;
80
+ if (parents[0] === element && scroll + top < maxScroll) {
81
+ diff = offset(targetEl).top - targetTop;
82
+ const fixedEl = findFixedElement(targetEl);
83
+ diff -= fixedEl ? offset(fixedEl).height : 0;
84
+ }
76
85
 
77
- element.scrollTop = scroll + top * percent;
86
+ element.scrollTop = Math[top + diff > 0 ? 'max' : 'min'](
87
+ element.scrollTop,
88
+ scroll + (top + diff) * percent,
89
+ );
78
90
 
79
91
  // scroll more if we have not reached our destination
80
- if (percent === 1) {
92
+ // if element changes position during scroll try another step
93
+ if (percent === 1 && (prev === diff || !frames--)) {
81
94
  resolve();
82
95
  } else {
96
+ prev = diff;
83
97
  requestAnimationFrame(step);
84
98
  }
85
99
  })();
@@ -93,6 +107,14 @@ export function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
93
107
  function ease(k) {
94
108
  return 0.5 * (1 - Math.cos(Math.PI * k));
95
109
  }
110
+
111
+ function findFixedElement(target) {
112
+ return target.ownerDocument
113
+ .elementsFromPoint(0, 0)
114
+ .find(
115
+ (el) => ['fixed', 'sticky'].includes(css(el, 'position')) && !el.contains(target),
116
+ );
117
+ }
96
118
  }
97
119
 
98
120
  export function scrolledOver(element, startOffset = 0, endOffset = 0) {
@@ -327,7 +327,8 @@ h6, .uk-h6,
327
327
  .uk-heading-medium,
328
328
  .uk-heading-large,
329
329
  .uk-heading-xlarge,
330
- .uk-heading-2xlarge {
330
+ .uk-heading-2xlarge,
331
+ .uk-heading-3xlarge {
331
332
  margin: 0 0 @base-margin-vertical 0;
332
333
  font-family: @base-heading-font-family;
333
334
  font-weight: @base-heading-font-weight;
@@ -347,7 +348,8 @@ h6, .uk-h6,
347
348
  * + .uk-heading-medium,
348
349
  * + .uk-heading-large,
349
350
  * + .uk-heading-xlarge,
350
- * + .uk-heading-2xlarge { margin-top: @base-heading-margin-top; }
351
+ * + .uk-heading-2xlarge,
352
+ * + .uk-heading-3xlarge { margin-top: @base-heading-margin-top; }
351
353
 
352
354
  /*
353
355
  * Sizes
@@ -649,7 +651,8 @@ template { display: none; }
649
651
  .uk-heading-medium,
650
652
  .uk-heading-large,
651
653
  .uk-heading-xlarge,
652
- .uk-heading-2xlarge {
654
+ .uk-heading-2xlarge,
655
+ .uk-heading-3xlarge {
653
656
  color: @inverse-base-heading-color;
654
657
  .hook-inverse-base-heading();
655
658
  }
@@ -206,12 +206,15 @@
206
206
 
207
207
  /*
208
208
  * Define consistent border, margin, and padding.
209
+ * 1. Reset `min-width`
209
210
  */
210
211
 
211
212
  .uk-fieldset {
212
213
  border: none;
213
214
  margin: 0;
214
215
  padding: 0;
216
+ /* 1 */
217
+ min-width: 0;
215
218
  }
216
219
 
217
220
 
@@ -18,23 +18,27 @@
18
18
  @heading-large-font-size: @heading-large-font-size-m * 0.85; // 50px 0.78
19
19
  @heading-xlarge-font-size: @heading-large-font-size-m; // 4rem / 64px
20
20
  @heading-2xlarge-font-size: @heading-xlarge-font-size-m; // 6rem / 96px
21
+ @heading-3xlarge-font-size: @heading-2xlarge-font-size-m; // 8rem / 128px
21
22
 
22
23
  @heading-small-font-size-m: @heading-medium-font-size-l * 0.8125; // 3.25rem / 52px
23
24
  @heading-medium-font-size-m: @heading-medium-font-size-l * 0.875; // 3.5rem / 56px
24
25
  @heading-large-font-size-m: @heading-medium-font-size-l; // 4rem / 64px
25
26
  @heading-xlarge-font-size-m: @heading-large-font-size-l; // 6rem / 96px
26
27
  @heading-2xlarge-font-size-m: @heading-xlarge-font-size-l; // 8rem / 128px
28
+ @heading-3xlarge-font-size-m: @heading-2xlarge-font-size-l; // 11rem / 176px
27
29
 
28
30
  @heading-medium-font-size-l: 4rem; // 64px
29
31
  @heading-large-font-size-l: 6rem; // 96px
30
32
  @heading-xlarge-font-size-l: 8rem; // 128px
31
33
  @heading-2xlarge-font-size-l: 11rem; // 176px
34
+ @heading-3xlarge-font-size-l: 15rem; // 240px
32
35
 
33
36
  @heading-small-line-height: 1.2;
34
37
  @heading-medium-line-height: 1.1;
35
38
  @heading-large-line-height: 1.1;
36
39
  @heading-xlarge-line-height: 1;
37
40
  @heading-2xlarge-line-height: 1;
41
+ @heading-3xlarge-line-height: 1;
38
42
 
39
43
  @heading-divider-padding-bottom: ~'calc(5px + 0.1em)';
40
44
  @heading-divider-border-width: ~'calc(0.2px + 0.05em)';
@@ -88,6 +92,12 @@
88
92
  .hook-heading-2xlarge();
89
93
  }
90
94
 
95
+ .uk-heading-3xlarge {
96
+ font-size: @heading-3xlarge-font-size;
97
+ line-height: @heading-3xlarge-line-height;
98
+ .hook-heading-3xlarge();
99
+ }
100
+
91
101
  /* Tablet Landscape and bigger */
92
102
  @media (min-width: @breakpoint-medium) {
93
103
 
@@ -96,6 +106,7 @@
96
106
  .uk-heading-large { font-size: @heading-large-font-size-m; }
97
107
  .uk-heading-xlarge { font-size: @heading-xlarge-font-size-m; }
98
108
  .uk-heading-2xlarge { font-size: @heading-2xlarge-font-size-m; }
109
+ .uk-heading-3xlarge { font-size: @heading-3xlarge-font-size-m; }
99
110
 
100
111
  }
101
112
 
@@ -106,6 +117,7 @@
106
117
  .uk-heading-large { font-size: @heading-large-font-size-l; }
107
118
  .uk-heading-xlarge { font-size: @heading-xlarge-font-size-l; }
108
119
  .uk-heading-2xlarge { font-size: @heading-2xlarge-font-size-l; }
120
+ .uk-heading-3xlarge { font-size: @heading-3xlarge-font-size-l; }
109
121
 
110
122
  }
111
123
 
@@ -280,6 +292,7 @@
280
292
  .hook-heading-large() {}
281
293
  .hook-heading-xlarge() {}
282
294
  .hook-heading-2xlarge() {}
295
+ .hook-heading-3xlarge() {}
283
296
  .hook-heading-primary() {}
284
297
  .hook-heading-hero() {}
285
298
  .hook-heading-divider() {}
@@ -317,6 +330,10 @@
317
330
  .hook-inverse-heading-2xlarge();
318
331
  }
319
332
 
333
+ .uk-heading-3xlarge {
334
+ .hook-inverse-heading-3xlarge();
335
+ }
336
+
320
337
  .uk-heading-primary when (@deprecated = true) {
321
338
  .hook-inverse-heading-primary();
322
339
  }
@@ -348,6 +365,7 @@
348
365
  .hook-inverse-heading-large() {}
349
366
  .hook-inverse-heading-xlarge() {}
350
367
  .hook-inverse-heading-2xlarge() {}
368
+ .hook-inverse-heading-3xlarge() {}
351
369
  .hook-inverse-heading-primary() {}
352
370
  .hook-inverse-heading-hero() {}
353
371
  .hook-inverse-heading-divider() {}
@@ -97,6 +97,8 @@
97
97
  @navbar-dropdown-nav-sublist-item-hover-color: @global-color;
98
98
  @navbar-dropdown-nav-sublist-item-active-color: @global-emphasis-color;
99
99
 
100
+ @navbar-dropbar-behind-color-mode: dark;
101
+
100
102
 
101
103
  /* ========================================================================
102
104
  Component: Navbar
@@ -104,16 +106,18 @@
104
106
 
105
107
  /*
106
108
  * 1. Create position context to center navbar group
109
+ * 2. Pass dropbar behind color to JS
107
110
  */
108
111
 
109
112
  .uk-navbar {
110
113
  display: flex;
111
114
  /* 1 */
112
115
  position: relative;
116
+ /* 2 */
117
+ --uk-navbar-dropbar-behind-color: @navbar-dropbar-behind-color-mode;
113
118
  .hook-navbar();
114
119
  }
115
120
 
116
-
117
121
  /* Container
118
122
  ========================================================================== */
119
123
 
@@ -396,7 +400,7 @@
396
400
  * Remove margin from the last-child
397
401
  */
398
402
 
399
- .uk-navbar-dropdown > :last-child { margin-bottom: 0; }
403
+ .uk-navbar-dropdown > :last-child { margin-bottom: 0; }
400
404
 
401
405
  // Color Mode
402
406
  .uk-navbar-dropdown:extend(.uk-light all) when (@navbar-dropdown-color-mode = light) {}
@@ -557,16 +561,6 @@
557
561
  .hook-navbar-dropbar();
558
562
  }
559
563
 
560
- /*
561
- * Create navbar placeholder space if dropbar is behind navbar
562
- */
563
-
564
- .uk-navbar-dropbar-behind::before {
565
- content: "";
566
- display: block;
567
- height: @navbar-nav-item-height;
568
- }
569
-
570
564
 
571
565
  // Hooks
572
566
  // ========================================================================
@@ -32,8 +32,9 @@
32
32
 
33
33
  /*
34
34
  * 1. Allow items to wrap into the next line
35
- * 2. Gutter
36
- * 3. Reset list
35
+ * 2. Center items vertically if they have a different height
36
+ * 3. Gutter
37
+ * 4. Reset list
37
38
  */
38
39
 
39
40
  .uk-pagination {
@@ -41,8 +42,10 @@
41
42
  /* 1 */
42
43
  flex-wrap: wrap;
43
44
  /* 2 */
44
- margin-left: -@pagination-margin-horizontal;
45
+ align-items: center;
45
46
  /* 3 */
47
+ margin-left: -@pagination-margin-horizontal;
48
+ /* 4 */
46
49
  padding: 0;
47
50
  list-style: none;
48
51
  .hook-pagination();
@@ -68,14 +71,18 @@
68
71
  ========================================================================== */
69
72
 
70
73
  /*
71
- * 1. Prevent gap if child element is `inline-block`, e.g. an icon
72
- * 2. Style
74
+ * 1. Center content vertically, e.g. an icon
75
+ * 2. Imitate white space gap when using flexbox
76
+ * 3. Style
73
77
  */
74
78
 
75
79
  .uk-pagination > * > * {
76
80
  /* 1 */
77
- display: block;
81
+ display: flex;
82
+ align-items: center;
78
83
  /* 2 */
84
+ column-gap: 0.25em;
85
+ /* 3 */
79
86
  padding: @pagination-item-padding-vertical @pagination-item-padding-horizontal;
80
87
  color: @pagination-item-color;
81
88
  .hook-pagination-item();
@@ -220,6 +220,7 @@
220
220
  .uk-position-z-index { z-index: 1; }
221
221
  .uk-position-z-index-zero { z-index: 0; }
222
222
  .uk-position-z-index-negative { z-index: -1; }
223
+ .uk-position-z-index-high { z-index: @global-z-index - 10; }
223
224
 
224
225
 
225
226
  // Hooks
@@ -35,8 +35,10 @@
35
35
  @section-xlarge-padding-vertical-m: (@global-large-margin + @global-xlarge-margin);
36
36
 
37
37
  @section-default-background: @global-background;
38
+ @section-default-color-mode: dark;
38
39
 
39
40
  @section-muted-background: @global-muted-background;
41
+ @section-muted-color-mode: dark;
40
42
 
41
43
  @section-primary-background: @global-primary-background;
42
44
  @section-primary-color-mode: light;
@@ -148,6 +150,7 @@
148
150
 
149
151
  .uk-section-default {
150
152
  background: @section-default-background;
153
+ --uk-navbar-color: @section-default-color-mode;
151
154
  .hook-section-default();
152
155
  }
153
156
 
@@ -157,6 +160,7 @@
157
160
 
158
161
  .uk-section-muted {
159
162
  background: @section-muted-background;
163
+ --uk-navbar-color: @section-muted-color-mode;
160
164
  .hook-section-muted();
161
165
  }
162
166
 
@@ -166,6 +170,7 @@
166
170
 
167
171
  .uk-section-primary {
168
172
  background: @section-primary-background;
173
+ --uk-navbar-color: @section-primary-color-mode;
169
174
  .hook-section-primary();
170
175
  }
171
176
 
@@ -178,6 +183,7 @@
178
183
 
179
184
  .uk-section-secondary {
180
185
  background: @section-secondary-background;
186
+ --uk-navbar-color: @section-secondary-color-mode;
181
187
  .hook-section-secondary();
182
188
  }
183
189
 
@@ -21,6 +21,8 @@
21
21
 
22
22
  .hook-heading-2xlarge() {}
23
23
 
24
+ .hook-heading-3xlarge() {}
25
+
24
26
 
25
27
  // Divider
26
28
  // ========================================================================
@@ -60,6 +62,8 @@
60
62
 
61
63
  .hook-inverse-heading-2xlarge() {}
62
64
 
65
+ .hook-inverse-heading-3xlarge() {}
66
+
63
67
  .hook-inverse-heading-divider() {}
64
68
 
65
69
  .hook-inverse-heading-bullet() {}
@@ -138,6 +138,11 @@
138
138
 
139
139
  .hook-navbar-misc() {
140
140
 
141
+ .uk-navbar-container {
142
+ transition: 0.1s ease-in-out;
143
+ transition-property: background-color;
144
+ }
145
+
141
146
  /* Tablet landscape and bigger */
142
147
  @media (min-width: @breakpoint-medium) {
143
148
 
@@ -265,7 +265,8 @@ h6, .uk-h6,
265
265
  .uk-heading-medium,
266
266
  .uk-heading-large,
267
267
  .uk-heading-xlarge,
268
- .uk-heading-2xlarge {
268
+ .uk-heading-2xlarge,
269
+ .uk-heading-3xlarge {
269
270
  margin: 0 0 $base-margin-vertical 0;
270
271
  font-family: $base-heading-font-family;
271
272
  font-weight: $base-heading-font-weight;
@@ -285,7 +286,8 @@ h6, .uk-h6,
285
286
  * + .uk-heading-medium,
286
287
  * + .uk-heading-large,
287
288
  * + .uk-heading-xlarge,
288
- * + .uk-heading-2xlarge { margin-top: $base-heading-margin-top; }
289
+ * + .uk-heading-2xlarge,
290
+ * + .uk-heading-3xlarge { margin-top: $base-heading-margin-top; }
289
291
 
290
292
  /*
291
293
  * Sizes
@@ -149,12 +149,15 @@
149
149
 
150
150
  /*
151
151
  * Define consistent border, margin, and padding.
152
+ * 1. Reset `min-width`
152
153
  */
153
154
 
154
155
  .uk-fieldset {
155
156
  border: none;
156
157
  margin: 0;
157
158
  padding: 0;
159
+ /* 1 */
160
+ min-width: 0;
158
161
  }
159
162
 
160
163
 
@@ -18,17 +18,20 @@ $heading-medium-font-size: $heading-medium-font-size-m * 0
18
18
  $heading-large-font-size: $heading-large-font-size-m * 0.85 !default; // 50px 0.78
19
19
  $heading-xlarge-font-size: $heading-large-font-size-m !default; // 4rem / 64px
20
20
  $heading-2xlarge-font-size: $heading-xlarge-font-size-m !default; // 6rem / 96px
21
+ $heading-3xlarge-font-size: $heading-2xlarge-font-size-m !default; // 8rem / 128px
21
22
 
22
23
  $heading-small-font-size-m: $heading-medium-font-size-l * 0.8125 !default; // 3.25rem / 52px
23
24
  $heading-medium-font-size-m: $heading-medium-font-size-l * 0.875 !default; // 3.5rem / 56px
24
25
  $heading-large-font-size-m: $heading-medium-font-size-l !default; // 4rem / 64px
25
26
  $heading-xlarge-font-size-m: $heading-large-font-size-l !default; // 6rem / 96px
26
27
  $heading-2xlarge-font-size-m: $heading-xlarge-font-size-l !default; // 8rem / 128px
28
+ $heading-3xlarge-font-size-m: $heading-2xlarge-font-size-l !default; // 11rem / 176px
27
29
 
28
30
  $heading-medium-font-size-l: 4rem !default; // 64px
29
31
  $heading-large-font-size-l: 6rem !default; // 96px
30
32
  $heading-xlarge-font-size-l: 8rem !default; // 128px
31
33
  $heading-2xlarge-font-size-l: 11rem !default; // 176px
34
+ $heading-3xlarge-font-size-l: 15rem !default; // 240px
32
35
 
33
36
 
34
37
 
@@ -69,6 +72,12 @@ $heading-2xlarge-font-size-l: 11rem !default;
69
72
  @if(mixin-exists(hook-heading-2xlarge)) {@include hook-heading-2xlarge();}
70
73
  }
71
74
 
75
+ .uk-heading-3xlarge {
76
+ font-size: $heading-3xlarge-font-size;
77
+ line-height: $heading-3xlarge-line-height;
78
+ @if(mixin-exists(hook-heading-3xlarge)) {@include hook-heading-3xlarge();}
79
+ }
80
+
72
81
  /* Tablet Landscape and bigger */
73
82
  @media (min-width: $breakpoint-medium) {
74
83
 
@@ -77,6 +86,7 @@ $heading-2xlarge-font-size-l: 11rem !default;
77
86
  .uk-heading-large { font-size: $heading-large-font-size-m; }
78
87
  .uk-heading-xlarge { font-size: $heading-xlarge-font-size-m; }
79
88
  .uk-heading-2xlarge { font-size: $heading-2xlarge-font-size-m; }
89
+ .uk-heading-3xlarge { font-size: $heading-3xlarge-font-size-m; }
80
90
 
81
91
  }
82
92
 
@@ -87,6 +97,7 @@ $heading-2xlarge-font-size-l: 11rem !default;
87
97
  .uk-heading-large { font-size: $heading-large-font-size-l; }
88
98
  .uk-heading-xlarge { font-size: $heading-xlarge-font-size-l; }
89
99
  .uk-heading-2xlarge { font-size: $heading-2xlarge-font-size-l; }
100
+ .uk-heading-3xlarge { font-size: $heading-3xlarge-font-size-l; }
90
101
 
91
102
  }
92
103
 
@@ -268,6 +279,7 @@ $heading-hero-font-size: $heading-hero-font-size-l * 0.5
268
279
  // @mixin hook-heading-large(){}
269
280
  // @mixin hook-heading-xlarge(){}
270
281
  // @mixin hook-heading-2xlarge(){}
282
+ // @mixin hook-heading-3xlarge(){}
271
283
  // @mixin hook-heading-primary(){}
272
284
  // @mixin hook-heading-hero(){}
273
285
  // @mixin hook-heading-divider(){}
@@ -287,6 +299,7 @@ $heading-hero-font-size: $heading-hero-font-size-l * 0.5
287
299
  // @mixin hook-inverse-heading-large(){}
288
300
  // @mixin hook-inverse-heading-xlarge(){}
289
301
  // @mixin hook-inverse-heading-2xlarge(){}
302
+ // @mixin hook-inverse-heading-3xlarge(){}
290
303
  // @mixin hook-inverse-heading-primary(){}
291
304
  // @mixin hook-inverse-heading-hero(){}
292
305
  // @mixin hook-inverse-heading-divider(){}
@@ -49,22 +49,25 @@ $navbar-nav-gap: 0px !default; // Must have a un
49
49
 
50
50
 
51
51
 
52
+
52
53
  /* ========================================================================
53
54
  Component: Navbar
54
55
  ========================================================================== */
55
56
 
56
57
  /*
57
58
  * 1. Create position context to center navbar group
59
+ * 2. Pass dropbar behind color to JS
58
60
  */
59
61
 
60
62
  .uk-navbar {
61
63
  display: flex;
62
64
  /* 1 */
63
65
  position: relative;
66
+ /* 2 */
67
+ --uk-navbar-dropbar-behind-color: #{$navbar-dropbar-behind-color-mode};
64
68
  @if(mixin-exists(hook-navbar)) {@include hook-navbar();}
65
69
  }
66
70
 
67
-
68
71
  /* Container
69
72
  ========================================================================== */
70
73
 
@@ -347,7 +350,7 @@ $navbar-nav-gap: 0px !default; // Must have a un
347
350
  * Remove margin from the last-child
348
351
  */
349
352
 
350
- .uk-navbar-dropdown > :last-child { margin-bottom: 0; }
353
+ .uk-navbar-dropdown > :last-child { margin-bottom: 0; }
351
354
 
352
355
  // Color Mode
353
356
  @if ( $navbar-dropdown-color-mode == light ) { .uk-navbar-dropdown { @extend .uk-light !optional;} }
@@ -510,16 +513,6 @@ $navbar-nav-gap: 0px !default; // Must have a un
510
513
  @if(mixin-exists(hook-navbar-dropbar)) {@include hook-navbar-dropbar();}
511
514
  }
512
515
 
513
- /*
514
- * Create navbar placeholder space if dropbar is behind navbar
515
- */
516
-
517
- .uk-navbar-dropbar-behind::before {
518
- content: "";
519
- display: block;
520
- height: $navbar-nav-item-height;
521
- }
522
-
523
516
 
524
517
  // Hooks
525
518
  // ========================================================================
@@ -24,8 +24,9 @@
24
24
 
25
25
  /*
26
26
  * 1. Allow items to wrap into the next line
27
- * 2. Gutter
28
- * 3. Reset list
27
+ * 2. Center items vertically if they have a different height
28
+ * 3. Gutter
29
+ * 4. Reset list
29
30
  */
30
31
 
31
32
  .uk-pagination {
@@ -33,8 +34,10 @@
33
34
  /* 1 */
34
35
  flex-wrap: wrap;
35
36
  /* 2 */
36
- margin-left: (-$pagination-margin-horizontal);
37
+ align-items: center;
37
38
  /* 3 */
39
+ margin-left: (-$pagination-margin-horizontal);
40
+ /* 4 */
38
41
  padding: 0;
39
42
  list-style: none;
40
43
  @if(mixin-exists(hook-pagination)) {@include hook-pagination();}
@@ -60,14 +63,18 @@
60
63
  ========================================================================== */
61
64
 
62
65
  /*
63
- * 1. Prevent gap if child element is `inline-block`, e.g. an icon
64
- * 2. Style
66
+ * 1. Center content vertically, e.g. an icon
67
+ * 2. Imitate white space gap when using flexbox
68
+ * 3. Style
65
69
  */
66
70
 
67
71
  .uk-pagination > * > * {
68
72
  /* 1 */
69
- display: block;
73
+ display: flex;
74
+ align-items: center;
70
75
  /* 2 */
76
+ column-gap: 0.25em;
77
+ /* 3 */
71
78
  padding: $pagination-item-padding-vertical $pagination-item-padding-horizontal;
72
79
  color: $pagination-item-color;
73
80
  @if(mixin-exists(hook-pagination-item)) {@include hook-pagination-item();}
@@ -216,6 +216,7 @@
216
216
  .uk-position-z-index { z-index: 1; }
217
217
  .uk-position-z-index-zero { z-index: 0; }
218
218
  .uk-position-z-index-negative { z-index: -1; }
219
+ .uk-position-z-index-high { z-index: $global-z-index - 10; }
219
220
 
220
221
 
221
222
  // Hooks
@@ -134,6 +134,7 @@
134
134
 
135
135
  .uk-section-default {
136
136
  background: $section-default-background;
137
+ --uk-navbar-color: #{$section-default-color-mode};
137
138
  @if(mixin-exists(hook-section-default)) {@include hook-section-default();}
138
139
  }
139
140
 
@@ -143,6 +144,7 @@
143
144
 
144
145
  .uk-section-muted {
145
146
  background: $section-muted-background;
147
+ --uk-navbar-color: #{$section-muted-color-mode};
146
148
  @if(mixin-exists(hook-section-muted)) {@include hook-section-muted();}
147
149
  }
148
150
 
@@ -152,6 +154,7 @@
152
154
 
153
155
  .uk-section-primary {
154
156
  background: $section-primary-background;
157
+ --uk-navbar-color: #{$section-primary-color-mode};
155
158
  @if(mixin-exists(hook-section-primary)) {@include hook-section-primary();}
156
159
  }
157
160
 
@@ -164,6 +167,7 @@
164
167
 
165
168
  .uk-section-secondary {
166
169
  background: $section-secondary-background;
170
+ --uk-navbar-color: #{$section-secondary-color-mode};
167
171
  @if(mixin-exists(hook-section-secondary)) {@include hook-section-secondary();}
168
172
  }
169
173
 
@@ -219,7 +219,8 @@
219
219
  .uk-heading-medium,
220
220
  .uk-heading-large,
221
221
  .uk-heading-xlarge,
222
- .uk-heading-2xlarge {
222
+ .uk-heading-2xlarge,
223
+ .uk-heading-3xlarge {
223
224
  color: $inverse-base-heading-color;
224
225
  @if(mixin-exists(hook-inverse-base-heading)) {@include hook-inverse-base-heading();}
225
226
  }
@@ -972,6 +973,7 @@
972
973
  @mixin hook-heading-large(){}
973
974
  @mixin hook-heading-xlarge(){}
974
975
  @mixin hook-heading-2xlarge(){}
976
+ @mixin hook-heading-3xlarge(){}
975
977
  @mixin hook-heading-primary(){}
976
978
  @mixin hook-heading-hero(){}
977
979
  @mixin hook-heading-divider(){}
@@ -983,6 +985,7 @@
983
985
  @mixin hook-inverse-heading-large(){}
984
986
  @mixin hook-inverse-heading-xlarge(){}
985
987
  @mixin hook-inverse-heading-2xlarge(){}
988
+ @mixin hook-inverse-heading-3xlarge(){}
986
989
  @mixin hook-inverse-heading-primary(){}
987
990
  @mixin hook-inverse-heading-hero(){}
988
991
  @mixin hook-inverse-heading-divider(){}
@@ -1010,6 +1013,10 @@
1010
1013
  @if(mixin-exists(hook-inverse-heading-2xlarge)) {@include hook-inverse-heading-2xlarge();}
1011
1014
  }
1012
1015
 
1016
+ .uk-heading-3xlarge {
1017
+ @if(mixin-exists(hook-inverse-heading-3xlarge)) {@include hook-inverse-heading-3xlarge();}
1018
+ }
1019
+
1013
1020
  @if ($deprecated == true) { .uk-heading-primary { @if (mixin-exists(hook-inverse-heading-primary)) {@include hook-inverse-heading-primary();}}}
1014
1021
 
1015
1022
  @if ($deprecated == true) { .uk-heading-hero { @if (mixin-exists(hook-inverse-heading-hero)) {@include hook-inverse-heading-hero();}}}
@@ -1512,6 +1519,11 @@
1512
1519
  @mixin hook-navbar-dropbar(){}
1513
1520
  @mixin hook-navbar-misc(){
1514
1521
 
1522
+ .uk-navbar-container {
1523
+ transition: 0.1s ease-in-out;
1524
+ transition-property: background-color;
1525
+ }
1526
+
1515
1527
  /* Tablet landscape and bigger */
1516
1528
  @media (min-width: $breakpoint-medium) {
1517
1529