uikit 3.14.4-dev.f2e3be255 → 3.14.4-dev.fea9fd466
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 +8 -1
- package/dist/css/uikit-core-rtl.css +84 -64
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +84 -64
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +83 -63
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +83 -63
- 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 +7 -5
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +6 -14
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +6 -14
- 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 +4 -5
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +4 -5
- 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 +4 -5
- 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 +9 -17
- 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 +45 -43
- 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 +51 -47
- package/dist/js/uikit.min.js +1 -1
- package/package.json +1 -1
- package/src/images/{backgrounds/nav-parent-close.svg → components/nav-parent-icon-large.svg} +0 -0
- package/src/images/{backgrounds/navbar-parent-close.svg → components/nav-parent-icon.svg} +0 -0
- package/src/images/{backgrounds/navbar-parent-open.svg → components/navbar-parent-icon.svg} +1 -1
- package/src/js/components/filter.js +5 -3
- package/src/js/core/height-viewport.js +6 -2
- package/src/js/core/icon.js +16 -0
- package/src/js/core/index.js +2 -0
- package/src/js/core/leader.js +2 -2
- package/src/js/mixin/media.js +4 -5
- package/src/js/mixin/position.js +3 -4
- package/src/js/mixin/togglable.js +8 -17
- package/src/js/util/style.js +4 -13
- package/src/js/util/viewport.js +2 -4
- package/src/less/components/dropdown.less +6 -0
- package/src/less/components/leader.less +1 -1
- package/src/less/components/nav.less +7 -37
- package/src/less/components/navbar.less +70 -21
- package/src/less/components/utility.less +10 -2
- package/src/less/theme/nav.less +0 -8
- package/src/scss/components/dropdown.scss +6 -0
- package/src/scss/components/leader.scss +1 -1
- package/src/scss/components/nav.scss +7 -26
- package/src/scss/components/navbar.scss +58 -21
- package/src/scss/components/utility.scss +8 -1
- package/src/scss/mixins-theme.scss +14 -14
- package/src/scss/mixins.scss +14 -14
- package/src/scss/theme/nav.scss +0 -8
- package/src/scss/variables-theme.scss +9 -13
- package/src/scss/variables.scss +9 -13
- package/tests/index.html +3 -3
- package/tests/nav.html +20 -87
- package/tests/navbar.html +15 -26
- package/tests/offcanvas.html +8 -8
- package/tests/utility.html +19 -0
- package/src/images/backgrounds/nav-parent-open.svg +0 -3
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.4-dev.
|
|
5
|
+
"version": "3.14.4-dev.fea9fd466",
|
|
6
6
|
"main": "dist/js/uikit.js",
|
|
7
7
|
"style": "dist/css/uikit.css",
|
|
8
8
|
"sideEffects": [
|
package/src/images/{backgrounds/nav-parent-close.svg → components/nav-parent-icon-large.svg}
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -103,7 +103,7 @@ export default {
|
|
|
103
103
|
});
|
|
104
104
|
},
|
|
105
105
|
|
|
106
|
-
setState(state, animate = true) {
|
|
106
|
+
async setState(state, animate = true) {
|
|
107
107
|
state = { filter: { '': '' }, sort: [], ...state };
|
|
108
108
|
|
|
109
109
|
trigger(this.$el, 'beforeFilter', [this, state]);
|
|
@@ -112,7 +112,7 @@ export default {
|
|
|
112
112
|
toggleClass(el, this.cls, !!matchFilter(el, this.attrItem, state))
|
|
113
113
|
);
|
|
114
114
|
|
|
115
|
-
Promise.all(
|
|
115
|
+
await Promise.all(
|
|
116
116
|
$$(this.target, this.$el).map((target) => {
|
|
117
117
|
const filterFn = () => {
|
|
118
118
|
applyState(state, target, getChildren(target));
|
|
@@ -120,7 +120,9 @@ export default {
|
|
|
120
120
|
};
|
|
121
121
|
return animate ? this.animate(filterFn, target) : filterFn();
|
|
122
122
|
})
|
|
123
|
-
)
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
trigger(this.$el, 'afterFilter', [this]);
|
|
124
126
|
},
|
|
125
127
|
|
|
126
128
|
updateState() {
|
|
@@ -45,8 +45,11 @@ export default {
|
|
|
45
45
|
let minHeight = '';
|
|
46
46
|
const box = boxModelAdjust(this.$el, 'height', 'content-box');
|
|
47
47
|
|
|
48
|
+
const { body, scrollingElement } = document;
|
|
48
49
|
const [scrollElement] = scrollParents(this.$el, /auto|scroll/);
|
|
49
|
-
const { height: viewportHeight } = offsetViewport(
|
|
50
|
+
const { height: viewportHeight } = offsetViewport(
|
|
51
|
+
scrollElement === body ? scrollingElement : scrollElement
|
|
52
|
+
);
|
|
50
53
|
|
|
51
54
|
if (this.expand) {
|
|
52
55
|
minHeight = Math.max(
|
|
@@ -56,7 +59,8 @@ export default {
|
|
|
56
59
|
0
|
|
57
60
|
);
|
|
58
61
|
} else {
|
|
59
|
-
const isScrollingElement =
|
|
62
|
+
const isScrollingElement =
|
|
63
|
+
scrollingElement === scrollElement || body === scrollElement;
|
|
60
64
|
|
|
61
65
|
// on mobile devices (iOS and Android) window.innerHeight !== 100vh
|
|
62
66
|
minHeight = `calc(${isScrollingElement ? '100vh' : `${viewportHeight}px`}`;
|
package/src/js/core/icon.js
CHANGED
|
@@ -2,6 +2,9 @@ import SVG from './svg';
|
|
|
2
2
|
import closeIcon from '../../images/components/close-icon.svg';
|
|
3
3
|
import closeLarge from '../../images/components/close-large.svg';
|
|
4
4
|
import marker from '../../images/components/marker.svg';
|
|
5
|
+
import navParentIcon from '../../images/components/nav-parent-icon.svg';
|
|
6
|
+
import navParentIconLarge from '../../images/components/nav-parent-icon-large.svg';
|
|
7
|
+
import navbarParentIcon from '../../images/components/navbar-parent-icon.svg';
|
|
5
8
|
import navbarToggleIcon from '../../images/components/navbar-toggle-icon.svg';
|
|
6
9
|
import overlayIcon from '../../images/components/overlay-icon.svg';
|
|
7
10
|
import paginationNext from '../../images/components/pagination-next.svg';
|
|
@@ -19,6 +22,7 @@ import {
|
|
|
19
22
|
$,
|
|
20
23
|
addClass,
|
|
21
24
|
apply,
|
|
25
|
+
closest,
|
|
22
26
|
css,
|
|
23
27
|
each,
|
|
24
28
|
hasClass,
|
|
@@ -35,6 +39,9 @@ const icons = {
|
|
|
35
39
|
marker,
|
|
36
40
|
'close-icon': closeIcon,
|
|
37
41
|
'close-large': closeLarge,
|
|
42
|
+
'nav-parent-icon': navParentIcon,
|
|
43
|
+
'nav-parent-icon-large': navParentIconLarge,
|
|
44
|
+
'navbar-parent-icon': navbarParentIcon,
|
|
38
45
|
'navbar-toggle-icon': navbarToggleIcon,
|
|
39
46
|
'overlay-icon': overlayIcon,
|
|
40
47
|
'pagination-next': paginationNext,
|
|
@@ -96,6 +103,15 @@ export const IconComponent = {
|
|
|
96
103
|
},
|
|
97
104
|
};
|
|
98
105
|
|
|
106
|
+
export const NavParentIcon = {
|
|
107
|
+
extends: IconComponent,
|
|
108
|
+
|
|
109
|
+
beforeConnect() {
|
|
110
|
+
const icon = this.$props.icon;
|
|
111
|
+
this.icon = closest(this.$el, '.uk-nav-primary') ? `${icon}-large` : icon;
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
|
|
99
115
|
export const Slidenav = {
|
|
100
116
|
extends: IconComponent,
|
|
101
117
|
|
package/src/js/core/index.js
CHANGED
|
@@ -29,10 +29,12 @@ export { default as Video } from './video';
|
|
|
29
29
|
// Icon components
|
|
30
30
|
export { Close } from './icon';
|
|
31
31
|
export { Spinner } from './icon';
|
|
32
|
+
export { NavParentIcon } from './icon';
|
|
32
33
|
export { Slidenav as SlidenavNext } from './icon';
|
|
33
34
|
export { Slidenav as SlidenavPrevious } from './icon';
|
|
34
35
|
export { Search as SearchIcon } from './icon';
|
|
35
36
|
export { IconComponent as Marker } from './icon';
|
|
37
|
+
export { IconComponent as NavbarParentIcon } from './icon';
|
|
36
38
|
export { IconComponent as NavbarToggleIcon } from './icon';
|
|
37
39
|
export { IconComponent as OverlayIcon } from './icon';
|
|
38
40
|
export { IconComponent as PaginationNext } from './icon';
|
package/src/js/core/leader.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Class from '../mixin/class';
|
|
2
2
|
import Media from '../mixin/media';
|
|
3
|
-
import { attr,
|
|
3
|
+
import { attr, css, toggleClass, unwrap, wrapInner } from 'uikit-util';
|
|
4
4
|
import Resize from '../mixin/resize';
|
|
5
5
|
|
|
6
6
|
export default {
|
|
@@ -19,7 +19,7 @@ export default {
|
|
|
19
19
|
|
|
20
20
|
computed: {
|
|
21
21
|
fill({ fill }) {
|
|
22
|
-
return fill ||
|
|
22
|
+
return fill || css(this.$el, '--uk-leader-fill-content');
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
25
|
|
package/src/js/mixin/media.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createEvent,
|
|
3
|
-
|
|
3
|
+
css,
|
|
4
4
|
isNumeric,
|
|
5
5
|
isString,
|
|
6
6
|
on,
|
|
@@ -19,7 +19,7 @@ export default {
|
|
|
19
19
|
},
|
|
20
20
|
|
|
21
21
|
connected() {
|
|
22
|
-
const media = toMedia(this.media);
|
|
22
|
+
const media = toMedia(this.media, this.$el);
|
|
23
23
|
this.matchMedia = true;
|
|
24
24
|
if (media) {
|
|
25
25
|
this.mediaObj = window.matchMedia(media);
|
|
@@ -40,11 +40,10 @@ export default {
|
|
|
40
40
|
},
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
function toMedia(value) {
|
|
43
|
+
function toMedia(value, element) {
|
|
44
44
|
if (isString(value)) {
|
|
45
45
|
if (startsWith(value, '@')) {
|
|
46
|
-
|
|
47
|
-
value = toFloat(getCssVar(name));
|
|
46
|
+
value = toFloat(css(element, `--uk-breakpoint-${value.substr(1)}`));
|
|
48
47
|
} else if (isNaN(value)) {
|
|
49
48
|
return value;
|
|
50
49
|
}
|
package/src/js/mixin/position.js
CHANGED
|
@@ -2,7 +2,6 @@ import {
|
|
|
2
2
|
css,
|
|
3
3
|
dimensions,
|
|
4
4
|
flipPosition,
|
|
5
|
-
getCssVar,
|
|
6
5
|
includes,
|
|
7
6
|
isRtl,
|
|
8
7
|
positionAt,
|
|
@@ -77,7 +76,7 @@ export default {
|
|
|
77
76
|
getPositionOffset(element) {
|
|
78
77
|
return (
|
|
79
78
|
toPx(
|
|
80
|
-
this.offset === false ?
|
|
79
|
+
this.offset === false ? css(element, '--uk-position-offset') : this.offset,
|
|
81
80
|
this.axis === 'x' ? 'width' : 'height',
|
|
82
81
|
element
|
|
83
82
|
) * (includes(['left', 'top'], this.dir) ? -1 : 1)
|
|
@@ -88,14 +87,14 @@ export default {
|
|
|
88
87
|
return includes(['center', 'justify', 'stretch'], this.align)
|
|
89
88
|
? 0
|
|
90
89
|
: toPx(
|
|
91
|
-
|
|
90
|
+
css(element, '--uk-position-shift-offset'),
|
|
92
91
|
this.axis === 'y' ? 'width' : 'height',
|
|
93
92
|
element
|
|
94
93
|
) * (includes(['left', 'top'], this.align) ? 1 : -1);
|
|
95
94
|
},
|
|
96
95
|
|
|
97
96
|
getViewportOffset(element) {
|
|
98
|
-
return toPx(
|
|
97
|
+
return toPx(css(element, '--uk-position-viewport-offset'));
|
|
99
98
|
},
|
|
100
99
|
},
|
|
101
100
|
};
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
isFunction,
|
|
11
11
|
isVisible,
|
|
12
12
|
noop,
|
|
13
|
-
offset,
|
|
14
13
|
removeClass,
|
|
15
14
|
scrollParents,
|
|
16
15
|
startsWith,
|
|
@@ -232,7 +231,7 @@ function slideHorizontal({ isToggled, duration, velocity, transition, _toggle },
|
|
|
232
231
|
|
|
233
232
|
Transition.cancel(el);
|
|
234
233
|
|
|
235
|
-
const [scrollElement] = scrollParents(el);
|
|
234
|
+
const [scrollElement] = scrollParents(el.offsetParent);
|
|
236
235
|
css(scrollElement, 'overflowX', 'hidden');
|
|
237
236
|
|
|
238
237
|
if (!isToggled(el)) {
|
|
@@ -243,17 +242,11 @@ function slideHorizontal({ isToggled, duration, velocity, transition, _toggle },
|
|
|
243
242
|
duration = velocity * width + duration;
|
|
244
243
|
|
|
245
244
|
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
245
|
|
|
251
246
|
css(el, {
|
|
252
|
-
clipPath:
|
|
253
|
-
?
|
|
254
|
-
|
|
255
|
-
: `polygon(${100 - percent}% 0,100% 0,100% 100%,${100 - percent}% 100%)`
|
|
256
|
-
: '',
|
|
247
|
+
clipPath: right
|
|
248
|
+
? `polygon(0 0,${percent}% 0,${percent}% 100%,0 100%)`
|
|
249
|
+
: `polygon(${100 - percent}% 0,100% 0,100% 100%,${100 - percent}% 100%)`,
|
|
257
250
|
marginLeft: (((100 - percent) * (right ? 1 : -1)) / 100) * width,
|
|
258
251
|
});
|
|
259
252
|
|
|
@@ -262,7 +255,7 @@ function slideHorizontal({ isToggled, duration, velocity, transition, _toggle },
|
|
|
262
255
|
? Transition.start(
|
|
263
256
|
el,
|
|
264
257
|
{
|
|
265
|
-
clipPath:
|
|
258
|
+
clipPath: `polygon(0 0,100% 0,100% 100%,0 100%)`,
|
|
266
259
|
marginLeft: 0,
|
|
267
260
|
},
|
|
268
261
|
duration * (1 - percent / 100),
|
|
@@ -271,11 +264,9 @@ function slideHorizontal({ isToggled, duration, velocity, transition, _toggle },
|
|
|
271
264
|
: Transition.start(
|
|
272
265
|
el,
|
|
273
266
|
{
|
|
274
|
-
clipPath:
|
|
275
|
-
?
|
|
276
|
-
|
|
277
|
-
: `polygon(100% 0,100% 0,100% 100%,100% 100%)`
|
|
278
|
-
: '',
|
|
267
|
+
clipPath: right
|
|
268
|
+
? `polygon(0 0,0 0,0 100%,0 100%)`
|
|
269
|
+
: `polygon(100% 0,100% 0,100% 100%,100% 100%)`,
|
|
279
270
|
marginLeft: (right ? 1 : -1) * width,
|
|
280
271
|
},
|
|
281
272
|
duration * (percent / 100),
|
package/src/js/util/style.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
isString,
|
|
9
9
|
isUndefined,
|
|
10
10
|
memoize,
|
|
11
|
+
startsWith,
|
|
11
12
|
toNodes,
|
|
12
13
|
} from './lang';
|
|
13
14
|
|
|
@@ -62,18 +63,11 @@ export function css(element, property, value, priority = '') {
|
|
|
62
63
|
return elements[0];
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
const propertyRe = /^\s*(["'])?(.*?)\1\s*$/;
|
|
66
|
-
export function getCssVar(name, element = document.documentElement) {
|
|
67
|
-
return css(element, `--uk-${name}`).replace(propertyRe, '$2');
|
|
68
|
-
}
|
|
69
|
-
|
|
70
66
|
// https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty
|
|
71
67
|
export const propName = memoize((name) => vendorPropName(name));
|
|
72
68
|
|
|
73
|
-
const cssPrefixes = ['webkit', 'moz'];
|
|
74
|
-
|
|
75
69
|
function vendorPropName(name) {
|
|
76
|
-
if (name
|
|
70
|
+
if (startsWith(name, '--')) {
|
|
77
71
|
return name;
|
|
78
72
|
}
|
|
79
73
|
|
|
@@ -85,11 +79,8 @@ function vendorPropName(name) {
|
|
|
85
79
|
return name;
|
|
86
80
|
}
|
|
87
81
|
|
|
88
|
-
|
|
89
|
-
prefixedName
|
|
90
|
-
|
|
91
|
-
while (i--) {
|
|
92
|
-
prefixedName = `-${cssPrefixes[i]}-${name}`;
|
|
82
|
+
for (const prefix of ['webkit', 'moz']) {
|
|
83
|
+
const prefixedName = `-${prefix}-${name}`;
|
|
93
84
|
if (prefixedName in style) {
|
|
94
85
|
return prefixedName;
|
|
95
86
|
}
|
package/src/js/util/viewport.js
CHANGED
|
@@ -128,12 +128,10 @@ export function scrollParents(element, overflowRe = /auto|scroll|hidden|clip/, s
|
|
|
128
128
|
export function offsetViewport(scrollElement) {
|
|
129
129
|
const window = toWindow(scrollElement);
|
|
130
130
|
const {
|
|
131
|
-
document: {
|
|
131
|
+
document: { documentElement },
|
|
132
132
|
} = window;
|
|
133
133
|
let viewportElement =
|
|
134
|
-
scrollElement === scrollingElement(scrollElement)
|
|
135
|
-
? window
|
|
136
|
-
: scrollElement;
|
|
134
|
+
scrollElement === scrollingElement(scrollElement) ? window : scrollElement;
|
|
137
135
|
|
|
138
136
|
const { visualViewport } = window;
|
|
139
137
|
if (isWindow(viewportElement) && visualViewport) {
|
|
@@ -70,6 +70,12 @@
|
|
|
70
70
|
/* Show */
|
|
71
71
|
.uk-dropdown.uk-open { display: block; }
|
|
72
72
|
|
|
73
|
+
/*
|
|
74
|
+
* Remove margin from the last-child
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
.uk-dropdown > :last-child { margin-bottom: 0; }
|
|
78
|
+
|
|
73
79
|
|
|
74
80
|
/* Size modifier
|
|
75
81
|
========================================================================== */
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Component: `uk-nav`
|
|
5
5
|
//
|
|
6
|
-
// Sub-objects: `uk-nav-
|
|
6
|
+
// Sub-objects: `uk-nav-parent-icon`
|
|
7
|
+
// `uk-nav-header`
|
|
7
8
|
// `uk-nav-divider`
|
|
8
9
|
// `uk-nav-subtitle`
|
|
9
10
|
// `uk-nav-sub`
|
|
10
11
|
//
|
|
11
|
-
// Modifiers: `uk-nav-
|
|
12
|
-
// `uk-nav-default`
|
|
12
|
+
// Modifiers: `uk-nav-default`
|
|
13
13
|
// `uk-nav-primary`
|
|
14
14
|
// `uk-nav-center`,
|
|
15
15
|
// `uk-nav-divider`
|
|
@@ -33,10 +33,6 @@
|
|
|
33
33
|
@nav-sublist-deeper-padding-left: 15px;
|
|
34
34
|
@nav-sublist-item-padding-vertical: 2px;
|
|
35
35
|
|
|
36
|
-
@nav-parent-icon-width: (@global-line-height * 1em);
|
|
37
|
-
@nav-parent-icon-height: @nav-parent-icon-width;
|
|
38
|
-
@nav-parent-icon-color: @global-color;
|
|
39
|
-
|
|
40
36
|
@nav-header-padding-vertical: @nav-item-padding-vertical;
|
|
41
37
|
@nav-header-padding-horizontal: @nav-item-padding-horizontal;
|
|
42
38
|
@nav-header-font-size: @global-small-font-size;
|
|
@@ -76,13 +72,10 @@
|
|
|
76
72
|
@nav-primary-sublist-item-hover-color: @global-color;
|
|
77
73
|
@nav-primary-sublist-item-active-color: @global-emphasis-color;
|
|
78
74
|
|
|
79
|
-
@nav-dividers-margin-top:
|
|
75
|
+
@nav-dividers-margin-top: 5px;
|
|
80
76
|
@nav-dividers-border-width: @global-border-width;
|
|
81
77
|
@nav-dividers-border: @global-border;
|
|
82
78
|
|
|
83
|
-
@internal-nav-parent-close-image: "../../images/backgrounds/nav-parent-close.svg";
|
|
84
|
-
@internal-nav-parent-open-image: "../../images/backgrounds/nav-parent-open.svg";
|
|
85
|
-
|
|
86
79
|
|
|
87
80
|
/* ========================================================================
|
|
88
81
|
Component: Nav
|
|
@@ -152,18 +145,9 @@ ul.uk-nav-sub {
|
|
|
152
145
|
/* Parent icon modifier
|
|
153
146
|
========================================================================== */
|
|
154
147
|
|
|
155
|
-
.uk-nav-parent-icon
|
|
156
|
-
content: "";
|
|
157
|
-
width: @nav-parent-icon-width;
|
|
158
|
-
height: @nav-parent-icon-height;
|
|
159
|
-
margin-left: auto;
|
|
160
|
-
.svg-fill(@internal-nav-parent-close-image, "#000", @nav-parent-icon-color);
|
|
161
|
-
background-repeat: no-repeat;
|
|
162
|
-
background-position: 50% 50%;
|
|
163
|
-
.hook-nav-parent-icon();
|
|
164
|
-
}
|
|
148
|
+
.uk-nav-parent-icon { margin-left: auto; }
|
|
165
149
|
|
|
166
|
-
.uk-nav
|
|
150
|
+
.uk-nav > li > a[aria-expanded="true"] .uk-nav-parent-icon { transform: rotate(180deg); }
|
|
167
151
|
|
|
168
152
|
|
|
169
153
|
/* Header
|
|
@@ -352,7 +336,7 @@ ul.uk-nav-sub {
|
|
|
352
336
|
.uk-nav-center .uk-nav-sub ul { padding-left: 0; }
|
|
353
337
|
|
|
354
338
|
/* Parent icon modifier */
|
|
355
|
-
.uk-nav-center.uk-nav-parent-icon
|
|
339
|
+
.uk-nav-center .uk-nav-parent-icon { margin-left: 0; }
|
|
356
340
|
|
|
357
341
|
|
|
358
342
|
/* Style modifier
|
|
@@ -372,7 +356,6 @@ ul.uk-nav-sub {
|
|
|
372
356
|
.hook-nav-misc();
|
|
373
357
|
|
|
374
358
|
.hook-nav-sub() {}
|
|
375
|
-
.hook-nav-parent-icon() {}
|
|
376
359
|
.hook-nav-header() {}
|
|
377
360
|
.hook-nav-divider() {}
|
|
378
361
|
.hook-nav-default() {}
|
|
@@ -396,7 +379,6 @@ ul.uk-nav-sub {
|
|
|
396
379
|
// Inverse
|
|
397
380
|
// ========================================================================
|
|
398
381
|
|
|
399
|
-
@inverse-nav-parent-icon-color: @inverse-global-color;
|
|
400
382
|
@inverse-nav-default-item-color: @inverse-global-muted-color;
|
|
401
383
|
@inverse-nav-default-item-hover-color: @inverse-global-color;
|
|
402
384
|
@inverse-nav-default-item-active-color: @inverse-global-emphasis-color;
|
|
@@ -419,17 +401,6 @@ ul.uk-nav-sub {
|
|
|
419
401
|
|
|
420
402
|
.hook-inverse() {
|
|
421
403
|
|
|
422
|
-
//
|
|
423
|
-
// Parent icon modifier
|
|
424
|
-
//
|
|
425
|
-
|
|
426
|
-
.uk-nav-parent-icon > .uk-parent > a::after {
|
|
427
|
-
.svg-fill(@internal-nav-parent-close-image, "#000", @inverse-nav-parent-icon-color);
|
|
428
|
-
.hook-inverse-nav-parent-icon();
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
.uk-nav-parent-icon > .uk-parent.uk-open > a::after { .svg-fill(@internal-nav-parent-open-image, "#000", @inverse-nav-parent-icon-color); }
|
|
432
|
-
|
|
433
404
|
//
|
|
434
405
|
// Default
|
|
435
406
|
//
|
|
@@ -511,7 +482,6 @@ ul.uk-nav-sub {
|
|
|
511
482
|
|
|
512
483
|
}
|
|
513
484
|
|
|
514
|
-
.hook-inverse-nav-parent-icon() {}
|
|
515
485
|
.hook-inverse-nav-default-item() {}
|
|
516
486
|
.hook-inverse-nav-default-item-hover() {}
|
|
517
487
|
.hook-inverse-nav-default-item-active() {}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
// `uk-navbar-center-left`
|
|
11
11
|
// `uk-navbar-center-right`
|
|
12
12
|
// `uk-navbar-nav`
|
|
13
|
+
// `uk-navbar-parent-icon`
|
|
13
14
|
// `uk-navbar-item`
|
|
14
15
|
// `uk-navbar-toggle`
|
|
15
16
|
// `uk-navbar-subtitle`
|
|
@@ -51,9 +52,7 @@
|
|
|
51
52
|
@navbar-nav-item-onclick-color: @global-emphasis-color;
|
|
52
53
|
@navbar-nav-item-active-color: @global-emphasis-color;
|
|
53
54
|
|
|
54
|
-
@navbar-parent-icon-
|
|
55
|
-
@navbar-parent-icon-height: 12px;
|
|
56
|
-
@navbar-parent-icon-color: @navbar-nav-item-color;
|
|
55
|
+
@navbar-parent-icon-margin-left: 4px;
|
|
57
56
|
|
|
58
57
|
@navbar-item-padding-horizontal: 15px;
|
|
59
58
|
@navbar-item-color: @global-color;
|
|
@@ -75,16 +74,22 @@
|
|
|
75
74
|
@navbar-dropdown-grid-gutter-horizontal: @global-gutter;
|
|
76
75
|
@navbar-dropdown-grid-gutter-vertical: @navbar-dropdown-grid-gutter-horizontal;
|
|
77
76
|
|
|
77
|
+
@navbar-dropdown-large-shift-margin: 0;
|
|
78
78
|
@navbar-dropdown-large-padding: 40px;
|
|
79
79
|
|
|
80
80
|
@navbar-dropdown-stretch-padding-top: 15px;
|
|
81
81
|
@navbar-dropdown-stretch-padding-bottom: @navbar-dropdown-stretch-padding-top;
|
|
82
82
|
@navbar-dropdown-stretch-padding-horizontal: 15px;
|
|
83
|
-
@navbar-dropdown-stretch-
|
|
83
|
+
@navbar-dropdown-stretch-padding-horizontal-s: @global-gutter;
|
|
84
|
+
@navbar-dropdown-stretch-padding-horizontal-m: @global-medium-gutter;
|
|
85
|
+
@navbar-dropdown-stretch-background: @navbar-dropdown-background;
|
|
84
86
|
|
|
85
87
|
@navbar-dropdown-dropbar-padding-top: @navbar-dropdown-padding;
|
|
86
88
|
@navbar-dropdown-dropbar-padding-bottom: @navbar-dropdown-dropbar-padding-top;
|
|
87
89
|
@navbar-dropdown-dropbar-padding-horizontal: @navbar-nav-item-padding-horizontal;
|
|
90
|
+
@navbar-dropdown-dropbar-viewport-margin: 15px;
|
|
91
|
+
@navbar-dropdown-dropbar-viewport-margin-s: @global-gutter;
|
|
92
|
+
@navbar-dropdown-dropbar-viewport-margin-m: @global-medium-gutter;
|
|
88
93
|
|
|
89
94
|
@navbar-dropdown-nav-item-color: @global-muted-color;
|
|
90
95
|
@navbar-dropdown-nav-item-hover-color: @global-color;
|
|
@@ -100,9 +105,6 @@
|
|
|
100
105
|
@navbar-dropbar-background: @navbar-dropdown-background;
|
|
101
106
|
@navbar-dropbar-z-index: @global-z-index - 20;
|
|
102
107
|
|
|
103
|
-
@internal-navbar-parent-close-image: "../../images/backgrounds/navbar-parent-close.svg";
|
|
104
|
-
@internal-navbar-parent-open-image: "../../images/backgrounds/navbar-parent-open.svg";
|
|
105
|
-
|
|
106
108
|
|
|
107
109
|
/* ========================================================================
|
|
108
110
|
Component: Navbar
|
|
@@ -285,19 +287,9 @@
|
|
|
285
287
|
/* Parent icon modifier
|
|
286
288
|
========================================================================== */
|
|
287
289
|
|
|
288
|
-
.uk-navbar-parent-icon
|
|
289
|
-
content: "";
|
|
290
|
-
width: @navbar-parent-icon-width;
|
|
291
|
-
height: @navbar-parent-icon-height;
|
|
292
|
-
margin-left: auto;
|
|
293
|
-
.svg-fill(@internal-navbar-parent-close-image, "#000", @navbar-parent-icon-color);
|
|
294
|
-
background-repeat: no-repeat;
|
|
295
|
-
background-position: 50% 50%;
|
|
296
|
-
.hook-nav-parent-icon();
|
|
297
|
-
}
|
|
290
|
+
.uk-navbar-parent-icon { margin-left: @navbar-parent-icon-margin-left; }
|
|
298
291
|
|
|
299
|
-
.uk-navbar-
|
|
300
|
-
.uk-navbar-parent-icon .uk-navbar-nav > .uk-parent > a[aria-expanded="true"]::after { .svg-fill(@internal-navbar-parent-open-image, "#000", @navbar-parent-icon-color); }
|
|
292
|
+
.uk-navbar-nav > li > a[aria-expanded="true"] .uk-navbar-parent-icon { transform: rotate(180deg); }
|
|
301
293
|
|
|
302
294
|
|
|
303
295
|
/* Item
|
|
@@ -417,6 +409,12 @@
|
|
|
417
409
|
/* Show */
|
|
418
410
|
.uk-navbar-dropdown.uk-open { display: block; }
|
|
419
411
|
|
|
412
|
+
/*
|
|
413
|
+
* Remove margin from the last-child
|
|
414
|
+
*/
|
|
415
|
+
|
|
416
|
+
.uk-navbar-dropdown > :last-child { margin-bottom: 0; }
|
|
417
|
+
|
|
420
418
|
// Color Mode
|
|
421
419
|
.uk-navbar-dropdown:extend(.uk-light all) when (@navbar-dropdown-color-mode = light) {}
|
|
422
420
|
.uk-navbar-dropdown:extend(.uk-dark all) when (@navbar-dropdown-color-mode = dark) {}
|
|
@@ -449,7 +447,10 @@
|
|
|
449
447
|
* Size modifier
|
|
450
448
|
*/
|
|
451
449
|
|
|
452
|
-
.uk-navbar-dropdown-large {
|
|
450
|
+
.uk-navbar-dropdown-large {
|
|
451
|
+
--uk-position-shift-offset: @navbar-dropdown-large-shift-margin;
|
|
452
|
+
padding: @navbar-dropdown-large-padding;
|
|
453
|
+
}
|
|
453
454
|
|
|
454
455
|
/*
|
|
455
456
|
* Stretch modifier
|
|
@@ -457,7 +458,7 @@
|
|
|
457
458
|
* 2. Style
|
|
458
459
|
*/
|
|
459
460
|
|
|
460
|
-
|
|
461
|
+
.uk-navbar-dropdown-stretch {
|
|
461
462
|
--uk-position-offset: 0;
|
|
462
463
|
--uk-position-shift-offset: 0;
|
|
463
464
|
--uk-position-viewport-offset: 0;
|
|
@@ -470,6 +471,26 @@
|
|
|
470
471
|
.hook-navbar-dropdown-stretch();
|
|
471
472
|
}
|
|
472
473
|
|
|
474
|
+
/* Phone landscape and bigger */
|
|
475
|
+
@media (min-width: @breakpoint-small) {
|
|
476
|
+
|
|
477
|
+
.uk-navbar-dropdown-stretch {
|
|
478
|
+
padding-left: @navbar-dropdown-stretch-padding-horizontal-s;
|
|
479
|
+
padding-right: @navbar-dropdown-stretch-padding-horizontal-s;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/* Tablet landscape and bigger */
|
|
485
|
+
@media (min-width: @breakpoint-medium) {
|
|
486
|
+
|
|
487
|
+
.uk-navbar-dropdown-stretch {
|
|
488
|
+
padding-left: @navbar-dropdown-stretch-padding-horizontal-m;
|
|
489
|
+
padding-right: @navbar-dropdown-stretch-padding-horizontal-m;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
}
|
|
493
|
+
|
|
473
494
|
/*
|
|
474
495
|
* Dropbar modifier
|
|
475
496
|
* 1. Reset dropdown width to prevent to early shifting
|
|
@@ -485,9 +506,25 @@
|
|
|
485
506
|
/* 3 */
|
|
486
507
|
padding: @navbar-dropdown-dropbar-padding-top @navbar-dropdown-dropbar-padding-horizontal @navbar-dropdown-dropbar-padding-bottom @navbar-dropdown-dropbar-padding-horizontal;
|
|
487
508
|
--uk-position-shift-offset: 0;
|
|
509
|
+
--uk-position-viewport-offset: @navbar-dropdown-dropbar-viewport-margin;
|
|
488
510
|
.hook-navbar-dropdown-dropbar();
|
|
489
511
|
}
|
|
490
512
|
|
|
513
|
+
/* Phone landscape and bigger */
|
|
514
|
+
@media (min-width: @breakpoint-small) {
|
|
515
|
+
|
|
516
|
+
.uk-navbar-dropdown-dropbar { --uk-position-viewport-offset: @navbar-dropdown-dropbar-viewport-margin-s; }
|
|
517
|
+
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
/* Tablet landscape and bigger */
|
|
521
|
+
@media (min-width: @breakpoint-medium) {
|
|
522
|
+
|
|
523
|
+
.uk-navbar-dropdown-dropbar { --uk-position-viewport-offset: @navbar-dropdown-dropbar-viewport-margin-m; }
|
|
524
|
+
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
|
|
491
528
|
|
|
492
529
|
/* Dropdown Nav
|
|
493
530
|
* Adopts `uk-nav`
|
|
@@ -616,6 +653,10 @@
|
|
|
616
653
|
|
|
617
654
|
.hook-inverse() {
|
|
618
655
|
|
|
656
|
+
//
|
|
657
|
+
// Nav Item
|
|
658
|
+
//
|
|
659
|
+
|
|
619
660
|
.uk-navbar-nav > li > a {
|
|
620
661
|
color: @inverse-navbar-nav-item-color;
|
|
621
662
|
.hook-inverse-navbar-nav-item();
|
|
@@ -637,11 +678,19 @@
|
|
|
637
678
|
.hook-inverse-navbar-nav-item-active();
|
|
638
679
|
}
|
|
639
680
|
|
|
681
|
+
//
|
|
682
|
+
// Item
|
|
683
|
+
//
|
|
684
|
+
|
|
640
685
|
.uk-navbar-item {
|
|
641
686
|
color: @inverse-navbar-item-color;
|
|
642
687
|
.hook-inverse-navbar-item();
|
|
643
688
|
}
|
|
644
689
|
|
|
690
|
+
//
|
|
691
|
+
// Toggle
|
|
692
|
+
//
|
|
693
|
+
|
|
645
694
|
.uk-navbar-toggle {
|
|
646
695
|
color: @inverse-navbar-toggle-color;
|
|
647
696
|
.hook-inverse-navbar-toggle();
|