]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/menu/menu.component.scss
Fix themes colors by using SCSS variables (#3376)
[github/Chocobozzz/PeerTube.git] / client / src / app / menu / menu.component.scss
CommitLineData
63c4db6d
C
1@import '_variables';
2@import '_mixins';
3
17119e4a
C
4$menu-link-icon-size: 22px;
5$menu-link-icon-margin-right: 18px;
6
7@mixin menu-link {
8 display: flex;
9 align-items: center;
10 padding-left: $menu-lateral-padding;
11 color: pvar(--menuForegroundColor);
12 cursor: pointer;
13 font-size: 16px;
14 white-space: normal;
15 word-break: break-word;
16 padding-right: 20px;
17 transition: background-color .1s ease-in-out;
18
19 &.active {
20 background-color: rgba(255, 255, 255, 0.15);
21 }
22
23 &:hover, &.focus-visible {
24 background-color: rgba(255, 255, 255, 0.10);
25 }
26
27 my-global-icon {
28 @include apply-svg-color(#808080);
29
30 display: flex;
31 width: $menu-link-icon-size;
32 height: $menu-link-icon-size;
33 margin-right: $menu-link-icon-margin-right;
34 }
35}
36
8afc19a6
C
37.menu-wrapper {
38 position: fixed;
39 height: calc(100vh - #{$header-height});
40 padding: 0;
41 width: $menu-width;
36f2981f 42 z-index: z(menu);
e66883b3 43 scrollbar-color: pvar(--actionButtonColor) pvar(--menuBackgroundColor);
8afc19a6
C
44}
45
b33f657c 46menu {
ef80c66c
C
47 @include ellipsis;
48
e66883b3 49 background-color: pvar(--menuBackgroundColor);
e66883b3 50 color: pvar(--menuForegroundColor);
17119e4a 51
8afc19a6
C
52 display: flex;
53 flex-direction: column;
17119e4a 54 height: 100%;
46ae6f67 55 width: 100%;
17119e4a
C
56 margin: 0;
57 padding: 0;
8afc19a6 58
a54991da
RK
59 &:focus, &:hover {
60 overflow-y: auto;
61 }
62
ca4b1594
K
63 @media not all and (hover: hover) and (pointer: fine) {
64 overflow-y: auto;
65 }
66
17119e4a 67 &.is-logged-in {
a55052c9 68 .panel-block {
d3217560 69 margin-bottom: 20px;
a55052c9
C
70 }
71
72 .block-title {
73 margin-bottom: 15px;
74 }
75 }
17119e4a 76}
a55052c9 77
17119e4a
C
78.top-menu {
79 flex-grow: 1;
80 width: $menu-width;
81}
66467298 82
17119e4a
C
83.logged-in-block {
84 margin-bottom: 20px;
85 background-color: rgba(255, 255, 255, 0.15);
86
87 > div:first-child {
88 height: 80px;
b33f657c
C
89 display: flex;
90 align-items: center;
91 justify-content: center;
b33f657c
C
92
93 .logged-in-info {
ef80c66c
C
94 @include ellipsis;
95
b33f657c 96 flex-grow: 1;
b33f657c 97
b7a7e801 98 .logged-in-display-name {
b33f657c
C
99 font-size: 16px;
100 font-weight: $font-semibold;
e66883b3 101 color: pvar(--menuForegroundColor);
c30745f3
C
102 cursor: pointer;
103
104 @include disable-default-a-behaviour;
b33f657c
C
105 }
106
b7a7e801 107 .logged-in-username {
ef80c66c
C
108 @include ellipsis;
109
b33f657c
C
110 font-size: 13px;
111 color: #C6C6C6;
cadb46d8 112 max-width: 140px;
223b24e6 113 cursor: pointer;
b33f657c
C
114 }
115 }
116
117 .logged-in-more {
118 margin-right: 20px;
119
e5b432e0 120 my-global-icon.dropdown-toggle {
b33f657c 121 cursor: pointer;
63347a0f
C
122
123 &::after {
124 border: none;
125 }
e5b432e0 126
03652b31 127 ::ng-deep {
e66883b3 128 @include apply-svg-color(pvar(--menuForegroundColor));
e5b432e0 129 }
b33f657c
C
130 }
131 }
132 }
133
17119e4a
C
134 .logged-in-menu {
135 display: flex;
136 flex-direction: column;
137 align-items: flex-start;
138 border-top: 1px solid var(--greyForegroundColor);
139
140 a {
141 @include menu-link;
142 @include disable-default-a-behaviour;
b33f657c 143
17119e4a
C
144 $icon-size: 13px;
145 $additional-margin: ($menu-link-icon-size - $icon-size) / 2;
9bce8112 146
17119e4a 147 font-size: 14px;
9bce8112 148 width: 100%;
17119e4a 149 min-height: 35px;
c30745f3 150
17119e4a
C
151 my-global-icon {
152 width: $icon-size;
153 height: $icon-size;
b33f657c 154
17119e4a
C
155 // Keep aligned with other icons
156 margin-left: $additional-margin;
157
158 &[iconName="channel"] {
159 margin-top: -2px;
160 }
161 }
162
163 &.active,
164 &:hover,
165 &:focus-visible {
166 my-global-icon {
a742b4b0 167 @include apply-svg-color(var(--menuForegroundColor));
17119e4a
C
168 }
169 }
170
171 &.active {
172 $border-left-width: 4px;
9bce8112 173
17119e4a
C
174 font-weight: $font-semibold;
175 border-left: $border-left-width solid var(--mainColor);
b33f657c 176
17119e4a
C
177 my-global-icon {
178 margin-left: $additional-margin - $border-left-width;
179 }
b33f657c
C
180 }
181 }
182 }
17119e4a
C
183}
184
185.login-buttons-block {
186 margin: 30px 25px 35px 25px;
187
188 .login-button {
189 @include peertube-button-link;
190 @include orange-button;
191
192 display: block;
193 width: 100%;
194 margin-bottom: 10px;
195 }
196
197 .create-account-button {
198 @include peertube-button-link;
199
200 display: block;
201 width: 100%;
202
203 color: #fff;
204 background-color: rgba(255, 255, 255, 0.25);
205
206 &:hover {
207 background-color: rgba(255, 255, 255, 0.28);
208 }
209 }
210}
211
f0048d5e 212.in-my-library,
17119e4a
C
213.on-instance,
214.footer-block {
215 margin-bottom: 15px;
b33f657c
C
216
217 .block-title {
218 text-transform: uppercase;
219 font-weight: $font-bold; // Bold
220 font-size: 13px;
221 margin-bottom: 25px;
829be6e8 222 margin-left: 26px;
b33f657c 223
17119e4a 224 @include ellipsis;
b33f657c 225
17119e4a
C
226 margin-right: 30px;
227 }
0727cab0 228
17119e4a
C
229 a {
230 @include menu-link;
231 @include disable-default-a-behaviour;
b33f657c 232
17119e4a 233 min-height: 40px;
b33f657c 234
17119e4a
C
235 my-global-icon {
236 &[iconName="playlists"] {
237 height: 24px;
238 width: 24px;
b33f657c 239
17119e4a 240 margin-right: 16px;
a55052c9 241 }
36f9424f 242
17119e4a
C
243 &[iconName="videos"] {
244 position: relative;
245 right: -1px;
b33f657c
C
246 }
247 }
248 }
17119e4a
C
249}
250
251.footer {
252 width: $menu-width;
253 padding-bottom: 15px;
254
255 .bottom-links {
256 display: flex;
257 flex-direction: column;
258 padding: 0 $menu-lateral-padding;
259 }
8afc19a6 260
17119e4a 261 $footer-links-base-opacity: .8;
8afc19a6 262
17119e4a
C
263 .footer-links {
264 &, > div {
14f83c68 265 display: flex;
17119e4a 266 flex-wrap: wrap;
d3217560 267 }
8afc19a6 268
17119e4a
C
269 a, span[role=button] {
270 display: inline-block;
271 text-decoration: none;
a742b4b0 272 color: pvar(--menuForegroundColor);
17119e4a
C
273 opacity: $footer-links-base-opacity;
274 white-space: nowrap;
275 font-size: 90%;
276 font-weight: 500;
277 line-height: 1.4rem;
278 margin-right: 8px;
279
280 &.inline-global-icon {
281 display: inline-flex;
282 align-items: center;
283 white-space: nowrap;
284 height: 1.4rem;
8afc19a6 285
17119e4a 286 my-global-icon {
a742b4b0 287 @include apply-svg-color(pvar(--menuForegroundColor));
8afc19a6 288
17119e4a
C
289 display: flex;
290 width: auto;
291 height: 90%;
292 margin-right: .2rem;
8afc19a6 293 }
d3217560
RK
294 }
295 }
17119e4a 296 }
8afc19a6 297
17119e4a
C
298 .footer-copyleft small a {
299 @include disable-default-a-behaviour;
4a216666 300
a742b4b0 301 color: pvar(--menuForegroundColor);
17119e4a 302 opacity: $footer-links-base-opacity - .2;
d3217560
RK
303 }
304}
4a216666 305
2856af48
C
306.dropdown {
307 z-index: #{z('menu') + 1} !important;
308}
309
d3217560
RK
310.dropdown-menu {
311 width: calc(100% + 40px);
312}
9a0fc840 313
d3217560
RK
314.dropdown-item {
315 @include dropdown-with-icon-item;
9a0fc840 316
d3217560
RK
317 cursor: pointer;
318 display: flex;
319 align-items: center;
320
321 i.glyphicon-menu-right {
322 opacity: .4;
323 }
324
325 my-global-icon {
326 &[iconName="cog"],
327 &[iconName="sign-out"] {
328 position: relative;
329 right: -2px;
330 height: 20px;
331 width: 20px;
332 }
333 }
334
335 my-global-icon.not-displayed {
336 display: none;
337 }
338
339 &:hover {
340 my-global-icon.hover-display-toggle.not-displayed {
341 display: inherit;
342 }
343 my-global-icon.hover-display-toggle {
344 display: none;
8afc19a6
C
345 }
346 }
b33f657c 347}
46ae6f67 348
d3217560
RK
349.more-settings {
350 text-transform: uppercase;
351 font-size: 80%;
352 color: #6c757d;
353}
354
fdebd9a3 355@media screen and (max-width: $mobile-view) {
46ae6f67
C
356 .menu-wrapper {
357 width: 100% !important;
c06be129 358
c06be129
C
359 menu {
360 overflow-y: auto;
361 }
362 }
c0022613
C
363
364 .top-menu, .footer {
365 width: 100% !important;
366 }
c06be129 367}