uikit 3.14.1-dev.eeb4cd6ae → 3.14.2-dev.404bdcedf
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 +21 -3
- package/build/util.js +8 -2
- package/dist/css/uikit-core-rtl.css +12 -1
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +12 -1
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +15 -14
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +15 -14
- 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 +2 -2
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +19 -2
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +19 -2
- 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 +2 -2
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +2 -2
- 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 +2 -2
- 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 +38 -16
- 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 +88 -56
- 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 +90 -58
- package/dist/js/uikit.min.js +1 -1
- package/package.json +11 -11
- package/src/js/api/hooks.js +1 -1
- package/src/js/components/filter.js +1 -1
- package/src/js/core/drop.js +16 -7
- package/src/js/core/height-viewport.js +1 -2
- package/src/js/core/margin.js +1 -1
- package/src/js/core/scrollspy.js +2 -1
- package/src/js/core/toggle.js +4 -0
- package/src/js/mixin/parallax.js +1 -1
- package/src/js/mixin/position.js +18 -23
- package/src/js/mixin/togglable.js +18 -1
- package/src/js/util/position.js +24 -22
- package/src/js/util/viewport.js +5 -9
- package/src/less/components/drop.less +1 -0
- package/src/less/components/dropdown.less +1 -0
- package/src/less/components/navbar.less +16 -2
- package/src/less/components/tooltip.less +1 -0
- package/src/less/theme/navbar.less +3 -10
- package/src/scss/components/drop.scss +1 -0
- package/src/scss/components/dropdown.scss +1 -0
- package/src/scss/components/navbar.scss +16 -2
- package/src/scss/components/tooltip.scss +1 -0
- package/src/scss/mixins-theme.scss +0 -10
- package/src/scss/theme/navbar.scss +3 -0
- package/src/scss/variables-theme.scss +3 -1
- package/src/scss/variables.scss +2 -0
- package/tests/drop.html +20 -2
- package/tests/dropdown.html +6 -0
- package/tests/navbar.html +21 -59
- package/tests/notification.html +1 -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.14.
|
|
5
|
+
"version": "3.14.2-dev.404bdcedf",
|
|
6
6
|
"main": "dist/js/uikit.js",
|
|
7
7
|
"style": "dist/css/uikit.css",
|
|
8
8
|
"sideEffects": [
|
|
@@ -34,32 +34,32 @@
|
|
|
34
34
|
},
|
|
35
35
|
"homepage": "https://getuikit.com",
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@babel/core": "^7.17.
|
|
38
|
-
"@babel/preset-env": "^7.
|
|
37
|
+
"@babel/core": "^7.17.10",
|
|
38
|
+
"@babel/preset-env": "^7.17.10",
|
|
39
39
|
"@rollup/plugin-alias": "^3.1.9",
|
|
40
40
|
"@rollup/plugin-babel": "^5.3.1",
|
|
41
41
|
"@rollup/plugin-replace": "^4.0.0",
|
|
42
|
-
"archiver": "^5.3.
|
|
42
|
+
"archiver": "^5.3.1",
|
|
43
43
|
"camelcase": "^6.3.0",
|
|
44
44
|
"clean-css": "^5.3.0",
|
|
45
45
|
"dateformat": "^5.0.3",
|
|
46
|
-
"esbuild": "^0.14.
|
|
47
|
-
"eslint": "^8.
|
|
46
|
+
"esbuild": "^0.14.38",
|
|
47
|
+
"eslint": "^8.15.0",
|
|
48
48
|
"eslint-config-prettier": "^8.5.0",
|
|
49
|
-
"fs-extra": "^10.0
|
|
50
|
-
"glob": "^
|
|
51
|
-
"inquirer": "^8.2.
|
|
49
|
+
"fs-extra": "^10.1.0",
|
|
50
|
+
"glob": "^8.0.1",
|
|
51
|
+
"inquirer": "^8.2.4",
|
|
52
52
|
"less": "^4.1.2",
|
|
53
53
|
"minimist": "^1.2.6",
|
|
54
54
|
"number-precision": "^1.5.2",
|
|
55
55
|
"p-limit": "^4.0.0",
|
|
56
56
|
"prettier": "^2.6.2",
|
|
57
|
-
"rollup": "^2.
|
|
57
|
+
"rollup": "^2.72.1",
|
|
58
58
|
"rollup-plugin-esbuild": "^4.9.1",
|
|
59
59
|
"rollup-plugin-html": "^0.2.1",
|
|
60
60
|
"rollup-plugin-modify": "^3.0.0",
|
|
61
61
|
"rtlcss": "^3.5.0",
|
|
62
|
-
"semver": "^7.3.
|
|
62
|
+
"semver": "^7.3.7",
|
|
63
63
|
"svgo": "^2.8.0",
|
|
64
64
|
"watch-run": "^1.2.5"
|
|
65
65
|
}
|
package/src/js/api/hooks.js
CHANGED
|
@@ -194,7 +194,7 @@ function matchFilter(
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
function isEqualList(listA, listB) {
|
|
197
|
-
return listA.length === listB.length && listA.every((el) =>
|
|
197
|
+
return listA.length === listB.length && listA.every((el) => listB.includes(el));
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
function getSelector({ filter }) {
|
package/src/js/core/drop.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
apply,
|
|
9
9
|
attr,
|
|
10
10
|
css,
|
|
11
|
+
getCssVar,
|
|
11
12
|
hasClass,
|
|
12
13
|
includes,
|
|
13
14
|
isTouch,
|
|
@@ -15,7 +16,6 @@ import {
|
|
|
15
16
|
MouseTracker,
|
|
16
17
|
observeResize,
|
|
17
18
|
offset,
|
|
18
|
-
offsetViewport,
|
|
19
19
|
on,
|
|
20
20
|
once,
|
|
21
21
|
parent,
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
removeClass,
|
|
29
29
|
scrollParents,
|
|
30
30
|
toggleClass,
|
|
31
|
+
toPx,
|
|
31
32
|
within,
|
|
32
33
|
} from 'uikit-util';
|
|
33
34
|
|
|
@@ -378,19 +379,27 @@ export default {
|
|
|
378
379
|
toggleClass(this.$el, `${this.clsDrop}-boundary`, this.boundaryAlign);
|
|
379
380
|
|
|
380
381
|
const boundary = query(this.boundary, this.$el);
|
|
381
|
-
const
|
|
382
|
-
|
|
382
|
+
const scrollParentOffset = offset(
|
|
383
|
+
scrollParents(boundary && this.boundaryAlign ? boundary : this.$el)[0]
|
|
384
|
+
);
|
|
383
385
|
const boundaryOffset = boundary ? offset(boundary) : scrollParentOffset;
|
|
384
386
|
|
|
385
387
|
css(this.$el, 'maxWidth', '');
|
|
386
388
|
const maxWidth =
|
|
387
|
-
scrollParentOffset.width -
|
|
389
|
+
scrollParentOffset.width -
|
|
390
|
+
2 * toPx(getCssVar('position-viewport-offset', this.$el));
|
|
388
391
|
|
|
389
392
|
if (this.pos[1] === 'justify') {
|
|
390
393
|
const prop = this.axis === 'y' ? 'width' : 'height';
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
+
css(
|
|
395
|
+
this.$el,
|
|
396
|
+
prop,
|
|
397
|
+
Math.min(
|
|
398
|
+
(boundary ? boundaryOffset : offset(this.target))[prop],
|
|
399
|
+
scrollParentOffset[prop] -
|
|
400
|
+
2 * toPx(getCssVar('position-viewport-offset', this.$el))
|
|
401
|
+
)
|
|
402
|
+
);
|
|
394
403
|
} else if (this.$el.offsetWidth > maxWidth) {
|
|
395
404
|
addClass(this.$el, `${this.clsDrop}-stack`);
|
|
396
405
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Class from '../mixin/class';
|
|
2
1
|
import Resize from '../mixin/resize';
|
|
3
2
|
import {
|
|
4
3
|
boxModelAdjust,
|
|
@@ -15,7 +14,7 @@ import {
|
|
|
15
14
|
} from 'uikit-util';
|
|
16
15
|
|
|
17
16
|
export default {
|
|
18
|
-
mixins: [
|
|
17
|
+
mixins: [Resize],
|
|
19
18
|
|
|
20
19
|
props: {
|
|
21
20
|
expand: Boolean,
|
package/src/js/core/margin.js
CHANGED
|
@@ -47,7 +47,7 @@ export default {
|
|
|
47
47
|
for (const row of rows) {
|
|
48
48
|
for (const column of row) {
|
|
49
49
|
toggleClass(column, this.margin, rows[0] !== row);
|
|
50
|
-
toggleClass(column, this.firstColumn,
|
|
50
|
+
toggleClass(column, this.firstColumn, columns[0].includes(column));
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
},
|
package/src/js/core/scrollspy.js
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
css,
|
|
5
5
|
filter,
|
|
6
6
|
data as getData,
|
|
7
|
+
isEqual,
|
|
7
8
|
observeIntersection,
|
|
8
9
|
once,
|
|
9
10
|
removeClass,
|
|
@@ -50,7 +51,7 @@ export default {
|
|
|
50
51
|
css(filter(elements, `:not(.${this.inViewClass})`), 'visibility', 'hidden');
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
if (prev) {
|
|
54
|
+
if (!isEqual(elements, prev)) {
|
|
54
55
|
this.$reset();
|
|
55
56
|
}
|
|
56
57
|
},
|
package/src/js/core/toggle.js
CHANGED
package/src/js/mixin/parallax.js
CHANGED
|
@@ -333,7 +333,7 @@ function getValue(stops, percent) {
|
|
|
333
333
|
return isNumber(start) ? start + Math.abs(start - end) * p * (start < end ? 1 : -1) : +end;
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
-
const unitRe = /^-?\d+(
|
|
336
|
+
const unitRe = /^-?\d+(\S*)/;
|
|
337
337
|
function getUnit(stops, defaultUnit) {
|
|
338
338
|
for (const stop of stops) {
|
|
339
339
|
const match = stop.match?.(unitRe);
|
package/src/js/mixin/position.js
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
$,
|
|
3
|
-
flipPosition,
|
|
4
|
-
getCssVar,
|
|
5
|
-
offset as getOffset,
|
|
6
|
-
includes,
|
|
7
|
-
isNumeric,
|
|
8
|
-
isRtl,
|
|
9
|
-
positionAt,
|
|
10
|
-
toPx,
|
|
11
|
-
} from 'uikit-util';
|
|
1
|
+
import { flipPosition, getCssVar, includes, isRtl, positionAt, toPx } from 'uikit-util';
|
|
12
2
|
|
|
13
3
|
export default {
|
|
14
4
|
props: {
|
|
@@ -21,7 +11,6 @@ export default {
|
|
|
21
11
|
pos: `bottom-${isRtl ? 'right' : 'left'}`,
|
|
22
12
|
flip: true,
|
|
23
13
|
offset: false,
|
|
24
|
-
viewportPadding: 10,
|
|
25
14
|
},
|
|
26
15
|
|
|
27
16
|
connected() {
|
|
@@ -33,16 +22,22 @@ export default {
|
|
|
33
22
|
positionAt(element, target, boundary) {
|
|
34
23
|
const [dir, align] = this.pos;
|
|
35
24
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
25
|
+
const mainAxisOffset =
|
|
26
|
+
toPx(
|
|
27
|
+
this.offset === false ? getCssVar('position-offset', element) : this.offset,
|
|
28
|
+
this.axis === 'x' ? 'width' : 'height',
|
|
29
|
+
element
|
|
30
|
+
) * (includes(['left', 'top'], dir) ? -1 : 1);
|
|
31
|
+
|
|
32
|
+
const crossAxisOffset = includes(['center', 'justify'], align)
|
|
33
|
+
? 0
|
|
34
|
+
: toPx(
|
|
35
|
+
getCssVar('position-shift-offset', element),
|
|
36
|
+
this.axis === 'y' ? 'width' : 'height',
|
|
37
|
+
element
|
|
38
|
+
) * (includes(['left', 'top'], align) ? 1 : -1);
|
|
39
|
+
|
|
40
|
+
let offset = [mainAxisOffset, crossAxisOffset];
|
|
46
41
|
|
|
47
42
|
const attach = {
|
|
48
43
|
element: [flipPosition(dir), align],
|
|
@@ -60,8 +55,8 @@ export default {
|
|
|
60
55
|
attach,
|
|
61
56
|
offset,
|
|
62
57
|
boundary,
|
|
63
|
-
viewportPadding: this.viewportPadding,
|
|
64
58
|
flip: this.flip,
|
|
59
|
+
viewportOffset: toPx(getCssVar('position-viewport-offset', element)),
|
|
65
60
|
});
|
|
66
61
|
},
|
|
67
62
|
},
|
|
@@ -24,6 +24,7 @@ export default {
|
|
|
24
24
|
cls: Boolean,
|
|
25
25
|
animation: 'list',
|
|
26
26
|
duration: Number,
|
|
27
|
+
velocity: Number,
|
|
27
28
|
origin: String,
|
|
28
29
|
transition: String,
|
|
29
30
|
},
|
|
@@ -32,6 +33,7 @@ export default {
|
|
|
32
33
|
cls: false,
|
|
33
34
|
animation: [false],
|
|
34
35
|
duration: 200,
|
|
36
|
+
velocity: 0.2,
|
|
35
37
|
origin: false,
|
|
36
38
|
transition: 'ease',
|
|
37
39
|
clsEnter: 'uk-togglabe-enter',
|
|
@@ -79,6 +81,11 @@ export default {
|
|
|
79
81
|
return Promise.reject();
|
|
80
82
|
}
|
|
81
83
|
|
|
84
|
+
if (!animate) {
|
|
85
|
+
Animation.cancel(el);
|
|
86
|
+
Transition.cancel(el);
|
|
87
|
+
}
|
|
88
|
+
|
|
82
89
|
const promise = (
|
|
83
90
|
isFunction(animate)
|
|
84
91
|
? animate
|
|
@@ -149,7 +156,15 @@ export default {
|
|
|
149
156
|
},
|
|
150
157
|
};
|
|
151
158
|
|
|
152
|
-
export function toggleHeight({
|
|
159
|
+
export function toggleHeight({
|
|
160
|
+
isToggled,
|
|
161
|
+
duration,
|
|
162
|
+
velocity,
|
|
163
|
+
initProps,
|
|
164
|
+
hideProps,
|
|
165
|
+
transition,
|
|
166
|
+
_toggle,
|
|
167
|
+
}) {
|
|
153
168
|
return (el, show) => {
|
|
154
169
|
const inProgress = Transition.inProgress(el);
|
|
155
170
|
const inner = el.hasChildNodes()
|
|
@@ -170,6 +185,8 @@ export function toggleHeight({ isToggled, duration, initProps, hideProps, transi
|
|
|
170
185
|
fastdom.flush();
|
|
171
186
|
|
|
172
187
|
const endHeight = height(el) + (inProgress ? 0 : inner);
|
|
188
|
+
duration = velocity * el.offsetHeight + duration;
|
|
189
|
+
|
|
173
190
|
height(el, currentHeight);
|
|
174
191
|
|
|
175
192
|
return (
|
package/src/js/util/position.js
CHANGED
|
@@ -49,6 +49,10 @@ function attachTo(element, target, options) {
|
|
|
49
49
|
return position;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
function moveBy(start, end, dim) {
|
|
53
|
+
return start === 'center' ? dim / 2 : start === end ? dim : 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
52
56
|
function attachToWithFlip(element, target, options) {
|
|
53
57
|
const position = attachTo(element, target, options);
|
|
54
58
|
const targetDim = offset(target);
|
|
@@ -59,7 +63,7 @@ function attachToWithFlip(element, target, options) {
|
|
|
59
63
|
offset: elOffset,
|
|
60
64
|
boundary,
|
|
61
65
|
viewport,
|
|
62
|
-
|
|
66
|
+
viewportOffset,
|
|
63
67
|
} = options;
|
|
64
68
|
|
|
65
69
|
let viewports = scrollParents(element);
|
|
@@ -80,9 +84,9 @@ function attachToWithFlip(element, target, options) {
|
|
|
80
84
|
|
|
81
85
|
viewport = getIntersectionArea(...viewports.filter(Boolean).map(offsetViewport));
|
|
82
86
|
|
|
83
|
-
if (
|
|
84
|
-
viewport[start] +=
|
|
85
|
-
viewport[end] -=
|
|
87
|
+
if (viewportOffset) {
|
|
88
|
+
viewport[start] += viewportOffset;
|
|
89
|
+
viewport[end] -= viewportOffset;
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
if (boundary && !willFlip && position[prop] <= offset(boundary)[prop]) {
|
|
@@ -139,19 +143,21 @@ function attachToWithFlip(element, target, options) {
|
|
|
139
143
|
return false;
|
|
140
144
|
}
|
|
141
145
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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
|
+
}
|
|
155
161
|
}
|
|
156
162
|
}
|
|
157
163
|
|
|
@@ -172,10 +178,6 @@ function attachToWithFlip(element, target, options) {
|
|
|
172
178
|
return offsetPosition;
|
|
173
179
|
}
|
|
174
180
|
|
|
175
|
-
function moveBy(start, end, dim) {
|
|
176
|
-
return start === 'center' ? dim / 2 : start === end ? dim : 0;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
181
|
function getIntersectionArea(...rects) {
|
|
180
182
|
let area = {};
|
|
181
183
|
for (const rect of rects) {
|
|
@@ -188,7 +190,7 @@ function getIntersectionArea(...rects) {
|
|
|
188
190
|
}
|
|
189
191
|
|
|
190
192
|
function isInScrollArea(position, scrollElement, dir) {
|
|
191
|
-
const viewport = offsetViewport(scrollElement);
|
|
193
|
+
const viewport = offsetViewport(scrollElement, false);
|
|
192
194
|
const [prop, , start, end] = dirs[dir];
|
|
193
195
|
viewport[start] -= scrollElement[`scroll${ucfirst(start)}`];
|
|
194
196
|
viewport[end] = viewport[start] + scrollElement[`scroll${ucfirst(prop)}`];
|
package/src/js/util/viewport.js
CHANGED
|
@@ -153,22 +153,18 @@ export function scrollParents(element, overflowRe = /auto|scroll|hidden/, scroll
|
|
|
153
153
|
export function offsetViewport(scrollElement) {
|
|
154
154
|
let viewportElement = getViewport(scrollElement);
|
|
155
155
|
|
|
156
|
-
// iOS 12 returns <body> as scrollingElement
|
|
157
|
-
if (viewportElement === scrollingElement(viewportElement)) {
|
|
158
|
-
viewportElement = document.documentElement;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
156
|
let rect = offset(viewportElement);
|
|
162
157
|
for (let [prop, dir, start, end] of [
|
|
163
158
|
['width', 'x', 'left', 'right'],
|
|
164
159
|
['height', 'y', 'top', 'bottom'],
|
|
165
160
|
]) {
|
|
166
|
-
if (!isWindow(
|
|
161
|
+
if (!isWindow(viewportElement)) {
|
|
167
162
|
rect[start] += toFloat(css(viewportElement, `border${ucfirst(start)}Width`));
|
|
163
|
+
} else {
|
|
164
|
+
// iOS 12 returns <body> as scrollingElement
|
|
165
|
+
viewportElement = viewportElement.document.documentElement;
|
|
168
166
|
}
|
|
169
|
-
rect[prop] = rect[dir] = (
|
|
170
|
-
isWindow(viewportElement) ? scrollingElement(viewportElement) : viewportElement
|
|
171
|
-
)[`client${ucfirst(prop)}`];
|
|
167
|
+
rect[prop] = rect[dir] = viewportElement[`client${ucfirst(prop)}`];
|
|
172
168
|
rect[end] = rect[prop] + rect[start];
|
|
173
169
|
}
|
|
174
170
|
return rect;
|
|
@@ -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;
|
|
@@ -93,6 +95,7 @@
|
|
|
93
95
|
|
|
94
96
|
.uk-navbar {
|
|
95
97
|
display: flex;
|
|
98
|
+
--uk-navbar-nav-item-gap: @navbar-nav-item-gap;
|
|
96
99
|
/* 1 */
|
|
97
100
|
position: relative;
|
|
98
101
|
.hook-navbar();
|
|
@@ -127,6 +130,7 @@
|
|
|
127
130
|
.uk-navbar-center-left > *,
|
|
128
131
|
.uk-navbar-center-right > * {
|
|
129
132
|
display: flex;
|
|
133
|
+
gap: var(--uk-navbar-nav-item-gap);
|
|
130
134
|
/* 1 */
|
|
131
135
|
align-items: center;
|
|
132
136
|
}
|
|
@@ -168,8 +172,14 @@
|
|
|
168
172
|
top: 0;
|
|
169
173
|
}
|
|
170
174
|
|
|
171
|
-
.uk-navbar-center-left {
|
|
172
|
-
|
|
175
|
+
.uk-navbar-center-left {
|
|
176
|
+
right: 100%; // Fallback if gap is 0
|
|
177
|
+
right: ~'calc(100% + var(--uk-navbar-nav-item-gap))';
|
|
178
|
+
}
|
|
179
|
+
.uk-navbar-center-right {
|
|
180
|
+
left: 100%; // Fallback if gap is 0
|
|
181
|
+
left: ~'calc(100% + var(--uk-navbar-nav-item-gap))';
|
|
182
|
+
}
|
|
173
183
|
|
|
174
184
|
[class*='uk-navbar-center-'] {
|
|
175
185
|
width: max-content;
|
|
@@ -186,6 +196,7 @@
|
|
|
186
196
|
|
|
187
197
|
.uk-navbar-nav {
|
|
188
198
|
display: flex;
|
|
199
|
+
gap: var(--uk-navbar-nav-item-gap);
|
|
189
200
|
/* 1 */
|
|
190
201
|
margin: 0;
|
|
191
202
|
padding: 0;
|
|
@@ -267,6 +278,7 @@
|
|
|
267
278
|
========================================================================== */
|
|
268
279
|
|
|
269
280
|
.uk-navbar-item {
|
|
281
|
+
padding: 0 @navbar-item-padding-horizontal;
|
|
270
282
|
color: @navbar-item-color;
|
|
271
283
|
.hook-navbar-item();
|
|
272
284
|
}
|
|
@@ -362,6 +374,8 @@
|
|
|
362
374
|
position: absolute;
|
|
363
375
|
z-index: @navbar-dropdown-z-index;
|
|
364
376
|
--uk-position-offset: @navbar-dropdown-margin;
|
|
377
|
+
--uk-position-shift-offset: 0;
|
|
378
|
+
--uk-position-viewport-offset: 10;
|
|
365
379
|
/* 3 */
|
|
366
380
|
box-sizing: border-box;
|
|
367
381
|
width: @navbar-dropdown-width;
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
// Variables
|
|
8
8
|
// ========================================================================
|
|
9
9
|
|
|
10
|
+
@navbar-nav-item-gap: 30px;
|
|
11
|
+
@navbar-nav-item-padding-horizontal: 0;
|
|
12
|
+
|
|
10
13
|
@navbar-nav-item-font-size: @global-small-font-size;
|
|
11
14
|
|
|
12
15
|
@navbar-dropdown-margin: 15px;
|
|
@@ -129,16 +132,6 @@
|
|
|
129
132
|
|
|
130
133
|
.hook-navbar-misc() {
|
|
131
134
|
|
|
132
|
-
/*
|
|
133
|
-
* Navbar
|
|
134
|
-
*/
|
|
135
|
-
|
|
136
|
-
.uk-navbar-container > .uk-container .uk-navbar-left {
|
|
137
|
-
margin-left: -@navbar-nav-item-padding-horizontal;
|
|
138
|
-
margin-right: -@navbar-nav-item-padding-horizontal;
|
|
139
|
-
}
|
|
140
|
-
.uk-navbar-container > .uk-container .uk-navbar-right { margin-right: -@navbar-nav-item-padding-horizontal; }
|
|
141
|
-
|
|
142
135
|
/*
|
|
143
136
|
* Grid Divider
|
|
144
137
|
*/
|
|
@@ -55,6 +55,7 @@ $dropdown-nav-sublist-item-hover-color: $global-color !default;
|
|
|
55
55
|
position: absolute;
|
|
56
56
|
z-index: $dropdown-z-index;
|
|
57
57
|
--uk-position-offset: #{$dropdown-margin};
|
|
58
|
+
--uk-position-viewport-offset: 10;
|
|
58
59
|
/* 3 */
|
|
59
60
|
box-sizing: border-box;
|
|
60
61
|
min-width: $dropdown-min-width;
|
|
@@ -40,6 +40,7 @@ $navbar-background: $global-muted-background !defau
|
|
|
40
40
|
$navbar-color-mode: none !default;
|
|
41
41
|
|
|
42
42
|
$navbar-nav-item-height: 80px !default;
|
|
43
|
+
$navbar-nav-item-gap: 0 !default;
|
|
43
44
|
$navbar-nav-item-padding-horizontal: 15px !default;
|
|
44
45
|
$navbar-nav-item-color: $global-muted-color !default;
|
|
45
46
|
$navbar-nav-item-font-size: $global-font-size !default;
|
|
@@ -48,6 +49,7 @@ $navbar-nav-item-hover-color: $global-color !default;
|
|
|
48
49
|
$navbar-nav-item-onclick-color: $global-emphasis-color !default;
|
|
49
50
|
$navbar-nav-item-active-color: $global-emphasis-color !default;
|
|
50
51
|
|
|
52
|
+
$navbar-item-padding-horizontal: $navbar-nav-item-padding-horizontal !default;
|
|
51
53
|
$navbar-item-color: $global-color !default;
|
|
52
54
|
|
|
53
55
|
$navbar-toggle-color: $global-muted-color !default;
|
|
@@ -93,6 +95,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
93
95
|
|
|
94
96
|
.uk-navbar {
|
|
95
97
|
display: flex;
|
|
98
|
+
--uk-navbar-nav-item-gap: #{$navbar-nav-item-gap};
|
|
96
99
|
/* 1 */
|
|
97
100
|
position: relative;
|
|
98
101
|
@if(mixin-exists(hook-navbar)) {@include hook-navbar();}
|
|
@@ -127,6 +130,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
127
130
|
.uk-navbar-center-left > *,
|
|
128
131
|
.uk-navbar-center-right > * {
|
|
129
132
|
display: flex;
|
|
133
|
+
gap: var(--uk-navbar-nav-item-gap);
|
|
130
134
|
/* 1 */
|
|
131
135
|
align-items: center;
|
|
132
136
|
}
|
|
@@ -168,8 +172,14 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
168
172
|
top: 0;
|
|
169
173
|
}
|
|
170
174
|
|
|
171
|
-
.uk-navbar-center-left {
|
|
172
|
-
|
|
175
|
+
.uk-navbar-center-left {
|
|
176
|
+
right: 100%; // Fallback if gap is 0
|
|
177
|
+
right: unquote('calc(100% + var(--uk-navbar-nav-item-gap))');
|
|
178
|
+
}
|
|
179
|
+
.uk-navbar-center-right {
|
|
180
|
+
left: 100%; // Fallback if gap is 0
|
|
181
|
+
left: unquote('calc(100% + var(--uk-navbar-nav-item-gap))');
|
|
182
|
+
}
|
|
173
183
|
|
|
174
184
|
[class*='uk-navbar-center-'] {
|
|
175
185
|
width: max-content;
|
|
@@ -186,6 +196,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
186
196
|
|
|
187
197
|
.uk-navbar-nav {
|
|
188
198
|
display: flex;
|
|
199
|
+
gap: var(--uk-navbar-nav-item-gap);
|
|
189
200
|
/* 1 */
|
|
190
201
|
margin: 0;
|
|
191
202
|
padding: 0;
|
|
@@ -267,6 +278,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
267
278
|
========================================================================== */
|
|
268
279
|
|
|
269
280
|
.uk-navbar-item {
|
|
281
|
+
padding: 0 $navbar-item-padding-horizontal;
|
|
270
282
|
color: $navbar-item-color;
|
|
271
283
|
@if(mixin-exists(hook-navbar-item)) {@include hook-navbar-item();}
|
|
272
284
|
}
|
|
@@ -362,6 +374,8 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
362
374
|
position: absolute;
|
|
363
375
|
z-index: $navbar-dropdown-z-index;
|
|
364
376
|
--uk-position-offset: #{$navbar-dropdown-margin};
|
|
377
|
+
--uk-position-shift-offset: 0;
|
|
378
|
+
--uk-position-viewport-offset: 10;
|
|
365
379
|
/* 3 */
|
|
366
380
|
box-sizing: border-box;
|
|
367
381
|
width: $navbar-dropdown-width;
|