uikit 3.12.0 → 3.12.3-dev.ebebb4f57

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 (64) hide show
  1. package/CHANGELOG.md +31 -2
  2. package/build/scss.js +9 -17
  3. package/dist/css/uikit-core-rtl.css +20 -82
  4. package/dist/css/uikit-core-rtl.min.css +1 -1
  5. package/dist/css/uikit-core.css +20 -82
  6. package/dist/css/uikit-core.min.css +1 -1
  7. package/dist/css/uikit-rtl.css +20 -82
  8. package/dist/css/uikit-rtl.min.css +1 -1
  9. package/dist/css/uikit.css +20 -82
  10. package/dist/css/uikit.min.css +1 -1
  11. package/dist/js/components/countdown.js +1 -1
  12. package/dist/js/components/countdown.min.js +1 -1
  13. package/dist/js/components/filter.js +1 -1
  14. package/dist/js/components/filter.min.js +1 -1
  15. package/dist/js/components/lightbox-panel.js +1 -1
  16. package/dist/js/components/lightbox-panel.min.js +1 -1
  17. package/dist/js/components/lightbox.js +1 -1
  18. package/dist/js/components/lightbox.min.js +1 -1
  19. package/dist/js/components/notification.js +1 -1
  20. package/dist/js/components/notification.min.js +1 -1
  21. package/dist/js/components/parallax.js +1 -1
  22. package/dist/js/components/parallax.min.js +1 -1
  23. package/dist/js/components/slider-parallax.js +1 -1
  24. package/dist/js/components/slider-parallax.min.js +1 -1
  25. package/dist/js/components/slider.js +1 -1
  26. package/dist/js/components/slider.min.js +1 -1
  27. package/dist/js/components/slideshow-parallax.js +1 -1
  28. package/dist/js/components/slideshow-parallax.min.js +1 -1
  29. package/dist/js/components/slideshow.js +1 -1
  30. package/dist/js/components/slideshow.min.js +1 -1
  31. package/dist/js/components/sortable.js +1 -1
  32. package/dist/js/components/sortable.min.js +1 -1
  33. package/dist/js/components/tooltip.js +1 -1
  34. package/dist/js/components/tooltip.min.js +1 -1
  35. package/dist/js/components/upload.js +1 -1
  36. package/dist/js/components/upload.min.js +1 -1
  37. package/dist/js/uikit-core.js +11 -9
  38. package/dist/js/uikit-core.min.js +1 -1
  39. package/dist/js/uikit-icons.js +1 -1
  40. package/dist/js/uikit-icons.min.js +1 -1
  41. package/dist/js/uikit.js +11 -9
  42. package/dist/js/uikit.min.js +1 -1
  43. package/package.json +1 -1
  44. package/src/js/core/scrollspy.js +7 -4
  45. package/src/js/core/sticky.js +1 -2
  46. package/src/js/util/style.js +1 -1
  47. package/src/less/components/base.less +0 -19
  48. package/src/less/components/form.less +1 -9
  49. package/src/less/components/icon.less +6 -0
  50. package/src/less/components/list.less +6 -1
  51. package/src/less/components/search.less +0 -3
  52. package/src/less/components/slider.less +3 -0
  53. package/src/less/components/slideshow.less +3 -0
  54. package/src/less/components/utility.less +0 -9
  55. package/src/scss/components/base.scss +0 -19
  56. package/src/scss/components/form.scss +1 -7
  57. package/src/scss/components/icon.scss +6 -0
  58. package/src/scss/components/list.scss +6 -1
  59. package/src/scss/components/search.scss +0 -1
  60. package/src/scss/components/slider.scss +3 -0
  61. package/src/scss/components/slideshow.scss +3 -0
  62. package/src/scss/components/utility.scss +0 -9
  63. package/src/scss/mixins-theme.scss +0 -4
  64. package/src/scss/mixins.scss +0 -4
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.12.0",
5
+ "version": "3.12.3-dev.ebebb4f57",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -110,7 +110,7 @@ export default {
110
110
  toggle(el, inview) {
111
111
  const state = el[stateKey];
112
112
 
113
- state.off && state.off();
113
+ state.off?.();
114
114
 
115
115
  css(el, 'visibility', !inview && this.hidden ? 'hidden' : '');
116
116
 
@@ -118,9 +118,12 @@ export default {
118
118
  toggleClass(el, state.cls);
119
119
 
120
120
  if (/\buk-animation-/.test(state.cls)) {
121
- state.off = once(el, 'animationcancel animationend', () =>
122
- removeClasses(el, 'uk-animation-[\\w-]+')
123
- );
121
+ const removeAnimationClasses = () => removeClasses(el, 'uk-animation-[\\w-]+');
122
+ if (inview) {
123
+ state.off = once(el, 'animationcancel animationend', removeAnimationClasses);
124
+ } else {
125
+ removeAnimationClasses();
126
+ }
124
127
  }
125
128
 
126
129
  trigger(el, inview ? 'inview' : 'outview');
@@ -186,7 +186,6 @@ export default {
186
186
 
187
187
  const overflow = Math.max(0, height + offset - windowHeight);
188
188
  const topOffset = getOffset(referenceElement).top;
189
- const offsetParentTop = getOffset(referenceElement.offsetParent).top;
190
189
 
191
190
  const top = parseProp(this.top, this.$el, topOffset);
192
191
  const bottom = parseProp(this.bottom, this.$el, topOffset + height, true);
@@ -202,7 +201,6 @@ export default {
202
201
  offset,
203
202
  overflow,
204
203
  topOffset,
205
- offsetParentTop,
206
204
  height,
207
205
  margin,
208
206
  width: dimensions(isVisible(this.widthElement) ? this.widthElement : this.$el)
@@ -244,6 +242,7 @@ export default {
244
242
  prevDir,
245
243
  scroll,
246
244
  prevScroll,
245
+ offsetParentTop: getOffset(this.$el.offsetParent).top,
247
246
  overflowScroll: clamp(
248
247
  overflowScroll + clamp(scroll, start, end) - clamp(prevScroll, start, end),
249
248
  0,
@@ -80,7 +80,7 @@ export function getCssVar(name) {
80
80
  // https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty
81
81
  export const propName = memoize((name) => vendorPropName(name));
82
82
 
83
- const cssPrefixes = ['webkit', 'moz', 'ms'];
83
+ const cssPrefixes = ['webkit', 'moz'];
84
84
 
85
85
  function vendorPropName(name) {
86
86
  name = hyphenate(name);
@@ -504,27 +504,8 @@ pre code { font-family: @base-pre-font-family; }
504
504
  /* Focus
505
505
  ========================================================================== */
506
506
 
507
- /*
508
- * Safari doesn't support `:focus-visible` yet. It also doesn't set focus if clicking a button or anchor.
509
- * 1. Fallback: Remove `:focus` for a negative tabindexes.
510
- * 2. Fallback: Set `:focus` style but not for negative tabindexes.
511
- * 3. Fallback: Remove `:focus` style for browsers which support `:focus-visible`.
512
- * 4. Set `:focus-visible` style for browsers which support it.
513
- */
514
-
515
- /* 1 */
516
507
  :focus { outline: none; }
517
508
 
518
- /* 2 */
519
- :focus:not([tabindex^='-']) {
520
- outline: @base-focus-outline-width @base-focus-outline-style @base-focus-outline;
521
- outline-offset: @base-focus-outline-offset;
522
- }
523
-
524
- /* 3 */
525
- :focus:not(:focus-visible) { outline: none; }
526
-
527
- /* 4 */
528
509
  :focus-visible { outline: @base-focus-outline-width @base-focus-outline-style @base-focus-outline; }
529
510
 
530
511
 
@@ -310,10 +310,8 @@
310
310
  * Placeholder
311
311
  */
312
312
 
313
- .uk-input::-ms-input-placeholder { color: @form-placeholder-color !important; }
314
313
  .uk-input::placeholder { color: @form-placeholder-color; }
315
314
 
316
- .uk-textarea::-ms-input-placeholder { color: @form-placeholder-color !important; }
317
315
  .uk-textarea::placeholder { color: @form-placeholder-color; }
318
316
 
319
317
 
@@ -423,8 +421,7 @@ select.uk-form-width-xsmall { width: (@form-width-xsmall + 25px); }
423
421
  /*
424
422
  * 1. Remove default style. Also works in Firefox
425
423
  * 2. Style
426
- * 3. Remove default style in IE 10/11
427
- * 4. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
424
+ * 3. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
428
425
  */
429
426
 
430
427
  .uk-select:not([multiple]):not([size]) {
@@ -439,9 +436,6 @@ select.uk-form-width-xsmall { width: (@form-width-xsmall + 25px); }
439
436
  }
440
437
 
441
438
  /* 3 */
442
- .uk-select:not([multiple]):not([size])::-ms-expand { display: none; }
443
-
444
- /* 4 */
445
439
  .uk-select:not([multiple]):not([size]) option { color: @form-select-option-color; }
446
440
 
447
441
  /*
@@ -820,10 +814,8 @@ select.uk-form-width-xsmall { width: (@form-width-xsmall + 25px); }
820
814
  // Placeholder
821
815
  //
822
816
 
823
- .uk-input::-ms-input-placeholder { color: @inverse-form-placeholder-color !important; }
824
817
  .uk-input::placeholder { color: @inverse-form-placeholder-color; }
825
818
 
826
- .uk-textarea::-ms-input-placeholder { color: @inverse-form-placeholder-color !important; }
827
819
  .uk-textarea::placeholder { color: @inverse-form-placeholder-color; }
828
820
 
829
821
  //
@@ -107,15 +107,21 @@ button.uk-icon:not(:disabled) { cursor: pointer; }
107
107
 
108
108
  /*
109
109
  * Display images in icon dimensions
110
+ * 1. Required for `span` with background image
111
+ * 2. Required for `image`
110
112
  */
111
113
 
112
114
  .uk-icon-image {
113
115
  width: @icon-image-size;
114
116
  height: @icon-image-size;
117
+ /* 1 */
115
118
  background-position: 50% 50%;
116
119
  background-repeat: no-repeat;
117
120
  background-size: contain;
118
121
  vertical-align: middle;
122
+ /* 2 */
123
+ object-fit: scale-down;
124
+ max-width: none;
119
125
  }
120
126
 
121
127
 
@@ -94,7 +94,11 @@
94
94
  .uk-list-decimal { counter-reset: decimal; }
95
95
  .uk-list-decimal > * { counter-increment: decimal; }
96
96
 
97
- [class*='uk-list'] > ::before {
97
+ .uk-list-disc > ::before,
98
+ .uk-list-circle > ::before,
99
+ .uk-list-square > ::before,
100
+ .uk-list-decimal > ::before,
101
+ .uk-list-hyphen > ::before {
98
102
  content: "";
99
103
  position: relative;
100
104
  left: -@list-padding-left;
@@ -129,6 +133,7 @@
129
133
 
130
134
  .uk-list-bullet > ::before {
131
135
  content: "";
136
+ display: list-item;
132
137
  position: relative;
133
138
  left: -@list-padding-left;
134
139
  width: @list-padding-left;
@@ -129,7 +129,6 @@
129
129
  .uk-search-input:focus { outline: none; }
130
130
 
131
131
  /* Placeholder */
132
- .uk-search-input:-ms-input-placeholder { color: @search-placeholder-color !important; }
133
132
  .uk-search-input::placeholder { color: @search-placeholder-color; }
134
133
 
135
134
 
@@ -334,10 +333,8 @@
334
333
 
335
334
  .uk-search-input { color: @inverse-search-color; }
336
335
 
337
- .uk-search-input:-ms-input-placeholder { color: @inverse-search-placeholder-color !important; }
338
336
  .uk-search-input::placeholder { color: @inverse-search-placeholder-color; }
339
337
 
340
-
341
338
  //
342
339
  // Icon
343
340
  //
@@ -59,6 +59,7 @@
59
59
  /*
60
60
  * 1. Optimize animation
61
61
  * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`.
62
+ * 3. Disable horizontal panning gestures
62
63
  */
63
64
 
64
65
  .uk-slider-items {
@@ -66,6 +67,8 @@
66
67
  will-change: transform;
67
68
  /* 2 */
68
69
  position: relative;
70
+ /* 3 */
71
+ touch-action: pan-y;
69
72
  }
70
73
 
71
74
  /*
@@ -33,6 +33,7 @@
33
33
  * 2. Reset list
34
34
  * 3. Clip child elements
35
35
  * 4. Prevent displaying the callout information on iOS.
36
+ * 5. Disable horizontal panning gestures
36
37
  */
37
38
 
38
39
  .uk-slideshow-items {
@@ -47,6 +48,8 @@
47
48
  overflow: hidden;
48
49
  /* 4 */
49
50
  -webkit-touch-callout: none;
51
+ /* 5 */
52
+ touch-action: pan-y;
50
53
  }
51
54
 
52
55
 
@@ -358,8 +358,6 @@
358
358
  * https://bugzilla.mozilla.org/show_bug.cgi?id=214004
359
359
  * 2. In Firefox, a floating `::first-letter` doesn't have a line box and there for no `line-height`
360
360
  * https://bugzilla.mozilla.org/show_bug.cgi?id=317933
361
- * 3. Caused by 1.: Edge creates two nested `::first-letter` containers, one for each selector
362
- * This doubles the `font-size` exponential when using the `em` unit.
363
361
  */
364
362
 
365
363
  .uk-dropcap::first-letter,
@@ -381,13 +379,6 @@
381
379
 
382
380
  }
383
381
 
384
- /* 3 */
385
- @supports (-ms-ime-align: auto) {
386
-
387
- .uk-dropcap > p:first-of-type::first-letter { font-size: 1em; }
388
-
389
- }
390
-
391
382
 
392
383
  /* Logo
393
384
  ========================================================================== */
@@ -504,27 +504,8 @@ pre code { font-family: $base-pre-font-family; }
504
504
  /* Focus
505
505
  ========================================================================== */
506
506
 
507
- /*
508
- * Safari doesn't support `:focus-visible` yet. It also doesn't set focus if clicking a button or anchor.
509
- * 1. Fallback: Remove `:focus` for a negative tabindexes.
510
- * 2. Fallback: Set `:focus` style but not for negative tabindexes.
511
- * 3. Fallback: Remove `:focus` style for browsers which support `:focus-visible`.
512
- * 4. Set `:focus-visible` style for browsers which support it.
513
- */
514
-
515
- /* 1 */
516
507
  :focus { outline: none; }
517
508
 
518
- /* 2 */
519
- :focus:not([tabindex^='-']) {
520
- outline: $base-focus-outline-width $base-focus-outline-style $base-focus-outline;
521
- outline-offset: $base-focus-outline-offset;
522
- }
523
-
524
- /* 3 */
525
- :focus:not(:focus-visible) { outline: none; }
526
-
527
- /* 4 */
528
509
  :focus-visible { outline: $base-focus-outline-width $base-focus-outline-style $base-focus-outline; }
529
510
 
530
511
 
@@ -310,10 +310,8 @@ $internal-form-checkbox-indeterminate-image: "data:image/svg+xml;charset=UTF-8,%
310
310
  * Placeholder
311
311
  */
312
312
 
313
- .uk-input::-ms-input-placeholder { color: $form-placeholder-color !important; }
314
313
  .uk-input::placeholder { color: $form-placeholder-color; }
315
314
 
316
- .uk-textarea::-ms-input-placeholder { color: $form-placeholder-color !important; }
317
315
  .uk-textarea::placeholder { color: $form-placeholder-color; }
318
316
 
319
317
 
@@ -423,8 +421,7 @@ select.uk-form-width-xsmall { width: ($form-width-xsmall + 25px); }
423
421
  /*
424
422
  * 1. Remove default style. Also works in Firefox
425
423
  * 2. Style
426
- * 3. Remove default style in IE 10/11
427
- * 4. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
424
+ * 3. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
428
425
  */
429
426
 
430
427
  .uk-select:not([multiple]):not([size]) {
@@ -439,9 +436,6 @@ select.uk-form-width-xsmall { width: ($form-width-xsmall + 25px); }
439
436
  }
440
437
 
441
438
  /* 3 */
442
- .uk-select:not([multiple]):not([size])::-ms-expand { display: none; }
443
-
444
- /* 4 */
445
439
  .uk-select:not([multiple]):not([size]) option { color: $form-select-option-color; }
446
440
 
447
441
  /*
@@ -107,15 +107,21 @@ button.uk-icon:not(:disabled) { cursor: pointer; }
107
107
 
108
108
  /*
109
109
  * Display images in icon dimensions
110
+ * 1. Required for `span` with background image
111
+ * 2. Required for `image`
110
112
  */
111
113
 
112
114
  .uk-icon-image {
113
115
  width: $icon-image-size;
114
116
  height: $icon-image-size;
117
+ /* 1 */
115
118
  background-position: 50% 50%;
116
119
  background-repeat: no-repeat;
117
120
  background-size: contain;
118
121
  vertical-align: middle;
122
+ /* 2 */
123
+ object-fit: scale-down;
124
+ max-width: none;
119
125
  }
120
126
 
121
127
 
@@ -94,7 +94,11 @@ $internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D
94
94
  .uk-list-decimal { counter-reset: decimal; }
95
95
  .uk-list-decimal > * { counter-increment: decimal; }
96
96
 
97
- [class*='uk-list'] > ::before {
97
+ .uk-list-disc > ::before,
98
+ .uk-list-circle > ::before,
99
+ .uk-list-square > ::before,
100
+ .uk-list-decimal > ::before,
101
+ .uk-list-hyphen > ::before {
98
102
  content: "";
99
103
  position: relative;
100
104
  left: (-$list-padding-left);
@@ -129,6 +133,7 @@ $internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D
129
133
 
130
134
  .uk-list-bullet > ::before {
131
135
  content: "";
136
+ display: list-item;
132
137
  position: relative;
133
138
  left: (-$list-padding-left);
134
139
  width: $list-padding-left;
@@ -129,7 +129,6 @@ $search-toggle-hover-color: $global-color !default;
129
129
  .uk-search-input:focus { outline: none; }
130
130
 
131
131
  /* Placeholder */
132
- .uk-search-input:-ms-input-placeholder { color: $search-placeholder-color !important; }
133
132
  .uk-search-input::placeholder { color: $search-placeholder-color; }
134
133
 
135
134
 
@@ -59,6 +59,7 @@ $slider-container-margin-right: -25px !default;
59
59
  /*
60
60
  * 1. Optimize animation
61
61
  * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`.
62
+ * 3. Disable horizontal panning gestures
62
63
  */
63
64
 
64
65
  .uk-slider-items {
@@ -66,6 +67,8 @@ $slider-container-margin-right: -25px !default;
66
67
  will-change: transform;
67
68
  /* 2 */
68
69
  position: relative;
70
+ /* 3 */
71
+ touch-action: pan-y;
69
72
  }
70
73
 
71
74
  /*
@@ -33,6 +33,7 @@
33
33
  * 2. Reset list
34
34
  * 3. Clip child elements
35
35
  * 4. Prevent displaying the callout information on iOS.
36
+ * 5. Disable horizontal panning gestures
36
37
  */
37
38
 
38
39
  .uk-slideshow-items {
@@ -47,6 +48,8 @@
47
48
  overflow: hidden;
48
49
  /* 4 */
49
50
  -webkit-touch-callout: none;
51
+ /* 5 */
52
+ touch-action: pan-y;
50
53
  }
51
54
 
52
55
 
@@ -358,8 +358,6 @@ $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3)
358
358
  * https://bugzilla.mozilla.org/show_bug.cgi?id=214004
359
359
  * 2. In Firefox, a floating `::first-letter` doesn't have a line box and there for no `line-height`
360
360
  * https://bugzilla.mozilla.org/show_bug.cgi?id=317933
361
- * 3. Caused by 1.: Edge creates two nested `::first-letter` containers, one for each selector
362
- * This doubles the `font-size` exponential when using the `em` unit.
363
361
  */
364
362
 
365
363
  .uk-dropcap::first-letter,
@@ -381,13 +379,6 @@ $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3)
381
379
 
382
380
  }
383
381
 
384
- /* 3 */
385
- @supports (-ms-ime-align: auto) {
386
-
387
- .uk-dropcap > p:first-of-type::first-letter { font-size: 1em; }
388
-
389
- }
390
-
391
382
 
392
383
  /* Logo
393
384
  ========================================================================== */
@@ -879,10 +879,8 @@
879
879
  // Placeholder
880
880
  //
881
881
 
882
- .uk-input::-ms-input-placeholder { color: $inverse-form-placeholder-color !important; }
883
882
  .uk-input::placeholder { color: $inverse-form-placeholder-color; }
884
883
 
885
- .uk-textarea::-ms-input-placeholder { color: $inverse-form-placeholder-color !important; }
886
884
  .uk-textarea::placeholder { color: $inverse-form-placeholder-color; }
887
885
 
888
886
  //
@@ -1208,10 +1206,8 @@
1208
1206
 
1209
1207
  .uk-search-input { color: $inverse-search-color; }
1210
1208
 
1211
- .uk-search-input:-ms-input-placeholder { color: $inverse-search-placeholder-color !important; }
1212
1209
  .uk-search-input::placeholder { color: $inverse-search-placeholder-color; }
1213
1210
 
1214
-
1215
1211
  //
1216
1212
  // Icon
1217
1213
  //
@@ -640,10 +640,8 @@
640
640
  // Placeholder
641
641
  //
642
642
 
643
- .uk-input::-ms-input-placeholder { color: $inverse-form-placeholder-color !important; }
644
643
  .uk-input::placeholder { color: $inverse-form-placeholder-color; }
645
644
 
646
- .uk-textarea::-ms-input-placeholder { color: $inverse-form-placeholder-color !important; }
647
645
  .uk-textarea::placeholder { color: $inverse-form-placeholder-color; }
648
646
 
649
647
  //
@@ -962,10 +960,8 @@
962
960
 
963
961
  .uk-search-input { color: $inverse-search-color; }
964
962
 
965
- .uk-search-input:-ms-input-placeholder { color: $inverse-search-placeholder-color !important; }
966
963
  .uk-search-input::placeholder { color: $inverse-search-placeholder-color; }
967
964
 
968
-
969
965
  //
970
966
  // Icon
971
967
  //