]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/menu/menu.component.scss
Ask password reset/email verif error handling
[github/Chocobozzz/PeerTube.git] / client / src / app / menu / menu.component.scss
CommitLineData
8cbc40b2
C
1@use 'sass:math';
2@use '_variables' as *;
3@use '_mixins' as *;
63c4db6d 4
17119e4a
C
5$menu-link-icon-size: 22px;
6$menu-link-icon-margin-right: 18px;
5d43dae3 7$footer-links-base-opacity: .8;
17119e4a 8
f1ac6348
C
9.menu-link {
10 @include disable-default-a-behaviour;
27bc9586
C
11 @include padding-left($menu-lateral-padding);
12 @include padding-right(20px);
f1ac6348 13
17119e4a
C
14 display: flex;
15 align-items: center;
27bc9586 16
17119e4a
C
17 color: pvar(--menuForegroundColor);
18 cursor: pointer;
17119e4a
C
19 white-space: normal;
20 word-break: break-word;
17119e4a 21 transition: background-color .1s ease-in-out;
26171379 22 line-height: $line-height-normal;
17119e4a
C
23
24 &.active {
25 background-color: rgba(255, 255, 255, 0.15);
26 }
27
931d3430
C
28 &:hover,
29 &.focus-visible {
30 background-color: rgba(255, 255, 255, 0.1);
17119e4a
C
31 }
32
33 my-global-icon {
34 @include apply-svg-color(#808080);
27bc9586 35 @include margin-right($menu-link-icon-margin-right);
17119e4a
C
36
37 display: flex;
38 width: $menu-link-icon-size;
39 height: $menu-link-icon-size;
17119e4a
C
40 }
41}
42
8afc19a6
C
43.menu-wrapper {
44 position: fixed;
45 height: calc(100vh - #{$header-height});
46 padding: 0;
47 width: $menu-width;
36f2981f 48 z-index: z(menu);
e66883b3 49 scrollbar-color: pvar(--actionButtonColor) pvar(--menuBackgroundColor);
8afc19a6
C
50}
51
b33f657c 52menu {
ef80c66c
C
53 @include ellipsis;
54
e66883b3 55 background-color: pvar(--menuBackgroundColor);
e66883b3 56 color: pvar(--menuForegroundColor);
17119e4a 57
8afc19a6
C
58 display: flex;
59 flex-direction: column;
17119e4a 60 height: 100%;
46ae6f67 61 width: 100%;
17119e4a
C
62 margin: 0;
63 padding: 0;
8afc19a6 64
931d3430
C
65 &:focus,
66 &:hover {
a54991da
RK
67 overflow-y: auto;
68 }
69
ca4b1594
K
70 @media not all and (hover: hover) and (pointer: fine) {
71 overflow-y: auto;
72 }
73
17119e4a 74 &.is-logged-in {
a55052c9 75 .panel-block {
d3217560 76 margin-bottom: 20px;
a55052c9
C
77 }
78
79 .block-title {
80 margin-bottom: 15px;
81 }
82 }
17119e4a 83}
a55052c9 84
17119e4a
C
85.top-menu {
86 flex-grow: 1;
87 width: $menu-width;
88}
66467298 89
17119e4a
C
90.logged-in-block {
91 margin-bottom: 20px;
92 background-color: rgba(255, 255, 255, 0.15);
93
94 > div:first-child {
95 height: 80px;
b33f657c
C
96 display: flex;
97 align-items: center;
51a83970 98 justify-content: left;
5d43dae3
C
99 }
100}
ef80c66c 101
f1ac6348 102my-notification {
27bc9586
C
103 @include margin-left(auto);
104 @include margin-right(15px);
f1ac6348 105}
5d43dae3 106
f1ac6348 107.logged-in-more {
c2faa073 108
5d43dae3
C
109 @mixin display-hints($is-mobile: false) {
110 background-color: rgba(255, 255, 255, 0.15);
b33f657c 111
5d43dae3
C
112 @if $is-mobile {
113 .dropdown-toggle-indicator {
114 display: inherit !important;
115 }
27bc9586 116
c2faa073 117 > .dropdown-toggle {
c1936140 118 max-width: 88% !important;
51a83970 119 }
5d43dae3
C
120 }
121 }
b33f657c 122
27bc9586
C
123 @include margin-left(13px);
124
f1ac6348 125 flex: 1;
c2faa073 126 border-radius: 25px;
f1ac6348
C
127 transition: all .1s ease-in-out;
128 cursor: pointer;
129 line-height: 1;
130
131 &.show {
931d3430 132 background-color: rgba(255, 255, 255, 0.2);
f1ac6348
C
133 box-shadow: inset 0 3px 5px rgba(0, 0, 0, .325);
134 }
135
5d43dae3
C
136 &:hover {
137 @include display-hints;
138 }
63347a0f 139
5d43dae3
C
140 /* smartphones and touchscreens */
141 @media (hover: none) and (pointer: coarse) {
142 @include display-hints($is-mobile: true);
51a83970 143
5d43dae3
C
144 /* fill space when on mobile */
145 max-width: calc(100% - 80px);
f1ac6348 146
5d43dae3
C
147 .dropdown-toggle {
148 max-width: 100%;
149 }
f1ac6348 150
5d43dae3
C
151 .logged-in-info {
152 max-width: calc(100% - 45px) !important;
153 }
5d43dae3 154 }
51a83970 155
5d43dae3
C
156 .dropdown-toggle-indicator {
157 position: relative;
5d43dae3
C
158 display: none;
159
160 span {
161 position: absolute;
162 right: -35px;
163 top: -8px;
931d3430 164 color: #808080;
5d43dae3
C
165 }
166 }
e5b432e0 167
c2faa073
C
168 .dropdown-toggle::after {
169 border: 0;
5d43dae3 170 }
51a83970 171
c2faa073 172 > .dropdown-toggle:first-child {
5d43dae3
C
173 display: flex;
174 align-items: center;
175 padding: 5px 7px;
5d43dae3 176 }
f1ac6348 177}
51a83970 178
746018f6 179my-actor-avatar {
27bc9586 180 @include margin-right(10px);
5d43dae3 181}
51a83970 182
5d43dae3
C
183.logged-in-info {
184 max-width: 105px;
51a83970 185
5d43dae3 186 flex-grow: 1;
f1ac6348 187}
51a83970 188
f1ac6348
C
189.logged-in-display-name,
190.logged-in-username {
191 @include ellipsis;
192}
51a83970 193
f1ac6348 194.logged-in-display-name {
931d3430
C
195 @include disable-default-a-behaviour;
196
f1ac6348
C
197 font-weight: $font-semibold;
198 color: pvar(--menuForegroundColor);
f1ac6348 199}
51a83970 200
f1ac6348
C
201.logged-in-username {
202 font-size: 13px;
203 color: #C6C6C6;
204 margin-top: 3px;
5d43dae3 205}
b33f657c 206
5d43dae3
C
207.logged-in-menu {
208 display: flex;
209 flex-direction: column;
210 align-items: flex-start;
211 border-top: 1px solid var(--greyForegroundColor);
212 line-height: $line-height-normal;
17119e4a 213
5d43dae3 214 a {
5d43dae3 215 $icon-size: 13px;
8cbc40b2 216 $additional-margin: math.div($menu-link-icon-size - $icon-size, 2);
9bce8112 217
5d43dae3
C
218 font-size: 14px;
219 width: 100%;
220 min-height: 35px;
c30745f3 221
5d43dae3 222 my-global-icon {
27bc9586
C
223 // Keep aligned with other icons
224 @include margin-left($additional-margin);
225
5d43dae3
C
226 width: $icon-size;
227 height: $icon-size;
5d43dae3 228 }
17119e4a 229
5d43dae3
C
230 &.active,
231 &:hover,
232 &:focus-visible {
233 my-global-icon {
234 @include apply-svg-color(var(--menuForegroundColor));
17119e4a 235 }
5d43dae3 236 }
17119e4a 237
5d43dae3
C
238 &.active {
239 $border-left-width: 4px;
9bce8112 240
5d43dae3
C
241 font-weight: $font-semibold;
242 border-left: $border-left-width solid var(--mainColor);
b33f657c 243
5d43dae3 244 my-global-icon {
27bc9586 245 @include margin-left($additional-margin - $border-left-width);
b33f657c
C
246 }
247 }
248 }
17119e4a
C
249}
250
251.login-buttons-block {
931d3430 252 margin: 30px 25px 35px;
17119e4a 253
f1ac6348 254 > a {
17119e4a
C
255 display: block;
256 width: 100%;
17119e4a 257
1025ce5d 258 &:not(:last-child) {
f1ac6348
C
259 margin-bottom: 10px;
260 }
261 }
262}
17119e4a 263
f1ac6348
C
264.create-account-button {
265 color: #fff;
266 background-color: rgba(255, 255, 255, 0.25);
17119e4a 267
f1ac6348
C
268 &:hover {
269 background-color: rgba(255, 255, 255, 0.28);
17119e4a
C
270 }
271}
272
8beea2d3 273.menu-block,
17119e4a
C
274.footer-block {
275 margin-bottom: 15px;
b33f657c
C
276
277 .block-title {
f1ac6348 278 @include ellipsis;
27bc9586
C
279 @include margin-left(26px);
280 @include margin-right(30px);
f1ac6348 281
b33f657c
C
282 text-transform: uppercase;
283 font-weight: $font-bold; // Bold
284 font-size: 13px;
285 margin-bottom: 25px;
17119e4a 286 }
0727cab0 287
17119e4a 288 a {
17119e4a 289 min-height: 40px;
b33f657c 290 }
17119e4a
C
291}
292
293.footer {
17119e4a 294 padding-bottom: 15px;
f1ac6348 295}
17119e4a 296
f1ac6348 297.footer-bottom {
f1ac6348 298 padding: 0 $menu-lateral-padding;
5d43dae3 299}
8afc19a6 300
5d43dae3 301.footer-links {
931d3430 302 > div {
5d43dae3
C
303 display: flex;
304 flex-wrap: wrap;
305 }
8afc19a6 306
ba24a31c
C
307 a,
308 span[role=button] {
27bc9586 309 @include margin-right(8px);
090d100c 310 @include disable-default-a-behaviour;
27bc9586 311
5d43dae3
C
312 color: pvar(--menuForegroundColor);
313 opacity: $footer-links-base-opacity;
314 white-space: nowrap;
5b0ec7cd 315 font-size: 0.75rem;
5d43dae3 316 line-height: 1.4rem;
090d100c
C
317 font-weight: $font-semibold;
318
319 &:hover {
320 opacity: $footer-links-base-opacity + .2;
321 }
17119e4a 322 }
5d43dae3 323}
8afc19a6 324
090d100c 325.footer-copyleft a {
5d43dae3 326 @include disable-default-a-behaviour;
4a216666 327
5d43dae3
C
328 color: pvar(--menuForegroundColor);
329 opacity: $footer-links-base-opacity - .2;
090d100c
C
330 font-size: 0.85rem;
331
332 &:hover {
333 opacity: $footer-links-base-opacity;
334 }
d3217560 335}
4a216666 336
2856af48
C
337.dropdown {
338 z-index: #{z('menu') + 1} !important;
339}
340
d3217560
RK
341.dropdown-menu {
342 width: calc(100% + 40px);
cc92203f
C
343
344 // Prevent weird display issue on firefox when global style is not loaded yet
345 &:not(.show) {
346 display: none;
347 }
d3217560 348}
9a0fc840 349
d3217560
RK
350.dropdown-item {
351 @include dropdown-with-icon-item;
9a0fc840 352
d3217560
RK
353 cursor: pointer;
354 display: flex;
355 align-items: center;
356
d3217560 357 &:hover {
f1ac6348 358 .hover-display-toggle {
d3217560 359 display: none;
8afc19a6 360 }
51a83970 361
f1ac6348
C
362 .hover-display-toggle[hidden] {
363 display: inherit !important;
51a83970 364 }
8afc19a6 365 }
b33f657c 366}
46ae6f67 367
d3217560
RK
368.more-settings {
369 text-transform: uppercase;
370 font-size: 80%;
371 color: #6c757d;
372}
373
fdebd9a3 374@media screen and (max-width: $mobile-view) {
46ae6f67
C
375 .menu-wrapper {
376 width: 100% !important;
c06be129 377
c06be129
C
378 menu {
379 overflow-y: auto;
380 }
381 }
c0022613 382
f1ac6348
C
383 .top-menu,
384 .footer {
c0022613
C
385 width: 100% !important;
386 }
51a83970
K
387
388 .dropdown-menu {
389 width: calc(100vw - 30px);
390 }
c06be129 391}
f1ac6348
C
392
393my-global-icon {
77662dae
C
394 position: relative;
395 top: -1px;
396
397 .playlist-icon {
27bc9586
C
398 @include margin-right(16px);
399
f1ac6348
C
400 height: 24px;
401 width: 24px;
f1ac6348
C
402 }
403
77662dae
C
404 &.channel-icon {
405 top: -2px;
f1ac6348
C
406 }
407}