Commit | Line | Data |
---|---|---|
8a0b323e AE |
1 | @include screen-sm-up { |
2 | .pageContainer { | |
3 | &.menuOverlay-pageMainMenuMobile { | |
4 | transform: translateX(350px); | |
5 | ||
6 | .mainMenu { | |
7 | visibility: hidden; | |
8 | } | |
9 | } | |
10 | ||
11 | &.menuOverlay-pageUserMenuMobile { | |
12 | transform: translateX(-350px); | |
13 | ||
14 | .userPanel { | |
15 | visibility: hidden; | |
16 | } | |
17 | } | |
18 | } | |
431e4cb4 AE |
19 | } |
20 | ||
21 | /* menu container */ | |
22 | .menuOverlayMobile { | |
8a0b323e | 23 | background-color: rgb(52, 73, 94); |
431e4cb4 | 24 | bottom: 0; |
8a0b323e | 25 | display: none; |
431e4cb4 | 26 | overflow: hidden; |
8a0b323e | 27 | position: absolute; |
431e4cb4 | 28 | top: 0; |
431e4cb4 AE |
29 | z-index: 320; |
30 | ||
8a0b323e AE |
31 | &.open { |
32 | display: block; | |
431e4cb4 | 33 | |
8a0b323e AE |
34 | @include screen-sm-up { |
35 | + .menuOverlayMobileBackdrop { | |
36 | display: block; | |
37 | } | |
431e4cb4 AE |
38 | } |
39 | } | |
40 | ||
8a0b323e AE |
41 | > .menuOverlayItemList { |
42 | // we use `transform: translateX()` for performance reasons | |
43 | transition: transform .24s cubic-bezier(.25, .46, .45, .94); | |
431e4cb4 | 44 | |
8a0b323e AE |
45 | /* work-around to avoid setting explicit visibility */ |
46 | visibility: visible; | |
47 | } | |
48 | ||
49 | &.allowScroll { | |
50 | .menuOverlayItemList:not(.hidden) { | |
51 | overflow: auto; | |
431e4cb4 AE |
52 | } |
53 | } | |
54 | ||
8a0b323e AE |
55 | &:not(.allowScroll) { |
56 | // block UI while switching between menus | |
57 | &::before { | |
58 | bottom: 0; | |
59 | content: ""; | |
60 | left: 0; | |
61 | position: absolute; | |
62 | right: 0; | |
63 | top: 0; | |
64 | z-index: 500; | |
65 | } | |
66 | } | |
67 | ||
68 | @include screen-xs { | |
69 | left: 0; | |
70 | max-width: 100vw; | |
71 | right: 0; | |
72 | ||
73 | .menuOverlayItemList { | |
74 | right: 0; | |
75 | } | |
76 | } | |
77 | ||
78 | @include screen-sm-up { | |
79 | width: 350px; | |
80 | ||
81 | &.pageMainMenuMobile { | |
82 | left: 0; | |
83 | ||
84 | & + .menuOverlayMobileBackdrop { | |
85 | box-shadow: inset 5px 0 10px -5px rgba(0, 0, 0, .6); | |
86 | left: 350px; | |
87 | } | |
88 | ||
89 | .menuOverlayItemList { | |
90 | left: 0; | |
91 | } | |
92 | } | |
93 | ||
94 | &.pageUserMenuMobile { | |
95 | right: 0; | |
96 | ||
97 | & + .menuOverlayMobileBackdrop { | |
98 | box-shadow: inset -5px 0 10px -5px rgba(0, 0, 0, .6); | |
99 | right: 350px; | |
100 | } | |
101 | ||
102 | .menuOverlayItemList { | |
103 | right: 0; | |
104 | } | |
105 | } | |
431e4cb4 AE |
106 | } |
107 | } | |
108 | ||
8a0b323e AE |
109 | .menuOverlayMobileBackdrop { |
110 | background-color: rgba(0, 0, 0, .4); | |
111 | bottom: 0; | |
112 | display: none; | |
113 | left: 0; | |
114 | position: fixed; | |
115 | right: 0; | |
116 | top: 0; | |
cf605149 | 117 | z-index: 445; |
8a0b323e AE |
118 | } |
119 | ||
431e4cb4 AE |
120 | .menuOverlayItemWrapper { |
121 | display: flex; | |
122 | justify-content: flex-end; | |
123 | ||
124 | > .menuOverlayItemLink { | |
125 | flex: 1 1 auto; | |
126 | } | |
127 | } | |
128 | ||
129 | .menuOverlayItemList { | |
a06fea35 | 130 | background-color: rgb(52, 73, 94); |
8a0b323e | 131 | height: 100%; |
431e4cb4 AE |
132 | list-style-type: none; |
133 | margin: 0; | |
8a0b323e AE |
134 | padding: 5px 0; |
135 | position: absolute; | |
431e4cb4 AE |
136 | top: 0; |
137 | left: -1px; | |
431e4cb4 AE |
138 | bottom: 0; |
139 | width: calc(100% + 1px); | |
140 | z-index: 450; | |
431e4cb4 | 141 | |
8a0b323e AE |
142 | @include screen-sm-up { |
143 | width: 350px; | |
144 | } | |
145 | ||
146 | &:not(.activeList) { | |
147 | display: none; | |
431e4cb4 AE |
148 | } |
149 | } | |
150 | ||
151 | .menuOverlayItemSpacer { | |
152 | margin-top: 20px; | |
153 | ||
154 | /* avoid successive spacers piling up */ | |
155 | & + .menuOverlayItemSpacer { | |
156 | display: none; | |
157 | } | |
158 | } | |
159 | ||
160 | .menuOverlayItem { | |
161 | &:not(:last-child) { | |
162 | margin-bottom: 1px | |
163 | } | |
164 | ||
165 | /* nested item list */ | |
166 | > .menuOverlayItemList { | |
8a0b323e | 167 | margin-left: 100%; |
431e4cb4 | 168 | z-index: 500; |
431e4cb4 AE |
169 | } |
170 | } | |
171 | ||
172 | .menuOverlayItemLink, | |
173 | .menuOverlayTitle, | |
174 | .menuOverlayBackLink { | |
175 | color: rgb(255, 255, 255); | |
176 | display: block; | |
177 | font-size: 14px; | |
178 | padding: 10px 30px; | |
179 | position: relative; | |
180 | } | |
181 | ||
182 | .menuOverlayItemLink { | |
d722ff40 | 183 | align-items: center; |
a06fea35 | 184 | background-color: rgb(44, 62, 80); |
d722ff40 | 185 | display: flex; |
431e4cb4 AE |
186 | overflow: hidden; |
187 | text-overflow: ellipsis; | |
188 | white-space: nowrap; | |
189 | ||
190 | .icon::before { | |
191 | color: #fff; | |
192 | } | |
193 | ||
d722ff40 MW |
194 | &:hover { |
195 | color: rgb(255, 255, 255); | |
196 | } | |
197 | ||
431e4cb4 AE |
198 | /* wrapper class for links containing an additional badge */ |
199 | &.menuOverlayItemBadge { | |
200 | align-items: center; | |
201 | display: flex; | |
202 | padding-right: 10px; | |
203 | ||
204 | /* different padding if there is no additional icon after the link, | |
205 | ensures proper alignment for links with badges containing a child | |
206 | item list */ | |
207 | &:last-child { | |
208 | /* 55px = 10px padding + 1px margin + icon */ | |
209 | /* icon = 2x 10px padding + 16px width */ | |
210 | padding-right: 55px; | |
211 | } | |
212 | ||
213 | > .menuOverlayItemTitle { | |
214 | flex: 1 1 auto; | |
215 | overflow: hidden; | |
216 | text-overflow: ellipsis; | |
217 | } | |
218 | ||
219 | > .badge { | |
220 | flex: 0 0 auto; | |
221 | } | |
222 | } | |
223 | ||
224 | &.menuOverlayItemLinkMore::after { | |
225 | color: rgb(204, 204, 204); | |
226 | content: $fa-var-angle-right; | |
227 | display: block; | |
228 | font-family: FontAwesome; | |
229 | font-size: 24px; | |
230 | position: absolute; | |
231 | right: 10px; | |
232 | top: 50%; | |
233 | transform: translateY(-50%); | |
234 | } | |
235 | } | |
236 | ||
3fddb0ba AE |
237 | .pageUserMenuMobile .menuOverlayItemBadge:last-child { |
238 | padding-right: 10px !important; | |
239 | } | |
240 | ||
c8362991 AE |
241 | .menuOverlayItemLink.active, |
242 | .menuOverlayItemLinkIcon.active { | |
a06fea35 | 243 | background-color: rgb(34, 49, 63); |
c8362991 AE |
244 | } |
245 | ||
431e4cb4 AE |
246 | .menuOverlayTitle { |
247 | color: rgb(204, 204, 204); | |
248 | overflow: hidden; | |
249 | text-overflow: ellipsis; | |
250 | white-space: nowrap; | |
251 | ||
252 | &:not(:first-child) { | |
253 | margin-top: 10px; | |
254 | } | |
255 | } | |
256 | ||
257 | /* icon link sharing the space with a link or (header only) the logo */ | |
258 | .menuOverlayItemLinkIcon { | |
a06fea35 | 259 | background-color: rgb(44, 62, 80); |
431e4cb4 AE |
260 | flex: 0 0 auto; |
261 | margin-left: 1px; | |
262 | padding: 10px; | |
263 | ||
264 | /* force explicit dimensions because no each .icon24 is of equal height/width */ | |
265 | height: 44px; | |
266 | width: 44px; | |
267 | ||
268 | > .icon::before { | |
269 | color: #fff; | |
270 | } | |
271 | } | |
272 | ||
273 | .menuOverlayBackLink::before { | |
274 | color: rgb(204, 204, 204); | |
275 | content: $fa-var-angle-left; | |
276 | display: block; | |
277 | font-family: FontAwesome; | |
278 | font-size: 18px; | |
279 | position: absolute; | |
d722ff40 | 280 | left: 12px; |
431e4cb4 AE |
281 | top: 50%; |
282 | transform: translateY(-50%); | |
283 | } | |
284 | ||
285 | .menuOverlayLogoWrapper { | |
286 | flex: 1 1 auto; | |
287 | padding: 5px; | |
288 | display: flex; | |
289 | ||
290 | .menuOverlayLogo { | |
291 | flex: 1 1 auto; | |
292 | background-size: contain; | |
293 | background-repeat: no-repeat; | |
294 | background-position: center; | |
295 | } | |
296 | } |