diff options
9 files changed, 220 insertions, 209 deletions
diff --git a/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html b/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html index f23efca98..cf32e371a 100644 --- a/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html +++ b/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <div class="video-actions-rates"> | 1 | <div class="video-actions-rates"> |
2 | <div class="video-actions full-width justify-content-end"> | 2 | <div class="video-actions justify-content-end"> |
3 | <my-video-rate | 3 | <my-video-rate |
4 | [video]="video" [isUserLoggedIn]="isUserLoggedIn" | 4 | [video]="video" [isUserLoggedIn]="isUserLoggedIn" |
5 | (rateUpdated)="onRateUpdated($event)" (userRatingLoaded)="onRateUpdated($event)" | 5 | (rateUpdated)="onRateUpdated($event)" (userRatingLoaded)="onRateUpdated($event)" |
diff --git a/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.scss b/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.scss index fdf4e3edb..786d10f73 100644 --- a/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.scss +++ b/client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.scss | |||
@@ -5,6 +5,9 @@ | |||
5 | height: 40px; // Align with the title | 5 | height: 40px; // Align with the title |
6 | display: flex; | 6 | display: flex; |
7 | align-items: center; | 7 | align-items: center; |
8 | width: 100%; | ||
9 | margin: 0 auto; | ||
10 | max-width: initial; | ||
8 | 11 | ||
9 | .action-button:not(:first-child), | 12 | .action-button:not(:first-child), |
10 | .action-dropdown, | 13 | .action-dropdown, |
diff --git a/client/src/app/shared/shared-forms/input-text.component.ts b/client/src/app/shared/shared-forms/input-text.component.ts index 1e1da6771..ed4637c17 100644 --- a/client/src/app/shared/shared-forms/input-text.component.ts +++ b/client/src/app/shared/shared-forms/input-text.component.ts | |||
@@ -2,7 +2,6 @@ import { Component, forwardRef, Input } from '@angular/core' | |||
2 | import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms' | 2 | import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms' |
3 | import { Notifier } from '@app/core' | 3 | import { Notifier } from '@app/core' |
4 | 4 | ||
5 | |||
6 | @Component({ | 5 | @Component({ |
7 | selector: 'my-input-text', | 6 | selector: 'my-input-text', |
8 | templateUrl: './input-text.component.html', | 7 | templateUrl: './input-text.component.html', |
diff --git a/client/src/assets/images/feather/external-link.svg b/client/src/assets/images/feather/external-link.svg index 6236df3e0..9ea666879 100644 --- a/client/src/assets/images/feather/external-link.svg +++ b/client/src/assets/images/feather/external-link.svg | |||
@@ -1 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg> \ No newline at end of file | <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14 21 3"/></svg> \ No newline at end of file | ||
diff --git a/client/src/assets/images/feather/skip-back.svg b/client/src/assets/images/feather/skip-back.svg index 672e94d5f..6b1876159 100644 --- a/client/src/assets/images/feather/skip-back.svg +++ b/client/src/assets/images/feather/skip-back.svg | |||
@@ -1 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-skip-back"><polygon points="19 20 9 12 19 4 19 20"/><line x1="5" y1="19" x2="5" y2="5"/></svg> \ No newline at end of file | <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-skip-back"><path d="M19 20 9 12l10-8v16zM5 19V5"/></svg> \ No newline at end of file | ||
diff --git a/client/src/assets/images/feather/skip-forward.svg b/client/src/assets/images/feather/skip-forward.svg index f3fdac3ae..5673a2987 100644 --- a/client/src/assets/images/feather/skip-forward.svg +++ b/client/src/assets/images/feather/skip-forward.svg | |||
@@ -1 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-skip-forward"><polygon points="5 4 15 12 5 20 5 4"></polygon><line x1="19" y1="5" x2="19" y2="19"></line></svg> \ No newline at end of file | <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-skip-forward"><path d="m5 4 10 8-10 8V4zM19 5v14"/></svg> \ No newline at end of file | ||
diff --git a/client/src/sass/application.scss b/client/src/sass/application.scss index 2aa743cf1..58e77adac 100644 --- a/client/src/sass/application.scss +++ b/client/src/sass/application.scss | |||
@@ -6,7 +6,7 @@ | |||
6 | 6 | ||
7 | @use '_fonts'; | 7 | @use '_fonts'; |
8 | 8 | ||
9 | @use './classes'; | 9 | @use './class-helpers'; |
10 | @use './custom-markup'; | 10 | @use './custom-markup'; |
11 | @use './ng-select'; | 11 | @use './ng-select'; |
12 | 12 | ||
@@ -132,31 +132,6 @@ code { | |||
132 | vertical-align: middle; | 132 | vertical-align: middle; |
133 | } | 133 | } |
134 | 134 | ||
135 | .form-group { | ||
136 | margin-bottom: 1rem; | ||
137 | } | ||
138 | |||
139 | .form-error, | ||
140 | .form-warning { | ||
141 | display: block; | ||
142 | margin-top: 5px; | ||
143 | } | ||
144 | |||
145 | .form-error { | ||
146 | color: $red; | ||
147 | } | ||
148 | |||
149 | .input-error, | ||
150 | my-input-text ::ng-deep input { | ||
151 | border-color: $red !important; | ||
152 | } | ||
153 | |||
154 | .full-width { | ||
155 | width: 100%; | ||
156 | margin: 0 auto; | ||
157 | max-width: initial; | ||
158 | } | ||
159 | |||
160 | .main-col { | 135 | .main-col { |
161 | @include margin-left($menu-width); | 136 | @include margin-left($menu-width); |
162 | 137 | ||
@@ -210,62 +185,6 @@ my-input-text ::ng-deep input { | |||
210 | } | 185 | } |
211 | } | 186 | } |
212 | 187 | ||
213 | .title-page { | ||
214 | @include disable-default-a-behaviour; | ||
215 | @include margin-right(55px); | ||
216 | |||
217 | opacity: 0.6; | ||
218 | color: pvar(--mainForegroundColor); | ||
219 | font-size: 16px; | ||
220 | display: inline-block; | ||
221 | font-weight: $font-semibold; | ||
222 | border-bottom: 2px solid transparent; | ||
223 | |||
224 | &.title-page-single { | ||
225 | margin-top: 30px; | ||
226 | margin-bottom: 25px; | ||
227 | } | ||
228 | |||
229 | &.active { | ||
230 | border-bottom-color: pvar(--mainColor); | ||
231 | } | ||
232 | |||
233 | &.title-page-single { | ||
234 | font-size: 125%; | ||
235 | } | ||
236 | |||
237 | &:hover, | ||
238 | &:active, | ||
239 | &:focus { | ||
240 | color: pvar(--mainForegroundColor); | ||
241 | } | ||
242 | |||
243 | &.active, | ||
244 | &:hover, | ||
245 | &:active, | ||
246 | &:focus, | ||
247 | &.title-page-single { | ||
248 | opacity: 1; | ||
249 | outline: 0 hidden !important; | ||
250 | } | ||
251 | |||
252 | @media screen and (max-width: $mobile-view) { | ||
253 | @include margin-left(15px); | ||
254 | } | ||
255 | } | ||
256 | |||
257 | .title-page-about, | ||
258 | .title-page-settings { | ||
259 | white-space: nowrap; | ||
260 | font-size: 115%; | ||
261 | } | ||
262 | |||
263 | .admin-sub-header { | ||
264 | display: flex; | ||
265 | align-items: center; | ||
266 | margin-bottom: 30px; | ||
267 | } | ||
268 | |||
269 | // In tables, don't have a hover different background | 188 | // In tables, don't have a hover different background |
270 | table { | 189 | table { |
271 | my-edit-button, | 190 | my-edit-button, |
@@ -283,18 +202,6 @@ table { | |||
283 | } | 202 | } |
284 | } | 203 | } |
285 | 204 | ||
286 | .no-results { | ||
287 | height: 40vh; | ||
288 | max-height: 500px; | ||
289 | |||
290 | display: flex; | ||
291 | flex-direction: column; | ||
292 | align-items: center; | ||
293 | justify-content: center; | ||
294 | font-size: 16px; | ||
295 | font-weight: $font-semibold; | ||
296 | } | ||
297 | |||
298 | .dropdown-item { | 205 | .dropdown-item { |
299 | @include dropdown-with-icon-item; | 206 | @include dropdown-with-icon-item; |
300 | 207 | ||
@@ -311,73 +218,6 @@ my-global-icon[iconName=external-link] { | |||
311 | color: pvar(--inputPlaceholderColor); | 218 | color: pvar(--inputPlaceholderColor); |
312 | } | 219 | } |
313 | 220 | ||
314 | .chevron-down { | ||
315 | @include chevron-down(0.55rem, 0.15rem); | ||
316 | |||
317 | margin: 0 8px; | ||
318 | } | ||
319 | |||
320 | .chevron-up { | ||
321 | @include chevron-up(0.55rem, 0.15rem); | ||
322 | |||
323 | margin: 0 8px; | ||
324 | } | ||
325 | |||
326 | .chevron-right { | ||
327 | @include chevron-right(0.55rem, 0.15rem); | ||
328 | |||
329 | margin: 0 8px; | ||
330 | } | ||
331 | |||
332 | .chevron-left { | ||
333 | @include chevron-left(0.55rem, 0.15rem); | ||
334 | |||
335 | margin: 0 8px; | ||
336 | } | ||
337 | |||
338 | /* offsetTop for scrollToAnchor */ | ||
339 | |||
340 | .anchor { | ||
341 | position: relative; | ||
342 | top: #{-($header-height + 20px)}; | ||
343 | } | ||
344 | |||
345 | .offset-content { // if sub-menu fixed | ||
346 | .anchor { | ||
347 | top: #{-($header-height + $sub-menu-height + 20px)}; | ||
348 | } | ||
349 | } | ||
350 | |||
351 | .form-group-description { | ||
352 | @extend .muted !optional; | ||
353 | |||
354 | font-size: 90%; | ||
355 | margin-top: 10px; | ||
356 | } | ||
357 | |||
358 | .callout { | ||
359 | padding: 1.25rem; | ||
360 | border: 1px solid #eee; | ||
361 | border-radius: .25rem; | ||
362 | position: relative; | ||
363 | |||
364 | > label { | ||
365 | position: relative; | ||
366 | top: -5px; | ||
367 | left: -10px; | ||
368 | color: #6c757d !important; | ||
369 | } | ||
370 | |||
371 | &:not(.callout-light) { | ||
372 | border-left-width: .25rem; | ||
373 | } | ||
374 | |||
375 | &.callout-info { | ||
376 | border-color: pvar(--mainColorLightest); | ||
377 | border-left-color: pvar(--mainColor); | ||
378 | } | ||
379 | } | ||
380 | |||
381 | @media screen and (max-width: #{breakpoint(xxl)}) { | 221 | @media screen and (max-width: #{breakpoint(xxl)}) { |
382 | .main-col { | 222 | .main-col { |
383 | --horizontalMarginContent: #{math.div($not-expanded-horizontal-margins, 2)}; | 223 | --horizontalMarginContent: #{math.div($not-expanded-horizontal-margins, 2)}; |
@@ -434,10 +274,6 @@ my-global-icon[iconName=external-link] { | |||
434 | padding-top: $sub-menu-height + $sub-menu-margin-bottom-small-view; | 274 | padding-top: $sub-menu-height + $sub-menu-margin-bottom-small-view; |
435 | } | 275 | } |
436 | 276 | ||
437 | .admin-sub-header { | ||
438 | flex-direction: column; | ||
439 | } | ||
440 | |||
441 | my-markdown-textarea { | 277 | my-markdown-textarea { |
442 | .root { | 278 | .root { |
443 | max-width: 100% !important; | 279 | max-width: 100% !important; |
diff --git a/client/src/sass/class-helpers.scss b/client/src/sass/class-helpers.scss new file mode 100644 index 000000000..45d45e0f8 --- /dev/null +++ b/client/src/sass/class-helpers.scss | |||
@@ -0,0 +1,212 @@ | |||
1 | @use '_variables' as *; | ||
2 | @use '_mixins' as *; | ||
3 | @use '_badges' as *; | ||
4 | @use '_icons' as *; | ||
5 | |||
6 | .peertube-button { | ||
7 | @include peertube-button; | ||
8 | } | ||
9 | |||
10 | .peertube-button-link { | ||
11 | @include peertube-button-link; | ||
12 | } | ||
13 | |||
14 | .orange-button { | ||
15 | @include orange-button; | ||
16 | } | ||
17 | |||
18 | .orange-button-inverted { | ||
19 | @include orange-button-inverted; | ||
20 | } | ||
21 | |||
22 | .grey-button { | ||
23 | @include grey-button; | ||
24 | } | ||
25 | |||
26 | .tertiary-button { | ||
27 | @include tertiary-button; | ||
28 | } | ||
29 | |||
30 | .peertube-radio-container { | ||
31 | @include peertube-radio-container; | ||
32 | } | ||
33 | |||
34 | // --------------------------------------------------------------------------- | ||
35 | |||
36 | .muted { | ||
37 | color: pvar(--greyForegroundColor) !important; | ||
38 | } | ||
39 | |||
40 | // --------------------------------------------------------------------------- | ||
41 | |||
42 | .pt-badge { | ||
43 | @include peertube-badge; | ||
44 | } | ||
45 | |||
46 | // --------------------------------------------------------------------------- | ||
47 | |||
48 | .form-group { | ||
49 | margin-bottom: 1rem; | ||
50 | } | ||
51 | |||
52 | .form-error, | ||
53 | .form-warning { | ||
54 | display: block; | ||
55 | margin-top: 5px; | ||
56 | } | ||
57 | |||
58 | .form-error { | ||
59 | color: $red; | ||
60 | } | ||
61 | |||
62 | .input-error { | ||
63 | border-color: $red !important; | ||
64 | } | ||
65 | |||
66 | .form-group-description { | ||
67 | @extend .muted !optional; | ||
68 | |||
69 | font-size: 90%; | ||
70 | margin-top: 10px; | ||
71 | } | ||
72 | |||
73 | // --------------------------------------------------------------------------- | ||
74 | |||
75 | |||
76 | .title-page { | ||
77 | @include disable-default-a-behaviour; | ||
78 | @include margin-right(55px); | ||
79 | |||
80 | opacity: 0.6; | ||
81 | color: pvar(--mainForegroundColor); | ||
82 | font-size: 16px; | ||
83 | display: inline-block; | ||
84 | font-weight: $font-semibold; | ||
85 | border-bottom: 2px solid transparent; | ||
86 | |||
87 | &.title-page-single { | ||
88 | margin-top: 30px; | ||
89 | margin-bottom: 25px; | ||
90 | } | ||
91 | |||
92 | &.active { | ||
93 | border-bottom-color: pvar(--mainColor); | ||
94 | } | ||
95 | |||
96 | &.title-page-single { | ||
97 | font-size: 125%; | ||
98 | } | ||
99 | |||
100 | &:hover, | ||
101 | &:active, | ||
102 | &:focus { | ||
103 | color: pvar(--mainForegroundColor); | ||
104 | } | ||
105 | |||
106 | &.active, | ||
107 | &:hover, | ||
108 | &:active, | ||
109 | &:focus, | ||
110 | &.title-page-single { | ||
111 | opacity: 1; | ||
112 | outline: 0 hidden !important; | ||
113 | } | ||
114 | |||
115 | @media screen and (max-width: $mobile-view) { | ||
116 | @include margin-left(15px); | ||
117 | } | ||
118 | } | ||
119 | |||
120 | .title-page-about, | ||
121 | .title-page-settings { | ||
122 | white-space: nowrap; | ||
123 | font-size: 115%; | ||
124 | } | ||
125 | |||
126 | .admin-sub-header { | ||
127 | display: flex; | ||
128 | align-items: center; | ||
129 | margin-bottom: 30px; | ||
130 | |||
131 | @media screen and (max-width: $small-view) { | ||
132 | flex-direction: column; | ||
133 | } | ||
134 | } | ||
135 | |||
136 | // --------------------------------------------------------------------------- | ||
137 | |||
138 | .no-results { | ||
139 | height: 40vh; | ||
140 | max-height: 500px; | ||
141 | |||
142 | display: flex; | ||
143 | flex-direction: column; | ||
144 | align-items: center; | ||
145 | justify-content: center; | ||
146 | font-size: 16px; | ||
147 | font-weight: $font-semibold; | ||
148 | } | ||
149 | |||
150 | // --------------------------------------------------------------------------- | ||
151 | |||
152 | .chevron-down { | ||
153 | @include chevron-down(0.55rem, 0.15rem); | ||
154 | |||
155 | margin: 0 8px; | ||
156 | } | ||
157 | |||
158 | .chevron-up { | ||
159 | @include chevron-up(0.55rem, 0.15rem); | ||
160 | |||
161 | margin: 0 8px; | ||
162 | } | ||
163 | |||
164 | .chevron-right { | ||
165 | @include chevron-right(0.55rem, 0.15rem); | ||
166 | |||
167 | margin: 0 8px; | ||
168 | } | ||
169 | |||
170 | .chevron-left { | ||
171 | @include chevron-left(0.55rem, 0.15rem); | ||
172 | |||
173 | margin: 0 8px; | ||
174 | } | ||
175 | |||
176 | // --------------------------------------------------------------------------- | ||
177 | |||
178 | .callout { | ||
179 | padding: 1.25rem; | ||
180 | border: 1px solid #eee; | ||
181 | border-radius: .25rem; | ||
182 | position: relative; | ||
183 | |||
184 | > label { | ||
185 | position: relative; | ||
186 | top: -5px; | ||
187 | left: -10px; | ||
188 | color: #6c757d !important; | ||
189 | } | ||
190 | |||
191 | &:not(.callout-light) { | ||
192 | border-left-width: .25rem; | ||
193 | } | ||
194 | |||
195 | &.callout-info { | ||
196 | border-color: pvar(--mainColorLightest); | ||
197 | border-left-color: pvar(--mainColor); | ||
198 | } | ||
199 | } | ||
200 | |||
201 | // --------------------------------------------------------------------------- | ||
202 | |||
203 | .anchor { | ||
204 | position: relative; | ||
205 | top: #{-($header-height + 20px)}; | ||
206 | } | ||
207 | |||
208 | .offset-content { // if sub-menu fixed | ||
209 | .anchor { | ||
210 | top: #{-($header-height + $sub-menu-height + 20px)}; | ||
211 | } | ||
212 | } | ||
diff --git a/client/src/sass/classes.scss b/client/src/sass/classes.scss deleted file mode 100644 index 35bcfba4b..000000000 --- a/client/src/sass/classes.scss +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | @use '_variables' as *; | ||
2 | @use '_mixins' as *; | ||
3 | @use '_badges' as *; | ||
4 | |||
5 | .peertube-button { | ||
6 | @include peertube-button; | ||
7 | } | ||
8 | |||
9 | .peertube-button-link { | ||
10 | @include peertube-button-link; | ||
11 | } | ||
12 | |||
13 | .orange-button { | ||
14 | @include orange-button; | ||
15 | } | ||
16 | |||
17 | .orange-button-inverted { | ||
18 | @include orange-button-inverted; | ||
19 | } | ||
20 | |||
21 | .grey-button { | ||
22 | @include grey-button; | ||
23 | } | ||
24 | |||
25 | .tertiary-button { | ||
26 | @include tertiary-button; | ||
27 | } | ||
28 | |||
29 | .peertube-radio-container { | ||
30 | @include peertube-radio-container; | ||
31 | } | ||
32 | |||
33 | .muted { | ||
34 | color: pvar(--greyForegroundColor) !important; | ||
35 | } | ||
36 | |||
37 | .pt-badge { | ||
38 | @include peertube-badge; | ||
39 | } | ||