uikit 3.14.4-dev.5e7e87ba7 → 3.14.4-dev.5fbbc45fb
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 +223 -185
- 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 +226 -186
- 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 +127 -116
- 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/flex.html +36 -36
- package/tests/grid.html +22 -22
- package/tests/height.html +6 -6
- package/tests/index.html +4 -4
- package/tests/js/index.js +1 -4
- package/tests/navbar.html +48 -21
- package/tests/pagination.html +6 -6
- package/tests/position.html +17 -4
- package/tests/search.html +2 -2
- package/tests/sticky-navbar.html +12 -12
- package/tests/utility.html +16 -16
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,114 +26,36 @@ 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);
|
|
31
|
+
const { boundary, viewportOffset = 0, placement } = options;
|
|
61
32
|
|
|
62
|
-
let
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
attach: { element: elAttach, target: targetAttach },
|
|
66
|
-
offset: elOffset,
|
|
67
|
-
boundary,
|
|
68
|
-
viewportOffset,
|
|
69
|
-
} = options;
|
|
70
|
-
|
|
71
|
-
if (!flip && !shift) {
|
|
72
|
-
return position;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const offsetPosition = { ...position };
|
|
76
|
-
for (const [i, [prop, dir, start, end]] of Object.entries(dirs)) {
|
|
77
|
-
let viewports = scrollParents(target[i]);
|
|
78
|
-
const [scrollElement] = viewports;
|
|
79
|
-
|
|
80
|
-
let viewport = getIntersectionArea(...viewports.map(offsetViewport));
|
|
81
|
-
|
|
82
|
-
if (viewportOffset) {
|
|
83
|
-
viewport[start] += viewportOffset;
|
|
84
|
-
viewport[end] -= viewportOffset;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (boundary) {
|
|
88
|
-
viewport = getIntersectionArea(viewport, offsetViewport(boundary));
|
|
89
|
-
}
|
|
33
|
+
let offsetPosition = position;
|
|
34
|
+
for (const [i, [prop, , start, end]] of Object.entries(dirs)) {
|
|
35
|
+
const viewport = getViewport(target[i], viewportOffset, boundary, i);
|
|
90
36
|
|
|
91
|
-
|
|
92
|
-
const isInEndViewport = position[end] <= viewport[end];
|
|
93
|
-
|
|
94
|
-
if (isInStartViewport && isInEndViewport) {
|
|
37
|
+
if (isWithin(position, viewport, i)) {
|
|
95
38
|
continue;
|
|
96
39
|
}
|
|
97
40
|
|
|
98
41
|
let offsetBy = 0;
|
|
99
|
-
const targetDim = offset(target[i]);
|
|
100
42
|
|
|
101
43
|
// Flip
|
|
102
|
-
if (
|
|
44
|
+
if (placement[i] === 'flip') {
|
|
45
|
+
const attach = options.attach.target[i];
|
|
103
46
|
if (
|
|
104
|
-
|
|
105
|
-
(
|
|
106
|
-
(elAttach[i] === start && isInEndViewport)
|
|
47
|
+
(attach === end && position[end] <= viewport[end]) ||
|
|
48
|
+
(attach === start && position[start] >= viewport[start])
|
|
107
49
|
) {
|
|
108
50
|
continue;
|
|
109
51
|
}
|
|
110
52
|
|
|
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;
|
|
53
|
+
offsetBy = flip(element, target, options, i)[start] - position[start];
|
|
123
54
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
[start]: position[start] + offsetBy,
|
|
129
|
-
[end]: position[end] + offsetBy,
|
|
130
|
-
},
|
|
131
|
-
scrollElement,
|
|
132
|
-
i
|
|
133
|
-
)
|
|
134
|
-
) {
|
|
135
|
-
if (isInScrollArea(position, scrollElement, i)) {
|
|
55
|
+
const scrollArea = getScrollArea(target[i], viewportOffset, i);
|
|
56
|
+
|
|
57
|
+
if (!isWithin(applyOffset(position, offsetBy, i), scrollArea, i)) {
|
|
58
|
+
if (isWithin(position, scrollArea, i)) {
|
|
136
59
|
continue;
|
|
137
60
|
}
|
|
138
61
|
|
|
@@ -140,17 +63,9 @@ function getPosition(element, target, options) {
|
|
|
140
63
|
return false;
|
|
141
64
|
}
|
|
142
65
|
|
|
143
|
-
const newPos =
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
element: elAttach.map(flipDir).reverse(),
|
|
147
|
-
target: targetAttach.map(flipDir).reverse(),
|
|
148
|
-
},
|
|
149
|
-
offset: elOffset.reverse(),
|
|
150
|
-
recursion: true,
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
|
|
66
|
+
const newPos = flipAxis(element, target, options);
|
|
67
|
+
|
|
68
|
+
if (newPos && isWithin(newPos, scrollArea, 1 - i)) {
|
|
154
69
|
return newPos;
|
|
155
70
|
}
|
|
156
71
|
|
|
@@ -158,7 +73,9 @@ function getPosition(element, target, options) {
|
|
|
158
73
|
}
|
|
159
74
|
|
|
160
75
|
// Shift
|
|
161
|
-
} else if (shift) {
|
|
76
|
+
} else if (placement[i] === 'shift') {
|
|
77
|
+
const targetDim = offset(target[i]);
|
|
78
|
+
const { offset: elOffset } = options;
|
|
162
79
|
offsetBy =
|
|
163
80
|
clamp(
|
|
164
81
|
clamp(position[start], viewport[start], viewport[end] - position[prop]),
|
|
@@ -167,13 +84,78 @@ function getPosition(element, target, options) {
|
|
|
167
84
|
) - position[start];
|
|
168
85
|
}
|
|
169
86
|
|
|
170
|
-
offsetPosition
|
|
171
|
-
offsetPosition[end] += offsetBy;
|
|
87
|
+
offsetPosition = applyOffset(offsetPosition, offsetBy, i);
|
|
172
88
|
}
|
|
173
89
|
|
|
174
90
|
return offsetPosition;
|
|
175
91
|
}
|
|
176
92
|
|
|
93
|
+
function attachTo(element, target, options) {
|
|
94
|
+
let { attach, offset: offsetBy } = {
|
|
95
|
+
attach: {
|
|
96
|
+
element: ['left', 'top'],
|
|
97
|
+
target: ['left', 'top'],
|
|
98
|
+
...options.attach,
|
|
99
|
+
},
|
|
100
|
+
offset: [0, 0],
|
|
101
|
+
...options,
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
let elOffset = offset(element);
|
|
105
|
+
|
|
106
|
+
for (const [i, [prop, , start, end]] of Object.entries(dirs)) {
|
|
107
|
+
const targetOffset =
|
|
108
|
+
attach.target[i] === attach.element[i] ? offsetViewport(target[i]) : offset(target[i]);
|
|
109
|
+
|
|
110
|
+
elOffset = applyOffset(
|
|
111
|
+
elOffset,
|
|
112
|
+
targetOffset[start] -
|
|
113
|
+
elOffset[start] +
|
|
114
|
+
moveBy(attach.target[i], end, targetOffset[prop]) -
|
|
115
|
+
moveBy(attach.element[i], end, elOffset[prop]) +
|
|
116
|
+
+offsetBy[i],
|
|
117
|
+
i
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
return elOffset;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function applyOffset(position, offset, i) {
|
|
124
|
+
const [, dir, start, end] = dirs[i];
|
|
125
|
+
const newPos = { ...position };
|
|
126
|
+
newPos[start] = position[dir] = position[start] + offset;
|
|
127
|
+
newPos[end] += offset;
|
|
128
|
+
return newPos;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function moveBy(attach, end, dim) {
|
|
132
|
+
return attach === 'center' ? dim / 2 : attach === end ? dim : 0;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function getViewport(element, viewportOffset, boundary, i) {
|
|
136
|
+
let viewport = getIntersectionArea(...scrollParents(element).map(offsetViewport));
|
|
137
|
+
|
|
138
|
+
if (viewportOffset) {
|
|
139
|
+
viewport[dirs[i][2]] += viewportOffset;
|
|
140
|
+
viewport[dirs[i][3]] -= viewportOffset;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (boundary) {
|
|
144
|
+
viewport = getIntersectionArea(viewport, offset(boundary));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return viewport;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function getScrollArea(element, viewportOffset, i) {
|
|
151
|
+
const [prop, , start, end] = dirs[i];
|
|
152
|
+
const [scrollElement] = scrollParents(element);
|
|
153
|
+
const viewport = offsetViewport(scrollElement);
|
|
154
|
+
viewport[start] -= scrollElement[`scroll${ucfirst(start)}`] - viewportOffset;
|
|
155
|
+
viewport[end] = viewport[start] + scrollElement[`scroll${ucfirst(prop)}`] - viewportOffset;
|
|
156
|
+
return viewport;
|
|
157
|
+
}
|
|
158
|
+
|
|
177
159
|
function getIntersectionArea(...rects) {
|
|
178
160
|
let area = {};
|
|
179
161
|
for (const rect of rects) {
|
|
@@ -185,21 +167,44 @@ function getIntersectionArea(...rects) {
|
|
|
185
167
|
return area;
|
|
186
168
|
}
|
|
187
169
|
|
|
188
|
-
function
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
170
|
+
function isWithin(positionA, positionB, i) {
|
|
171
|
+
const [, , start, end] = dirs[i];
|
|
172
|
+
return positionA[start] >= positionB[start] && positionA[end] <= positionB[end];
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function flip(element, target, { offset, attach }, i) {
|
|
176
|
+
return attachTo(element, target, {
|
|
177
|
+
attach: {
|
|
178
|
+
element: flipAttach(attach.element, i),
|
|
179
|
+
target: flipAttach(attach.target, i),
|
|
180
|
+
},
|
|
181
|
+
offset: flipOffset(offset, i),
|
|
182
|
+
});
|
|
183
|
+
}
|
|
193
184
|
|
|
194
|
-
|
|
185
|
+
function flipAxis(element, target, options) {
|
|
186
|
+
return getPosition(element, target, {
|
|
187
|
+
...options,
|
|
188
|
+
attach: {
|
|
189
|
+
element: options.attach.element.map(flipAttachAxis).reverse(),
|
|
190
|
+
target: options.attach.target.map(flipAttachAxis).reverse(),
|
|
191
|
+
},
|
|
192
|
+
offset: options.offset.reverse(),
|
|
193
|
+
placement: options.placement.reverse(),
|
|
194
|
+
recursion: true,
|
|
195
|
+
});
|
|
195
196
|
}
|
|
196
197
|
|
|
197
|
-
function
|
|
198
|
-
const
|
|
199
|
-
|
|
198
|
+
function flipAttach(attach, i) {
|
|
199
|
+
const newAttach = [...attach];
|
|
200
|
+
const index = dirs[i].indexOf(attach[i]);
|
|
201
|
+
if (~index) {
|
|
202
|
+
newAttach[i] = dirs[i][1 - (index % 2) + 2];
|
|
203
|
+
}
|
|
204
|
+
return newAttach;
|
|
200
205
|
}
|
|
201
206
|
|
|
202
|
-
function
|
|
207
|
+
function flipAttachAxis(prop) {
|
|
203
208
|
for (let i = 0; i < dirs.length; i++) {
|
|
204
209
|
const index = dirs[i].indexOf(prop);
|
|
205
210
|
if (~index) {
|
|
@@ -207,3 +212,9 @@ function flipDir(prop) {
|
|
|
207
212
|
}
|
|
208
213
|
}
|
|
209
214
|
}
|
|
215
|
+
|
|
216
|
+
function flipOffset(offset, i) {
|
|
217
|
+
offset = [...offset];
|
|
218
|
+
offset[i] *= -1;
|
|
219
|
+
return offset;
|
|
220
|
+
}
|
|
@@ -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
|