uikit 3.14.2-dev.1d34cc58b → 3.14.2-dev.447aa311a
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.
- package/CHANGELOG.md +28 -0
- package/dist/css/uikit-core-rtl.css +92 -25
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +92 -25
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +98 -40
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +98 -40
- package/dist/css/uikit.min.css +1 -1
- package/dist/js/components/countdown.js +1 -1
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +1 -1
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +101 -22
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +101 -22
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +1 -1
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +17 -2
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +1 -1
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +1 -1
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +1 -1
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +1 -1
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +1 -1
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +135 -34
- package/dist/js/components/tooltip.min.js +1 -1
- package/dist/js/components/upload.js +1 -1
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +234 -110
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +250 -111
- package/dist/js/uikit.min.js +1 -1
- package/package.json +1 -1
- package/src/js/components/parallax.js +16 -1
- package/src/js/core/accordion.js +3 -3
- package/src/js/core/alert.js +1 -1
- package/src/js/core/drop.js +40 -20
- package/src/js/core/height-viewport.js +14 -9
- package/src/js/core/navbar.js +19 -18
- package/src/js/core/toggle.js +5 -8
- package/src/js/mixin/position.js +44 -13
- package/src/js/mixin/togglable.js +105 -24
- package/src/js/util/animation.js +1 -0
- package/src/js/util/position.js +15 -13
- package/src/js/util/viewport.js +2 -5
- package/src/less/components/drop.less +19 -5
- package/src/less/components/dropdown.less +21 -5
- package/src/less/components/margin.less +13 -14
- package/src/less/components/modal.less +19 -4
- package/src/less/components/nav.less +1 -1
- package/src/less/components/navbar.less +60 -21
- package/src/less/components/offcanvas.less +21 -21
- package/src/less/components/position.less +1 -1
- package/src/less/components/sticky.less +7 -0
- package/src/less/components/utility.less +1 -2
- package/src/less/theme/dropdown.less +11 -0
- package/src/less/theme/navbar.less +10 -12
- package/src/scss/components/drop.scss +19 -5
- package/src/scss/components/dropdown.scss +21 -5
- package/src/scss/components/margin.scss +13 -14
- package/src/scss/components/modal.scss +19 -4
- package/src/scss/components/nav.scss +1 -1
- package/src/scss/components/navbar.scss +49 -10
- package/src/scss/components/offcanvas.scss +21 -21
- package/src/scss/components/position.scss +1 -1
- package/src/scss/components/sticky.scss +7 -0
- package/src/scss/components/utility.scss +1 -2
- package/src/scss/mixins-theme.scss +8 -12
- package/src/scss/mixins.scss +2 -0
- package/src/scss/theme/dropdown.scss +8 -0
- package/src/scss/theme/navbar.scss +7 -0
- package/src/scss/variables-theme.scss +26 -11
- package/src/scss/variables.scss +24 -11
- package/tests/drop.html +145 -2
- package/tests/dropdown.html +228 -13
- package/tests/height-viewport.html +62 -0
- package/tests/navbar.html +321 -14
- package/tests/offcanvas.html +8 -8
- package/tests/sticky-navbar.html +132 -0
- package/tests/sticky-parallax.html +2 -1
- package/tests/sticky.html +5 -4
|
@@ -5,13 +5,15 @@ import {
|
|
|
5
5
|
css,
|
|
6
6
|
fastdom,
|
|
7
7
|
hasClass,
|
|
8
|
-
height,
|
|
9
8
|
includes,
|
|
10
9
|
isBoolean,
|
|
11
10
|
isFunction,
|
|
12
11
|
isVisible,
|
|
13
12
|
noop,
|
|
13
|
+
offset,
|
|
14
14
|
removeClass,
|
|
15
|
+
scrollParents,
|
|
16
|
+
startsWith,
|
|
15
17
|
toFloat,
|
|
16
18
|
toggleClass,
|
|
17
19
|
toNodes,
|
|
@@ -41,7 +43,7 @@ export default {
|
|
|
41
43
|
|
|
42
44
|
initProps: {
|
|
43
45
|
overflow: '',
|
|
44
|
-
|
|
46
|
+
maxHeight: '',
|
|
45
47
|
paddingTop: '',
|
|
46
48
|
paddingBottom: '',
|
|
47
49
|
marginTop: '',
|
|
@@ -51,7 +53,7 @@ export default {
|
|
|
51
53
|
|
|
52
54
|
hideProps: {
|
|
53
55
|
overflow: 'hidden',
|
|
54
|
-
|
|
56
|
+
maxHeight: 0,
|
|
55
57
|
paddingTop: 0,
|
|
56
58
|
paddingBottom: 0,
|
|
57
59
|
marginTop: 0,
|
|
@@ -66,7 +68,7 @@ export default {
|
|
|
66
68
|
},
|
|
67
69
|
|
|
68
70
|
hasTransition({ animation }) {
|
|
69
|
-
return
|
|
71
|
+
return startsWith(animation[0], 'slide');
|
|
70
72
|
},
|
|
71
73
|
},
|
|
72
74
|
|
|
@@ -81,18 +83,13 @@ export default {
|
|
|
81
83
|
return Promise.reject();
|
|
82
84
|
}
|
|
83
85
|
|
|
84
|
-
if (!animate) {
|
|
85
|
-
Animation.cancel(el);
|
|
86
|
-
Transition.cancel(el);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
86
|
const promise = (
|
|
90
87
|
isFunction(animate)
|
|
91
88
|
? animate
|
|
92
89
|
: animate === false || !this.hasAnimation
|
|
93
|
-
? this
|
|
90
|
+
? toggleInstant(this)
|
|
94
91
|
: this.hasTransition
|
|
95
|
-
?
|
|
92
|
+
? toggleTransition(this)
|
|
96
93
|
: toggleAnimation(this)
|
|
97
94
|
)(el, show);
|
|
98
95
|
|
|
@@ -156,7 +153,25 @@ export default {
|
|
|
156
153
|
},
|
|
157
154
|
};
|
|
158
155
|
|
|
159
|
-
|
|
156
|
+
function toggleInstant({ _toggle }) {
|
|
157
|
+
return (el, show) => {
|
|
158
|
+
Animation.cancel(el);
|
|
159
|
+
Transition.cancel(el);
|
|
160
|
+
return _toggle(el, show);
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function toggleTransition(cmp) {
|
|
165
|
+
switch (cmp.animation[0]) {
|
|
166
|
+
case 'slide-left':
|
|
167
|
+
return slideHorizontal(cmp);
|
|
168
|
+
case 'slide-right':
|
|
169
|
+
return slideHorizontal(cmp, true);
|
|
170
|
+
}
|
|
171
|
+
return slide(cmp);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export function slide({
|
|
160
175
|
isToggled,
|
|
161
176
|
duration,
|
|
162
177
|
velocity,
|
|
@@ -167,11 +182,14 @@ export function toggleHeight({
|
|
|
167
182
|
}) {
|
|
168
183
|
return (el, show) => {
|
|
169
184
|
const inProgress = Transition.inProgress(el);
|
|
170
|
-
const inner =
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
185
|
+
const inner =
|
|
186
|
+
!inProgress && el.hasChildNodes()
|
|
187
|
+
? toFloat(css(el.firstElementChild, 'marginTop')) +
|
|
188
|
+
toFloat(css(el.lastElementChild, 'marginBottom'))
|
|
189
|
+
: 0;
|
|
190
|
+
const currentHeight = isVisible(el) ? toFloat(css(el, 'height')) + inner : 0;
|
|
191
|
+
|
|
192
|
+
const props = inProgress ? css(el, Object.keys(initProps)) : show ? hideProps : initProps;
|
|
175
193
|
|
|
176
194
|
Transition.cancel(el);
|
|
177
195
|
|
|
@@ -179,34 +197,97 @@ export function toggleHeight({
|
|
|
179
197
|
_toggle(el, true);
|
|
180
198
|
}
|
|
181
199
|
|
|
182
|
-
|
|
200
|
+
css(el, 'maxHeight', '');
|
|
183
201
|
|
|
184
202
|
// Update child components first
|
|
185
203
|
fastdom.flush();
|
|
186
204
|
|
|
187
|
-
const endHeight =
|
|
188
|
-
duration = velocity *
|
|
205
|
+
const endHeight = toFloat(css(el, 'height')) + inner;
|
|
206
|
+
duration = velocity * endHeight + duration;
|
|
189
207
|
|
|
190
|
-
|
|
208
|
+
css(el, { ...props, maxHeight: currentHeight });
|
|
191
209
|
|
|
192
210
|
return (
|
|
193
211
|
show
|
|
194
212
|
? Transition.start(
|
|
195
213
|
el,
|
|
196
|
-
{ ...initProps, overflow: 'hidden',
|
|
197
|
-
|
|
214
|
+
{ ...initProps, overflow: 'hidden', maxHeight: endHeight },
|
|
215
|
+
duration * (1 - currentHeight / endHeight),
|
|
198
216
|
transition
|
|
199
217
|
)
|
|
200
218
|
: Transition.start(
|
|
201
219
|
el,
|
|
202
220
|
hideProps,
|
|
203
|
-
|
|
221
|
+
duration * (currentHeight / endHeight),
|
|
204
222
|
transition
|
|
205
223
|
).then(() => _toggle(el, false))
|
|
206
224
|
).then(() => css(el, initProps));
|
|
207
225
|
};
|
|
208
226
|
}
|
|
209
227
|
|
|
228
|
+
function slideHorizontal({ isToggled, duration, velocity, transition, _toggle }, right) {
|
|
229
|
+
return (el, show) => {
|
|
230
|
+
const visible = isVisible(el);
|
|
231
|
+
const marginLeft = toFloat(css(el, 'marginLeft'));
|
|
232
|
+
|
|
233
|
+
Transition.cancel(el);
|
|
234
|
+
|
|
235
|
+
const [scrollElement] = scrollParents(el);
|
|
236
|
+
css(scrollElement, 'overflowX', 'hidden');
|
|
237
|
+
|
|
238
|
+
if (!isToggled(el)) {
|
|
239
|
+
_toggle(el, true);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const width = toFloat(css(el, 'width'));
|
|
243
|
+
duration = velocity * width + duration;
|
|
244
|
+
|
|
245
|
+
const percent = visible ? ((width + marginLeft * (right ? -1 : 1)) / width) * 100 : 0;
|
|
246
|
+
const offsetEl = offset(el);
|
|
247
|
+
const useClipPath = right
|
|
248
|
+
? offsetEl.right < scrollElement.clientWidth
|
|
249
|
+
: Math.round(offsetEl.left) > 0;
|
|
250
|
+
|
|
251
|
+
css(el, {
|
|
252
|
+
clipPath: useClipPath
|
|
253
|
+
? right
|
|
254
|
+
? `polygon(0 0,${percent}% 0,${percent}% 100%,0 100%)`
|
|
255
|
+
: `polygon(${100 - percent}% 0,100% 0,100% 100%,${100 - percent}% 100%)`
|
|
256
|
+
: '',
|
|
257
|
+
marginLeft: (((100 - percent) * (right ? 1 : -1)) / 100) * width,
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
return (
|
|
261
|
+
show
|
|
262
|
+
? Transition.start(
|
|
263
|
+
el,
|
|
264
|
+
{
|
|
265
|
+
clipPath: useClipPath ? `polygon(0 0,100% 0,100% 100%,0 100%)` : '',
|
|
266
|
+
marginLeft: 0,
|
|
267
|
+
},
|
|
268
|
+
duration * (1 - percent / 100),
|
|
269
|
+
transition
|
|
270
|
+
)
|
|
271
|
+
: Transition.start(
|
|
272
|
+
el,
|
|
273
|
+
{
|
|
274
|
+
clipPath: useClipPath
|
|
275
|
+
? right
|
|
276
|
+
? `polygon(0 0,0 0,0 100%,0 100%)`
|
|
277
|
+
: `polygon(100% 0,100% 0,100% 100%,100% 100%)`
|
|
278
|
+
: '',
|
|
279
|
+
marginLeft: (right ? 1 : -1) * width,
|
|
280
|
+
},
|
|
281
|
+
duration * (percent / 100),
|
|
282
|
+
transition
|
|
283
|
+
).then(() => _toggle(el, false))
|
|
284
|
+
).then(() => {
|
|
285
|
+
css(scrollElement, 'overflowX', '');
|
|
286
|
+
css(el, { clipPath: '', marginLeft: '' });
|
|
287
|
+
});
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
|
|
210
291
|
function toggleAnimation(cmp) {
|
|
211
292
|
return (el, show) => {
|
|
212
293
|
Animation.cancel(el);
|
package/src/js/util/animation.js
CHANGED
|
@@ -5,6 +5,7 @@ import { startsWith, toNodes } from './lang';
|
|
|
5
5
|
import { addClass, hasClass, removeClass, removeClasses } from './class';
|
|
6
6
|
|
|
7
7
|
export function transition(element, props, duration = 400, timing = 'linear') {
|
|
8
|
+
duration = Math.round(duration);
|
|
8
9
|
return Promise.all(
|
|
9
10
|
toNodes(element).map(
|
|
10
11
|
(element) =>
|
package/src/js/util/position.js
CHANGED
|
@@ -143,19 +143,21 @@ function attachToWithFlip(element, target, options) {
|
|
|
143
143
|
return false;
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
146
|
+
if (flip === true || includes(flip, dirs[1 - i][1])) {
|
|
147
|
+
const newPos = attachToWithFlip(element, target, {
|
|
148
|
+
...options,
|
|
149
|
+
attach: {
|
|
150
|
+
element: elAttach.map(flipDir).reverse(),
|
|
151
|
+
target: targetAttach.map(flipDir).reverse(),
|
|
152
|
+
},
|
|
153
|
+
offset: elOffset.reverse(),
|
|
154
|
+
flip: flip === true ? flip : [...flip, dirs[1 - i][1]],
|
|
155
|
+
recursion: true,
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
|
|
159
|
+
return newPos;
|
|
160
|
+
}
|
|
159
161
|
}
|
|
160
162
|
}
|
|
161
163
|
|
package/src/js/util/viewport.js
CHANGED
|
@@ -128,7 +128,7 @@ export function scrolledOver(element, startOffset = 0, endOffset = 0) {
|
|
|
128
128
|
return clamp((scrollTop - start) / (end - start));
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
export function scrollParents(element, overflowRe = /auto|scroll|hidden/, scrollable = false) {
|
|
131
|
+
export function scrollParents(element, overflowRe = /auto|scroll|hidden|clip/, scrollable = false) {
|
|
132
132
|
const scrollEl = scrollingElement(element);
|
|
133
133
|
|
|
134
134
|
let ancestors = parents(element).reverse();
|
|
@@ -171,10 +171,7 @@ export function offsetViewport(scrollElement) {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
function scrollingElement(element) {
|
|
174
|
-
|
|
175
|
-
document: { scrollingElement },
|
|
176
|
-
} = toWindow(element);
|
|
177
|
-
return scrollingElement;
|
|
174
|
+
return toWindow(element).document.scrollingElement;
|
|
178
175
|
}
|
|
179
176
|
|
|
180
177
|
function getViewport(scrollElement) {
|
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Component: `uk-drop`
|
|
5
5
|
//
|
|
6
|
-
// Modifiers: `uk-drop-
|
|
7
|
-
// `uk-drop-bottom-*`
|
|
8
|
-
// `uk-drop-left-*`
|
|
9
|
-
// `uk-drop-right-*`
|
|
6
|
+
// Modifiers: `uk-drop-stretch`
|
|
10
7
|
// `uk-drop-stack`
|
|
11
8
|
// `uk-drop-grid`
|
|
12
9
|
//
|
|
@@ -22,6 +19,7 @@
|
|
|
22
19
|
|
|
23
20
|
@drop-z-index: @global-z-index + 20;
|
|
24
21
|
@drop-margin: @global-margin;
|
|
22
|
+
@drop-viewport-margin: 15px;
|
|
25
23
|
@drop-width: 300px;
|
|
26
24
|
|
|
27
25
|
|
|
@@ -42,7 +40,7 @@
|
|
|
42
40
|
position: absolute;
|
|
43
41
|
z-index: @drop-z-index;
|
|
44
42
|
--uk-position-offset: @drop-margin;
|
|
45
|
-
--uk-position-viewport-offset:
|
|
43
|
+
--uk-position-viewport-offset: @drop-viewport-margin;
|
|
46
44
|
/* 3 */
|
|
47
45
|
box-sizing: border-box;
|
|
48
46
|
width: @drop-width;
|
|
@@ -52,6 +50,22 @@
|
|
|
52
50
|
.uk-drop.uk-open { display: block; }
|
|
53
51
|
|
|
54
52
|
|
|
53
|
+
/* Stretch modifier
|
|
54
|
+
========================================================================== */
|
|
55
|
+
|
|
56
|
+
/*
|
|
57
|
+
* 1. Allow scrolling
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
.uk-drop-stretch {
|
|
61
|
+
--uk-position-offset: 0;
|
|
62
|
+
--uk-position-viewport-offset: 0;
|
|
63
|
+
/* 1 */
|
|
64
|
+
overflow-y: auto;
|
|
65
|
+
-webkit-overflow-scrolling: touch;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
55
69
|
/* Grid modifiers
|
|
56
70
|
========================================================================== */
|
|
57
71
|
|
|
@@ -5,10 +5,7 @@
|
|
|
5
5
|
//
|
|
6
6
|
// Adopted: `uk-dropdown-nav`
|
|
7
7
|
//
|
|
8
|
-
// Modifiers: `uk-dropdown-
|
|
9
|
-
// `uk-dropdown-bottom-*`
|
|
10
|
-
// `uk-dropdown-left-*`
|
|
11
|
-
// `uk-dropdown-right-*`
|
|
8
|
+
// Modifiers: `uk-dropdown-stretch`
|
|
12
9
|
// `uk-dropdown-stack`
|
|
13
10
|
// `uk-dropdown-grid`
|
|
14
11
|
//
|
|
@@ -22,6 +19,7 @@
|
|
|
22
19
|
|
|
23
20
|
@dropdown-z-index: @global-z-index + 20;
|
|
24
21
|
@dropdown-margin: @global-small-margin;
|
|
22
|
+
@dropdown-viewport-margin: 15px;
|
|
25
23
|
@dropdown-min-width: 200px;
|
|
26
24
|
@dropdown-padding: 15px;
|
|
27
25
|
@dropdown-background: @global-muted-background;
|
|
@@ -55,7 +53,7 @@
|
|
|
55
53
|
position: absolute;
|
|
56
54
|
z-index: @dropdown-z-index;
|
|
57
55
|
--uk-position-offset: @dropdown-margin;
|
|
58
|
-
--uk-position-viewport-offset:
|
|
56
|
+
--uk-position-viewport-offset: @dropdown-viewport-margin;
|
|
59
57
|
/* 3 */
|
|
60
58
|
box-sizing: border-box;
|
|
61
59
|
min-width: @dropdown-min-width;
|
|
@@ -71,6 +69,23 @@
|
|
|
71
69
|
.uk-dropdown.uk-open { display: block; }
|
|
72
70
|
|
|
73
71
|
|
|
72
|
+
/* Stretch modifier
|
|
73
|
+
========================================================================== */
|
|
74
|
+
|
|
75
|
+
/*
|
|
76
|
+
* 1. Allow scrolling
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
.uk-dropdown-stretch {
|
|
80
|
+
--uk-position-offset: 0;
|
|
81
|
+
--uk-position-viewport-offset: 0;
|
|
82
|
+
/* 1 */
|
|
83
|
+
overflow-y: auto;
|
|
84
|
+
-webkit-overflow-scrolling: touch;
|
|
85
|
+
.hook-dropdown-stretch();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
74
89
|
/* Nav
|
|
75
90
|
* Adopts `uk-nav`
|
|
76
91
|
========================================================================== */
|
|
@@ -145,6 +160,7 @@
|
|
|
145
160
|
.hook-dropdown-misc();
|
|
146
161
|
|
|
147
162
|
.hook-dropdown() {}
|
|
163
|
+
.hook-dropdown-stretch() {}
|
|
148
164
|
.hook-dropdown-nav() {}
|
|
149
165
|
.hook-dropdown-nav-item() {}
|
|
150
166
|
.hook-dropdown-nav-item-hover() {}
|
|
@@ -193,20 +193,20 @@
|
|
|
193
193
|
/* Remove
|
|
194
194
|
========================================================================== */
|
|
195
195
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
196
|
+
.uk-margin-remove { margin: 0 !important; }
|
|
197
|
+
.uk-margin-remove-top { margin-top: 0 !important; }
|
|
198
|
+
.uk-margin-remove-bottom { margin-bottom: 0 !important; }
|
|
199
|
+
.uk-margin-remove-left { margin-left: 0 !important; }
|
|
200
|
+
.uk-margin-remove-right { margin-right: 0 !important; }
|
|
201
|
+
|
|
202
|
+
.uk-margin-remove-vertical {
|
|
203
|
+
margin-top: 0 !important;
|
|
204
|
+
margin-bottom: 0 !important;
|
|
205
|
+
}
|
|
206
206
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
.uk-margin-remove-adjacent + *,
|
|
208
|
+
.uk-margin-remove-first-child > :first-child { margin-top: 0 !important; }
|
|
209
|
+
.uk-margin-remove-last-child > :last-child { margin-bottom: 0 !important; }
|
|
210
210
|
|
|
211
211
|
/* Phone landscape and bigger */
|
|
212
212
|
@media (min-width: @breakpoint-small) {
|
|
@@ -241,7 +241,6 @@
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
|
|
244
|
-
|
|
245
244
|
// Hooks
|
|
246
245
|
// ========================================================================
|
|
247
246
|
|
|
@@ -40,15 +40,21 @@
|
|
|
40
40
|
|
|
41
41
|
@modal-container-width: 1200px;
|
|
42
42
|
|
|
43
|
-
@modal-body-padding-horizontal:
|
|
44
|
-
@modal-body-padding-vertical:
|
|
43
|
+
@modal-body-padding-horizontal: 20px;
|
|
44
|
+
@modal-body-padding-vertical: 20px;
|
|
45
|
+
@modal-body-padding-horizontal-s: @global-gutter;
|
|
46
|
+
@modal-body-padding-vertical-s: @global-gutter;
|
|
45
47
|
|
|
46
|
-
@modal-header-padding-horizontal:
|
|
48
|
+
@modal-header-padding-horizontal: 20px;
|
|
47
49
|
@modal-header-padding-vertical: (@modal-header-padding-horizontal / 2);
|
|
50
|
+
@modal-header-padding-horizontal-s: @global-gutter;
|
|
51
|
+
@modal-header-padding-vertical-s: (@modal-header-padding-horizontal-s / 2);
|
|
48
52
|
@modal-header-background: @global-muted-background;
|
|
49
53
|
|
|
50
|
-
@modal-footer-padding-horizontal:
|
|
54
|
+
@modal-footer-padding-horizontal: 20px;
|
|
51
55
|
@modal-footer-padding-vertical: (@modal-footer-padding-horizontal / 2);
|
|
56
|
+
@modal-footer-padding-horizontal-s: @global-gutter;
|
|
57
|
+
@modal-footer-padding-vertical-s: (@modal-footer-padding-horizontal-s / 2);
|
|
52
58
|
@modal-footer-background: @global-muted-background;
|
|
53
59
|
|
|
54
60
|
@modal-title-font-size: @global-xlarge-font-size;
|
|
@@ -228,6 +234,15 @@
|
|
|
228
234
|
.hook-modal-footer();
|
|
229
235
|
}
|
|
230
236
|
|
|
237
|
+
/* Phone landscape and bigger */
|
|
238
|
+
@media (min-width: @breakpoint-small) {
|
|
239
|
+
|
|
240
|
+
.uk-modal-body { padding: @modal-body-padding-vertical-s @modal-body-padding-horizontal-s; }
|
|
241
|
+
.uk-modal-header { padding: @modal-header-padding-vertical-s @modal-header-padding-horizontal-s; }
|
|
242
|
+
.uk-modal-footer { padding: @modal-footer-padding-vertical-s @modal-footer-padding-horizontal-s; }
|
|
243
|
+
|
|
244
|
+
}
|
|
245
|
+
|
|
231
246
|
/*
|
|
232
247
|
* Remove margin from the last-child
|
|
233
248
|
*/
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
@navbar-color-mode: none;
|
|
41
41
|
|
|
42
42
|
@navbar-nav-item-height: 80px;
|
|
43
|
+
@navbar-nav-item-gap: 0;
|
|
43
44
|
@navbar-nav-item-padding-horizontal: 15px;
|
|
44
45
|
@navbar-nav-item-color: @global-muted-color;
|
|
45
46
|
@navbar-nav-item-font-size: @global-font-size;
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
@navbar-nav-item-onclick-color: @global-emphasis-color;
|
|
49
50
|
@navbar-nav-item-active-color: @global-emphasis-color;
|
|
50
51
|
|
|
52
|
+
@navbar-item-padding-horizontal: @navbar-nav-item-padding-horizontal;
|
|
51
53
|
@navbar-item-color: @global-color;
|
|
52
54
|
|
|
53
55
|
@navbar-toggle-color: @global-muted-color;
|
|
@@ -56,11 +58,14 @@
|
|
|
56
58
|
@navbar-subtitle-font-size: @global-small-font-size;
|
|
57
59
|
|
|
58
60
|
@navbar-dropdown-z-index: @global-z-index + 20;
|
|
59
|
-
@navbar-dropdown-margin:
|
|
61
|
+
@navbar-dropdown-margin: 0;
|
|
62
|
+
@navbar-dropdown-shift-margin: 0;
|
|
63
|
+
@navbar-dropdown-viewport-margin: 15px;
|
|
60
64
|
@navbar-dropdown-width: 200px;
|
|
61
65
|
@navbar-dropdown-padding: 15px;
|
|
62
66
|
@navbar-dropdown-background: @global-muted-background;
|
|
63
67
|
@navbar-dropdown-color: @global-color;
|
|
68
|
+
@navbar-dropdown-color-mode: none;
|
|
64
69
|
@navbar-dropdown-grid-gutter-horizontal: @global-gutter;
|
|
65
70
|
@navbar-dropdown-grid-gutter-vertical: @navbar-dropdown-grid-gutter-horizontal;
|
|
66
71
|
|
|
@@ -93,6 +98,7 @@
|
|
|
93
98
|
|
|
94
99
|
.uk-navbar {
|
|
95
100
|
display: flex;
|
|
101
|
+
--uk-navbar-nav-item-gap: @navbar-nav-item-gap;
|
|
96
102
|
/* 1 */
|
|
97
103
|
position: relative;
|
|
98
104
|
.hook-navbar();
|
|
@@ -127,6 +133,7 @@
|
|
|
127
133
|
.uk-navbar-center-left > *,
|
|
128
134
|
.uk-navbar-center-right > * {
|
|
129
135
|
display: flex;
|
|
136
|
+
gap: var(--uk-navbar-nav-item-gap);
|
|
130
137
|
/* 1 */
|
|
131
138
|
align-items: center;
|
|
132
139
|
}
|
|
@@ -168,8 +175,14 @@
|
|
|
168
175
|
top: 0;
|
|
169
176
|
}
|
|
170
177
|
|
|
171
|
-
.uk-navbar-center-left {
|
|
172
|
-
|
|
178
|
+
.uk-navbar-center-left {
|
|
179
|
+
right: 100%; // Fallback if gap is 0
|
|
180
|
+
right: ~'calc(100% + var(--uk-navbar-nav-item-gap))';
|
|
181
|
+
}
|
|
182
|
+
.uk-navbar-center-right {
|
|
183
|
+
left: 100%; // Fallback if gap is 0
|
|
184
|
+
left: ~'calc(100% + var(--uk-navbar-nav-item-gap))';
|
|
185
|
+
}
|
|
173
186
|
|
|
174
187
|
[class*='uk-navbar-center-'] {
|
|
175
188
|
width: max-content;
|
|
@@ -186,6 +199,7 @@
|
|
|
186
199
|
|
|
187
200
|
.uk-navbar-nav {
|
|
188
201
|
display: flex;
|
|
202
|
+
gap: var(--uk-navbar-nav-item-gap);
|
|
189
203
|
/* 1 */
|
|
190
204
|
margin: 0;
|
|
191
205
|
padding: 0;
|
|
@@ -267,6 +281,7 @@
|
|
|
267
281
|
========================================================================== */
|
|
268
282
|
|
|
269
283
|
.uk-navbar-item {
|
|
284
|
+
padding: 0 @navbar-item-padding-horizontal;
|
|
270
285
|
color: @navbar-item-color;
|
|
271
286
|
.hook-navbar-item();
|
|
272
287
|
}
|
|
@@ -362,7 +377,8 @@
|
|
|
362
377
|
position: absolute;
|
|
363
378
|
z-index: @navbar-dropdown-z-index;
|
|
364
379
|
--uk-position-offset: @navbar-dropdown-margin;
|
|
365
|
-
--uk-position-
|
|
380
|
+
--uk-position-shift-offset: @navbar-dropdown-shift-margin;
|
|
381
|
+
--uk-position-viewport-offset: @navbar-dropdown-viewport-margin;
|
|
366
382
|
/* 3 */
|
|
367
383
|
box-sizing: border-box;
|
|
368
384
|
width: @navbar-dropdown-width;
|
|
@@ -377,6 +393,10 @@
|
|
|
377
393
|
/* Show */
|
|
378
394
|
.uk-navbar-dropdown.uk-open { display: block; }
|
|
379
395
|
|
|
396
|
+
|
|
397
|
+
.uk-navbar-dropdown:extend(.uk-light all) when (@navbar-dropdown-color-mode = light) {}
|
|
398
|
+
.uk-navbar-dropdown:extend(.uk-dark all) when (@navbar-dropdown-color-mode = dark) {}
|
|
399
|
+
|
|
380
400
|
/*
|
|
381
401
|
* Grid
|
|
382
402
|
* Adopts `uk-grid`
|
|
@@ -401,22 +421,40 @@
|
|
|
401
421
|
.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) { width: (@navbar-dropdown-width * 4); }
|
|
402
422
|
.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) { width: (@navbar-dropdown-width * 5); }
|
|
403
423
|
|
|
424
|
+
/*
|
|
425
|
+
* Stretch modifier
|
|
426
|
+
* 1. Allow scrolling
|
|
427
|
+
*/
|
|
428
|
+
|
|
429
|
+
.uk-navbar-dropdown-stretch {
|
|
430
|
+
--uk-position-offset: 0;
|
|
431
|
+
--uk-position-shift-offset: 0;
|
|
432
|
+
--uk-position-viewport-offset: 0;
|
|
433
|
+
/* 1 */
|
|
434
|
+
overflow-y: auto;
|
|
435
|
+
-webkit-overflow-scrolling: touch;
|
|
436
|
+
.hook-navbar-dropdown-stretch();
|
|
437
|
+
}
|
|
438
|
+
|
|
404
439
|
/*
|
|
405
440
|
* Dropbar modifier
|
|
406
|
-
* 1.
|
|
407
|
-
* 2.
|
|
408
|
-
* 3.
|
|
441
|
+
* 1. Reset dropdown width to prevent to early shifting
|
|
442
|
+
* 2. Set position
|
|
443
|
+
* 3. Bottom padding for dropbar
|
|
444
|
+
* 4. Horizontal padding
|
|
409
445
|
*/
|
|
410
446
|
|
|
411
447
|
.uk-navbar-dropdown-dropbar {
|
|
412
448
|
/* 1 */
|
|
413
|
-
|
|
414
|
-
--uk-position-viewport-offset: 0;
|
|
449
|
+
width: auto;
|
|
415
450
|
/* 2 */
|
|
416
|
-
|
|
451
|
+
--uk-position-offset: @navbar-dropdown-dropbar-margin-top;
|
|
417
452
|
/* 3 */
|
|
453
|
+
margin-bottom: @navbar-dropdown-dropbar-margin-bottom;
|
|
454
|
+
/* 4 */
|
|
418
455
|
padding-left: @navbar-dropdown-dropbar-padding-horizontal;
|
|
419
456
|
padding-right: @navbar-dropdown-dropbar-padding-horizontal;
|
|
457
|
+
--uk-position-shift-offset: 0;
|
|
420
458
|
.hook-navbar-dropdown-dropbar();
|
|
421
459
|
}
|
|
422
460
|
|
|
@@ -513,24 +551,25 @@
|
|
|
513
551
|
.hook-navbar-nav-item-onclick() {}
|
|
514
552
|
.hook-navbar-nav-item-active() {}
|
|
515
553
|
.hook-navbar-item() {}
|
|
516
|
-
.hook-navbar-toggle(){}
|
|
517
|
-
.hook-navbar-toggle-hover(){}
|
|
518
|
-
.hook-navbar-toggle-icon(){}
|
|
519
|
-
.hook-navbar-toggle-icon-hover(){}
|
|
554
|
+
.hook-navbar-toggle() {}
|
|
555
|
+
.hook-navbar-toggle-hover() {}
|
|
556
|
+
.hook-navbar-toggle-icon() {}
|
|
557
|
+
.hook-navbar-toggle-icon-hover() {}
|
|
520
558
|
.hook-navbar-subtitle() {}
|
|
521
|
-
.hook-navbar-primary(){}
|
|
522
|
-
.hook-navbar-transparent(){}
|
|
523
|
-
.hook-navbar-sticky(){}
|
|
524
|
-
.hook-navbar-dropdown(){}
|
|
525
|
-
.hook-navbar-dropdown-
|
|
526
|
-
.hook-navbar-dropdown-
|
|
559
|
+
.hook-navbar-primary() {}
|
|
560
|
+
.hook-navbar-transparent() {}
|
|
561
|
+
.hook-navbar-sticky() {}
|
|
562
|
+
.hook-navbar-dropdown() {}
|
|
563
|
+
.hook-navbar-dropdown-stretch() {}
|
|
564
|
+
.hook-navbar-dropdown-dropbar() {}
|
|
565
|
+
.hook-navbar-dropdown-nav() {}
|
|
527
566
|
.hook-navbar-dropdown-nav-item() {}
|
|
528
567
|
.hook-navbar-dropdown-nav-item-hover() {}
|
|
529
568
|
.hook-navbar-dropdown-nav-item-active() {}
|
|
530
569
|
.hook-navbar-dropdown-nav-subtitle() {}
|
|
531
570
|
.hook-navbar-dropdown-nav-header() {}
|
|
532
571
|
.hook-navbar-dropdown-nav-divider() {}
|
|
533
|
-
.hook-navbar-dropbar(){}
|
|
572
|
+
.hook-navbar-dropbar() {}
|
|
534
573
|
.hook-navbar-misc() {}
|
|
535
574
|
|
|
536
575
|
|