uikit 3.8.0 → 3.8.1-dev.3a43322ca

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 +15 -0
  2. package/dist/css/uikit-core-rtl.css +6 -6
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +6 -6
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +6 -6
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +6 -6
  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 +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  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 +1 -1
  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 +17 -8
  37. package/dist/js/uikit-core.min.js +2 -2
  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 +17 -8
  41. package/dist/js/uikit.min.js +2 -2
  42. package/package.json +1 -1
  43. package/src/js/util/viewport.js +13 -7
  44. package/src/less/components/base.less +7 -4
  45. package/src/less/components/padding.less +1 -1
  46. package/src/less/components/utility.less +4 -4
  47. package/src/scss/components/base.scss +7 -4
  48. package/src/scss/components/padding.scss +1 -1
  49. package/src/scss/components/utility.scss +4 -4
  50. package/src/scss/variables-theme.scss +8 -5
  51. package/src/scss/variables.scss +8 -5
  52. package/tests/scroll.html +65 -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.8.0",
5
+ "version": "3.8.1-dev.3a43322ca",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -37,25 +37,31 @@ export function scrollTop(element, top) {
37
37
  export function scrollIntoView(element, {offset: offsetBy = 0} = {}) {
38
38
 
39
39
  const parents = isVisible(element) ? scrollParents(element) : [];
40
- let diff = 0;
41
40
  return parents.reduce((fn, scrollElement, i) => {
42
41
 
43
- const {scrollTop, scrollHeight} = scrollElement;
42
+ const {scrollTop, scrollHeight, offsetHeight} = scrollElement;
44
43
  const maxScroll = scrollHeight - getViewportClientHeight(scrollElement);
44
+ const {height: elHeight, top: elTop} = offset(parents[i - 1] || element);
45
45
 
46
46
  let top = Math.ceil(
47
- offset(parents[i - 1] || element).top
47
+ elTop
48
48
  - offset(getViewport(scrollElement)).top
49
49
  - offsetBy
50
- + diff
51
50
  + scrollTop
52
51
  );
53
52
 
53
+ if (offsetBy > 0 && offsetHeight < elHeight + offsetBy) {
54
+ top += offsetBy;
55
+ } else {
56
+ offsetBy = 0;
57
+ }
58
+
54
59
  if (top > maxScroll) {
55
- diff = top - maxScroll;
60
+ offsetBy -= top - maxScroll;
56
61
  top = maxScroll;
57
- } else {
58
- diff = 0;
62
+ } else if (top < 0) {
63
+ offsetBy -= top;
64
+ top = 0;
59
65
  }
60
66
 
61
67
  return () => scrollTo(scrollElement, top - scrollTop).then(fn);
@@ -76,7 +76,10 @@
76
76
  @base-pre-font-family: @base-code-font-family;
77
77
  @base-pre-color: @global-color;
78
78
 
79
- @base-focus-outline: @global-emphasis-color;
79
+ @base-focus-outline-width: 2px;
80
+ @base-focus-outline-style: dotted;
81
+ @base-focus-outline: @global-emphasis-color;
82
+ @base-focus-outline-offset: 1px;
80
83
 
81
84
  @base-selection-background: #39f;
82
85
  @base-selection-color: @global-inverse-color;
@@ -532,15 +535,15 @@ pre code { font-family: @base-pre-font-family; }
532
535
 
533
536
  /* 2 */
534
537
  :focus:not([tabindex^='-']) {
535
- outline: 2px dotted @base-focus-outline;
536
- outline-offset: 1px;
538
+ outline: @base-focus-outline-width @base-focus-outline-style @base-focus-outline;
539
+ outline-offset: @base-focus-outline-offset;
537
540
  }
538
541
 
539
542
  /* 3 */
540
543
  :focus:not(:focus-visible) { outline: none; }
541
544
 
542
545
  /* 4 */
543
- :focus-visible { outline: 2px dotted @base-focus-outline; }
546
+ :focus-visible { outline: @base-focus-outline-width @base-focus-outline-style @base-focus-outline; }
544
547
 
545
548
 
546
549
  /* Selection pseudo-element
@@ -16,7 +16,7 @@
16
16
 
17
17
  @padding-small-padding: @global-small-gutter;
18
18
 
19
- @padding-large-padding: @global-gutter;
19
+ @padding-large-padding: @global-medium-gutter;
20
20
  @padding-large-padding-l: @global-large-gutter;
21
21
 
22
22
 
@@ -49,8 +49,8 @@
49
49
 
50
50
  @logo-font-size: @global-large-font-size;
51
51
  @logo-font-family: @global-font-family;
52
- @logo-color: @global-color;
53
- @logo-hover-color: @global-color;
52
+ @logo-color: @global-emphasis-color;
53
+ @logo-hover-color: @global-emphasis-color;
54
54
 
55
55
  @dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3);
56
56
 
@@ -470,8 +470,8 @@
470
470
  // Inverse
471
471
  // ========================================================================
472
472
 
473
- @inverse-logo-color: @inverse-global-color;
474
- @inverse-logo-hover-color: @inverse-global-color;
473
+ @inverse-logo-color: @inverse-global-emphasis-color;
474
+ @inverse-logo-hover-color: @inverse-global-emphasis-color;
475
475
 
476
476
  .hook-inverse() {
477
477
 
@@ -76,7 +76,10 @@ $base-pre-line-height: 1.5 !default;
76
76
  $base-pre-font-family: $base-code-font-family !default;
77
77
  $base-pre-color: $global-color !default;
78
78
 
79
- $base-focus-outline: $global-emphasis-color !default;
79
+ $base-focus-outline-width: 2px !default;
80
+ $base-focus-outline-style: dotted !default;
81
+ $base-focus-outline: $global-emphasis-color !default;
82
+ $base-focus-outline-offset: 1px !default;
80
83
 
81
84
  $base-selection-background: #39f !default;
82
85
  $base-selection-color: $global-inverse-color !default;
@@ -532,15 +535,15 @@ pre code { font-family: $base-pre-font-family; }
532
535
 
533
536
  /* 2 */
534
537
  :focus:not([tabindex^='-']) {
535
- outline: 2px dotted $base-focus-outline;
536
- outline-offset: 1px;
538
+ outline: $base-focus-outline-width $base-focus-outline-style $base-focus-outline;
539
+ outline-offset: $base-focus-outline-offset;
537
540
  }
538
541
 
539
542
  /* 3 */
540
543
  :focus:not(:focus-visible) { outline: none; }
541
544
 
542
545
  /* 4 */
543
- :focus-visible { outline: 2px dotted $base-focus-outline; }
546
+ :focus-visible { outline: $base-focus-outline-width $base-focus-outline-style $base-focus-outline; }
544
547
 
545
548
 
546
549
  /* Selection pseudo-element
@@ -16,7 +16,7 @@ $padding-padding-l: $global-medium-gutter !
16
16
 
17
17
  $padding-small-padding: $global-small-gutter !default;
18
18
 
19
- $padding-large-padding: $global-gutter !default;
19
+ $padding-large-padding: $global-medium-gutter !default;
20
20
  $padding-large-padding-l: $global-large-gutter !default;
21
21
 
22
22
 
@@ -49,8 +49,8 @@ $dropcap-font-size: (($global-line-height * 3) * 1e
49
49
 
50
50
  $logo-font-size: $global-large-font-size !default;
51
51
  $logo-font-family: $global-font-family !default;
52
- $logo-color: $global-color !default;
53
- $logo-hover-color: $global-color !default;
52
+ $logo-color: $global-emphasis-color !default;
53
+ $logo-hover-color: $global-emphasis-color !default;
54
54
 
55
55
  $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default;
56
56
 
@@ -470,8 +470,8 @@ $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3)
470
470
  // Inverse
471
471
  // ========================================================================
472
472
 
473
- $inverse-logo-color: $inverse-global-color !default;
474
- $inverse-logo-hover-color: $inverse-global-color !default;
473
+ $inverse-logo-color: $inverse-global-emphasis-color !default;
474
+ $inverse-logo-hover-color: $inverse-global-emphasis-color !default;
475
475
 
476
476
 
477
477
 
@@ -142,7 +142,10 @@ $base-pre-font-size: $global-small-font-size !default;
142
142
  $base-pre-line-height: 1.5 !default;
143
143
  $base-pre-font-family: $base-code-font-family !default;
144
144
  $base-pre-color: $global-color !default;
145
+ $base-focus-outline-width: 2px !default;
146
+ $base-focus-outline-style: dotted !default;
145
147
  $base-focus-outline: $global-emphasis-color !default;
148
+ $base-focus-outline-offset: 1px !default;
146
149
  $base-selection-background: #39f !default;
147
150
  $base-selection-color: $global-inverse-color !default;
148
151
  $inverse-base-color: $inverse-global-color !default;
@@ -798,7 +801,7 @@ $overlay-primary-color-mode: light !default;
798
801
  $padding-padding: $global-gutter !default;
799
802
  $padding-padding-l: $global-medium-gutter !default;
800
803
  $padding-small-padding: $global-small-gutter !default;
801
- $padding-large-padding: $global-gutter !default;
804
+ $padding-large-padding: $global-medium-gutter !default;
802
805
  $padding-large-padding-l: $global-large-gutter !default;
803
806
  $pagination-margin-horizontal: 0 !default;
804
807
  $pagination-item-padding-vertical: 5px !default;
@@ -1041,11 +1044,11 @@ $dropcap-margin-right: 10px !default;
1041
1044
  $dropcap-font-size: (($global-line-height * 3) * 1em) !default;
1042
1045
  $logo-font-size: $global-large-font-size !default;
1043
1046
  $logo-font-family: $global-font-family !default;
1044
- $logo-color: $global-color !default;
1045
- $logo-hover-color: $global-color !default;
1047
+ $logo-color: $global-emphasis-color !default;
1048
+ $logo-hover-color: $global-emphasis-color !default;
1046
1049
  $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default;
1047
- $inverse-logo-color: $inverse-global-color !default;
1048
- $inverse-logo-hover-color: $inverse-global-color !default;
1050
+ $inverse-logo-color: $inverse-global-emphasis-color !default;
1051
+ $inverse-logo-hover-color: $inverse-global-emphasis-color !default;
1049
1052
  $deprecated: false !default;
1050
1053
  $breakpoint-small: 640px !default;
1051
1054
  $breakpoint-medium: 960px !default;
@@ -142,7 +142,10 @@ $base-pre-font-size: $global-small-font-size !default;
142
142
  $base-pre-line-height: 1.5 !default;
143
143
  $base-pre-font-family: $base-code-font-family !default;
144
144
  $base-pre-color: $global-color !default;
145
+ $base-focus-outline-width: 2px !default;
146
+ $base-focus-outline-style: dotted !default;
145
147
  $base-focus-outline: $global-emphasis-color !default;
148
+ $base-focus-outline-offset: 1px !default;
146
149
  $base-selection-background: #39f !default;
147
150
  $base-selection-color: $global-inverse-color !default;
148
151
  $inverse-base-color: $inverse-global-color !default;
@@ -796,7 +799,7 @@ $overlay-primary-color-mode: light !default;
796
799
  $padding-padding: $global-gutter !default;
797
800
  $padding-padding-l: $global-medium-gutter !default;
798
801
  $padding-small-padding: $global-small-gutter !default;
799
- $padding-large-padding: $global-gutter !default;
802
+ $padding-large-padding: $global-medium-gutter !default;
800
803
  $padding-large-padding-l: $global-large-gutter !default;
801
804
  $pagination-margin-horizontal: 0 !default;
802
805
  $pagination-item-padding-vertical: 5px !default;
@@ -1039,11 +1042,11 @@ $dropcap-margin-right: 10px !default;
1039
1042
  $dropcap-font-size: (($global-line-height * 3) * 1em) !default;
1040
1043
  $logo-font-size: $global-large-font-size !default;
1041
1044
  $logo-font-family: $global-font-family !default;
1042
- $logo-color: $global-color !default;
1043
- $logo-hover-color: $global-color !default;
1045
+ $logo-color: $global-emphasis-color !default;
1046
+ $logo-hover-color: $global-emphasis-color !default;
1044
1047
  $dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default;
1045
- $inverse-logo-color: $inverse-global-color !default;
1046
- $inverse-logo-hover-color: $inverse-global-color !default;
1048
+ $inverse-logo-color: $inverse-global-emphasis-color !default;
1049
+ $inverse-logo-hover-color: $inverse-global-emphasis-color !default;
1047
1050
  $deprecated: false !default;
1048
1051
  $breakpoint-small: 640px !default;
1049
1052
  $breakpoint-medium: 960px !default;
package/tests/scroll.html CHANGED
@@ -6,6 +6,15 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
7
  <title>Scroll - UIkit tests</title>
8
8
  <script src="js/test.js"></script>
9
+ <script>
10
+
11
+ UIkit.util.on(document, 'change', '#offset', function (e) {
12
+ UIkit.util.$$('[uk-scroll]').forEach(function (el) {
13
+ el.setAttribute('data-offset', e.target.value);
14
+ })
15
+ })
16
+
17
+ </script>
9
18
  </head>
10
19
 
11
20
  <body>
@@ -14,12 +23,67 @@
14
23
 
15
24
  <h1>Scroll</h1>
16
25
 
26
+ <div class="uk-margin">
27
+ <label class="uk-form-label" for="offset">Offset</label>
28
+ <div class="uk-form-controls">
29
+ <input class="uk-input uk-form-width-small" id="offset" type="text" value="0">
30
+ </div>
31
+ </div>
17
32
  <a class="uk-button uk-button-default" href="#bottom" uk-scroll>Go Down!</a>
33
+ <a class="uk-button uk-button-default" href="#second-card" uk-scroll>Go to second card!</a>
34
+ <a class="uk-button uk-button-default" href="#nested-card" uk-scroll>Go to last nested card!</a>
18
35
  <a id="js-top-callback" class="uk-button uk-button-default" href="#bottom" uk-scroll>Go Down with callback!</a>
19
36
 
20
- <div style="height: 2000px;"></div>
37
+ <div class="uk-flex uk-flex-column uk-flex-center" style="height: 2000px;">
38
+
39
+ <div class="uk-overflow-auto" style="height: 300px;">
40
+ <div class="uk-card uk-card-default uk-card-hover uk-card-body">
41
+ <h3 class="uk-card-title">1</h3>
42
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
43
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
44
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
45
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
46
+ </div>
47
+ <div id="second-card" class="uk-card uk-card-primary uk-card-hover uk-card-body">
48
+ <h3 class="uk-card-title">2</h3>
49
+ <div class="uk-overflow-auto" style="height: 250px;">
50
+ <div class="uk-card uk-card-default uk-card-hover uk-card-body">
51
+ <h3 class="uk-card-title">Nested 1</h3>
52
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
53
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
54
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
55
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
56
+ </div>
57
+ <div class="uk-card uk-card-secondary uk-card-hover uk-card-body">
58
+ <h3 class="uk-card-title">Nested 2</h3>
59
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
60
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
61
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
62
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
63
+ </div>
64
+ <div id="nested-card" class="uk-card uk-card-default uk-card-hover uk-card-body">
65
+ <h3 class="uk-card-title">Nested 3</h3>
66
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
67
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
68
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
69
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ <div class="uk-card uk-card-secondary uk-card-hover uk-card-body">
74
+ <h3 class="uk-card-title">3</h3>
75
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
76
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
77
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
78
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>
79
+ </div>
80
+ </div>
81
+
82
+
83
+ </div>
21
84
 
22
85
  <a id="bottom" class="uk-button uk-button-default" href="#" uk-scroll>Go Up!</a>
86
+ <a class="uk-button uk-button-default" href="#nested-card" uk-scroll>Go to last nested card!</a>
23
87
 
24
88
  <script>
25
89