uikit 3.14.4-dev.5e7e87ba7 → 3.14.4-dev.6002e7046
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 +5 -1
- package/dist/css/uikit-core-rtl.css +14 -3
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +14 -3
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +16 -28
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +16 -28
- 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 +27 -17
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +27 -17
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +4 -2
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +1 -1
- 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 +17 -8
- 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 +194 -161
- package/dist/js/uikit-core.min.js +15 -12
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +197 -162
- package/dist/js/uikit.min.js +15 -12
- package/package.json +11 -11
- package/src/images/components/navbar-toggle-icon.svg +17 -14
- package/src/js/api/hooks.js +5 -1
- package/src/js/api/state.js +1 -1
- package/src/js/components/notification.js +3 -1
- package/src/js/core/drop.js +32 -33
- package/src/js/core/navbar.js +3 -1
- package/src/js/core/offcanvas.js +8 -4
- package/src/js/core/toggle.js +3 -5
- package/src/js/mixin/modal.js +15 -12
- package/src/js/mixin/position.js +5 -4
- package/src/js/mixin/style.js +11 -0
- package/src/js/mixin/togglable.js +11 -3
- package/src/js/util/animation.js +5 -4
- package/src/js/util/class.js +3 -1
- package/src/js/util/position.js +96 -90
- package/src/less/components/dropbar.less +11 -0
- package/src/less/components/nav.less +3 -1
- package/src/less/components/navbar.less +17 -3
- package/src/less/theme/navbar.less +5 -32
- package/src/scss/components/dropbar.scss +11 -0
- package/src/scss/components/nav.scss +3 -1
- package/src/scss/components/navbar.scss +17 -3
- package/src/scss/mixins-theme.scss +3 -28
- package/src/scss/mixins.scss +2 -0
- package/src/scss/theme/navbar.scss +5 -5
- package/src/scss/variables-theme.scss +8 -4
- package/src/scss/variables.scss +7 -1
- package/tests/drop.html +4 -6
- package/tests/dropbar.html +10 -8
- package/tests/index.html +1 -1
- package/tests/js/index.js +1 -4
- package/tests/navbar.html +48 -21
- package/tests/position.html +17 -4
- package/tests/search.html +2 -2
- package/tests/sticky-navbar.html +12 -12
package/src/js/util/position.js
CHANGED
|
@@ -15,6 +15,7 @@ export function positionAt(element, target, options) {
|
|
|
15
15
|
...options.attach,
|
|
16
16
|
},
|
|
17
17
|
offset: [0, 0],
|
|
18
|
+
placement: [],
|
|
18
19
|
...options,
|
|
19
20
|
};
|
|
20
21
|
|
|
@@ -25,57 +26,21 @@ export function positionAt(element, target, options) {
|
|
|
25
26
|
offset(element, getPosition(element, target, options));
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
function attachTo(element, target, options) {
|
|
29
|
-
let { attach, offset: offsetBy } = {
|
|
30
|
-
attach: {
|
|
31
|
-
element: ['left', 'top'],
|
|
32
|
-
target: ['left', 'top'],
|
|
33
|
-
...options.attach,
|
|
34
|
-
},
|
|
35
|
-
offset: [0, 0],
|
|
36
|
-
...options,
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const position = offset(element);
|
|
40
|
-
|
|
41
|
-
for (const [i, [prop, dir, start, end]] of Object.entries(dirs)) {
|
|
42
|
-
const targetOffset =
|
|
43
|
-
attach.target[i] === attach.element[i] ? offsetViewport(target[i]) : offset(target[i]);
|
|
44
|
-
|
|
45
|
-
position[start] = position[dir] =
|
|
46
|
-
targetOffset[start] +
|
|
47
|
-
moveBy(attach.target[i], end, targetOffset[prop]) -
|
|
48
|
-
moveBy(attach.element[i], end, position[prop]) +
|
|
49
|
-
+offsetBy[i];
|
|
50
|
-
position[end] = position[start] + position[prop];
|
|
51
|
-
}
|
|
52
|
-
return position;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function moveBy(start, end, dim) {
|
|
56
|
-
return start === 'center' ? dim / 2 : start === end ? dim : 0;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
29
|
function getPosition(element, target, options) {
|
|
60
30
|
const position = attachTo(element, target, options);
|
|
61
31
|
|
|
62
32
|
let {
|
|
63
|
-
flip,
|
|
64
|
-
shift,
|
|
65
33
|
attach: { element: elAttach, target: targetAttach },
|
|
66
34
|
offset: elOffset,
|
|
67
35
|
boundary,
|
|
68
36
|
viewportOffset,
|
|
37
|
+
placement,
|
|
69
38
|
} = options;
|
|
70
39
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const offsetPosition = { ...position };
|
|
76
|
-
for (const [i, [prop, dir, start, end]] of Object.entries(dirs)) {
|
|
40
|
+
let offsetPosition = position;
|
|
41
|
+
for (const [i, [prop, , start, end]] of Object.entries(dirs)) {
|
|
77
42
|
let viewports = scrollParents(target[i]);
|
|
78
|
-
const [
|
|
43
|
+
const scrollArea = getScrollArea(viewports[0], viewportOffset, i);
|
|
79
44
|
|
|
80
45
|
let viewport = getIntersectionArea(...viewports.map(offsetViewport));
|
|
81
46
|
|
|
@@ -85,54 +50,28 @@ function getPosition(element, target, options) {
|
|
|
85
50
|
}
|
|
86
51
|
|
|
87
52
|
if (boundary) {
|
|
88
|
-
viewport = getIntersectionArea(viewport,
|
|
53
|
+
viewport = getIntersectionArea(viewport, offset(boundary));
|
|
89
54
|
}
|
|
90
55
|
|
|
91
|
-
|
|
92
|
-
const isInEndViewport = position[end] <= viewport[end];
|
|
93
|
-
|
|
94
|
-
if (isInStartViewport && isInEndViewport) {
|
|
56
|
+
if (isWithin(position, viewport, i)) {
|
|
95
57
|
continue;
|
|
96
58
|
}
|
|
97
59
|
|
|
98
60
|
let offsetBy = 0;
|
|
99
|
-
const targetDim = offset(target[i]);
|
|
100
61
|
|
|
101
62
|
// Flip
|
|
102
|
-
if (
|
|
63
|
+
if (placement[i] === 'flip') {
|
|
103
64
|
if (
|
|
104
|
-
|
|
105
|
-
(
|
|
106
|
-
(elAttach[i] === start && isInEndViewport)
|
|
65
|
+
(targetAttach[i] === end && position[end] <= viewport[end]) ||
|
|
66
|
+
(targetAttach[i] === start && position[start] >= viewport[start])
|
|
107
67
|
) {
|
|
108
68
|
continue;
|
|
109
69
|
}
|
|
110
70
|
|
|
111
|
-
offsetBy =
|
|
112
|
-
(elAttach[i] === start
|
|
113
|
-
? -position[prop]
|
|
114
|
-
: elAttach[i] === end
|
|
115
|
-
? position[prop]
|
|
116
|
-
: 0) +
|
|
117
|
-
(targetAttach[i] === start
|
|
118
|
-
? targetDim[prop]
|
|
119
|
-
: targetAttach[i] === end
|
|
120
|
-
? -targetDim[prop]
|
|
121
|
-
: 0) -
|
|
122
|
-
elOffset[i] * 2;
|
|
71
|
+
offsetBy = flip(element, target, options, i)[start] - position[start];
|
|
123
72
|
|
|
124
|
-
if (
|
|
125
|
-
|
|
126
|
-
{
|
|
127
|
-
...position,
|
|
128
|
-
[start]: position[start] + offsetBy,
|
|
129
|
-
[end]: position[end] + offsetBy,
|
|
130
|
-
},
|
|
131
|
-
scrollElement,
|
|
132
|
-
i
|
|
133
|
-
)
|
|
134
|
-
) {
|
|
135
|
-
if (isInScrollArea(position, scrollElement, i)) {
|
|
73
|
+
if (!isWithin(applyOffset(position, offsetBy, i), scrollArea, i)) {
|
|
74
|
+
if (isWithin(position, scrollArea, i)) {
|
|
136
75
|
continue;
|
|
137
76
|
}
|
|
138
77
|
|
|
@@ -143,14 +82,15 @@ function getPosition(element, target, options) {
|
|
|
143
82
|
const newPos = getPosition(element, target, {
|
|
144
83
|
...options,
|
|
145
84
|
attach: {
|
|
146
|
-
element: elAttach.map(
|
|
147
|
-
target: targetAttach.map(
|
|
85
|
+
element: elAttach.map(flipAxis).reverse(),
|
|
86
|
+
target: targetAttach.map(flipAxis).reverse(),
|
|
148
87
|
},
|
|
149
88
|
offset: elOffset.reverse(),
|
|
89
|
+
placement: placement.reverse(),
|
|
150
90
|
recursion: true,
|
|
151
91
|
});
|
|
152
92
|
|
|
153
|
-
if (newPos &&
|
|
93
|
+
if (newPos && isWithin(newPos, scrollArea, 1 - i)) {
|
|
154
94
|
return newPos;
|
|
155
95
|
}
|
|
156
96
|
|
|
@@ -158,7 +98,8 @@ function getPosition(element, target, options) {
|
|
|
158
98
|
}
|
|
159
99
|
|
|
160
100
|
// Shift
|
|
161
|
-
} else if (shift) {
|
|
101
|
+
} else if (placement[i] === 'shift') {
|
|
102
|
+
const targetDim = offset(target[i]);
|
|
162
103
|
offsetBy =
|
|
163
104
|
clamp(
|
|
164
105
|
clamp(position[start], viewport[start], viewport[end] - position[prop]),
|
|
@@ -167,13 +108,54 @@ function getPosition(element, target, options) {
|
|
|
167
108
|
) - position[start];
|
|
168
109
|
}
|
|
169
110
|
|
|
170
|
-
offsetPosition
|
|
171
|
-
offsetPosition[end] += offsetBy;
|
|
111
|
+
offsetPosition = applyOffset(offsetPosition, offsetBy, i);
|
|
172
112
|
}
|
|
173
113
|
|
|
174
114
|
return offsetPosition;
|
|
175
115
|
}
|
|
176
116
|
|
|
117
|
+
function attachTo(element, target, options) {
|
|
118
|
+
let { attach, offset: offsetBy } = {
|
|
119
|
+
attach: {
|
|
120
|
+
element: ['left', 'top'],
|
|
121
|
+
target: ['left', 'top'],
|
|
122
|
+
...options.attach,
|
|
123
|
+
},
|
|
124
|
+
offset: [0, 0],
|
|
125
|
+
...options,
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
let elOffset = offset(element);
|
|
129
|
+
|
|
130
|
+
for (const [i, [prop, , start, end]] of Object.entries(dirs)) {
|
|
131
|
+
const targetOffset =
|
|
132
|
+
attach.target[i] === attach.element[i] ? offsetViewport(target[i]) : offset(target[i]);
|
|
133
|
+
|
|
134
|
+
elOffset = applyOffset(
|
|
135
|
+
elOffset,
|
|
136
|
+
targetOffset[start] -
|
|
137
|
+
elOffset[start] +
|
|
138
|
+
moveBy(attach.target[i], end, targetOffset[prop]) -
|
|
139
|
+
moveBy(attach.element[i], end, elOffset[prop]) +
|
|
140
|
+
+offsetBy[i],
|
|
141
|
+
i
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
return elOffset;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function applyOffset(position, offset, i) {
|
|
148
|
+
const [, dir, start, end] = dirs[i];
|
|
149
|
+
const newPos = { ...position };
|
|
150
|
+
newPos[start] = position[dir] = position[start] + offset;
|
|
151
|
+
newPos[end] += offset;
|
|
152
|
+
return newPos;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function moveBy(attach, end, dim) {
|
|
156
|
+
return attach === 'center' ? dim / 2 : attach === end ? dim : 0;
|
|
157
|
+
}
|
|
158
|
+
|
|
177
159
|
function getIntersectionArea(...rects) {
|
|
178
160
|
let area = {};
|
|
179
161
|
for (const rect of rects) {
|
|
@@ -185,21 +167,45 @@ function getIntersectionArea(...rects) {
|
|
|
185
167
|
return area;
|
|
186
168
|
}
|
|
187
169
|
|
|
188
|
-
function
|
|
189
|
-
const
|
|
190
|
-
const
|
|
191
|
-
viewport[start] -= scrollElement[`scroll${ucfirst(start)}`];
|
|
192
|
-
viewport[end] = viewport[start] + scrollElement[`scroll${ucfirst(prop)}`];
|
|
170
|
+
function getScrollArea(scrollElement, viewportOffset, i) {
|
|
171
|
+
const [prop, , start, end] = dirs[i];
|
|
172
|
+
const viewport = offsetViewport(scrollElement);
|
|
173
|
+
viewport[start] -= scrollElement[`scroll${ucfirst(start)}`] - viewportOffset;
|
|
174
|
+
viewport[end] = viewport[start] + scrollElement[`scroll${ucfirst(prop)}`] - viewportOffset;
|
|
175
|
+
return viewport;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function isWithin(positionA, positionB, i) {
|
|
179
|
+
const [, , start, end] = dirs[i];
|
|
180
|
+
return positionA[start] >= positionB[start] && positionA[end] <= positionB[end];
|
|
181
|
+
}
|
|
193
182
|
|
|
194
|
-
|
|
183
|
+
function flip(element, target, { offset, attach }, i) {
|
|
184
|
+
return attachTo(element, target, {
|
|
185
|
+
attach: {
|
|
186
|
+
element: flipAttach(attach.element, i),
|
|
187
|
+
target: flipAttach(attach.target, i),
|
|
188
|
+
},
|
|
189
|
+
offset: flipOffset(offset, i),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function flipAttach(attach, i) {
|
|
194
|
+
const newAttach = [...attach];
|
|
195
|
+
const index = dirs[i].indexOf(attach[i]);
|
|
196
|
+
if (~index) {
|
|
197
|
+
newAttach[i] = dirs[i][1 - (index % 2) + 2];
|
|
198
|
+
}
|
|
199
|
+
return newAttach;
|
|
195
200
|
}
|
|
196
201
|
|
|
197
|
-
function
|
|
198
|
-
|
|
199
|
-
|
|
202
|
+
function flipOffset(offset, i) {
|
|
203
|
+
offset = [...offset];
|
|
204
|
+
offset[i] *= -1;
|
|
205
|
+
return offset;
|
|
200
206
|
}
|
|
201
207
|
|
|
202
|
-
function
|
|
208
|
+
function flipAxis(prop) {
|
|
203
209
|
for (let i = 0; i < dirs.length; i++) {
|
|
204
210
|
const index = dirs[i].indexOf(prop);
|
|
205
211
|
if (~index) {
|
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
@dropbar-color: @global-color;
|
|
21
21
|
@dropbar-color-mode: none;
|
|
22
22
|
|
|
23
|
+
@dropbar-large-padding-top: 40px;
|
|
24
|
+
@dropbar-large-padding-bottom: @dropbar-large-padding-top;
|
|
25
|
+
|
|
23
26
|
|
|
24
27
|
/* ========================================================================
|
|
25
28
|
Component: Dropbar
|
|
@@ -81,6 +84,14 @@
|
|
|
81
84
|
.uk-dropbar:extend(.uk-light all) when (@dropbar-color-mode = light) {}
|
|
82
85
|
.uk-dropbar:extend(.uk-dark all) when (@dropbar-color-mode = dark) {}
|
|
83
86
|
|
|
87
|
+
/* Size modifier
|
|
88
|
+
========================================================================== */
|
|
89
|
+
|
|
90
|
+
.uk-dropbar-large {
|
|
91
|
+
padding-top: @dropbar-large-padding-top;
|
|
92
|
+
padding-bottom: @dropbar-large-padding-bottom;
|
|
93
|
+
}
|
|
94
|
+
|
|
84
95
|
|
|
85
96
|
/* Direction modifier
|
|
86
97
|
========================================================================== */
|
|
@@ -33,6 +33,8 @@
|
|
|
33
33
|
@nav-sublist-deeper-padding-left: 15px;
|
|
34
34
|
@nav-sublist-item-padding-vertical: 2px;
|
|
35
35
|
|
|
36
|
+
@nav-parent-icon-margin-left: 4px;
|
|
37
|
+
|
|
36
38
|
@nav-header-padding-vertical: @nav-item-padding-vertical;
|
|
37
39
|
@nav-header-padding-horizontal: @nav-item-padding-horizontal;
|
|
38
40
|
@nav-header-font-size: @global-small-font-size;
|
|
@@ -441,7 +443,7 @@ ul.uk-nav-sub {
|
|
|
441
443
|
.uk-nav-center .uk-nav-sub ul { padding-left: 0; }
|
|
442
444
|
|
|
443
445
|
/* Parent icon */
|
|
444
|
-
.uk-nav-center .uk-nav-parent-icon { margin-left:
|
|
446
|
+
.uk-nav-center .uk-nav-parent-icon { margin-left: @nav-parent-icon-margin-left; }
|
|
445
447
|
|
|
446
448
|
|
|
447
449
|
/* Style modifier
|
|
@@ -77,13 +77,17 @@
|
|
|
77
77
|
@navbar-dropdown-large-shift-margin: 0;
|
|
78
78
|
@navbar-dropdown-large-padding: 40px;
|
|
79
79
|
|
|
80
|
+
@navbar-dropdown-dropbar-shift-margin: 0;
|
|
80
81
|
@navbar-dropdown-dropbar-padding-top: @navbar-dropdown-padding;
|
|
81
82
|
@navbar-dropdown-dropbar-padding-bottom: @navbar-dropdown-dropbar-padding-top;
|
|
82
|
-
@navbar-dropdown-dropbar-padding-horizontal: @navbar-nav-item-padding-horizontal;
|
|
83
83
|
@navbar-dropdown-dropbar-viewport-margin: 15px;
|
|
84
84
|
@navbar-dropdown-dropbar-viewport-margin-s: @global-gutter;
|
|
85
85
|
@navbar-dropdown-dropbar-viewport-margin-m: @global-medium-gutter;
|
|
86
86
|
|
|
87
|
+
@navbar-dropdown-dropbar-large-shift-margin: 0;
|
|
88
|
+
@navbar-dropdown-dropbar-large-padding-top: @navbar-dropdown-large-padding;
|
|
89
|
+
@navbar-dropdown-dropbar-large-padding-bottom: @navbar-dropdown-dropbar-large-padding-top;
|
|
90
|
+
|
|
87
91
|
@navbar-dropdown-nav-item-color: @global-muted-color;
|
|
88
92
|
@navbar-dropdown-nav-item-hover-color: @global-color;
|
|
89
93
|
@navbar-dropdown-nav-item-active-color: @global-emphasis-color;
|
|
@@ -441,6 +445,7 @@
|
|
|
441
445
|
.uk-navbar-dropdown-large {
|
|
442
446
|
--uk-position-shift-offset: @navbar-dropdown-large-shift-margin;
|
|
443
447
|
padding: @navbar-dropdown-large-padding;
|
|
448
|
+
.hook-navbar-dropdown-large();
|
|
444
449
|
}
|
|
445
450
|
|
|
446
451
|
/*
|
|
@@ -456,9 +461,9 @@
|
|
|
456
461
|
/* 2 */
|
|
457
462
|
background: transparent;
|
|
458
463
|
/* 3 */
|
|
459
|
-
padding: @navbar-dropdown-dropbar-padding-top
|
|
464
|
+
padding: @navbar-dropdown-dropbar-padding-top 0 @navbar-dropdown-dropbar-padding-bottom 0;
|
|
460
465
|
--uk-position-offset: 0;
|
|
461
|
-
--uk-position-shift-offset:
|
|
466
|
+
--uk-position-shift-offset: @navbar-dropdown-dropbar-shift-margin;
|
|
462
467
|
--uk-position-viewport-offset: @navbar-dropdown-dropbar-viewport-margin;
|
|
463
468
|
.hook-navbar-dropdown-dropbar();
|
|
464
469
|
}
|
|
@@ -477,6 +482,13 @@
|
|
|
477
482
|
|
|
478
483
|
}
|
|
479
484
|
|
|
485
|
+
.uk-navbar-dropdown-dropbar-large {
|
|
486
|
+
--uk-position-shift-offset: @navbar-dropdown-dropbar-large-shift-margin;
|
|
487
|
+
padding-top: @navbar-dropdown-dropbar-large-padding-top;
|
|
488
|
+
padding-bottom: @navbar-dropdown-dropbar-large-padding-bottom;
|
|
489
|
+
.hook-navbar-dropdown-dropbar-large();
|
|
490
|
+
}
|
|
491
|
+
|
|
480
492
|
|
|
481
493
|
/* Dropdown Nav
|
|
482
494
|
* Adopts `uk-nav`
|
|
@@ -586,7 +598,9 @@
|
|
|
586
598
|
.hook-navbar-transparent() {}
|
|
587
599
|
.hook-navbar-sticky() {}
|
|
588
600
|
.hook-navbar-dropdown() {}
|
|
601
|
+
.hook-navbar-dropdown-large() {}
|
|
589
602
|
.hook-navbar-dropdown-dropbar() {}
|
|
603
|
+
.hook-navbar-dropdown-dropbar-large() {}
|
|
590
604
|
.hook-navbar-dropdown-nav() {}
|
|
591
605
|
.hook-navbar-dropdown-nav-item() {}
|
|
592
606
|
.hook-navbar-dropdown-nav-item-hover() {}
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
@navbar-dropdown-margin: 15px;
|
|
21
21
|
@navbar-dropdown-padding: 25px;
|
|
22
22
|
@navbar-dropdown-background: @global-background;
|
|
23
|
-
@navbar-dropdown-grid-gutter-horizontal: (@navbar-dropdown-padding * 2);
|
|
24
23
|
|
|
25
24
|
@navbar-dropdown-nav-subtitle-font-size: 12px;
|
|
26
25
|
|
|
@@ -34,9 +33,6 @@
|
|
|
34
33
|
|
|
35
34
|
@navbar-dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15);
|
|
36
35
|
|
|
37
|
-
@navbar-dropdown-grid-divider-border-width: @global-border-width;
|
|
38
|
-
@navbar-dropdown-grid-divider-border: @navbar-dropdown-nav-divider-border;
|
|
39
|
-
|
|
40
36
|
|
|
41
37
|
// Component
|
|
42
38
|
// ========================================================================
|
|
@@ -105,8 +101,12 @@
|
|
|
105
101
|
|
|
106
102
|
.hook-navbar-dropdown() { box-shadow: @navbar-dropdown-box-shadow; }
|
|
107
103
|
|
|
104
|
+
.hook-navbar-dropdown-large() {}
|
|
105
|
+
|
|
108
106
|
.hook-navbar-dropdown-dropbar() { box-shadow: none; }
|
|
109
107
|
|
|
108
|
+
.hook-navbar-dropdown-dropbar-large() {}
|
|
109
|
+
|
|
110
110
|
|
|
111
111
|
// Dropdown nav
|
|
112
112
|
// ========================================================================
|
|
@@ -133,34 +133,7 @@
|
|
|
133
133
|
// Miscellaneous
|
|
134
134
|
// ========================================================================
|
|
135
135
|
|
|
136
|
-
.hook-navbar-misc() {
|
|
137
|
-
|
|
138
|
-
/*
|
|
139
|
-
* Grid Divider
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
.uk-navbar-dropdown-grid > * { position: relative; }
|
|
143
|
-
|
|
144
|
-
.uk-navbar-dropdown-grid > :not(.uk-first-column)::before {
|
|
145
|
-
content: "";
|
|
146
|
-
position: absolute;
|
|
147
|
-
top: 0;
|
|
148
|
-
bottom: 0;
|
|
149
|
-
left: (@navbar-dropdown-grid-gutter-horizontal / 2);
|
|
150
|
-
border-left: @navbar-dropdown-grid-divider-border-width solid @navbar-dropdown-grid-divider-border;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/* Vertical */
|
|
154
|
-
.uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before {
|
|
155
|
-
content: "";
|
|
156
|
-
position: absolute;
|
|
157
|
-
top: -(@navbar-dropdown-grid-gutter-vertical / 2);
|
|
158
|
-
left: @navbar-dropdown-grid-gutter-horizontal;
|
|
159
|
-
right: 0;
|
|
160
|
-
border-top: @navbar-dropdown-grid-divider-border-width solid @navbar-dropdown-grid-divider-border;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
}
|
|
136
|
+
.hook-navbar-misc() {}
|
|
164
137
|
|
|
165
138
|
|
|
166
139
|
// Inverse
|
|
@@ -20,6 +20,9 @@ $dropbar-background: $global-muted-background !defau
|
|
|
20
20
|
$dropbar-color: $global-color !default;
|
|
21
21
|
$dropbar-color-mode: none !default;
|
|
22
22
|
|
|
23
|
+
$dropbar-large-padding-top: 40px !default;
|
|
24
|
+
$dropbar-large-padding-bottom: $dropbar-large-padding-top !default;
|
|
25
|
+
|
|
23
26
|
|
|
24
27
|
/* ========================================================================
|
|
25
28
|
Component: Dropbar
|
|
@@ -81,6 +84,14 @@ $dropbar-color-mode: none !default;
|
|
|
81
84
|
@if ( $dropbar-color-mode == light ) { .uk-dropbar { @extend .uk-light !optional;} }
|
|
82
85
|
@if ( $dropbar-color-mode == dark ) { .uk-dropbar { @extend .uk-dark !optional;} }
|
|
83
86
|
|
|
87
|
+
/* Size modifier
|
|
88
|
+
========================================================================== */
|
|
89
|
+
|
|
90
|
+
.uk-dropbar-large {
|
|
91
|
+
padding-top: $dropbar-large-padding-top;
|
|
92
|
+
padding-bottom: $dropbar-large-padding-bottom;
|
|
93
|
+
}
|
|
94
|
+
|
|
84
95
|
|
|
85
96
|
/* Direction modifier
|
|
86
97
|
========================================================================== */
|
|
@@ -33,6 +33,8 @@ $nav-sublist-padding-left: 15px !default;
|
|
|
33
33
|
$nav-sublist-deeper-padding-left: 15px !default;
|
|
34
34
|
$nav-sublist-item-padding-vertical: 2px !default;
|
|
35
35
|
|
|
36
|
+
$nav-parent-icon-margin-left: 4px !default;
|
|
37
|
+
|
|
36
38
|
$nav-header-padding-vertical: $nav-item-padding-vertical !default;
|
|
37
39
|
$nav-header-padding-horizontal: $nav-item-padding-horizontal !default;
|
|
38
40
|
$nav-header-font-size: $global-small-font-size !default;
|
|
@@ -441,7 +443,7 @@ ul.uk-nav-sub {
|
|
|
441
443
|
.uk-nav-center .uk-nav-sub ul { padding-left: 0; }
|
|
442
444
|
|
|
443
445
|
/* Parent icon */
|
|
444
|
-
.uk-nav-center .uk-nav-parent-icon { margin-left:
|
|
446
|
+
.uk-nav-center .uk-nav-parent-icon { margin-left: $nav-parent-icon-margin-left; }
|
|
445
447
|
|
|
446
448
|
|
|
447
449
|
/* Style modifier
|
|
@@ -77,13 +77,17 @@ $navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-ho
|
|
|
77
77
|
$navbar-dropdown-large-shift-margin: 0 !default;
|
|
78
78
|
$navbar-dropdown-large-padding: 40px !default;
|
|
79
79
|
|
|
80
|
+
$navbar-dropdown-dropbar-shift-margin: 0 !default;
|
|
80
81
|
$navbar-dropdown-dropbar-padding-top: $navbar-dropdown-padding !default;
|
|
81
82
|
$navbar-dropdown-dropbar-padding-bottom: $navbar-dropdown-dropbar-padding-top !default;
|
|
82
|
-
$navbar-dropdown-dropbar-padding-horizontal: $navbar-nav-item-padding-horizontal !default;
|
|
83
83
|
$navbar-dropdown-dropbar-viewport-margin: 15px !default;
|
|
84
84
|
$navbar-dropdown-dropbar-viewport-margin-s: $global-gutter !default;
|
|
85
85
|
$navbar-dropdown-dropbar-viewport-margin-m: $global-medium-gutter !default;
|
|
86
86
|
|
|
87
|
+
$navbar-dropdown-dropbar-large-shift-margin: 0 !default;
|
|
88
|
+
$navbar-dropdown-dropbar-large-padding-top: $navbar-dropdown-large-padding !default;
|
|
89
|
+
$navbar-dropdown-dropbar-large-padding-bottom: $navbar-dropdown-dropbar-large-padding-top !default;
|
|
90
|
+
|
|
87
91
|
$navbar-dropdown-nav-item-color: $global-muted-color !default;
|
|
88
92
|
$navbar-dropdown-nav-item-hover-color: $global-color !default;
|
|
89
93
|
$navbar-dropdown-nav-item-active-color: $global-emphasis-color !default;
|
|
@@ -441,6 +445,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
441
445
|
.uk-navbar-dropdown-large {
|
|
442
446
|
--uk-position-shift-offset: #{$navbar-dropdown-large-shift-margin};
|
|
443
447
|
padding: $navbar-dropdown-large-padding;
|
|
448
|
+
@if(mixin-exists(hook-navbar-dropdown-large)) {@include hook-navbar-dropdown-large();}
|
|
444
449
|
}
|
|
445
450
|
|
|
446
451
|
/*
|
|
@@ -456,9 +461,9 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
456
461
|
/* 2 */
|
|
457
462
|
background: transparent;
|
|
458
463
|
/* 3 */
|
|
459
|
-
padding: $navbar-dropdown-dropbar-padding-top
|
|
464
|
+
padding: $navbar-dropdown-dropbar-padding-top 0 $navbar-dropdown-dropbar-padding-bottom 0;
|
|
460
465
|
--uk-position-offset: 0;
|
|
461
|
-
--uk-position-shift-offset:
|
|
466
|
+
--uk-position-shift-offset: #{$navbar-dropdown-dropbar-shift-margin};
|
|
462
467
|
--uk-position-viewport-offset: #{$navbar-dropdown-dropbar-viewport-margin};
|
|
463
468
|
@if(mixin-exists(hook-navbar-dropdown-dropbar)) {@include hook-navbar-dropdown-dropbar();}
|
|
464
469
|
}
|
|
@@ -477,6 +482,13 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
477
482
|
|
|
478
483
|
}
|
|
479
484
|
|
|
485
|
+
.uk-navbar-dropdown-dropbar-large {
|
|
486
|
+
--uk-position-shift-offset: #{$navbar-dropdown-dropbar-large-shift-margin};
|
|
487
|
+
padding-top: $navbar-dropdown-dropbar-large-padding-top;
|
|
488
|
+
padding-bottom: $navbar-dropdown-dropbar-large-padding-bottom;
|
|
489
|
+
@if(mixin-exists(hook-navbar-dropdown-dropbar-large)) {@include hook-navbar-dropdown-dropbar-large();}
|
|
490
|
+
}
|
|
491
|
+
|
|
480
492
|
|
|
481
493
|
/* Dropdown Nav
|
|
482
494
|
* Adopts `uk-nav`
|
|
@@ -586,7 +598,9 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
|
|
|
586
598
|
// @mixin hook-navbar-transparent(){}
|
|
587
599
|
// @mixin hook-navbar-sticky(){}
|
|
588
600
|
// @mixin hook-navbar-dropdown(){}
|
|
601
|
+
// @mixin hook-navbar-dropdown-large(){}
|
|
589
602
|
// @mixin hook-navbar-dropdown-dropbar(){}
|
|
603
|
+
// @mixin hook-navbar-dropdown-dropbar-large(){}
|
|
590
604
|
// @mixin hook-navbar-dropdown-nav(){}
|
|
591
605
|
// @mixin hook-navbar-dropdown-nav-item(){}
|
|
592
606
|
// @mixin hook-navbar-dropdown-nav-item-hover(){}
|
|
@@ -1826,7 +1826,9 @@
|
|
|
1826
1826
|
@mixin hook-navbar-transparent(){}
|
|
1827
1827
|
@mixin hook-navbar-sticky(){}
|
|
1828
1828
|
@mixin hook-navbar-dropdown(){ box-shadow: $navbar-dropdown-box-shadow; }
|
|
1829
|
+
@mixin hook-navbar-dropdown-large(){}
|
|
1829
1830
|
@mixin hook-navbar-dropdown-dropbar(){ box-shadow: none; }
|
|
1831
|
+
@mixin hook-navbar-dropdown-dropbar-large(){}
|
|
1830
1832
|
@mixin hook-navbar-dropdown-nav(){ font-size: $navbar-dropdown-nav-font-size; }
|
|
1831
1833
|
@mixin hook-navbar-dropdown-nav-item(){}
|
|
1832
1834
|
@mixin hook-navbar-dropdown-nav-item-hover(){}
|
|
@@ -1835,34 +1837,7 @@
|
|
|
1835
1837
|
@mixin hook-navbar-dropdown-nav-header(){}
|
|
1836
1838
|
@mixin hook-navbar-dropdown-nav-divider(){}
|
|
1837
1839
|
@mixin hook-navbar-dropbar(){}
|
|
1838
|
-
@mixin hook-navbar-misc(){
|
|
1839
|
-
|
|
1840
|
-
/*
|
|
1841
|
-
* Grid Divider
|
|
1842
|
-
*/
|
|
1843
|
-
|
|
1844
|
-
.uk-navbar-dropdown-grid > * { position: relative; }
|
|
1845
|
-
|
|
1846
|
-
.uk-navbar-dropdown-grid > :not(.uk-first-column)::before {
|
|
1847
|
-
content: "";
|
|
1848
|
-
position: absolute;
|
|
1849
|
-
top: 0;
|
|
1850
|
-
bottom: 0;
|
|
1851
|
-
left: ($navbar-dropdown-grid-gutter-horizontal * 0.5);
|
|
1852
|
-
border-left: $navbar-dropdown-grid-divider-border-width solid $navbar-dropdown-grid-divider-border;
|
|
1853
|
-
}
|
|
1854
|
-
|
|
1855
|
-
/* Vertical */
|
|
1856
|
-
.uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before {
|
|
1857
|
-
content: "";
|
|
1858
|
-
position: absolute;
|
|
1859
|
-
top: -($navbar-dropdown-grid-gutter-vertical * 0.5);
|
|
1860
|
-
left: $navbar-dropdown-grid-gutter-horizontal;
|
|
1861
|
-
right: 0;
|
|
1862
|
-
border-top: $navbar-dropdown-grid-divider-border-width solid $navbar-dropdown-grid-divider-border;
|
|
1863
|
-
}
|
|
1864
|
-
|
|
1865
|
-
}
|
|
1840
|
+
@mixin hook-navbar-misc(){}
|
|
1866
1841
|
@mixin hook-inverse-navbar-nav-item(){}
|
|
1867
1842
|
@mixin hook-inverse-navbar-nav-item-hover(){}
|
|
1868
1843
|
@mixin hook-inverse-navbar-nav-item-onclick(){}
|
package/src/scss/mixins.scss
CHANGED
|
@@ -1550,7 +1550,9 @@
|
|
|
1550
1550
|
@mixin hook-navbar-transparent(){}
|
|
1551
1551
|
@mixin hook-navbar-sticky(){}
|
|
1552
1552
|
@mixin hook-navbar-dropdown(){}
|
|
1553
|
+
@mixin hook-navbar-dropdown-large(){}
|
|
1553
1554
|
@mixin hook-navbar-dropdown-dropbar(){}
|
|
1555
|
+
@mixin hook-navbar-dropdown-dropbar-large(){}
|
|
1554
1556
|
@mixin hook-navbar-dropdown-nav(){}
|
|
1555
1557
|
@mixin hook-navbar-dropdown-nav-item(){}
|
|
1556
1558
|
@mixin hook-navbar-dropdown-nav-item-hover(){}
|
|
@@ -20,7 +20,6 @@ $navbar-item-padding-horizontal: 0 !default;
|
|
|
20
20
|
$navbar-dropdown-margin: 15px !default;
|
|
21
21
|
$navbar-dropdown-padding: 25px !default;
|
|
22
22
|
$navbar-dropdown-background: $global-background !default;
|
|
23
|
-
$navbar-dropdown-grid-gutter-horizontal: ($navbar-dropdown-padding * 2) !default;
|
|
24
23
|
|
|
25
24
|
$navbar-dropdown-nav-subtitle-font-size: 12px !default;
|
|
26
25
|
|
|
@@ -34,9 +33,6 @@ $navbar-dropdown-nav-font-size: $global-small-font-size !defaul
|
|
|
34
33
|
|
|
35
34
|
$navbar-dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default;
|
|
36
35
|
|
|
37
|
-
$navbar-dropdown-grid-divider-border-width: $global-border-width !default;
|
|
38
|
-
$navbar-dropdown-grid-divider-border: $navbar-dropdown-nav-divider-border !default;
|
|
39
|
-
|
|
40
36
|
|
|
41
37
|
// Component
|
|
42
38
|
// ========================================================================
|
|
@@ -101,8 +97,12 @@ $navbar-dropdown-grid-divider-border: $navbar-dropdown-nav-divider-bo
|
|
|
101
97
|
|
|
102
98
|
|
|
103
99
|
|
|
100
|
+
// @mixin hook-navbar-dropdown-large(){}
|
|
101
|
+
|
|
104
102
|
|
|
105
103
|
|
|
104
|
+
// @mixin hook-navbar-dropdown-dropbar-large(){}
|
|
105
|
+
|
|
106
106
|
|
|
107
107
|
// Dropdown nav
|
|
108
108
|
// ========================================================================
|
|
@@ -129,7 +129,7 @@ $navbar-dropdown-grid-divider-border: $navbar-dropdown-nav-divider-bo
|
|
|
129
129
|
// Miscellaneous
|
|
130
130
|
// ========================================================================
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
// @mixin hook-navbar-misc(){}
|
|
133
133
|
|
|
134
134
|
|
|
135
135
|
// Inverse
|