uikit 3.11.2-dev.72dbb9a19 → 3.11.2-dev.93483bd3e

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 (108) hide show
  1. package/CHANGELOG.md +32 -18
  2. package/dist/css/uikit-core-rtl.css +80 -171
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +80 -171
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +82 -177
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +82 -177
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +1 -1
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +1 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +1 -1
  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 +108 -72
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +108 -72
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +57 -2
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +108 -72
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +45 -3
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +1 -1
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +172 -165
  37. package/dist/js/uikit-core.min.js +1 -1
  38. package/dist/js/uikit-icons.js +1 -1
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +345 -241
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/components/internal/slider-preload.js +37 -0
  44. package/src/js/components/slider.js +21 -1
  45. package/src/js/components/slideshow.js +8 -1
  46. package/src/js/core/img.js +129 -114
  47. package/src/js/core/sticky.js +1 -1
  48. package/src/js/core/svg.js +10 -6
  49. package/src/js/core/toggle.js +2 -1
  50. package/src/js/mixin/parallax.js +108 -72
  51. package/src/js/util/dom.js +27 -30
  52. package/src/js/util/lang.js +6 -5
  53. package/src/js/util/player.js +3 -2
  54. package/src/js/util/style.js +4 -4
  55. package/src/less/components/base.less +10 -28
  56. package/src/less/components/form-range.less +52 -97
  57. package/src/less/components/form.less +0 -1
  58. package/src/less/components/lightbox.less +0 -1
  59. package/src/less/components/modal.less +3 -7
  60. package/src/less/components/progress.less +14 -36
  61. package/src/less/components/slider.less +0 -3
  62. package/src/less/components/slideshow.less +0 -3
  63. package/src/less/components/text.less +16 -32
  64. package/src/scss/components/base.scss +10 -28
  65. package/src/scss/components/form-range.scss +52 -97
  66. package/src/scss/components/form.scss +0 -1
  67. package/src/scss/components/lightbox.scss +0 -1
  68. package/src/scss/components/modal.scss +3 -7
  69. package/src/scss/components/progress.scss +14 -36
  70. package/src/scss/components/slider.scss +0 -3
  71. package/src/scss/components/slideshow.scss +0 -3
  72. package/src/scss/components/text.scss +16 -32
  73. package/src/scss/mixins-theme.scss +1 -1
  74. package/src/scss/mixins.scss +1 -1
  75. package/src/scss/variables-theme.scss +3 -3
  76. package/src/scss/variables.scss +3 -3
  77. package/tests/align.html +10 -10
  78. package/tests/animation.html +2 -2
  79. package/tests/article.html +2 -2
  80. package/tests/base.html +3 -3
  81. package/tests/card.html +10 -10
  82. package/tests/column.html +3 -3
  83. package/tests/comment.html +9 -9
  84. package/tests/dotnav.html +3 -3
  85. package/tests/image.html +296 -64
  86. package/tests/images/image-type.avif +0 -0
  87. package/tests/images/image-type.jpeg +0 -0
  88. package/tests/images/image-type.webp +0 -0
  89. package/tests/index.html +8 -8
  90. package/tests/lightbox.html +10 -10
  91. package/tests/marker.html +2 -2
  92. package/tests/modal.html +8 -9
  93. package/tests/navbar.html +2 -2
  94. package/tests/overlay.html +7 -7
  95. package/tests/parallax.html +14 -5
  96. package/tests/position.html +12 -12
  97. package/tests/slidenav.html +12 -12
  98. package/tests/slider.html +20 -20
  99. package/tests/sortable.html +1 -1
  100. package/tests/sticky-parallax.html +47 -62
  101. package/tests/svg.html +6 -6
  102. package/tests/table.html +11 -11
  103. package/tests/thumbnav.html +12 -12
  104. package/tests/transition.html +30 -30
  105. package/tests/utility.html +33 -33
  106. package/tests/video.html +1 -1
  107. package/tests/width.html +1 -1
  108. package/tests/images/animated.gif +0 -0
@@ -4,11 +4,11 @@ import {
4
4
  css,
5
5
  Dimensions,
6
6
  each,
7
+ findIndex,
7
8
  isNumber,
8
9
  isString,
9
10
  isUndefined,
10
11
  noop,
11
- startsWith,
12
12
  toFloat,
13
13
  toPx,
14
14
  trigger,
@@ -79,39 +79,35 @@ export default {
79
79
  },
80
80
  };
81
81
 
82
- function transformFn(prop, el, steps) {
83
- const unit = getUnit(steps) || { x: 'px', y: 'px', rotate: 'deg' }[prop] || '';
82
+ function transformFn(prop, el, stops) {
83
+ const unit = getUnit(stops) || { x: 'px', y: 'px', rotate: 'deg' }[prop] || '';
84
+ let transformFn;
84
85
 
85
86
  if (prop === 'x' || prop === 'y') {
86
87
  prop = `translate${ucfirst(prop)}`;
88
+ transformFn = (stop) => toFloat(toFloat(stop).toFixed(unit === 'px' ? 0 : 6));
87
89
  }
88
90
 
89
- steps = steps.map(toFloat);
90
-
91
- if (steps.length === 1) {
92
- steps.unshift(prop === 'scale' ? 1 : 0);
91
+ if (stops.length === 1) {
92
+ stops.unshift(prop === 'scale' ? 1 : 0);
93
93
  }
94
94
 
95
- return (css, percent) => {
96
- let value = getValue(steps, percent);
95
+ stops = parseStops(stops, transformFn);
97
96
 
98
- if (startsWith(prop, 'translate')) {
99
- value = toFloat(value).toFixed(unit === 'px' ? 0 : 6);
100
- }
101
-
102
- css.transform += ` ${prop}(${value}${unit})`;
97
+ return (css, percent) => {
98
+ css.transform += ` ${prop}(${getValue(stops, percent)}${unit})`;
103
99
  };
104
100
  }
105
101
 
106
- function colorFn(prop, el, steps) {
107
- if (steps.length === 1) {
108
- steps.unshift(getCssValue(el, prop, ''));
102
+ function colorFn(prop, el, stops) {
103
+ if (stops.length === 1) {
104
+ stops.unshift(getCssValue(el, prop, ''));
109
105
  }
110
106
 
111
- steps = steps.map((step) => parseColor(el, step));
107
+ stops = parseStops(stops, (stop) => parseColor(el, stop));
112
108
 
113
109
  return (css, percent) => {
114
- const [start, end, p] = getStep(steps, percent);
110
+ const [start, end, p] = getStop(stops, percent);
115
111
  const value = start
116
112
  .map((value, i) => {
117
113
  value += p * (end[i] - value);
@@ -131,85 +127,83 @@ function parseColor(el, color) {
131
127
  .map(toFloat);
132
128
  }
133
129
 
134
- function filterFn(prop, el, steps) {
135
- if (steps.length === 1) {
136
- steps.unshift(0);
130
+ function filterFn(prop, el, stops) {
131
+ if (stops.length === 1) {
132
+ stops.unshift(0);
137
133
  }
138
134
 
139
- const unit = getUnit(steps) || { blur: 'px', hue: 'deg' }[prop] || '%';
135
+ const unit = getUnit(stops) || { blur: 'px', hue: 'deg' }[prop] || '%';
140
136
  prop = { fopacity: 'opacity', hue: 'hue-rotate' }[prop] || prop;
141
- steps = steps.map(toFloat);
137
+ stops = parseStops(stops);
142
138
 
143
139
  return (css, percent) => {
144
- const value = getValue(steps, percent);
140
+ const value = getValue(stops, percent);
145
141
  css.filter += ` ${prop}(${value + unit})`;
146
142
  };
147
143
  }
148
144
 
149
- function cssPropFn(prop, el, steps) {
150
- if (steps.length === 1) {
151
- steps.unshift(getCssValue(el, prop, ''));
145
+ function cssPropFn(prop, el, stops) {
146
+ if (stops.length === 1) {
147
+ stops.unshift(getCssValue(el, prop, ''));
152
148
  }
153
149
 
154
- steps = steps.map(toFloat);
150
+ stops = parseStops(stops);
155
151
 
156
152
  return (css, percent) => {
157
- css[prop] = getValue(steps, percent);
153
+ css[prop] = getValue(stops, percent);
158
154
  };
159
155
  }
160
156
 
161
- function strokeFn(prop, el, steps) {
162
- if (steps.length === 1) {
163
- steps.unshift(0);
157
+ function strokeFn(prop, el, stops) {
158
+ if (stops.length === 1) {
159
+ stops.unshift(0);
164
160
  }
165
161
 
166
- const unit = getUnit(steps);
167
- steps = steps.map(toFloat);
162
+ const unit = getUnit(stops);
163
+ const length = getMaxPathLength(el);
164
+ stops = parseStops(stops.reverse(), (stop) => {
165
+ stop = toFloat(stop);
166
+ return unit === '%' ? (stop * length) / 100 : stop;
167
+ });
168
168
 
169
- if (!steps.some((step) => step)) {
169
+ if (!stops.some(([value]) => value)) {
170
170
  return noop;
171
171
  }
172
172
 
173
- const length = getMaxPathLength(el);
174
173
  css(el, 'strokeDasharray', length);
175
174
 
176
- if (unit === '%') {
177
- steps = steps.map((step) => (step * length) / 100);
178
- }
179
-
180
- steps = steps.reverse();
181
-
182
175
  return (css, percent) => {
183
- css.strokeDashoffset = getValue(steps, percent);
176
+ css.strokeDashoffset = getValue(stops, percent);
184
177
  };
185
178
  }
186
179
 
187
- function backgroundFn(prop, el, steps) {
188
- if (steps.length === 1) {
189
- steps.unshift(0);
180
+ function backgroundFn(prop, el, stops) {
181
+ if (stops.length === 1) {
182
+ stops.unshift(0);
190
183
  }
191
184
 
192
185
  prop = prop.substr(-1);
193
186
  const attr = prop === 'y' ? 'height' : 'width';
194
- steps = steps.map((step) => toPx(step, attr, el));
187
+ stops = parseStops(stops, (stop) => toPx(stop, attr, el));
195
188
 
196
189
  const bgPos = getCssValue(el, `background-position-${prop}`, '');
197
190
 
198
191
  return getCssValue(el, 'backgroundSize', '') === 'cover'
199
- ? backgroundCoverFn(prop, el, steps, bgPos, attr)
200
- : setBackgroundPosFn(prop, steps, bgPos);
192
+ ? backgroundCoverFn(prop, el, stops, bgPos, attr)
193
+ : setBackgroundPosFn(prop, stops, bgPos);
201
194
  }
202
195
 
203
- function backgroundCoverFn(prop, el, steps, bgPos, attr) {
196
+ function backgroundCoverFn(prop, el, stops, bgPos, attr) {
204
197
  const dimImage = getBackgroundImageDimensions(el);
205
198
 
206
199
  if (!dimImage.width) {
207
200
  return noop;
208
201
  }
209
202
 
210
- const min = Math.min(...steps);
211
- const max = Math.max(...steps);
212
- const down = steps.indexOf(min) < steps.indexOf(max);
203
+ const values = stops.map(([value]) => value);
204
+ const min = Math.min(...values);
205
+ const max = Math.max(...values);
206
+ const down = values.indexOf(min) < values.indexOf(max);
213
207
 
214
208
  const diff = max - min;
215
209
  let pos = (down ? -diff : 0) - (down ? min : max);
@@ -234,7 +228,7 @@ function backgroundCoverFn(prop, el, steps, bgPos, attr) {
234
228
 
235
229
  const dim = Dimensions.cover(dimImage, dimEl);
236
230
 
237
- const fn = setBackgroundPosFn(prop, steps, `${pos}px`);
231
+ const fn = setBackgroundPosFn(prop, stops, `${pos}px`);
238
232
  return (css, percent) => {
239
233
  fn(css, percent);
240
234
  css.backgroundSize = `${dim.width}px ${dim.height}px`;
@@ -242,9 +236,9 @@ function backgroundCoverFn(prop, el, steps, bgPos, attr) {
242
236
  };
243
237
  }
244
238
 
245
- function setBackgroundPosFn(prop, steps, pos) {
239
+ function setBackgroundPosFn(prop, stops, pos) {
246
240
  return function (css, percent) {
247
- css[`background-position-${prop}`] = `calc(${pos} + ${getValue(steps, percent)}px)`;
241
+ css[`background-position-${prop}`] = `calc(${pos} + ${getValue(stops, percent)}px)`;
248
242
  };
249
243
  }
250
244
 
@@ -278,27 +272,69 @@ function toDimensions(image) {
278
272
  };
279
273
  }
280
274
 
281
- function getStep(steps, percent) {
282
- const count = steps.length - 1;
283
- const index = Math.min(Math.floor(count * percent), count - 1);
275
+ function parseStops(stops, fn = toFloat) {
276
+ const result = [];
277
+ const { length } = stops;
278
+ for (let i = 0; i < length; i++) {
279
+ let [value, percent] = isString(stops[i]) ? stops[i].trim().split(' ') : [stops[i]];
280
+ value = fn(value);
281
+ percent = percent ? toFloat(percent) / 100 : null;
282
+
283
+ if (i === 0) {
284
+ if (percent === null) {
285
+ percent = 0;
286
+ } else if (percent) {
287
+ result.push([value, 0]);
288
+ }
289
+ } else if (i === length - 1) {
290
+ if (percent === null) {
291
+ percent = 1;
292
+ } else if (percent !== 1) {
293
+ result.push([value, percent]);
294
+ percent = 1;
295
+ }
296
+ }
297
+
298
+ result.push([value, percent]);
299
+ }
300
+
301
+ for (let i = 1; i < result.length - 1; i++) {
302
+ if (result[i][1] === null) {
303
+ const nextIndex = findIndex(result.slice(i + 1), ([, percent]) => percent !== null) + 1;
304
+ const percent = (result[i + nextIndex][1] - result[i - 1][1]) / (nextIndex + 1);
305
+ for (let j = 0; j < nextIndex; j++) {
306
+ result[i + j][1] = result[i - 1][1] + percent * (j + 1);
307
+ }
308
+ i += nextIndex;
309
+ }
310
+ }
311
+
312
+ return result;
313
+ }
284
314
 
285
- return steps
286
- .slice(index, index + 2)
287
- .concat(percent === 1 ? 1 : (percent % (1 / count)) * count);
315
+ function getStop(stops, percent) {
316
+ const index = findIndex(stops.slice(1), ([, targetPercent]) => percent <= targetPercent) + 1;
317
+ return [
318
+ stops[index - 1][0],
319
+ stops[index][0],
320
+ (percent - stops[index - 1][1]) / (stops[index][1] - stops[index - 1][1]),
321
+ ];
288
322
  }
289
323
 
290
- function getValue(steps, percent) {
291
- const [start, end, p] = getStep(steps, percent);
324
+ function getValue(stops, percent) {
325
+ const [start, end, p] = getStop(stops, percent);
292
326
  return isNumber(start) ? start + Math.abs(start - end) * p * (start < end ? 1 : -1) : +end;
293
327
  }
294
328
 
295
- function getUnit(steps, defaultUnit) {
296
- return (
297
- steps.reduce(
298
- (unit, step) => unit || (isString(step) && step.replace(/[\d-]/g, '').trim()),
299
- ''
300
- ) || defaultUnit
301
- );
329
+ const unitRe = /^[\d-]+([^\s]+)/;
330
+ function getUnit(stops, defaultUnit) {
331
+ for (const stop of stops) {
332
+ const match = stop.match?.(unitRe);
333
+ if (match) {
334
+ return match[1];
335
+ }
336
+ }
337
+ return defaultUnit;
302
338
  }
303
339
 
304
340
  function getCssValue(el, prop, value) {
@@ -12,6 +12,10 @@ export function ready(fn) {
12
12
  once(document, 'DOMContentLoaded', fn);
13
13
  }
14
14
 
15
+ export function isTag(element, tagName) {
16
+ return element?.tagName?.toLowerCase() === tagName.toLowerCase();
17
+ }
18
+
15
19
  export function empty(element) {
16
20
  return replaceChildren(element, '');
17
21
  }
@@ -20,34 +24,20 @@ export function html(parent, html) {
20
24
  return isUndefined(html) ? $(parent).innerHTML : replaceChildren(parent, html);
21
25
  }
22
26
 
23
- export function replaceChildren(parent, element) {
24
- const nodes = $$(element);
25
- $(parent).replaceChildren(...nodes);
26
- return nodes;
27
- }
28
-
29
- export function prepend(parent, element) {
30
- const nodes = $$(element);
31
- $(parent).prepend(...nodes);
32
- return nodes;
33
- }
34
-
35
- export function append(parent, element) {
36
- const nodes = $$(element);
37
- $(parent).append(...nodes);
38
- return nodes;
39
- }
40
-
41
- export function before(ref, element) {
42
- const nodes = $$(element);
43
- $(ref).before(...nodes);
44
- return nodes;
45
- }
27
+ export const replaceChildren = applyFn('replaceChildren');
28
+ export const prepend = applyFn('prepend');
29
+ export const append = applyFn('append');
30
+ export const before = applyFn('before');
31
+ export const after = applyFn('after');
46
32
 
47
- export function after(ref, element) {
48
- const nodes = $$(element);
49
- $(ref).after(...nodes);
50
- return nodes;
33
+ function applyFn(fn) {
34
+ return function (ref, element) {
35
+ const nodes = toNodes(isString(element) ? fragment(element) : element);
36
+ if (nodes.length) {
37
+ $(ref)[fn](...nodes);
38
+ }
39
+ return unwrapSingle(nodes);
40
+ };
51
41
  }
52
42
 
53
43
  export function remove(element) {
@@ -85,9 +75,16 @@ export function unwrap(element) {
85
75
 
86
76
  export function fragment(html) {
87
77
  const template = document.createElement('template');
88
- template.innerHTML = html;
89
- const { childNodes } = template.content;
90
- return childNodes.length > 1 ? toNodes(childNodes) : childNodes[0];
78
+ template.innerHTML = html.trim();
79
+ const nodes = toNodes(template.content.childNodes);
80
+ for (const node of nodes) {
81
+ document.adoptNode(node);
82
+ }
83
+ return unwrapSingle(nodes);
84
+ }
85
+
86
+ function unwrapSingle(nodes) {
87
+ return nodes.length > 1 ? nodes : nodes[0];
91
88
  }
92
89
 
93
90
  export function apply(node, fn) {
@@ -21,19 +21,19 @@ function toUpper(_, c) {
21
21
  }
22
22
 
23
23
  export function startsWith(str, search) {
24
- return str.startsWith(search);
24
+ return str?.startsWith?.(search);
25
25
  }
26
26
 
27
27
  export function endsWith(str, search) {
28
- return str.endsWith(search);
28
+ return str?.endsWith?.(search);
29
29
  }
30
30
 
31
31
  export function includes(obj, search) {
32
- return obj && obj.includes(search);
32
+ return obj?.includes?.(search);
33
33
  }
34
34
 
35
35
  export function findIndex(array, predicate) {
36
- return array.findIndex(predicate);
36
+ return array?.findIndex?.(predicate);
37
37
  }
38
38
 
39
39
  export const { isArray, from: toArray } = Array;
@@ -128,8 +128,9 @@ export function toWindow(element) {
128
128
  }
129
129
 
130
130
  element = toNode(element);
131
+ const document = isDocument(element) ? element : element?.ownerDocument;
131
132
 
132
- return element ? (isDocument(element) ? element : element.ownerDocument).defaultView : window;
133
+ return document?.defaultView || window;
133
134
  }
134
135
 
135
136
  export function toMs(time) {
@@ -1,3 +1,4 @@
1
+ import { isTag } from './dom';
1
2
  import { once } from './event';
2
3
  import { includes, noop } from './lang';
3
4
 
@@ -40,11 +41,11 @@ export function isVideo(el) {
40
41
  }
41
42
 
42
43
  function isHTML5(el) {
43
- return el?.tagName === 'VIDEO';
44
+ return isTag(el, 'video');
44
45
  }
45
46
 
46
47
  function isIFrame(el) {
47
- return el?.tagName === 'IFRAME' && (isYoutube(el) || isVimeo(el));
48
+ return isTag(el, 'iframe') && (isYoutube(el) || isVimeo(el));
48
49
  }
49
50
 
50
51
  function isYoutube(el) {
@@ -31,7 +31,8 @@ const cssNumber = {
31
31
  };
32
32
 
33
33
  export function css(element, property, value, priority = '') {
34
- return toNodes(element).map((element) => {
34
+ const elements = toNodes(element);
35
+ for (const element of elements) {
35
36
  if (isString(property)) {
36
37
  property = propName(property);
37
38
 
@@ -57,9 +58,8 @@ export function css(element, property, value, priority = '') {
57
58
  priority = value;
58
59
  each(property, (value, property) => css(element, property, value, priority));
59
60
  }
60
-
61
- return element;
62
- })[0];
61
+ }
62
+ return elements[0];
63
63
  }
64
64
 
65
65
  function getStyles(element, pseudoElt) {
@@ -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
269
  /*
282
- * Hide the overflow in IE.
283
- */
284
-
285
- svg:not(:root) { overflow: hidden; }
286
-
287
- /*
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
  /*