uikit 3.7.7-dev.8ab84e819 → 3.8.2-dev.713899c03

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 (135) hide show
  1. package/CHANGELOG.md +38 -6
  2. package/build/prefix.js +2 -2
  3. package/build/release.js +12 -16
  4. package/build/scope.js +14 -19
  5. package/build/scss.js +1 -0
  6. package/build/util.js +1 -1
  7. package/dist/css/uikit-core-rtl.css +332 -840
  8. package/dist/css/uikit-core-rtl.min.css +1 -1
  9. package/dist/css/uikit-core.css +332 -840
  10. package/dist/css/uikit-core.min.css +1 -1
  11. package/dist/css/uikit-rtl.css +364 -848
  12. package/dist/css/uikit-rtl.min.css +1 -1
  13. package/dist/css/uikit.css +364 -848
  14. package/dist/css/uikit.min.css +1 -1
  15. package/dist/js/components/countdown.js +1 -1
  16. package/dist/js/components/countdown.min.js +1 -1
  17. package/dist/js/components/filter.js +1 -1
  18. package/dist/js/components/filter.min.js +1 -1
  19. package/dist/js/components/lightbox-panel.js +1 -1
  20. package/dist/js/components/lightbox-panel.min.js +1 -1
  21. package/dist/js/components/lightbox.js +1 -1
  22. package/dist/js/components/lightbox.min.js +1 -1
  23. package/dist/js/components/notification.js +1 -1
  24. package/dist/js/components/notification.min.js +1 -1
  25. package/dist/js/components/parallax.js +1 -1
  26. package/dist/js/components/parallax.min.js +1 -1
  27. package/dist/js/components/slider-parallax.js +1 -1
  28. package/dist/js/components/slider-parallax.min.js +1 -1
  29. package/dist/js/components/slider.js +1 -1
  30. package/dist/js/components/slider.min.js +1 -1
  31. package/dist/js/components/slideshow-parallax.js +1 -1
  32. package/dist/js/components/slideshow-parallax.min.js +1 -1
  33. package/dist/js/components/slideshow.js +1 -1
  34. package/dist/js/components/slideshow.min.js +1 -1
  35. package/dist/js/components/sortable.js +1 -1
  36. package/dist/js/components/sortable.min.js +1 -1
  37. package/dist/js/components/tooltip.js +1 -1
  38. package/dist/js/components/tooltip.min.js +1 -1
  39. package/dist/js/components/upload.js +1 -1
  40. package/dist/js/components/upload.min.js +1 -1
  41. package/dist/js/uikit-core.js +22 -10
  42. package/dist/js/uikit-core.min.js +2 -2
  43. package/dist/js/uikit-icons.js +1 -1
  44. package/dist/js/uikit-icons.min.js +1 -1
  45. package/dist/js/uikit.js +22 -10
  46. package/dist/js/uikit.min.js +2 -2
  47. package/package.json +11 -11
  48. package/src/js/core/sticky.js +5 -2
  49. package/src/js/util/viewport.js +13 -7
  50. package/src/less/components/accordion.less +3 -6
  51. package/src/less/components/alert.less +2 -3
  52. package/src/less/components/animation.less +69 -216
  53. package/src/less/components/badge.less +2 -5
  54. package/src/less/components/base.less +42 -11
  55. package/src/less/components/breadcrumb.less +3 -5
  56. package/src/less/components/button.less +17 -36
  57. package/src/less/components/card.less +7 -7
  58. package/src/less/components/close.less +3 -6
  59. package/src/less/components/cover.less +11 -6
  60. package/src/less/components/dotnav.less +3 -6
  61. package/src/less/components/dropdown.less +1 -3
  62. package/src/less/components/form-range.less +1 -1
  63. package/src/less/components/icon.less +5 -11
  64. package/src/less/components/iconnav.less +3 -6
  65. package/src/less/components/lightbox.less +11 -7
  66. package/src/less/components/link.less +6 -14
  67. package/src/less/components/marker.less +3 -6
  68. package/src/less/components/nav.less +10 -24
  69. package/src/less/components/navbar.less +6 -15
  70. package/src/less/components/notification.less +1 -1
  71. package/src/less/components/padding.less +1 -1
  72. package/src/less/components/pagination.less +3 -5
  73. package/src/less/components/position.less +45 -82
  74. package/src/less/components/search.less +3 -11
  75. package/src/less/components/slidenav.less +3 -6
  76. package/src/less/components/slider.less +0 -4
  77. package/src/less/components/slideshow.less +0 -4
  78. package/src/less/components/spinner.less +2 -2
  79. package/src/less/components/subnav.less +6 -11
  80. package/src/less/components/tab.less +3 -5
  81. package/src/less/components/table.less +3 -3
  82. package/src/less/components/thumbnav.less +3 -6
  83. package/src/less/components/totop.less +3 -6
  84. package/src/less/components/transition.less +48 -40
  85. package/src/less/components/utility.less +7 -10
  86. package/src/less/components/visibility.less +16 -45
  87. package/src/less/theme/button.less +0 -3
  88. package/src/less/theme/form.less +1 -1
  89. package/src/less/theme/table.less +9 -1
  90. package/src/scss/components/accordion.scss +2 -4
  91. package/src/scss/components/alert.scss +2 -3
  92. package/src/scss/components/animation.scss +69 -216
  93. package/src/scss/components/badge.scss +1 -3
  94. package/src/scss/components/base.scss +34 -9
  95. package/src/scss/components/breadcrumb.scss +2 -3
  96. package/src/scss/components/button.scss +12 -25
  97. package/src/scss/components/card.scss +7 -7
  98. package/src/scss/components/close.scss +2 -4
  99. package/src/scss/components/cover.scss +11 -6
  100. package/src/scss/components/dotnav.scss +2 -4
  101. package/src/scss/components/dropdown.scss +1 -3
  102. package/src/scss/components/form-range.scss +1 -1
  103. package/src/scss/components/icon.scss +3 -7
  104. package/src/scss/components/iconnav.scss +2 -4
  105. package/src/scss/components/lightbox.scss +11 -7
  106. package/src/scss/components/link.scss +3 -8
  107. package/src/scss/components/marker.scss +2 -4
  108. package/src/scss/components/nav.scss +6 -16
  109. package/src/scss/components/navbar.scss +6 -13
  110. package/src/scss/components/notification.scss +1 -1
  111. package/src/scss/components/padding.scss +1 -1
  112. package/src/scss/components/pagination.scss +2 -3
  113. package/src/scss/components/position.scss +45 -82
  114. package/src/scss/components/search.scss +2 -9
  115. package/src/scss/components/slidenav.scss +2 -4
  116. package/src/scss/components/slider.scss +0 -4
  117. package/src/scss/components/slideshow.scss +0 -4
  118. package/src/scss/components/spinner.scss +2 -2
  119. package/src/scss/components/subnav.scss +4 -7
  120. package/src/scss/components/tab.scss +2 -3
  121. package/src/scss/components/table.scss +3 -3
  122. package/src/scss/components/thumbnav.scss +2 -4
  123. package/src/scss/components/totop.scss +2 -4
  124. package/src/scss/components/transition.scss +48 -40
  125. package/src/scss/components/utility.scss +6 -8
  126. package/src/scss/components/visibility.scss +16 -45
  127. package/src/scss/mixins-theme.scss +42 -101
  128. package/src/scss/mixins.scss +38 -66
  129. package/src/scss/theme/button.scss +0 -2
  130. package/src/scss/theme/form.scss +1 -1
  131. package/src/scss/theme/table.scss +2 -1
  132. package/src/scss/variables-theme.scss +20 -14
  133. package/src/scss/variables.scss +19 -13
  134. package/tests/scroll.html +65 -1
  135. package/tests/transition.html +4 -10
@@ -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
 
@@ -81,9 +81,8 @@
81
81
  .hook-pagination-item;
82
82
  }
83
83
 
84
- /* Hover + Focus */
85
- .uk-pagination > * > :hover,
86
- .uk-pagination > * > :focus {
84
+ /* Hover */
85
+ .uk-pagination > * > :hover {
87
86
  color: @pagination-item-hover-color;
88
87
  text-decoration: @pagination-item-hover-text-decoration;
89
88
  .hook-pagination-item-hover;
@@ -130,8 +129,7 @@
130
129
  .hook-inverse-pagination-item;
131
130
  }
132
131
 
133
- .uk-pagination > * > :hover,
134
- .uk-pagination > * > :focus {
132
+ .uk-pagination > * > :hover {
135
133
  color: @inverse-pagination-item-hover-color;
136
134
  .hook-inverse-pagination-item-hover;
137
135
  }
@@ -39,12 +39,14 @@
39
39
  Component: Position
40
40
  ========================================================================== */
41
41
 
42
+ :root { --uk-position-margin-offset: 0px; }
43
+
42
44
 
43
45
  /* Directions
44
46
  ========================================================================== */
45
47
 
46
48
  /*
47
- * 1. Prevent content overflow if `max-width: 100%` is used inside position container.
49
+ * 1. Prevent content overflow.
48
50
  */
49
51
 
50
52
  [class*='uk-position-top'],
@@ -54,14 +56,15 @@
54
56
  [class*='uk-position-center'] {
55
57
  position: absolute !important;
56
58
  /* 1 */
57
- max-width: 100%;
59
+ max-width: ~'calc(100% - (var(--uk-position-margin-offset) * 2))';
60
+ box-sizing: border-box;
58
61
  }
59
62
 
63
+ /*
64
+ * Edges
65
+ * Don't use `width: 100%` because it's wrong if the parent has padding.
66
+ */
60
67
 
61
- /* Edges
62
- ========================================================================== */
63
-
64
- /* Don't use `width: 100%` because it is wrong if the parent has padding. */
65
68
  .uk-position-top {
66
69
  top: 0;
67
70
  left: 0;
@@ -86,9 +89,9 @@
86
89
  right: 0;
87
90
  }
88
91
 
89
-
90
- /* Corners
91
- ========================================================================== */
92
+ /*
93
+ * Corners
94
+ */
92
95
 
93
96
  .uk-position-top-left {
94
97
  top: 0;
@@ -113,23 +116,25 @@
113
116
  /*
114
117
  * Center
115
118
  * 1. Fix text wrapping if content is larger than 50% of the container.
119
+ * Using `max-content` requires `max-width` of 100% which is set generally.
116
120
  */
117
121
 
118
122
  .uk-position-center {
119
- top: 50%;
120
- left: 50%;
121
- transform: translate(-50%,-50%);
123
+ top: ~'calc(50% - var(--uk-position-margin-offset))';
124
+ left: ~'calc(50% - var(--uk-position-margin-offset))';
125
+ --uk-position-translate-x: -50%;
126
+ --uk-position-translate-y: -50%;
127
+ transform: translate(var(--uk-position-translate-x), var(--uk-position-translate-y));
122
128
  /* 1 */
123
129
  width: max-content;
124
- max-width: 100%;
125
- box-sizing: border-box;
126
130
  }
127
131
 
128
132
  /* Vertical */
129
133
  [class*='uk-position-center-left'],
130
134
  [class*='uk-position-center-right'] {
131
- top: 50%;
132
- transform: translateY(-50%);
135
+ top: ~'calc(50% - var(--uk-position-margin-offset))';
136
+ --uk-position-translate-y: -50%;
137
+ transform: translate(0, var(--uk-position-translate-y));
133
138
  }
134
139
 
135
140
  .uk-position-center-left { left: 0; }
@@ -148,20 +153,19 @@
148
153
  /* Horizontal */
149
154
  .uk-position-top-center,
150
155
  .uk-position-bottom-center {
151
- left: 50%;
152
- transform: translateX(-50%);
156
+ left: ~'calc(50% - var(--uk-position-margin-offset))';
157
+ --uk-position-translate-x: -50%;
158
+ transform: translate(var(--uk-position-translate-x), 0);
153
159
  /* 1 */
154
160
  width: max-content;
155
- max-width: 100%;
156
- box-sizing: border-box;
157
161
  }
158
162
 
159
163
  .uk-position-top-center { top: 0; }
160
164
  .uk-position-bottom-center { bottom: 0; }
161
165
 
162
-
163
- /* Cover
164
- ========================================================================== */
166
+ /*
167
+ * Cover
168
+ */
165
169
 
166
170
  .uk-position-cover {
167
171
  position: absolute;
@@ -172,89 +176,48 @@
172
176
  }
173
177
 
174
178
 
175
- /* Utility
176
- ========================================================================== */
177
-
178
- .uk-position-relative { position: relative !important; }
179
-
180
- .uk-position-absolute { position: absolute !important; }
181
-
182
- .uk-position-fixed { position: fixed !important; }
183
-
184
- .uk-position-z-index { z-index: 1; }
185
-
186
-
187
- /* Margin modifier
179
+ /* Margin
188
180
  ========================================================================== */
189
181
 
190
- /*
191
- * Small
192
- */
193
-
194
182
  .uk-position-small {
195
- max-width: ~'calc(100% - (@{position-small-margin} * 2))';
196
183
  margin: @position-small-margin;
184
+ --uk-position-margin-offset: @position-small-margin;
197
185
  }
198
186
 
199
- .uk-position-small.uk-position-center { transform: translate(-50%, -50%) translate(-@position-small-margin, -@position-small-margin); }
200
-
201
- .uk-position-small[class*='uk-position-center-left'],
202
- .uk-position-small[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-@position-small-margin); }
203
-
204
- .uk-position-small.uk-position-top-center,
205
- .uk-position-small.uk-position-bottom-center { transform: translateX(-50%) translateX(-@position-small-margin); }
206
-
207
- /*
208
- * Medium
209
- */
210
-
211
187
  .uk-position-medium {
212
- max-width: ~'calc(100% - (@{position-medium-margin} * 2))';
213
188
  margin: @position-medium-margin;
189
+ --uk-position-margin-offset: @position-medium-margin;
214
190
  }
215
191
 
216
- .uk-position-medium.uk-position-center { transform: translate(-50%, -50%) translate(-@position-medium-margin, -@position-medium-margin); }
217
-
218
- .uk-position-medium[class*='uk-position-center-left'],
219
- .uk-position-medium[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-@position-medium-margin); }
220
-
221
- .uk-position-medium.uk-position-top-center,
222
- .uk-position-medium.uk-position-bottom-center { transform: translateX(-50%) translateX(-@position-medium-margin); }
223
-
224
- /*
225
- * Large
226
- */
227
-
228
192
  .uk-position-large {
229
- max-width: ~'calc(100% - (@{position-large-margin} * 2))';
230
193
  margin: @position-large-margin;
194
+ --uk-position-margin-offset: @position-large-margin;
231
195
  }
232
196
 
233
- .uk-position-large.uk-position-center { transform: translate(-50%, -50%) translate(-@position-large-margin, -@position-large-margin); }
234
-
235
- .uk-position-large[class*='uk-position-center-left'],
236
- .uk-position-large[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-@position-large-margin); }
237
-
238
- .uk-position-large.uk-position-top-center,
239
- .uk-position-large.uk-position-bottom-center { transform: translateX(-50%) translateX(-@position-large-margin); }
240
-
241
197
  /* Desktop and bigger */
242
198
  @media (min-width: @breakpoint-large) {
243
199
 
244
200
  .uk-position-large {
245
- max-width: ~'calc(100% - (@{position-large-margin-l} * 2))';
246
201
  margin: @position-large-margin-l;
202
+ --uk-position-margin-offset: @position-large-margin-l;
247
203
  }
248
204
 
249
- .uk-position-large.uk-position-center { transform: translate(-50%, -50%) translate(-@position-large-margin-l, -@position-large-margin-l); }
205
+ }
206
+
250
207
 
251
- .uk-position-large[class*='uk-position-center-left'],
252
- .uk-position-large[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-@position-large-margin-l); }
208
+ /* Schemes
209
+ ========================================================================== */
253
210
 
254
- .uk-position-large.uk-position-top-center,
255
- .uk-position-large.uk-position-bottom-center { transform: translateX(-50%) translateX(-@position-large-margin-l); }
211
+ .uk-position-relative { position: relative !important; }
212
+ .uk-position-absolute { position: absolute !important; }
213
+ .uk-position-fixed { position: fixed !important; }
214
+ .uk-position-sticky { position: sticky !important; }
256
215
 
257
- }
216
+
217
+ /* Layer
218
+ ========================================================================== */
219
+
220
+ .uk-position-z-index { z-index: 1; }
258
221
 
259
222
 
260
223
  // Hooks
@@ -133,12 +133,6 @@
133
133
  /* Icon (Adopts `uk-icon`)
134
134
  ========================================================================== */
135
135
 
136
- /*
137
- * Remove default focus style
138
- */
139
-
140
- .uk-search-icon:focus { outline: none; }
141
-
142
136
  /*
143
137
  * Position above input
144
138
  * 1. Set position
@@ -275,9 +269,8 @@
275
269
  .hook-search-toggle;
276
270
  }
277
271
 
278
- /* Hover + Focus */
279
- .uk-search-toggle:hover,
280
- .uk-search-toggle:focus {
272
+ /* Hover */
273
+ .uk-search-toggle:hover {
281
274
  color: @search-toggle-hover-color;
282
275
  .hook-search-toggle-hover;
283
276
  }
@@ -370,8 +363,7 @@
370
363
  .hook-inverse-search-toggle;
371
364
  }
372
365
 
373
- .uk-search-toggle:hover,
374
- .uk-search-toggle:focus {
366
+ .uk-search-toggle:hover {
375
367
  color: @inverse-search-toggle-hover-color;
376
368
  .hook-inverse-search-toggle-hover;
377
369
  }
@@ -40,11 +40,9 @@
40
40
  .hook-slidenav;
41
41
  }
42
42
 
43
- /* Hover + Focus */
44
- .uk-slidenav:hover,
45
- .uk-slidenav:focus {
43
+ /* Hover */
44
+ .uk-slidenav:hover {
46
45
  color: @slidenav-hover-color;
47
- outline: none;
48
46
  .hook-slidenav-hover;
49
47
  }
50
48
 
@@ -122,8 +120,7 @@
122
120
  .hook-inverse-slidenav;
123
121
  }
124
122
 
125
- .uk-slidenav:hover,
126
- .uk-slidenav:focus {
123
+ .uk-slidenav:hover {
127
124
  color: @inverse-slidenav-hover-color;
128
125
  .hook-inverse-slidenav-hover;
129
126
  }
@@ -94,7 +94,6 @@
94
94
  * `max-width` needed to keep image responsiveness and prevent content overflow
95
95
  * 3. Create position context
96
96
  * 4. Disable horizontal panning gestures in IE11 and Edge
97
- * 5. Suppress outline on focus
98
97
  */
99
98
 
100
99
  .uk-slider-items > * {
@@ -107,9 +106,6 @@
107
106
  touch-action: pan-y;
108
107
  }
109
108
 
110
- /* 5 */
111
- .uk-slider-items > :focus { outline: none; }
112
-
113
109
 
114
110
  // Hooks
115
111
  // ========================================================================
@@ -59,7 +59,6 @@
59
59
  * 3. Clip child elements, e.g. for `uk-cover`
60
60
  * 4. Optimize animation
61
61
  * 5. Disable horizontal panning gestures in IE11 and Edge
62
- * 6. Suppress outline on focus
63
62
  */
64
63
 
65
64
  .uk-slideshow-items > * {
@@ -78,9 +77,6 @@
78
77
  touch-action: pan-y;
79
78
  }
80
79
 
81
- /* 6 */
82
- .uk-slideshow-items > :focus { outline: none; }
83
-
84
80
  /*
85
81
  * Hide not active items
86
82
  */
@@ -11,7 +11,7 @@
11
11
 
12
12
  @spinner-size: 30px;
13
13
  @spinner-stroke-width: 1;
14
- @spinner-radius: floor((@spinner-size - @spinner-stroke-width) / 2); // Minus stroke width to prevent overflow clipping
14
+ @spinner-radius: floor(((@spinner-size - @spinner-stroke-width) / 2)); // Minus stroke width to prevent overflow clipping
15
15
  @spinner-circumference: round(2 * 3.141 * @spinner-radius);
16
16
  @spinner-duration: 1.4s;
17
17
 
@@ -55,7 +55,7 @@
55
55
  @keyframes uk-spinner-dash {
56
56
  0% { stroke-dashoffset: @spinner-circumference; }
57
57
  50% {
58
- stroke-dashoffset: @spinner-circumference/4;
58
+ stroke-dashoffset: (@spinner-circumference / 4);
59
59
  transform:rotate(135deg);
60
60
  }
61
61
  100% {
@@ -104,12 +104,10 @@
104
104
  .hook-subnav-item;
105
105
  }
106
106
 
107
- /* Hover + Focus */
108
- .uk-subnav > * > a:hover,
109
- .uk-subnav > * > a:focus {
107
+ /* Hover */
108
+ .uk-subnav > * > a:hover {
110
109
  color: @subnav-item-hover-color;
111
110
  text-decoration: @subnav-item-hover-text-decoration;
112
- outline: none;
113
111
  .hook-subnav-item-hover;
114
112
  }
115
113
 
@@ -168,9 +166,8 @@
168
166
  .hook-subnav-pill-item;
169
167
  }
170
168
 
171
- /* Hover + Focus */
172
- .uk-subnav-pill > * > a:hover,
173
- .uk-subnav-pill > * > a:focus {
169
+ /* Hover */
170
+ .uk-subnav-pill > * > a:hover {
174
171
  background-color: @subnav-pill-item-hover-background;
175
172
  color: @subnav-pill-item-hover-color;
176
173
  .hook-subnav-pill-item-hover;
@@ -243,8 +240,7 @@
243
240
  .hook-inverse-subnav-item;
244
241
  }
245
242
 
246
- .uk-subnav > * > a:hover,
247
- .uk-subnav > * > a:focus {
243
+ .uk-subnav > * > a:hover {
248
244
  color: @inverse-subnav-item-hover-color;
249
245
  .hook-inverse-subnav-item-hover;
250
246
  }
@@ -273,8 +269,7 @@
273
269
  .hook-inverse-subnav-pill-item;
274
270
  }
275
271
 
276
- .uk-subnav-pill > * > a:hover,
277
- .uk-subnav-pill > * > a:focus {
272
+ .uk-subnav-pill > * > a:hover {
278
273
  background-color: @inverse-subnav-pill-item-hover-background;
279
274
  color: @inverse-subnav-pill-item-hover-color;
280
275
  .hook-inverse-subnav-pill-item-hover;
@@ -90,9 +90,8 @@
90
90
  .hook-tab-item;
91
91
  }
92
92
 
93
- /* Hover + Focus */
94
- .uk-tab > * > a:hover,
95
- .uk-tab > * > a:focus {
93
+ /* Hover */
94
+ .uk-tab > * > a:hover {
96
95
  color: @tab-item-hover-color;
97
96
  text-decoration: @tab-item-hover-text-decoration;
98
97
  .hook-tab-item-hover;
@@ -199,8 +198,7 @@
199
198
  .hook-inverse-tab-item;
200
199
  }
201
200
 
202
- .uk-tab > * > a:hover,
203
- .uk-tab > * > a:focus{
201
+ .uk-tab > * > a:hover {
204
202
  color: @inverse-tab-item-hover-color;
205
203
  .hook-inverse-tab-item-hover;
206
204
  }
@@ -261,11 +261,11 @@
261
261
 
262
262
  .uk-table-responsive th:not(:first-child):not(.uk-table-link),
263
263
  .uk-table-responsive td:not(:first-child):not(.uk-table-link),
264
- .uk-table-responsive .uk-table-link:not(:first-child) > a { padding-top: round(@table-cell-padding-vertical / 3) !important; }
264
+ .uk-table-responsive .uk-table-link:not(:first-child) > a { padding-top: round((@table-cell-padding-vertical / 3)) !important; }
265
265
 
266
266
  .uk-table-responsive th:not(:last-child):not(.uk-table-link),
267
267
  .uk-table-responsive td:not(:last-child):not(.uk-table-link),
268
- .uk-table-responsive .uk-table-link:not(:last-child) > a { padding-bottom: round(@table-cell-padding-vertical / 3) !important; }
268
+ .uk-table-responsive .uk-table-link:not(:last-child) > a { padding-bottom: round((@table-cell-padding-vertical / 3)) !important; }
269
269
 
270
270
  .uk-table-justify.uk-table-responsive th,
271
271
  .uk-table-justify.uk-table-responsive td {
@@ -349,4 +349,4 @@
349
349
  .hook-inverse-table-row-active() {}
350
350
  .hook-inverse-table-divider() {}
351
351
  .hook-inverse-table-striped() {}
352
- .hook-inverse-table-hover() {}
352
+ .hook-inverse-table-hover() {}
@@ -63,10 +63,8 @@
63
63
  .hook-thumbnav-item;
64
64
  }
65
65
 
66
- /* Hover + Focus */
67
- .uk-thumbnav > * > :hover,
68
- .uk-thumbnav > * > :focus {
69
- outline: none;
66
+ /* Hover */
67
+ .uk-thumbnav > * > :hover {
70
68
  .hook-thumbnav-item-hover;
71
69
  }
72
70
 
@@ -120,8 +118,7 @@
120
118
  .hook-inverse-thumbnav-item;
121
119
  }
122
120
 
123
- .uk-thumbnav > * > :hover,
124
- .uk-thumbnav > * > :focus {
121
+ .uk-thumbnav > * > :hover {
125
122
  .hook-inverse-thumbnav-item-hover;
126
123
  }
127
124
 
@@ -31,11 +31,9 @@
31
31
  .hook-totop;
32
32
  }
33
33
 
34
- /* Hover + Focus */
35
- .uk-totop:hover,
36
- .uk-totop:focus {
34
+ /* Hover */
35
+ .uk-totop:hover {
37
36
  color: @totop-hover-color;
38
- outline: none;
39
37
  .hook-totop-hover;
40
38
  }
41
39
 
@@ -71,8 +69,7 @@
71
69
  .hook-inverse-totop;
72
70
  }
73
71
 
74
- .uk-totop:hover,
75
- .uk-totop:focus {
72
+ .uk-totop:hover {
76
73
  color: @inverse-totop-hover-color;
77
74
  .hook-inverse-totop-hover;
78
75
  }
@@ -38,26 +38,6 @@
38
38
  Component: Transition
39
39
  ========================================================================== */
40
40
 
41
-
42
- /* Toggle (Hover + Focus)
43
- ========================================================================== */
44
-
45
- /*
46
- * 1. Prevent tab highlighting on iOS.
47
- */
48
-
49
- .uk-transition-toggle {
50
- /* 1 */
51
- -webkit-tap-highlight-color: transparent;
52
- }
53
-
54
- /*
55
- * Remove outline for `tabindex`
56
- */
57
-
58
- .uk-transition-toggle:focus { outline: none; }
59
-
60
-
61
41
  /* Transitions
62
42
  ========================================================================== */
63
43
 
@@ -66,14 +46,25 @@
66
46
  * 1. Using `:focus` and tabindex
67
47
  * 2. Using `:hover` and a `touchstart` event listener registered on the document
68
48
  * (Doesn't work on Surface touch devices)
69
- *
70
- * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform`,
71
- * therefore it's recommended to use an extra `div` for the transition.
72
49
  */
73
50
 
51
+ :where(.uk-transition-fade),
52
+ :where([class*='uk-transition-scale']),
53
+ :where([class*='uk-transition-slide']) {
54
+ --uk-position-translate-x: 0;
55
+ --uk-position-translate-y: 0;
56
+ }
57
+
74
58
  .uk-transition-fade,
75
59
  [class*='uk-transition-scale'],
76
60
  [class*='uk-transition-slide'] {
61
+ --uk-translate-x: 0;
62
+ --uk-translate-y: 0;
63
+ --uk-scale-x: 1;
64
+ --uk-scale-y: 1;
65
+ transform: translate(var(--uk-position-translate-x), var(--uk-position-translate-y))
66
+ translate(var(--uk-translate-x), var(--uk-translate-y))
67
+ scale(var(--uk-scale-x), var(--uk-scale-y));
77
68
  transition: @transition-duration ease-out;
78
69
  transition-property: opacity, transform, filter;
79
70
  opacity: 0;
@@ -85,55 +76,72 @@
85
76
 
86
77
  .uk-transition-toggle:hover .uk-transition-fade,
87
78
  .uk-transition-toggle:focus .uk-transition-fade,
79
+ .uk-transition-toggle .uk-transition-fade:focus-within,
88
80
  .uk-transition-active.uk-active .uk-transition-fade { opacity: 1; }
89
81
 
90
82
  /*
91
83
  * Scale
84
+ * 1. Make image rendering the same during the transition as before and after. Prefixed because of Safari.
92
85
  */
93
86
 
94
- .uk-transition-scale-up { transform: scale(1,1); }
95
- .uk-transition-scale-down { transform: scale(@transition-scale,@transition-scale); }
87
+ /* 1 */
88
+ [class*='uk-transition-scale'] { -webkit-backface-visibility: hidden; }
89
+
90
+ .uk-transition-scale-up {
91
+ --uk-scale-x: 1;
92
+ --uk-scale-y: 1;
93
+ }
94
+ .uk-transition-scale-down {
95
+ --uk-scale-x: @transition-scale;
96
+ --uk-scale-y: @transition-scale;
97
+ }
96
98
 
97
99
  /* Show */
98
100
  .uk-transition-toggle:hover .uk-transition-scale-up,
99
101
  .uk-transition-toggle:focus .uk-transition-scale-up,
102
+ .uk-transition-toggle .uk-transition-scale-up:focus-within,
100
103
  .uk-transition-active.uk-active .uk-transition-scale-up {
104
+ --uk-scale-x: @transition-scale;
105
+ --uk-scale-y: @transition-scale;
101
106
  opacity: 1;
102
- transform: scale(@transition-scale,@transition-scale);
103
107
  }
104
108
 
105
109
  .uk-transition-toggle:hover .uk-transition-scale-down,
106
110
  .uk-transition-toggle:focus .uk-transition-scale-down,
111
+ .uk-transition-toggle .uk-transition-scale-down:focus-within,
107
112
  .uk-transition-active.uk-active .uk-transition-scale-down {
113
+ --uk-scale-x: 1;
114
+ --uk-scale-y: 1;
108
115
  opacity: 1;
109
- transform: scale(1,1);
110
116
  }
111
117
 
112
118
  /*
113
119
  * Slide
114
120
  */
115
121
 
116
- .uk-transition-slide-top { transform: translateY(-100%); }
117
- .uk-transition-slide-bottom { transform: translateY(100%); }
118
- .uk-transition-slide-left { transform: translateX(-100%); }
119
- .uk-transition-slide-right { transform: translateX(100%); }
122
+ .uk-transition-slide-top { --uk-translate-y: -100%; }
123
+ .uk-transition-slide-bottom { --uk-translate-y: 100%; }
124
+ .uk-transition-slide-left { --uk-translate-x: -100%; }
125
+ .uk-transition-slide-right { --uk-translate-x: 100%; }
120
126
 
121
- .uk-transition-slide-top-small { transform: translateY(-@transition-slide-small-translate); }
122
- .uk-transition-slide-bottom-small { transform: translateY(@transition-slide-small-translate); }
123
- .uk-transition-slide-left-small { transform: translateX(-@transition-slide-small-translate); }
124
- .uk-transition-slide-right-small { transform: translateX(@transition-slide-small-translate); }
127
+ .uk-transition-slide-top-small { --uk-translate-y: ~'calc(-1 * @{transition-slide-small-translate})'; }
128
+ .uk-transition-slide-bottom-small { --uk-translate-y: @transition-slide-small-translate; }
129
+ .uk-transition-slide-left-small { --uk-translate-x: ~'calc(-1 * @{transition-slide-small-translate})'; }
130
+ .uk-transition-slide-right-small { --uk-translate-x: @transition-slide-small-translate; }
125
131
 
126
- .uk-transition-slide-top-medium { transform: translateY(-@transition-slide-medium-translate); }
127
- .uk-transition-slide-bottom-medium { transform: translateY(@transition-slide-medium-translate); }
128
- .uk-transition-slide-left-medium { transform: translateX(-@transition-slide-medium-translate); }
129
- .uk-transition-slide-right-medium { transform: translateX(@transition-slide-medium-translate); }
132
+ .uk-transition-slide-top-medium { --uk-translate-y: ~'calc(-1 * @{transition-slide-medium-translate})'; }
133
+ .uk-transition-slide-bottom-medium { --uk-translate-y: @transition-slide-medium-translate; }
134
+ .uk-transition-slide-left-medium { --uk-translate-x: ~'calc(-1 * @{transition-slide-medium-translate})'; }
135
+ .uk-transition-slide-right-medium { --uk-translate-x: @transition-slide-medium-translate; }
130
136
 
131
137
  /* Show */
132
138
  .uk-transition-toggle:hover [class*='uk-transition-slide'],
133
139
  .uk-transition-toggle:focus [class*='uk-transition-slide'],
140
+ .uk-transition-toggle [class*='uk-transition-slide']:focus-within,
134
141
  .uk-transition-active.uk-active [class*='uk-transition-slide'] {
142
+ --uk-translate-x: 0;
143
+ --uk-translate-y: 0;
135
144
  opacity: 1;
136
- transform: translate(0,0);
137
145
  }
138
146
 
139
147