uikit 3.17.12-dev.f1425d280 → 3.18.1-dev.0856bd8a6

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 (260) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/css/uikit-core-rtl.css +577 -504
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +577 -504
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +600 -527
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +600 -527
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +2 -4
  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 +96 -60
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +96 -60
  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 +11 -6
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +8 -3
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +735 -37
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +8 -3
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +792 -129
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +7 -7
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +2 -8
  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 +299 -273
  37. package/dist/js/uikit-core.min.js +1 -1
  38. package/dist/js/uikit-icons.js +9 -4
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +505 -365
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +3 -3
  43. package/src/images/components/navbar-toggle-icon.svg +1 -1
  44. package/src/images/icons/arrow-up-right.svg +4 -0
  45. package/src/images/icons/git-branch.svg +4 -4
  46. package/src/images/icons/git-fork.svg +4 -4
  47. package/src/images/icons/link-external.svg +5 -0
  48. package/src/images/icons/signal.svg +3 -0
  49. package/src/images/icons/telegram.svg +3 -0
  50. package/src/images/icons/threads.svg +3 -0
  51. package/src/images/icons/x.svg +3 -0
  52. package/src/js/components/countdown.js +1 -3
  53. package/src/js/components/internal/slider-preload.js +6 -0
  54. package/src/js/components/lightbox-panel.js +2 -6
  55. package/src/js/components/parallax.js +1 -20
  56. package/src/js/components/slider.js +38 -18
  57. package/src/js/components/slideshow.js +14 -46
  58. package/src/js/components/sortable.js +7 -6
  59. package/src/js/components/tooltip.js +1 -7
  60. package/src/js/core/accordion.js +1 -1
  61. package/src/js/core/drop.js +3 -5
  62. package/src/js/core/dropnav.js +24 -20
  63. package/src/js/core/height-match.js +7 -3
  64. package/src/js/core/height-placeholder.js +32 -0
  65. package/src/js/core/icon.js +12 -5
  66. package/src/js/core/index.js +2 -0
  67. package/src/js/core/inverse.js +103 -0
  68. package/src/js/core/modal.js +13 -0
  69. package/src/js/core/navbar.js +32 -172
  70. package/src/js/core/responsive.js +2 -29
  71. package/src/js/core/sticky.js +45 -29
  72. package/src/js/core/video.js +5 -1
  73. package/src/js/mixin/modal.js +1 -1
  74. package/src/js/mixin/parallax.js +19 -0
  75. package/src/js/mixin/slider-autoplay.js +1 -3
  76. package/src/js/mixin/slider-drag.js +22 -19
  77. package/src/js/mixin/slider-nav.js +10 -1
  78. package/src/js/mixin/slider-parallax.js +138 -0
  79. package/src/js/mixin/slider-reactive.js +1 -1
  80. package/src/js/mixin/slider.js +25 -3
  81. package/src/js/util/animation.js +14 -14
  82. package/src/js/util/dom.js +2 -2
  83. package/src/js/util/mouse.js +8 -11
  84. package/src/js/util/scroll.js +58 -0
  85. package/src/js/util/selector.js +4 -2
  86. package/src/js/util/style.js +3 -3
  87. package/src/js/util/viewport.js +8 -4
  88. package/src/less/components/align.less +2 -2
  89. package/src/less/components/animation.less +2 -2
  90. package/src/less/components/article.less +2 -2
  91. package/src/less/components/base.less +3 -3
  92. package/src/less/components/card.less +13 -6
  93. package/src/less/components/column.less +3 -3
  94. package/src/less/components/container.less +3 -3
  95. package/src/less/components/divider.less +2 -2
  96. package/src/less/components/dropbar.less +1 -1
  97. package/src/less/components/dropdown.less +1 -1
  98. package/src/less/components/dropnav.less +1 -1
  99. package/src/less/components/form.less +1 -1
  100. package/src/less/components/grid.less +3 -3
  101. package/src/less/components/height.less +1 -1
  102. package/src/less/components/icon.less +3 -3
  103. package/src/less/components/inverse.less +12 -0
  104. package/src/less/components/link.less +1 -1
  105. package/src/less/components/modal.less +3 -3
  106. package/src/less/components/nav.less +66 -0
  107. package/src/less/components/navbar.less +7 -11
  108. package/src/less/components/overlay.less +5 -0
  109. package/src/less/components/position.less +7 -7
  110. package/src/less/components/section.less +6 -5
  111. package/src/less/components/sticky.less +1 -1
  112. package/src/less/components/svg.less +3 -3
  113. package/src/less/components/tile.less +10 -0
  114. package/src/less/components/transition.less +9 -9
  115. package/src/less/components/utility.less +4 -4
  116. package/src/less/components/width.less +7 -7
  117. package/src/less/theme/alert.less +1 -1
  118. package/src/less/theme/align.less +1 -1
  119. package/src/less/theme/animation.less +1 -1
  120. package/src/less/theme/article.less +1 -1
  121. package/src/less/theme/background.less +1 -1
  122. package/src/less/theme/badge.less +1 -1
  123. package/src/less/theme/base.less +1 -1
  124. package/src/less/theme/breadcrumb.less +1 -1
  125. package/src/less/theme/button.less +1 -1
  126. package/src/less/theme/card.less +1 -1
  127. package/src/less/theme/close.less +1 -1
  128. package/src/less/theme/column.less +1 -1
  129. package/src/less/theme/comment.less +1 -1
  130. package/src/less/theme/container.less +1 -1
  131. package/src/less/theme/description-list.less +1 -1
  132. package/src/less/theme/divider.less +1 -1
  133. package/src/less/theme/dotnav.less +1 -1
  134. package/src/less/theme/drop.less +1 -1
  135. package/src/less/theme/dropbar.less +1 -1
  136. package/src/less/theme/dropdown.less +1 -1
  137. package/src/less/theme/form-range.less +1 -1
  138. package/src/less/theme/height.less +1 -1
  139. package/src/less/theme/icon.less +1 -1
  140. package/src/less/theme/iconnav.less +1 -1
  141. package/src/less/theme/inverse.less +1 -1
  142. package/src/less/theme/label.less +1 -1
  143. package/src/less/theme/leader.less +1 -1
  144. package/src/less/theme/lightbox.less +1 -1
  145. package/src/less/theme/margin.less +1 -1
  146. package/src/less/theme/modal.less +1 -1
  147. package/src/less/theme/nav.less +1 -1
  148. package/src/less/theme/navbar.less +3 -3
  149. package/src/less/theme/notification.less +1 -1
  150. package/src/less/theme/offcanvas.less +1 -1
  151. package/src/less/theme/overlay.less +1 -1
  152. package/src/less/theme/padding.less +1 -1
  153. package/src/less/theme/pagination.less +1 -1
  154. package/src/less/theme/position.less +1 -1
  155. package/src/less/theme/search.less +1 -1
  156. package/src/less/theme/spinner.less +1 -1
  157. package/src/less/theme/sticky.less +1 -1
  158. package/src/less/theme/tab.less +2 -2
  159. package/src/less/theme/table.less +1 -1
  160. package/src/less/theme/thumbnav.less +1 -1
  161. package/src/less/theme/tile.less +1 -1
  162. package/src/less/theme/tooltip.less +1 -1
  163. package/src/less/theme/totop.less +1 -1
  164. package/src/less/theme/transition.less +1 -1
  165. package/src/less/theme/utility.less +1 -1
  166. package/src/less/theme/variables.less +1 -1
  167. package/src/less/theme/width.less +1 -1
  168. package/src/less/uikit.less +1 -1
  169. package/src/scss/components/align.scss +2 -2
  170. package/src/scss/components/animation.scss +2 -2
  171. package/src/scss/components/base.scss +2 -2
  172. package/src/scss/components/card.scss +12 -6
  173. package/src/scss/components/column.scss +3 -3
  174. package/src/scss/components/container.scss +3 -3
  175. package/src/scss/components/divider.scss +2 -2
  176. package/src/scss/components/dropnav.scss +1 -1
  177. package/src/scss/components/form.scss +1 -1
  178. package/src/scss/components/grid.scss +3 -3
  179. package/src/scss/components/height.scss +1 -1
  180. package/src/scss/components/icon.scss +3 -3
  181. package/src/scss/components/inverse.scss +12 -0
  182. package/src/scss/components/modal.scss +3 -3
  183. package/src/scss/components/nav.scss +63 -0
  184. package/src/scss/components/navbar.scss +5 -8
  185. package/src/scss/components/overlay.scss +4 -0
  186. package/src/scss/components/position.scss +7 -7
  187. package/src/scss/components/section.scss +6 -5
  188. package/src/scss/components/sticky.scss +1 -1
  189. package/src/scss/components/svg.scss +3 -3
  190. package/src/scss/components/tile.scss +8 -0
  191. package/src/scss/components/transition.scss +9 -9
  192. package/src/scss/components/utility.scss +4 -4
  193. package/src/scss/components/width.scss +7 -7
  194. package/src/scss/mixins-theme.scss +10 -7
  195. package/src/scss/mixins.scss +7 -4
  196. package/src/scss/theme/alert.scss +1 -0
  197. package/src/scss/theme/align.scss +1 -1
  198. package/src/scss/theme/animation.scss +1 -1
  199. package/src/scss/theme/article.scss +1 -1
  200. package/src/scss/theme/background.scss +1 -1
  201. package/src/scss/theme/badge.scss +1 -1
  202. package/src/scss/theme/base.scss +1 -1
  203. package/src/scss/theme/breadcrumb.scss +1 -1
  204. package/src/scss/theme/button.scss +1 -1
  205. package/src/scss/theme/card.scss +1 -0
  206. package/src/scss/theme/close.scss +1 -1
  207. package/src/scss/theme/column.scss +1 -1
  208. package/src/scss/theme/comment.scss +1 -1
  209. package/src/scss/theme/container.scss +1 -1
  210. package/src/scss/theme/description-list.scss +1 -1
  211. package/src/scss/theme/divider.scss +1 -1
  212. package/src/scss/theme/dotnav.scss +1 -0
  213. package/src/scss/theme/drop.scss +1 -1
  214. package/src/scss/theme/dropbar.scss +1 -1
  215. package/src/scss/theme/dropdown.scss +1 -1
  216. package/src/scss/theme/form-range.scss +1 -1
  217. package/src/scss/theme/height.scss +1 -1
  218. package/src/scss/theme/icon.scss +1 -1
  219. package/src/scss/theme/iconnav.scss +1 -1
  220. package/src/scss/theme/inverse.scss +1 -1
  221. package/src/scss/theme/label.scss +1 -1
  222. package/src/scss/theme/leader.scss +1 -1
  223. package/src/scss/theme/lightbox.scss +1 -1
  224. package/src/scss/theme/margin.scss +1 -1
  225. package/src/scss/theme/modal.scss +1 -0
  226. package/src/scss/theme/nav.scss +1 -1
  227. package/src/scss/theme/navbar.scss +1 -1
  228. package/src/scss/theme/notification.scss +1 -1
  229. package/src/scss/theme/offcanvas.scss +1 -1
  230. package/src/scss/theme/overlay.scss +1 -1
  231. package/src/scss/theme/padding.scss +1 -1
  232. package/src/scss/theme/pagination.scss +1 -1
  233. package/src/scss/theme/position.scss +1 -1
  234. package/src/scss/theme/search.scss +1 -1
  235. package/src/scss/theme/spinner.scss +1 -1
  236. package/src/scss/theme/sticky.scss +1 -1
  237. package/src/scss/theme/tab.scss +1 -1
  238. package/src/scss/theme/table.scss +1 -0
  239. package/src/scss/theme/thumbnav.scss +1 -1
  240. package/src/scss/theme/tile.scss +1 -1
  241. package/src/scss/theme/tooltip.scss +1 -1
  242. package/src/scss/theme/totop.scss +1 -1
  243. package/src/scss/theme/transition.scss +1 -1
  244. package/src/scss/theme/utility.scss +1 -1
  245. package/src/scss/theme/variables.scss +1 -1
  246. package/src/scss/theme/width.scss +1 -1
  247. package/src/scss/uikit.scss +1 -1
  248. package/src/scss/variables-theme.scss +20 -5
  249. package/src/scss/variables.scss +20 -5
  250. package/tests/height.html +58 -1
  251. package/tests/icon.html +38 -10
  252. package/tests/nav.html +42 -0
  253. package/tests/navbar.html +1 -1
  254. package/tests/offcanvas.html +8 -8
  255. package/tests/search.html +300 -202
  256. package/tests/slider.html +58 -0
  257. package/tests/slideshow.html +66 -0
  258. package/tests/sticky-navbar.html +381 -23
  259. package/src/images/icons/pagekit.svg +0 -3
  260. package/src/js/mixin/internal/scroll.js +0 -39
@@ -46,8 +46,8 @@ export function remove(element) {
46
46
  export function wrapAll(element, structure) {
47
47
  structure = toNode(before(element, structure));
48
48
 
49
- while (structure.firstChild) {
50
- structure = structure.firstChild;
49
+ while (structure.firstElementChild) {
50
+ structure = structure.firstElementChild;
51
51
  }
52
52
 
53
53
  append(structure, element);
@@ -1,11 +1,8 @@
1
+ import { dimensions } from './dimensions';
1
2
  import { getEventPos, on } from './event';
2
3
  import { last, pointInRect } from './lang';
3
4
 
4
- export function MouseTracker() {}
5
-
6
- MouseTracker.prototype = {
7
- positions: [],
8
-
5
+ export class MouseTracker {
9
6
  init() {
10
7
  this.positions = [];
11
8
 
@@ -22,19 +19,19 @@ MouseTracker.prototype = {
22
19
  this.positions.shift();
23
20
  }
24
21
  }, 50);
25
- },
22
+ }
26
23
 
27
24
  cancel() {
28
25
  this.unbind?.();
29
26
  clearInterval(this.interval);
30
- },
27
+ }
31
28
 
32
29
  movesTo(target) {
33
- if (this.positions.length < 2) {
30
+ if (!this.positions || this.positions.length < 2) {
34
31
  return false;
35
32
  }
36
33
 
37
- const p = target.getBoundingClientRect();
34
+ const p = dimensions(target);
38
35
  const { left, right, top, bottom } = p;
39
36
 
40
37
  const [prevPosition] = this.positions;
@@ -60,8 +57,8 @@ MouseTracker.prototype = {
60
57
  const intersection = intersect(path, diagonal);
61
58
  return intersection && pointInRect(intersection, p);
62
59
  });
63
- },
64
- };
60
+ }
61
+ }
65
62
 
66
63
  // Inspired by http://paulbourke.net/geometry/pointlineplane/
67
64
  function intersect([{ x: x1, y: y1 }, { x: x2, y: y2 }], [{ x: x3, y: y3 }, { x: x4, y: y4 }]) {
@@ -0,0 +1,58 @@
1
+ import { css, getEventPos, matches, on, once, scrollParents, width } from 'uikit-util';
2
+
3
+ let prevented;
4
+ export function preventBackgroundScroll(el) {
5
+ // 'overscroll-behavior: contain' only works consistently if el overflows (Safari)
6
+ const off = on(el, 'touchstart', (e) => {
7
+ if (e.targetTouches.length !== 1 || matches(e.target, 'input[type="range"')) {
8
+ return;
9
+ }
10
+
11
+ let prev = getEventPos(e).y;
12
+
13
+ const offMove = on(
14
+ el,
15
+ 'touchmove',
16
+ (e) => {
17
+ const pos = getEventPos(e).y;
18
+ if (pos === prev) {
19
+ return;
20
+ }
21
+ prev = pos;
22
+
23
+ if (
24
+ !scrollParents(e.target).some((scrollParent) => {
25
+ if (!el.contains(scrollParent)) {
26
+ return false;
27
+ }
28
+
29
+ let { scrollHeight, clientHeight } = scrollParent;
30
+ return clientHeight < scrollHeight;
31
+ })
32
+ ) {
33
+ e.preventDefault();
34
+ }
35
+ },
36
+ { passive: false },
37
+ );
38
+
39
+ once(el, 'scroll touchend touchcanel', offMove, { capture: true });
40
+ });
41
+
42
+ if (prevented) {
43
+ return off;
44
+ }
45
+ prevented = true;
46
+
47
+ const { scrollingElement } = document;
48
+ css(scrollingElement, {
49
+ overflowY: CSS.supports('overflow', 'clip') ? 'clip' : 'hidden',
50
+ touchAction: 'none',
51
+ paddingRight: width(window) - scrollingElement.clientWidth || '',
52
+ });
53
+ return () => {
54
+ prevented = false;
55
+ off();
56
+ css(scrollingElement, { overflowY: '', touchAction: '', paddingRight: '' });
57
+ };
58
+ }
@@ -64,7 +64,9 @@ function _query(selector, context = document, queryFn) {
64
64
  }
65
65
  }
66
66
 
67
- context = document;
67
+ if (!isDocument(context)) {
68
+ context = context.ownerDocument;
69
+ }
68
70
  }
69
71
 
70
72
  try {
@@ -74,7 +76,7 @@ function _query(selector, context = document, queryFn) {
74
76
  }
75
77
  }
76
78
 
77
- const selectorRe = /.*?[^\\](?:,|$)/g;
79
+ const selectorRe = /.*?[^\\](?![^(]*\))(?:,|$)/g;
78
80
 
79
81
  const splitSelector = memoize((selector) =>
80
82
  selector.match(selectorRe).map((selector) => selector.replace(/,$/, '').trim()),
@@ -1,5 +1,4 @@
1
1
  import {
2
- each,
3
2
  hyphenate,
4
3
  isArray,
5
4
  isNumber,
@@ -56,8 +55,9 @@ export function css(element, property, value, priority) {
56
55
  }
57
56
  return props;
58
57
  } else if (isObject(property)) {
59
- priority = value;
60
- each(property, (value, property) => css(element, property, value, priority));
58
+ for (const prop in property) {
59
+ css(element, prop, property[prop], value);
60
+ }
61
61
  }
62
62
  }
63
63
  return elements[0];
@@ -1,4 +1,5 @@
1
- import { offset, offsetPosition } from './dimensions';
1
+ import { hasClass } from './class';
2
+ import { dimensions, offset, offsetPosition } from './dimensions';
2
3
  import { isVisible, parent, parents } from './filter';
3
4
  import {
4
5
  clamp,
@@ -128,7 +129,7 @@ export function scrolledOver(element, startOffset = 0, endOffset = 0) {
128
129
  const start = Math.max(0, elementOffsetTop - viewportHeight + startOffset);
129
130
  const end = Math.min(maxScroll, elementOffsetTop + element.offsetHeight - endOffset);
130
131
 
131
- return clamp((scrollTop - start) / (end - start));
132
+ return start < end ? clamp((scrollTop - start) / (end - start)) : 1;
132
133
  }
133
134
 
134
135
  export function scrollParents(element, scrollable = false, props = []) {
@@ -186,7 +187,7 @@ export function offsetViewport(scrollElement) {
186
187
  ]) {
187
188
  if (isWindow(viewportElement)) {
188
189
  // iOS 12 returns <body> as scrollingElement
189
- viewportElement = window.document.documentElement;
190
+ viewportElement = scrollElement.ownerDocument;
190
191
  } else {
191
192
  rect[start] += toFloat(css(viewportElement, `border-${start}-width`));
192
193
  }
@@ -200,9 +201,12 @@ export function offsetViewport(scrollElement) {
200
201
  }
201
202
 
202
203
  export function getCoveringElement(target) {
203
- return target.ownerDocument.elementsFromPoint(offset(target).left, 0).find(
204
+ const { left, width, top } = dimensions(target);
205
+ return target.ownerDocument.elementsFromPoint(left + width / 2, top).find(
204
206
  (el) =>
205
207
  !el.contains(target) &&
208
+ // If e.g. Offcanvas is not yet closed
209
+ !hasClass(el, 'uk-togglable-leave') &&
206
210
  ((hasPosition(el, 'fixed') &&
207
211
  zIndex(
208
212
  parents(target)
@@ -25,12 +25,12 @@
25
25
  * Default
26
26
  */
27
27
 
28
- [class*='uk-align'] {
28
+ [class*="uk-align"] {
29
29
  display: block;
30
30
  margin-bottom: @align-margin-vertical;
31
31
  }
32
32
 
33
- * + [class*='uk-align'] { margin-top: @align-margin-vertical; }
33
+ * + [class*="uk-align"] { margin-top: @align-margin-vertical; }
34
34
 
35
35
  /*
36
36
  * Center
@@ -40,7 +40,7 @@
40
40
  Component: Animation
41
41
  ========================================================================== */
42
42
 
43
- [class*='uk-animation-'] { animation: @animation-duration ease-out both; }
43
+ [class*="uk-animation-"] { animation: @animation-duration ease-out both; }
44
44
 
45
45
 
46
46
  /* Animations
@@ -138,7 +138,7 @@
138
138
  /* Toggle animation based on the State of the Parent Element
139
139
  ========================================================================== */
140
140
 
141
- .uk-animation-toggle:not(:hover):not(:focus) [class*='uk-animation-'] { animation-name: none; }
141
+ .uk-animation-toggle:not(:hover):not(:focus) [class*="uk-animation-"] { animation-name: none; }
142
142
 
143
143
 
144
144
  /* Keyframes used by animation classes
@@ -95,11 +95,11 @@
95
95
 
96
96
  .hook-inverse() {
97
97
 
98
- .uk-article-title {
98
+ .uk-article-title {
99
99
  .hook-inverse-article-title();
100
100
  }
101
101
 
102
- .uk-article-meta {
102
+ .uk-article-meta {
103
103
  color: @inverse-article-meta-color;
104
104
  .hook-inverse-article-meta();
105
105
  }
@@ -446,7 +446,7 @@ hr, .uk-hr {
446
446
 
447
447
  /* Add margin if adjacent element */
448
448
  * + hr,
449
- * + .uk-hr { margin-top: @base-hr-margin-vertical }
449
+ * + .uk-hr { margin-top: @base-hr-margin-vertical; }
450
450
 
451
451
 
452
452
  /* Address
@@ -476,7 +476,7 @@ blockquote {
476
476
  blockquote p:last-of-type { margin-bottom: 0; }
477
477
 
478
478
  blockquote footer {
479
- margin-top: @base-blockquote-footer-margin-top;
479
+ margin-top: @base-blockquote-footer-margin-top;
480
480
  font-size: @base-blockquote-footer-font-size;
481
481
  line-height: @base-blockquote-footer-line-height;
482
482
  .hook-base-blockquote-footer();
@@ -608,7 +608,7 @@ template { display: none; }
608
608
  //
609
609
 
610
610
  a,
611
- .uk-link {
611
+ .uk-link {
612
612
  color: @inverse-base-link-color;
613
613
  .hook-inverse-base-link();
614
614
  }
@@ -60,6 +60,7 @@
60
60
  @card-default-color: @global-color;
61
61
  @card-default-title-color: @global-emphasis-color;
62
62
  @card-default-hover-background: darken(@card-default-background, 5%);
63
+ @card-default-color-mode: dark;
63
64
 
64
65
  @card-primary-background: @global-primary-background;
65
66
  @card-primary-color: @global-inverse-color;
@@ -148,13 +149,13 @@
148
149
  * Implemented by the theme
149
150
  */
150
151
 
151
- [class*='uk-card-media'] {
152
+ [class*="uk-card-media"] {
152
153
  .hook-card-media();
153
154
  }
154
155
 
155
156
  .uk-card-media-top,
156
157
  .uk-grid-stack > .uk-card-media-left,
157
- .uk-grid-stack > .uk-card-media-right {
158
+ .uk-grid-stack > .uk-card-media-right {
158
159
  .hook-card-media-top();
159
160
  }
160
161
 
@@ -260,6 +261,12 @@
260
261
  .hook-card-default-footer();
261
262
  }
262
263
 
264
+ // Color Mode
265
+ .uk-card-default.uk-card-body:extend(.uk-light all) when (@card-default-color-mode = light) {}
266
+ .uk-card-default > :not([class*="uk-card-media"]):extend(.uk-light all) when (@card-default-color-mode = light) {}
267
+ .uk-card-default.uk-card-body:extend(.uk-dark all) when (@card-default-color-mode = dark) {}
268
+ .uk-card-default > :not([class*="uk-card-media"]):extend(.uk-dark all) when (@card-default-color-mode = dark) {}
269
+
263
270
  /*
264
271
  * Primary
265
272
  */
@@ -282,9 +289,9 @@
282
289
 
283
290
  // Color Mode
284
291
  .uk-card-primary.uk-card-body:extend(.uk-light all) when (@card-primary-color-mode = light) {}
285
- .uk-card-primary > :not([class*='uk-card-media']):extend(.uk-light all) when (@card-primary-color-mode = light) {}
292
+ .uk-card-primary > :not([class*="uk-card-media"]):extend(.uk-light all) when (@card-primary-color-mode = light) {}
286
293
  .uk-card-primary.uk-card-body:extend(.uk-dark all) when (@card-primary-color-mode = dark) {}
287
- .uk-card-primary > :not([class*='uk-card-media']):extend(.uk-dark all) when (@card-primary-color-mode = dark) {}
294
+ .uk-card-primary > :not([class*="uk-card-media"]):extend(.uk-dark all) when (@card-primary-color-mode = dark) {}
288
295
 
289
296
  /*
290
297
  * Secondary
@@ -308,9 +315,9 @@
308
315
 
309
316
  // Color Mode
310
317
  .uk-card-secondary.uk-card-body:extend(.uk-light all) when (@card-secondary-color-mode = light) {}
311
- .uk-card-secondary > :not([class*='uk-card-media']):extend(.uk-light all) when (@card-secondary-color-mode = light) {}
318
+ .uk-card-secondary > :not([class*="uk-card-media"]):extend(.uk-light all) when (@card-secondary-color-mode = light) {}
312
319
  .uk-card-secondary.uk-card-body:extend(.uk-dark all) when (@card-secondary-color-mode = dark) {}
313
- .uk-card-secondary > :not([class*='uk-card-media']):extend(.uk-dark all) when (@card-secondary-color-mode = dark) {}
320
+ .uk-card-secondary > :not([class*="uk-card-media"]):extend(.uk-dark all) when (@card-secondary-color-mode = dark) {}
314
321
 
315
322
 
316
323
  /* Size modifier
@@ -24,12 +24,12 @@
24
24
  Component: Column
25
25
  ========================================================================== */
26
26
 
27
- [class*='uk-column-'] { column-gap: @column-gutter; }
27
+ [class*="uk-column-"] { column-gap: @column-gutter; }
28
28
 
29
29
  /* Desktop and bigger */
30
30
  @media (min-width: @breakpoint-large) {
31
31
 
32
- [class*='uk-column-'] { column-gap: @column-gutter-l; }
32
+ [class*="uk-column-"] { column-gap: @column-gutter-l; }
33
33
 
34
34
  }
35
35
 
@@ -37,7 +37,7 @@
37
37
  * Fix image 1px line wrapping into the next column in Chrome
38
38
  */
39
39
 
40
- [class*='uk-column-'] img { transform: translate3d(0,0,0); }
40
+ [class*="uk-column-"] img { transform: translate3d(0, 0, 0); }
41
41
 
42
42
 
43
43
  /* Divider
@@ -149,7 +149,7 @@
149
149
  */
150
150
 
151
151
  .uk-container-item-padding-remove-left,
152
- .uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal})' }
152
+ .uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal})'; }
153
153
 
154
154
  .uk-container-item-padding-remove-left { margin-left: -@container-padding-horizontal; }
155
155
  .uk-container-item-padding-remove-right { margin-right: -@container-padding-horizontal; }
@@ -158,7 +158,7 @@
158
158
  @media (min-width: @breakpoint-small) {
159
159
 
160
160
  .uk-container-item-padding-remove-left,
161
- .uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal-s})' }
161
+ .uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal-s})'; }
162
162
 
163
163
  .uk-container-item-padding-remove-left { margin-left: -@container-padding-horizontal-s; }
164
164
  .uk-container-item-padding-remove-right { margin-right: -@container-padding-horizontal-s; }
@@ -169,7 +169,7 @@
169
169
  @media (min-width: @breakpoint-medium) {
170
170
 
171
171
  .uk-container-item-padding-remove-left,
172
- .uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal-m})' }
172
+ .uk-container-item-padding-remove-right { width: ~'calc(100% + @{container-padding-horizontal-m})'; }
173
173
 
174
174
  .uk-container-item-padding-remove-left { margin-left: -@container-padding-horizontal-m; }
175
175
  .uk-container-item-padding-remove-right { margin-right: -@container-padding-horizontal-m; }
@@ -41,7 +41,7 @@
41
41
  * 2. Set margin if a `div` is used for semantical reason
42
42
  */
43
43
 
44
- [class*='uk-divider'] {
44
+ [class*="uk-divider"] {
45
45
  /* 1 */
46
46
  border: none;
47
47
  /* 2 */
@@ -49,7 +49,7 @@
49
49
  }
50
50
 
51
51
  /* Add margin if adjacent element */
52
- * + [class*='uk-divider'] { margin-top: @divider-margin-vertical; }
52
+ * + [class*="uk-divider"] { margin-top: @divider-margin-vertical; }
53
53
 
54
54
 
55
55
  /* Icon
@@ -23,7 +23,7 @@
23
23
  @dropbar-padding-horizontal-m: @global-medium-gutter;
24
24
  @dropbar-background: @global-muted-background;
25
25
  @dropbar-color: @global-color;
26
- @dropbar-color-mode: none;
26
+ @dropbar-color-mode: dark;
27
27
  @dropbar-focus-outline: @base-focus-outline;
28
28
 
29
29
  @dropbar-large-padding-top: 40px;
@@ -21,7 +21,7 @@
21
21
  @dropdown-padding: 15px;
22
22
  @dropdown-background: @global-muted-background;
23
23
  @dropdown-color: @global-color;
24
- @dropdown-color-mode: none;
24
+ @dropdown-color-mode: dark;
25
25
  @dropdown-focus-outline: @base-focus-outline;
26
26
 
27
27
  @dropdown-large-padding: 40px;
@@ -40,4 +40,4 @@
40
40
 
41
41
  .hook-dropnav-misc();
42
42
 
43
- .hook-dropnav-misc() {}
43
+ .hook-dropnav-misc() {}
@@ -380,7 +380,7 @@ textarea.uk-form-large,
380
380
  */
381
381
 
382
382
  .uk-form-success,
383
- .uk-form-success:focus {
383
+ .uk-form-success:focus {
384
384
  color: @form-success-color;
385
385
  .hook-form-success();
386
386
  }
@@ -118,7 +118,7 @@
118
118
  .uk-grid-small,
119
119
  .uk-grid-column-small { margin-left: -@grid-small-gutter-horizontal; }
120
120
  .uk-grid-small > *,
121
- .uk-grid-column-small > * { padding-left: @grid-small-gutter-horizontal; }
121
+ .uk-grid-column-small > * { padding-left: @grid-small-gutter-horizontal; }
122
122
 
123
123
  /* Vertical */
124
124
  .uk-grid + .uk-grid-small,
@@ -376,8 +376,8 @@
376
376
  flex-wrap: wrap;
377
377
  }
378
378
 
379
- .uk-grid-match > * > :not([class*='uk-width']),
380
- .uk-grid-item-match > :not([class*='uk-width']) {
379
+ .uk-grid-match > * > :not([class*="uk-width"]),
380
+ .uk-grid-item-match > :not([class*="uk-width"]) {
381
381
  /* 2 */
382
382
  box-sizing: border-box;
383
383
  width: 100%;
@@ -18,7 +18,7 @@
18
18
  Component: Height
19
19
  ========================================================================== */
20
20
 
21
- [class*='uk-height'] { box-sizing: border-box; }
21
+ [class*="uk-height"] { box-sizing: border-box; }
22
22
 
23
23
  /*
24
24
  * Only works if parent element has a height set
@@ -92,14 +92,14 @@ button.uk-icon:not(:disabled) { cursor: pointer; }
92
92
  * Set the fill and stroke color of all SVG elements to the current text color
93
93
  */
94
94
 
95
- .uk-icon:not(.uk-preserve) [fill*='#']:not(.uk-preserve) { fill: currentcolor; }
96
- .uk-icon:not(.uk-preserve) [stroke*='#']:not(.uk-preserve) { stroke: currentcolor; }
95
+ .uk-icon:not(.uk-preserve) [fill*="#"]:not(.uk-preserve) { fill: currentcolor; }
96
+ .uk-icon:not(.uk-preserve) [stroke*="#"]:not(.uk-preserve) { stroke: currentcolor; }
97
97
 
98
98
  /*
99
99
  * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
100
100
  */
101
101
 
102
- .uk-icon > * { transform: translate(0,0); }
102
+ .uk-icon > * { transform: translate(0, 0); }
103
103
 
104
104
 
105
105
  /* Image modifier
@@ -45,6 +45,18 @@
45
45
 
46
46
  }
47
47
 
48
+ /*
49
+ * Pass dropbar behind color to JS
50
+ */
51
+
52
+ * { --uk-inverse: initial; }
53
+
54
+ .uk-light { --uk-inverse: light; }
55
+ .uk-dark { --uk-inverse: dark; }
56
+
57
+ .uk-inverse-light { --uk-inverse: light !important; }
58
+ .uk-inverse-dark { --uk-inverse: dark !important; }
59
+
48
60
 
49
61
  // Hooks
50
62
  // ========================================================================
@@ -140,7 +140,7 @@ a.uk-link-reset,
140
140
 
141
141
  a.uk-link-muted:hover,
142
142
  .uk-link-muted a:hover,
143
- .uk-link-toggle:hover .uk-link-muted {
143
+ .uk-link-toggle:hover .uk-link-muted {
144
144
  color: @inverse-link-muted-hover-color;
145
145
  .hook-inverse-link-muted-hover();
146
146
  }
@@ -265,7 +265,7 @@
265
265
  * Adopts `uk-close`
266
266
  ========================================================================== */
267
267
 
268
- [class*='uk-modal-close-'] {
268
+ [class*="uk-modal-close-"] {
269
269
  position: absolute;
270
270
  z-index: @modal-z-index;
271
271
  top: @modal-close-position;
@@ -278,13 +278,13 @@
278
278
  * Remove margin from adjacent element
279
279
  */
280
280
 
281
- [class*='uk-modal-close-']:first-child + * { margin-top: 0; }
281
+ [class*="uk-modal-close-"]:first-child + * { margin-top: 0; }
282
282
 
283
283
  /*
284
284
  * Hover
285
285
  */
286
286
 
287
- [class*='uk-modal-close-']:hover {
287
+ [class*="uk-modal-close-"]:hover {
288
288
  .hook-modal-close-hover();
289
289
  }
290
290
 
@@ -11,6 +11,10 @@
11
11
  //
12
12
  // Modifiers: `uk-nav-default`
13
13
  // `uk-nav-primary`
14
+ // `uk-nav-secondary`
15
+ // `uk-nav-medium`
16
+ // `uk-nav-large`
17
+ // `uk-nav-xlarge`
14
18
  // `uk-nav-center`,
15
19
  // `uk-nav-divider`
16
20
  //
@@ -92,6 +96,21 @@
92
96
  @nav-secondary-sublist-item-hover-color: @global-color;
93
97
  @nav-secondary-sublist-item-active-color: @global-emphasis-color;
94
98
 
99
+ @nav-medium-line-height: 1;
100
+ @nav-medium-font-size: @nav-medium-font-size-m * 0.825; // 40px 0.714
101
+ @nav-medium-font-size-m: @nav-medium-font-size-l * 0.875; // 3.5rem / 56px
102
+ @nav-medium-font-size-l: 4rem; // 64px
103
+
104
+ @nav-large-line-height: 1;
105
+ @nav-large-font-size: @nav-large-font-size-m * 0.85; // 50px 0.78
106
+ @nav-large-font-size-m: 4rem; // 64px
107
+ @nav-large-font-size-l: 6rem; // 96px
108
+
109
+ @nav-xlarge-line-height: 1;
110
+ @nav-xlarge-font-size: 4rem; // 64px
111
+ @nav-xlarge-font-size-m: 6rem; // 96px
112
+ @nav-xlarge-font-size-l: 8rem; // 128px
113
+
95
114
  @nav-dividers-margin-top: 5px;
96
115
  @nav-dividers-border-width: @global-border-width;
97
116
  @nav-dividers-border: @global-border;
@@ -428,6 +447,50 @@ ul.uk-nav-sub {
428
447
  .uk-nav-secondary .uk-nav-sub li.uk-active > a { color: @nav-secondary-sublist-item-active-color; }
429
448
 
430
449
 
450
+ /* Size modifier
451
+ ========================================================================== */
452
+
453
+ /*
454
+ * Medium
455
+ */
456
+
457
+ .uk-nav-medium {
458
+ font-size: @nav-medium-font-size;
459
+ line-height: @nav-medium-line-height;
460
+ .hook-nav-medium();
461
+ }
462
+
463
+ .uk-nav-large {
464
+ font-size: @nav-large-font-size;
465
+ line-height: @nav-large-line-height;
466
+ .hook-nav-large();
467
+ }
468
+
469
+ .uk-nav-xlarge {
470
+ font-size: @nav-xlarge-font-size;
471
+ line-height: @nav-xlarge-line-height;
472
+ .hook-nav-xlarge();
473
+ }
474
+
475
+ /* Tablet Landscape and bigger */
476
+ @media (min-width: @breakpoint-medium) {
477
+
478
+ .uk-nav-medium { font-size: @nav-medium-font-size-m; }
479
+ .uk-nav-large { font-size: @nav-large-font-size-m; }
480
+ .uk-nav-xlarge { font-size: @nav-xlarge-font-size-m; }
481
+
482
+ }
483
+
484
+ /* Laptop and bigger */
485
+ @media (min-width: @breakpoint-large) {
486
+
487
+ .uk-nav-medium { font-size: @nav-medium-font-size-l; }
488
+ .uk-nav-large { font-size: @nav-large-font-size-l; }
489
+ .uk-nav-xlarge { font-size: @nav-xlarge-font-size-l; }
490
+
491
+ }
492
+
493
+
431
494
  /* Alignment modifier
432
495
  ========================================================================== */
433
496
 
@@ -496,6 +559,9 @@ ul.uk-nav-sub {
496
559
  .hook-nav-secondary-subtitle-active() {}
497
560
  .hook-nav-secondary-header() {}
498
561
  .hook-nav-secondary-divider() {}
562
+ .hook-nav-medium() {}
563
+ .hook-nav-large() {}
564
+ .hook-nav-xlarge() {}
499
565
  .hook-nav-dividers() {}
500
566
  .hook-nav-misc() {}
501
567