uikit 3.17.0 → 3.17.1-dev.85059147d

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 (52) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/css/uikit-core-rtl.css +45 -15
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +45 -15
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +45 -15
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +45 -15
  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 +5 -5
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +5 -5
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +1 -1
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +5 -5
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +1 -1
  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 +8 -27
  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 +12 -31
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/cover.js +1 -21
  44. package/src/js/core/sticky.js +6 -7
  45. package/src/js/mixin/parallax.js +4 -7
  46. package/src/less/components/base.less +2 -1
  47. package/src/less/components/cover.less +21 -6
  48. package/src/less/components/pagination.less +13 -6
  49. package/src/scss/components/cover.scss +21 -6
  50. package/src/scss/components/pagination.scss +13 -6
  51. package/src/scss/mixins-theme.scss +2 -1
  52. package/src/scss/mixins.scss +2 -1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "uikit",
3
3
  "title": "UIkit",
4
4
  "description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
5
- "version": "3.17.0",
5
+ "version": "3.17.1-dev.85059147d",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -1,17 +1,7 @@
1
- import { attr, css, Dimensions, isTag, parent } from 'uikit-util';
1
+ import { css, Dimensions, isTag, parent } from 'uikit-util';
2
2
  import { resize } from '../api/observables';
3
3
  import Video from './video';
4
4
 
5
- const coverProps = {
6
- top: 0, // resets the css from [uk-cover]
7
- left: 0, // resets the css from [uk-cover]
8
- width: '100%',
9
- height: '100%',
10
- transform: 'none',
11
- objectFit: 'cover',
12
- objectPosition: 'center',
13
- };
14
-
15
5
  export default {
16
6
  mixins: [Video],
17
7
 
@@ -37,16 +27,6 @@ export default {
37
27
 
38
28
  connected() {
39
29
  this._useObjectFit = isTag(this.$el, 'img', 'video');
40
-
41
- if (this._useObjectFit) {
42
- css(this.$el, coverProps);
43
- }
44
- },
45
-
46
- disconnected() {
47
- if (this._useObjectFit) {
48
- attr(this.$el, 'style', '');
49
- }
50
30
  },
51
31
 
52
32
  update: {
@@ -176,7 +176,10 @@ export default {
176
176
 
177
177
  const viewport = toPx('100vh', 'height');
178
178
  const dynamicViewport = getHeight(window);
179
- const maxScrollHeight = document.scrollingElement.scrollHeight - viewport;
179
+ const maxScrollHeight = Math.max(
180
+ 0,
181
+ document.scrollingElement.scrollHeight - viewport,
182
+ );
180
183
 
181
184
  let position = this.position;
182
185
  if (this.overflowFlip && height > viewport) {
@@ -412,18 +415,14 @@ export default {
412
415
  let position = 'fixed';
413
416
 
414
417
  if (scroll > end) {
415
- offset += end - offsetParentTop;
418
+ offset += end - offsetParentTop + overflowScroll - overflow;
416
419
  position = 'absolute';
417
420
  }
418
421
 
419
422
  css(this.$el, { position, width, marginTop: 0 }, 'important');
420
423
  }
421
424
 
422
- if (overflow) {
423
- offset -= overflowScroll;
424
- }
425
-
426
- css(this.$el, 'top', offset);
425
+ css(this.$el, 'top', offset - overflowScroll);
427
426
 
428
427
  this.setActive(active);
429
428
  toggleClass(
@@ -76,14 +76,11 @@ export default {
76
76
  },
77
77
 
78
78
  getCss(percent) {
79
- const css = { transform: '', filter: '' };
79
+ const css = {};
80
80
  for (const prop in this.props) {
81
81
  this.props[prop](css, clamp(percent));
82
82
  }
83
- css.willChange = Object.keys(css)
84
- .filter((key) => css[key] !== '')
85
- .map(propName)
86
- .join(',');
83
+ css.willChange = Object.keys(css).map(propName).join(',');
87
84
  return css;
88
85
  },
89
86
  },
@@ -112,7 +109,7 @@ function transformFn(prop, el, stops) {
112
109
  stops = parseStops(stops, transformFn);
113
110
 
114
111
  return (css, percent) => {
115
- css.transform += ` ${prop}(${getValue(stops, percent)}${unit})`;
112
+ css.transform = `${css.transform || ''} ${prop}(${getValue(stops, percent)}${unit})`;
116
113
  };
117
114
  }
118
115
 
@@ -155,7 +152,7 @@ function filterFn(prop, el, stops) {
155
152
 
156
153
  return (css, percent) => {
157
154
  const value = getValue(stops, percent);
158
- css.filter += ` ${prop}(${value + unit})`;
155
+ css.filter = `${css.filter || ''} ${prop}(${value + unit})`;
159
156
  };
160
157
  }
161
158
 
@@ -651,7 +651,8 @@ template { display: none; }
651
651
  .uk-heading-medium,
652
652
  .uk-heading-large,
653
653
  .uk-heading-xlarge,
654
- .uk-heading-2xlarge {
654
+ .uk-heading-2xlarge,
655
+ .uk-heading-3xlarge {
655
656
  color: @inverse-base-heading-color;
656
657
  .hook-inverse-base-heading();
657
658
  }
@@ -13,7 +13,24 @@
13
13
  ========================================================================== */
14
14
 
15
15
  /*
16
- * Works with iframes and embedded content
16
+ * Works with embedded content
17
+ */
18
+
19
+ img[uk-cover],
20
+ video[uk-cover],
21
+ img[data-uk-cover],
22
+ video[data-uk-cover] {
23
+ left: 0;
24
+ top: 0;
25
+ position: absolute;
26
+ width: 100%;
27
+ height: 100%;
28
+ object-fit: cover;
29
+ object-position: center;
30
+ }
31
+
32
+ /*
33
+ * Works with iframes
17
34
  * 1. Use attribute to apply transform instantly. Needed if transform is transitioned.
18
35
  * 2. Reset responsiveness for embedded content
19
36
  * 3. Center object
@@ -22,8 +39,9 @@
22
39
  */
23
40
 
24
41
  /* 1 */
25
- [uk-cover],
26
- [data-uk-cover] {
42
+ iframe[uk-cover],
43
+ iframe[data-uk-cover] {
44
+ pointer-events: none;
27
45
  /* 2 */
28
46
  max-width: none;
29
47
  /* 3 */
@@ -35,9 +53,6 @@
35
53
  transform: translate(var(--uk-position-translate-x), var(--uk-position-translate-y));
36
54
  }
37
55
 
38
- iframe[uk-cover],
39
- iframe[data-uk-cover] { pointer-events: none; }
40
-
41
56
 
42
57
  /* Container
43
58
  ========================================================================== */
@@ -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();
@@ -13,7 +13,24 @@
13
13
  ========================================================================== */
14
14
 
15
15
  /*
16
- * Works with iframes and embedded content
16
+ * Works with embedded content
17
+ */
18
+
19
+ img[uk-cover],
20
+ video[uk-cover],
21
+ img[data-uk-cover],
22
+ video[data-uk-cover] {
23
+ left: 0;
24
+ top: 0;
25
+ position: absolute;
26
+ width: 100%;
27
+ height: 100%;
28
+ object-fit: cover;
29
+ object-position: center;
30
+ }
31
+
32
+ /*
33
+ * Works with iframes
17
34
  * 1. Use attribute to apply transform instantly. Needed if transform is transitioned.
18
35
  * 2. Reset responsiveness for embedded content
19
36
  * 3. Center object
@@ -22,8 +39,9 @@
22
39
  */
23
40
 
24
41
  /* 1 */
25
- [uk-cover],
26
- [data-uk-cover] {
42
+ iframe[uk-cover],
43
+ iframe[data-uk-cover] {
44
+ pointer-events: none;
27
45
  /* 2 */
28
46
  max-width: none;
29
47
  /* 3 */
@@ -35,9 +53,6 @@
35
53
  transform: translate(var(--uk-position-translate-x), var(--uk-position-translate-y));
36
54
  }
37
55
 
38
- iframe[uk-cover],
39
- iframe[data-uk-cover] { pointer-events: none; }
40
-
41
56
 
42
57
  /* Container
43
58
  ========================================================================== */
@@ -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();}
@@ -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
  }
@@ -156,7 +156,8 @@
156
156
  .uk-heading-medium,
157
157
  .uk-heading-large,
158
158
  .uk-heading-xlarge,
159
- .uk-heading-2xlarge {
159
+ .uk-heading-2xlarge,
160
+ .uk-heading-3xlarge {
160
161
  color: $inverse-base-heading-color;
161
162
  @if(mixin-exists(hook-inverse-base-heading)) {@include hook-inverse-base-heading();}
162
163
  }