uikit 3.11.2-dev.f2970ffaa → 3.12.0

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 (226) hide show
  1. package/.eslintrc.json +4 -49
  2. package/.prettierignore +14 -0
  3. package/.prettierrc.json +13 -0
  4. package/.webstorm.js +3 -3
  5. package/CHANGELOG.md +55 -19
  6. package/build/.eslintrc.json +1 -3
  7. package/build/build.js +26 -28
  8. package/build/icons.js +7 -11
  9. package/build/less.js +48 -36
  10. package/build/package.json +2 -2
  11. package/build/prefix.js +21 -18
  12. package/build/publishDev.js +6 -8
  13. package/build/release.js +20 -17
  14. package/build/scope.js +21 -11
  15. package/build/scss.js +72 -39
  16. package/build/util.js +71 -62
  17. package/build/wrapper/icons.js +0 -2
  18. package/dist/css/uikit-core-rtl.css +133 -201
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +133 -201
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +135 -207
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +135 -207
  25. package/dist/css/uikit.min.css +1 -1
  26. package/dist/js/components/countdown.js +66 -138
  27. package/dist/js/components/countdown.min.js +1 -1
  28. package/dist/js/components/filter.js +408 -439
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1091 -1319
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1137 -1396
  33. package/dist/js/components/lightbox.min.js +1 -1
  34. package/dist/js/components/notification.js +94 -114
  35. package/dist/js/components/notification.min.js +1 -1
  36. package/dist/js/components/parallax.js +347 -372
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +345 -360
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +749 -843
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +345 -360
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +628 -798
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +587 -620
  47. package/dist/js/components/sortable.min.js +1 -1
  48. package/dist/js/components/tooltip.js +324 -356
  49. package/dist/js/components/tooltip.min.js +1 -1
  50. package/dist/js/components/upload.js +156 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5324 -6527
  53. package/dist/js/uikit-core.min.js +1 -1
  54. package/dist/js/uikit-icons.js +7 -9
  55. package/dist/js/uikit-icons.min.js +1 -1
  56. package/dist/js/uikit.js +8006 -9663
  57. package/dist/js/uikit.min.js +1 -1
  58. package/jsconfig.json +1 -1
  59. package/package.json +64 -60
  60. package/src/js/api/boot.js +25 -32
  61. package/src/js/api/component.js +15 -28
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +14 -33
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +199 -187
  66. package/src/js/components/countdown.js +32 -85
  67. package/src/js/components/filter.js +70 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +14 -25
  70. package/src/js/components/internal/slider-preload.js +9 -0
  71. package/src/js/components/internal/slider-transitioner.js +66 -45
  72. package/src/js/components/internal/slideshow-animations.js +46 -64
  73. package/src/js/components/lightbox-panel.js +107 -105
  74. package/src/js/components/lightbox.js +17 -39
  75. package/src/js/components/notification.js +49 -43
  76. package/src/js/components/parallax.js +21 -46
  77. package/src/js/components/slider-parallax.js +13 -23
  78. package/src/js/components/slider.js +117 -89
  79. package/src/js/components/slideshow-parallax.js +1 -1
  80. package/src/js/components/slideshow.js +15 -13
  81. package/src/js/components/sortable.js +125 -106
  82. package/src/js/components/tooltip.js +41 -31
  83. package/src/js/components/upload.js +53 -63
  84. package/src/js/core/accordion.js +58 -48
  85. package/src/js/core/alert.js +9 -17
  86. package/src/js/core/core.js +17 -69
  87. package/src/js/core/cover.js +15 -15
  88. package/src/js/core/drop.js +110 -94
  89. package/src/js/core/form-custom.js +22 -27
  90. package/src/js/core/gif.js +3 -7
  91. package/src/js/core/grid.js +57 -58
  92. package/src/js/core/height-match.js +16 -29
  93. package/src/js/core/height-viewport.js +30 -34
  94. package/src/js/core/icon.js +47 -52
  95. package/src/js/core/img.js +153 -143
  96. package/src/js/core/index.js +39 -39
  97. package/src/js/core/leader.js +9 -18
  98. package/src/js/core/margin.js +21 -37
  99. package/src/js/core/modal.js +49 -36
  100. package/src/js/core/nav.js +2 -4
  101. package/src/js/core/navbar.js +113 -85
  102. package/src/js/core/offcanvas.js +51 -54
  103. package/src/js/core/overflow-auto.js +13 -17
  104. package/src/js/core/responsive.js +14 -12
  105. package/src/js/core/scroll.js +10 -20
  106. package/src/js/core/scrollspy-nav.js +34 -31
  107. package/src/js/core/scrollspy.js +37 -54
  108. package/src/js/core/sticky.js +175 -123
  109. package/src/js/core/svg.js +68 -83
  110. package/src/js/core/switcher.js +56 -47
  111. package/src/js/core/tab.js +7 -10
  112. package/src/js/core/toggle.js +69 -68
  113. package/src/js/core/video.js +22 -21
  114. package/src/js/mixin/animate.js +19 -20
  115. package/src/js/mixin/class.js +2 -4
  116. package/src/js/mixin/container.js +7 -11
  117. package/src/js/mixin/internal/animate-fade.js +73 -30
  118. package/src/js/mixin/internal/animate-slide.js +58 -41
  119. package/src/js/mixin/internal/slideshow-animations.js +7 -14
  120. package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
  121. package/src/js/mixin/lazyload.js +20 -0
  122. package/src/js/mixin/media.js +5 -10
  123. package/src/js/mixin/modal.js +89 -66
  124. package/src/js/mixin/parallax.js +149 -107
  125. package/src/js/mixin/position.js +26 -20
  126. package/src/js/mixin/slider-autoplay.js +12 -21
  127. package/src/js/mixin/slider-drag.js +64 -65
  128. package/src/js/mixin/slider-nav.js +26 -35
  129. package/src/js/mixin/slider-reactive.js +2 -8
  130. package/src/js/mixin/slider.js +47 -60
  131. package/src/js/mixin/slideshow.js +12 -22
  132. package/src/js/mixin/swipe.js +72 -0
  133. package/src/js/mixin/togglable.js +89 -63
  134. package/src/js/uikit-core.js +2 -4
  135. package/src/js/uikit.js +2 -4
  136. package/src/js/util/ajax.js +25 -40
  137. package/src/js/util/animation.js +77 -75
  138. package/src/js/util/attr.js +17 -21
  139. package/src/js/util/class.js +14 -52
  140. package/src/js/util/dimensions.js +78 -49
  141. package/src/js/util/dom.js +37 -66
  142. package/src/js/util/env.js +7 -12
  143. package/src/js/util/event.js +60 -59
  144. package/src/js/util/fastdom.js +1 -6
  145. package/src/js/util/filter.js +18 -36
  146. package/src/js/util/index.js +1 -1
  147. package/src/js/util/lang.js +82 -121
  148. package/src/js/util/mouse.js +19 -17
  149. package/src/js/util/observer.js +36 -0
  150. package/src/js/util/options.js +35 -49
  151. package/src/js/util/player.js +41 -36
  152. package/src/js/util/position.js +54 -46
  153. package/src/js/util/selector.js +43 -58
  154. package/src/js/util/style.js +39 -49
  155. package/src/js/util/viewport.js +75 -64
  156. package/src/less/components/base.less +10 -33
  157. package/src/less/components/flex.less +0 -9
  158. package/src/less/components/form-range.less +48 -95
  159. package/src/less/components/form.less +0 -1
  160. package/src/less/components/height.less +3 -0
  161. package/src/less/components/leader.less +0 -1
  162. package/src/less/components/lightbox.less +0 -1
  163. package/src/less/components/modal.less +3 -7
  164. package/src/less/components/navbar.less +0 -7
  165. package/src/less/components/progress.less +14 -36
  166. package/src/less/components/slider.less +0 -3
  167. package/src/less/components/slideshow.less +0 -3
  168. package/src/less/components/text.less +16 -32
  169. package/src/less/components/utility.less +25 -0
  170. package/src/scss/components/base.scss +10 -33
  171. package/src/scss/components/flex.scss +0 -9
  172. package/src/scss/components/form-range.scss +48 -95
  173. package/src/scss/components/form.scss +3 -4
  174. package/src/scss/components/height.scss +3 -0
  175. package/src/scss/components/icon.scss +2 -2
  176. package/src/scss/components/leader.scss +0 -1
  177. package/src/scss/components/lightbox.scss +0 -1
  178. package/src/scss/components/modal.scss +3 -7
  179. package/src/scss/components/navbar.scss +0 -7
  180. package/src/scss/components/progress.scss +14 -36
  181. package/src/scss/components/search.scss +1 -1
  182. package/src/scss/components/slider.scss +0 -3
  183. package/src/scss/components/slideshow.scss +0 -3
  184. package/src/scss/components/text.scss +16 -32
  185. package/src/scss/components/utility.scss +25 -0
  186. package/src/scss/mixins-theme.scss +1 -1
  187. package/src/scss/mixins.scss +1 -1
  188. package/src/scss/variables-theme.scss +9 -9
  189. package/src/scss/variables.scss +9 -9
  190. package/tests/align.html +10 -10
  191. package/tests/animation.html +2 -2
  192. package/tests/article.html +2 -2
  193. package/tests/base.html +3 -3
  194. package/tests/card.html +10 -10
  195. package/tests/column.html +3 -3
  196. package/tests/comment.html +9 -9
  197. package/tests/countdown.html +10 -8
  198. package/tests/dotnav.html +3 -3
  199. package/tests/image.html +296 -64
  200. package/tests/images/image-type.avif +0 -0
  201. package/tests/images/image-type.jpeg +0 -0
  202. package/tests/images/image-type.webp +0 -0
  203. package/tests/index.html +8 -8
  204. package/tests/js/index.js +114 -85
  205. package/tests/lightbox.html +10 -10
  206. package/tests/marker.html +2 -2
  207. package/tests/modal.html +8 -9
  208. package/tests/navbar.html +2 -2
  209. package/tests/overlay.html +7 -7
  210. package/tests/parallax.html +16 -7
  211. package/tests/position.html +12 -12
  212. package/tests/slidenav.html +12 -12
  213. package/tests/slider.html +20 -20
  214. package/tests/sortable.html +1 -1
  215. package/tests/sticky-parallax.html +87 -99
  216. package/tests/sticky.html +56 -24
  217. package/tests/svg.html +6 -6
  218. package/tests/table.html +11 -11
  219. package/tests/thumbnav.html +12 -12
  220. package/tests/transition.html +30 -30
  221. package/tests/utility.html +50 -33
  222. package/tests/video.html +1 -1
  223. package/tests/width.html +1 -1
  224. package/src/js/mixin/flex-bug.js +0 -56
  225. package/src/js/util/promise.js +0 -191
  226. package/tests/images/animated.gif +0 -0
@@ -1,30 +1,39 @@
1
- import {css} from './style';
2
- import {Promise} from './promise';
3
- import {isVisible, parents} from './filter';
4
- import {offset, offsetPosition} from './dimensions';
5
- import {clamp, findIndex, intersectRect, isDocument, isUndefined, isWindow, toNode, toWindow} from './lang';
1
+ import { css } from './style';
2
+ import { isVisible, parents } from './filter';
3
+ import { offset, offsetPosition } from './dimensions';
4
+ import {
5
+ clamp,
6
+ findIndex,
7
+ intersectRect,
8
+ isDocument,
9
+ isUndefined,
10
+ isWindow,
11
+ toNode,
12
+ toWindow,
13
+ } from './lang';
6
14
 
7
15
  export function isInView(element, offsetTop = 0, offsetLeft = 0) {
8
-
9
16
  if (!isVisible(element)) {
10
17
  return false;
11
18
  }
12
19
 
13
- return intersectRect(...scrollParents(element).map(parent => {
14
-
15
- const {top, left, bottom, right} = offset(getViewport(parent));
16
-
17
- return {
18
- top: top - offsetTop,
19
- left: left - offsetLeft,
20
- bottom: bottom + offsetTop,
21
- right: right + offsetLeft
22
- };
23
- }).concat(offset(element)));
20
+ return intersectRect(
21
+ ...scrollParents(element)
22
+ .map((parent) => {
23
+ const { top, left, bottom, right } = offset(getViewport(parent));
24
+
25
+ return {
26
+ top: top - offsetTop,
27
+ left: left - offsetLeft,
28
+ bottom: bottom + offsetTop,
29
+ right: right + offsetLeft,
30
+ };
31
+ })
32
+ .concat(offset(element))
33
+ );
24
34
  }
25
35
 
26
36
  export function scrollTop(element, top) {
27
-
28
37
  if (isWindow(element) || isDocument(element)) {
29
38
  element = getScrollingElement(element);
30
39
  } else {
@@ -38,49 +47,44 @@ export function scrollTop(element, top) {
38
47
  }
39
48
  }
40
49
 
41
- export function scrollIntoView(element, {offset: offsetBy = 0} = {}) {
42
-
50
+ export function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
43
51
  const parents = isVisible(element) ? scrollParents(element) : [];
44
- return parents.reduce((fn, scrollElement, i) => {
45
-
46
- const {scrollTop, scrollHeight, offsetHeight} = scrollElement;
47
- const maxScroll = scrollHeight - getViewportClientHeight(scrollElement);
48
- const {height: elHeight, top: elTop} = offset(parents[i - 1] || element);
49
-
50
- let top = Math.ceil(
51
- elTop
52
- - offset(getViewport(scrollElement)).top
53
- - offsetBy
54
- + scrollTop
55
- );
56
-
57
- if (offsetBy > 0 && offsetHeight < elHeight + offsetBy) {
58
- top += offsetBy;
59
- } else {
60
- offsetBy = 0;
61
- }
62
-
63
- if (top > maxScroll) {
64
- offsetBy -= top - maxScroll;
65
- top = maxScroll;
66
- } else if (top < 0) {
67
- offsetBy -= top;
68
- top = 0;
69
- }
70
-
71
- return () => scrollTo(scrollElement, top - scrollTop).then(fn);
72
-
73
- }, () => Promise.resolve())();
52
+ return parents.reduce(
53
+ (fn, scrollElement, i) => {
54
+ const { scrollTop, scrollHeight, offsetHeight } = scrollElement;
55
+ const maxScroll = scrollHeight - getViewportClientHeight(scrollElement);
56
+ const { height: elHeight, top: elTop } = offset(parents[i - 1] || element);
57
+
58
+ let top = Math.ceil(
59
+ elTop - offset(getViewport(scrollElement)).top - offsetBy + scrollTop
60
+ );
61
+
62
+ if (offsetBy > 0 && offsetHeight < elHeight + offsetBy) {
63
+ top += offsetBy;
64
+ } else {
65
+ offsetBy = 0;
66
+ }
67
+
68
+ if (top > maxScroll) {
69
+ offsetBy -= top - maxScroll;
70
+ top = maxScroll;
71
+ } else if (top < 0) {
72
+ offsetBy -= top;
73
+ top = 0;
74
+ }
75
+
76
+ return () => scrollTo(scrollElement, top - scrollTop).then(fn);
77
+ },
78
+ () => Promise.resolve()
79
+ )();
74
80
 
75
81
  function scrollTo(element, top) {
76
- return new Promise(resolve => {
77
-
82
+ return new Promise((resolve) => {
78
83
  const scroll = element.scrollTop;
79
84
  const duration = getDuration(Math.abs(top));
80
85
  const start = Date.now();
81
86
 
82
87
  (function step() {
83
-
84
88
  const percent = ease(clamp((Date.now() - start) / duration));
85
89
 
86
90
  scrollTop(element, scroll + top * percent);
@@ -91,29 +95,26 @@ export function scrollIntoView(element, {offset: offsetBy = 0} = {}) {
91
95
  } else {
92
96
  requestAnimationFrame(step);
93
97
  }
94
-
95
98
  })();
96
99
  });
97
100
  }
98
101
 
99
102
  function getDuration(dist) {
100
- return 40 * Math.pow(dist, .375);
103
+ return 40 * Math.pow(dist, 0.375);
101
104
  }
102
105
 
103
106
  function ease(k) {
104
107
  return 0.5 * (1 - Math.cos(Math.PI * k));
105
108
  }
106
-
107
109
  }
108
110
 
109
111
  export function scrolledOver(element, startOffset = 0, endOffset = 0) {
110
-
111
112
  if (!isVisible(element)) {
112
113
  return 0;
113
114
  }
114
115
 
115
116
  const [scrollElement] = scrollParents(element, /auto|scroll/, true);
116
- const {scrollHeight, scrollTop} = scrollElement;
117
+ const { scrollHeight, scrollTop } = scrollElement;
117
118
  const viewportHeight = getViewportClientHeight(scrollElement);
118
119
  const maxScroll = scrollHeight - viewportHeight;
119
120
  const elementOffsetTop = offsetPosition(element)[0] - offsetPosition(scrollElement)[0];
@@ -130,14 +131,20 @@ export function scrollParents(element, overflowRe = /auto|scroll|hidden/, scroll
130
131
  let ancestors = parents(element).reverse();
131
132
  ancestors = ancestors.slice(ancestors.indexOf(scrollEl) + 1);
132
133
 
133
- const fixedIndex = findIndex(ancestors, el => css(el, 'position') === 'fixed');
134
+ const fixedIndex = findIndex(ancestors, (el) => css(el, 'position') === 'fixed');
134
135
  if (~fixedIndex) {
135
136
  ancestors = ancestors.slice(fixedIndex);
136
137
  }
137
138
 
138
- return [scrollEl].concat(ancestors.filter(parent =>
139
- overflowRe.test(css(parent, 'overflow')) && (!scrollable || parent.scrollHeight > getViewportClientHeight(parent)))
140
- ).reverse();
139
+ return [scrollEl]
140
+ .concat(
141
+ ancestors.filter(
142
+ (parent) =>
143
+ overflowRe.test(css(parent, 'overflow')) &&
144
+ (!scrollable || parent.scrollHeight > getViewportClientHeight(parent))
145
+ )
146
+ )
147
+ .reverse();
141
148
  }
142
149
 
143
150
  export function getViewport(scrollElement) {
@@ -146,10 +153,14 @@ export function getViewport(scrollElement) {
146
153
 
147
154
  // iOS 12 returns <body> as scrollingElement
148
155
  export function getViewportClientHeight(scrollElement) {
149
- return (scrollElement === getScrollingElement(scrollElement) ? document.documentElement : scrollElement).clientHeight;
156
+ return (
157
+ scrollElement === getScrollingElement(scrollElement)
158
+ ? document.documentElement
159
+ : scrollElement
160
+ ).clientHeight;
150
161
  }
151
162
 
152
163
  export function getScrollingElement(element) {
153
- const {document} = toWindow(element);
164
+ const { document } = toWindow(element);
154
165
  return document.scrollingElement || document.documentElement;
155
166
  }
@@ -91,7 +91,6 @@
91
91
 
92
92
  /*
93
93
  * 1. Set `font-size` to support `rem` units
94
- * Not using `font` property because a leading hyphen (e.g. -apple-system) causes the font to break in IE11 and Edge
95
94
  * 2. Prevent adjustments of font size after orientation changes in iOS.
96
95
  * 3. Style
97
96
  */
@@ -239,7 +238,7 @@ sub { bottom: -0.25em; }
239
238
  ========================================================================== */
240
239
 
241
240
  /*
242
- * Remove the gap between embedded content and the bottom of their containers.
241
+ * Remove the gap between the element and the bottom of its parent container.
243
242
  */
244
243
 
245
244
  audio,
@@ -250,14 +249,14 @@ svg,
250
249
  video { vertical-align: middle; }
251
250
 
252
251
  /*
253
- * 1. Add responsiveness.
254
- * 2. Auto-scale the height. Only needed if `height` attribute is present.
255
- * 3. Corrects responsive `max-width` behavior if padding and border are used.
256
- * 4. Exclude SVGs for IE11 because they don't preserve their aspect ratio.
252
+ * 1. Constrain the element to its parent width.
253
+ * 2. Preserve the intrinsic aspect ratio and auto-scale the height of an image if the `height` attribute is present.
254
+ * 3. Take border and padding into account.
257
255
  */
258
256
 
259
257
  canvas,
260
258
  img,
259
+ svg,
261
260
  video {
262
261
  /* 1 */
263
262
  max-width: 100%;
@@ -267,34 +266,17 @@ video {
267
266
  box-sizing: border-box;
268
267
  }
269
268
 
270
- /* 4 */
271
- @supports (display: block) {
272
-
273
- svg {
274
- max-width: 100%;
275
- height: auto;
276
- box-sizing: border-box;
277
- }
278
-
279
- }
280
-
281
- /*
282
- * Hide the overflow in IE.
283
- */
284
-
285
- svg:not(:root) { overflow: hidden; }
286
-
287
269
  /*
288
- * 1. Fix lazy loading images if parent element is set to `display: inline` and has `overflow: hidden`.
289
- * 2. Hide `alt` text for lazy loading images.
290
- * Note: Selector for background while loading img[data-src*='.jpg'][src*='data:image'] { background: grey; }
270
+ * Deprecated: only needed for `img` elements with `uk-img`
271
+ * 1. Hide `alt` text for lazy load images.
272
+ * 2. Fix lazy loading images if parent element is set to `display: inline` and has `overflow: hidden`.
291
273
  */
292
274
 
293
275
  img:not([src]) {
294
276
  /* 1 */
295
- min-width: 1px;
296
- /* 2 */
297
277
  visibility: hidden;
278
+ /* 2 */
279
+ min-width: 1px;
298
280
  }
299
281
 
300
282
  /*
@@ -589,11 +571,6 @@ template { display: none; }
589
571
  * Breakpoints
590
572
  */
591
573
 
592
- .uk-breakpoint-s::before { content: '@{breakpoint-small}'; }
593
- .uk-breakpoint-m::before { content: '@{breakpoint-medium}'; }
594
- .uk-breakpoint-l::before { content: '@{breakpoint-large}'; }
595
- .uk-breakpoint-xl::before { content: '@{breakpoint-xlarge}'; }
596
-
597
574
  :root {
598
575
  --uk-breakpoint-s: @breakpoint-small;
599
576
  --uk-breakpoint-m: @breakpoint-medium;
@@ -13,15 +13,6 @@
13
13
  .uk-flex { display: flex; }
14
14
  .uk-flex-inline { display: inline-flex; }
15
15
 
16
- /*
17
- * Remove pseudo elements created by micro clearfix as precaution
18
- */
19
-
20
- .uk-flex::before,
21
- .uk-flex::after,
22
- .uk-flex-inline::before,
23
- .uk-flex-inline::after { display: none; }
24
-
25
16
 
26
17
  /* Alignment
27
18
  ========================================================================== */
@@ -9,44 +9,45 @@
9
9
  // Variables
10
10
  // ========================================================================
11
11
 
12
+ @form-range-track-height: 3px;
13
+ @form-range-track-background: darken(@global-muted-background, 5%);
14
+ @form-range-track-focus-background: darken(@form-range-track-background, 5%);
15
+
12
16
  @form-range-thumb-height: 15px;
13
17
  @form-range-thumb-width: @form-range-thumb-height;
14
18
  @form-range-thumb-border-radius: 500px;
15
19
  @form-range-thumb-background: @global-color;
16
20
 
17
- @form-range-track-height: 3px;
18
- @form-range-track-background: darken(@global-muted-background, 5%);
19
- @form-range-track-focus-background: darken(@form-range-track-background, 5%);
20
-
21
21
 
22
22
  /* ========================================================================
23
23
  Component: Form Range
24
24
  ========================================================================== */
25
25
 
26
26
  /*
27
- * 1. Normalize and defaults
28
- * 2. Prevent content overflow if a fixed width is used
29
- * 3. Take the full width
30
- * 4. Remove default style
31
- * 5. Remove white background in Chrome
32
- * 6. Remove padding in IE11
27
+ * 1. Remove default style.
28
+ * 2. Define consistent box sizing.
29
+ * 3. Remove `margin` in all browsers.
30
+ * 4. Align to the center of the line box.
31
+ * 5. Prevent content overflow if a fixed width is used.
32
+ * 6. Take the full width.
33
+ * 7. Remove white background in Chrome.
33
34
  */
34
35
 
35
36
  .uk-range {
36
37
  /* 1 */
38
+ -webkit-appearance: none;
39
+ /* 2 */
37
40
  box-sizing: border-box;
41
+ /* 3 */
38
42
  margin: 0;
43
+ /* 4 */
39
44
  vertical-align: middle;
40
- /* 2 */
45
+ /* 5 */
41
46
  max-width: 100%;
42
- /* 3 */
47
+ /* 6 */
43
48
  width: 100%;
44
- /* 4 */
45
- -webkit-appearance: none;
46
- /* 5 */
49
+ /* 7 */
47
50
  background: transparent;
48
- /* 6 */
49
- padding: 0;
50
51
  .hook-form-range();
51
52
  }
52
53
 
@@ -54,82 +55,16 @@
54
55
  .uk-range:focus { outline: none; }
55
56
  .uk-range::-moz-focus-outer { border: none; }
56
57
 
57
- /* IE11 Reset */
58
- .uk-range::-ms-track {
59
- height: @form-range-thumb-height;
60
- background: transparent;
61
- border-color: transparent;
62
- color: transparent;
63
- }
64
-
65
58
  /*
66
59
  * Improves consistency of cursor style for clickable elements
67
60
  */
68
61
 
69
62
  .uk-range:not(:disabled)::-webkit-slider-thumb { cursor: pointer; }
70
63
  .uk-range:not(:disabled)::-moz-range-thumb { cursor: pointer; }
71
- .uk-range:not(:disabled)::-ms-thumb { cursor: pointer; }
72
64
 
73
65
 
74
- /* Thumb
75
- ========================================================================== */
76
-
77
- /*
78
- * 1. Reset
79
- * 2. Style
80
- */
81
-
82
- /* Webkit */
83
- .uk-range::-webkit-slider-thumb {
84
- /* 1 */
85
- -webkit-appearance: none;
86
- margin-top: (floor((@form-range-thumb-height / 2)) * -1);
87
- /* 2 */
88
- height: @form-range-thumb-height;
89
- width: @form-range-thumb-width;
90
- border-radius: @form-range-thumb-border-radius;
91
- background: @form-range-thumb-background;
92
- .hook-form-range-thumb();
93
- }
94
-
95
- /* Firefox */
96
- .uk-range::-moz-range-thumb {
97
- /* 1 */
98
- border: none;
99
- /* 2 */
100
- height: @form-range-thumb-height;
101
- width: @form-range-thumb-width;
102
- border-radius: @form-range-thumb-border-radius;
103
- background: @form-range-thumb-background;
104
- .hook-form-range-thumb();
105
- }
106
-
107
- /* Edge */
108
- .uk-range::-ms-thumb {
109
- /* 1 */
110
- margin-top: 0;
111
- }
112
-
113
- /* IE11 */
114
- .uk-range::-ms-thumb {
115
- /* 1 */
116
- border: none;
117
- /* 2 */
118
- height: @form-range-thumb-height;
119
- width: @form-range-thumb-width;
120
- border-radius: @form-range-thumb-border-radius;
121
- background: @form-range-thumb-background;
122
- .hook-form-range-thumb();
123
- }
124
-
125
- /* Edge + IE11 */
126
- .uk-range::-ms-tooltip { display: none; }
127
-
128
-
129
- /* Track
130
- ========================================================================== */
131
-
132
66
  /*
67
+ * Track
133
68
  * 1. Safari doesn't have a focus state. Using active instead.
134
69
  */
135
70
 
@@ -159,18 +94,36 @@
159
94
  .hook-form-range-track-focus();
160
95
  }
161
96
 
162
- /* Edge */
163
- .uk-range::-ms-fill-lower,
164
- .uk-range::-ms-fill-upper {
165
- height: @form-range-track-height;
166
- background: @form-range-track-background;
167
- .hook-form-range-track();
97
+ /*
98
+ * Thumb
99
+ * 1. Reset
100
+ * 2. Style
101
+ */
102
+
103
+ /* Webkit */
104
+ .uk-range::-webkit-slider-thumb {
105
+ /* 1 */
106
+ -webkit-appearance: none;
107
+ margin-top: (floor((@form-range-thumb-height / 2)) * -1);
108
+ /* 2 */
109
+ height: @form-range-thumb-height;
110
+ width: @form-range-thumb-width;
111
+ border-radius: @form-range-thumb-border-radius;
112
+ background: @form-range-thumb-background;
113
+ .hook-form-range-thumb();
168
114
  }
169
115
 
170
- .uk-range:focus::-ms-fill-lower,
171
- .uk-range:focus::-ms-fill-upper {
172
- background: @form-range-track-focus-background;
173
- .hook-form-range-track-focus();
116
+ /* Firefox */
117
+ .uk-range::-moz-range-thumb {
118
+ /* 1 */
119
+ border: none;
120
+ /* 2 */
121
+ height: @form-range-thumb-height;
122
+ width: @form-range-thumb-width;
123
+ margin-top: (floor((@form-range-thumb-height / 2)) * -1);
124
+ border-radius: @form-range-thumb-border-radius;
125
+ background: @form-range-thumb-background;
126
+ .hook-form-range-thumb();
174
127
  }
175
128
 
176
129
 
@@ -180,7 +133,7 @@
180
133
  .hook-form-range-misc();
181
134
 
182
135
  .hook-form-range() {}
183
- .hook-form-range-thumb() {}
184
136
  .hook-form-range-track() {}
185
137
  .hook-form-range-track-focus() {}
138
+ .hook-form-range-thumb() {}
186
139
  .hook-form-range-misc() {}
@@ -472,7 +472,6 @@ select.uk-form-width-xsmall { width: (@form-width-xsmall + 25px); }
472
472
 
473
473
 
474
474
  /* Radio and checkbox
475
- * Note: Does not work in IE11
476
475
  ========================================================================== */
477
476
 
478
477
  /*
@@ -31,6 +31,9 @@
31
31
  */
32
32
 
33
33
  .uk-height-viewport { min-height: 100vh; }
34
+ .uk-height-viewport-2 { min-height: 200vh; }
35
+ .uk-height-viewport-3 { min-height: 300vh; }
36
+ .uk-height-viewport-4 { min-height: 400vh; }
34
37
 
35
38
  /*
36
39
  * Pixel
@@ -49,7 +49,6 @@
49
49
  * Pass fill character to JS
50
50
  */
51
51
 
52
- .uk-leader-fill-content::before { content: '@{leader-fill-content}'; }
53
52
  :root { --uk-leader-fill-content: '@{leader-fill-content}'; }
54
53
 
55
54
 
@@ -119,7 +119,6 @@
119
119
  * 4. Optimize animation
120
120
  * 5. Responsiveness
121
121
  * Using `vh` for `max-height` to fix image proportions after resize in Safari and Opera
122
- * Using `vh` and `vw` to make responsive image work in IE11
123
122
  */
124
123
 
125
124
  .uk-lightbox-items > * {
@@ -139,10 +139,8 @@
139
139
  /*
140
140
  * 1. Create position context for spinner and close button
141
141
  * 2. Dimensions
142
- * 3. Fix `max-width: 100%` not working in combination with flex and responsive images in IE11
143
- * `!important` needed to overwrite `uk-width-auto`. See `#modal-media-image` in tests
144
- * 4. Style
145
- * 5. Slide-in transition
142
+ * 3. Style
143
+ * 4. Slide-in transition
146
144
  */
147
145
 
148
146
  .uk-modal-dialog {
@@ -153,10 +151,8 @@
153
151
  margin: 0 auto;
154
152
  width: @modal-dialog-width;
155
153
  /* 3 */
156
- max-width: ~'calc(100% - 0.01px)' !important;
157
- /* 4 */
158
154
  background: @modal-dialog-background;
159
- /* 5 */
155
+ /* 4 */
160
156
  opacity: 0;
161
157
  transform: translateY(-100px);
162
158
  transition: 0.3s linear;
@@ -109,13 +109,6 @@
109
109
  .uk-navbar-container:not(.uk-navbar-transparent):extend(.uk-light all) when (@navbar-color-mode = light) {}
110
110
  .uk-navbar-container:not(.uk-navbar-transparent):extend(.uk-dark all) when (@navbar-color-mode = dark) {}
111
111
 
112
- /*
113
- * Remove pseudo elements created by micro clearfix as precaution (if Container component is used)
114
- */
115
-
116
- .uk-navbar-container > ::before,
117
- .uk-navbar-container > ::after { display: none !important; }
118
-
119
112
 
120
113
  /* Groups
121
114
  ========================================================================== */
@@ -21,28 +21,24 @@
21
21
  ========================================================================== */
22
22
 
23
23
  /*
24
- * 1. Add the correct vertical alignment in Chrome, Firefox, and Opera.
25
- * 2. Remove default style
26
- * 3. Behave like a block element
27
- * 4. Remove borders in Firefox and Edge
28
- * 5. Set background color for progress container in Firefox, IE11 and Edge
29
- * 6. Style
24
+ * 1. Add the correct vertical alignment in all browsers.
25
+ * 2. Behave like a block element.
26
+ * 3. Remove borders in Firefox.
27
+ * 4. Remove default style in Chrome, Safari and Edge.
28
+ * 5. Style
30
29
  */
31
30
 
32
31
  .uk-progress {
33
32
  /* 1 */
34
33
  vertical-align: baseline;
35
34
  /* 2 */
36
- -webkit-appearance: none;
37
- -moz-appearance: none;
38
- /* 3 */
39
35
  display: block;
40
36
  width: 100%;
41
- /* 4 */
37
+ /* 3 */
42
38
  border: 0;
43
- /* 5 */
39
+ /* 4 */
44
40
  background-color: @progress-background;
45
- /* 6 */
41
+ /* 5 */
46
42
  margin-bottom: @progress-margin-vertical;
47
43
  height: @progress-height;
48
44
  .hook-progress();
@@ -52,27 +48,15 @@
52
48
  * + .uk-progress { margin-top: @progress-margin-vertical; }
53
49
 
54
50
  /*
55
- * Remove animated circles for indeterminate state in IE11 and Edge
51
+ * Show background color set on `uk-progress` in Chrome, Safari and Edge.
56
52
  */
57
53
 
58
- .uk-progress:indeterminate { color: transparent; }
54
+ .uk-progress::-webkit-progress-bar { background-color: transparent; }
59
55
 
60
56
  /*
61
- * Progress container
62
- * 2. Remove progress bar for indeterminate state in Firefox
63
- */
64
-
65
- .uk-progress::-webkit-progress-bar {
66
- background-color: @progress-background;
67
- .hook-progress();
68
- }
69
-
70
- /* 2 */
71
- .uk-progress:indeterminate::-moz-progress-bar { width: 0; }
72
-
73
- /*
74
- * Progress bar
75
- * 1. Remove right border in IE11 and Edge
57
+ * Progress Bar
58
+ * 1. Transitions don't work on `::-moz-progress-bar` pseudo element in Firefox yet.
59
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=662351
76
60
  */
77
61
 
78
62
  .uk-progress::-webkit-progress-value {
@@ -83,14 +67,8 @@
83
67
 
84
68
  .uk-progress::-moz-progress-bar {
85
69
  background-color: @progress-bar-background;
86
- .hook-progress-bar();
87
- }
88
-
89
- .uk-progress::-ms-fill {
90
- background-color: @progress-bar-background;
91
- transition: width 0.6s ease;
92
70
  /* 1 */
93
- border: 0;
71
+ transition: width 0.6s ease;
94
72
  .hook-progress-bar();
95
73
  }
96
74