diff options
author | Rigel Kent <sendmemail@rigelk.eu> | 2018-09-04 01:28:04 +0200 |
---|---|---|
committer | Rigel Kent <par@rigelk.eu> | 2018-09-04 23:24:34 +0200 |
commit | 9a0fc8409c7a783348ec212fa9f38d0a98413467 (patch) | |
tree | 8b17264ef915e339d067abe6717c1574f1a2f36b /client | |
parent | 3b766e181c59ce148fde73e507276c9fbaf37eb1 (diff) | |
download | PeerTube-9a0fc8409c7a783348ec212fa9f38d0a98413467.tar.gz PeerTube-9a0fc8409c7a783348ec212fa9f38d0a98413467.tar.zst PeerTube-9a0fc8409c7a783348ec212fa9f38d0a98413467.zip |
add theming via css custom properties
and a bonus dark color theme toggle
Diffstat (limited to 'client')
25 files changed, 140 insertions, 55 deletions
diff --git a/client/src/app/+accounts/account-video-channels/account-video-channels.component.scss b/client/src/app/+accounts/account-video-channels/account-video-channels.component.scss index 39c0840e4..0c6de2efa 100644 --- a/client/src/app/+accounts/account-video-channels/account-video-channels.component.scss +++ b/client/src/app/+accounts/account-video-channels/account-video-channels.component.scss | |||
@@ -10,7 +10,7 @@ a.video-channel { | |||
10 | 10 | ||
11 | display: inline-block; | 11 | display: inline-block; |
12 | text-align: center; | 12 | text-align: center; |
13 | color: #000; | 13 | color: var(--mainForegroundColor); |
14 | margin: 10px 30px; | 14 | margin: 10px 30px; |
15 | 15 | ||
16 | img { | 16 | img { |
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss index 4c9167211..c90bd5141 100644 --- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss +++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss | |||
@@ -28,7 +28,7 @@ input[type=submit] { | |||
28 | 28 | ||
29 | .inner-form-title { | 29 | .inner-form-title { |
30 | text-transform: uppercase; | 30 | text-transform: uppercase; |
31 | color: $orange-color; | 31 | color: var(--mainColor); |
32 | font-weight: $font-bold; | 32 | font-weight: $font-bold; |
33 | font-size: 13px; | 33 | font-size: 13px; |
34 | margin-top: 30px; | 34 | margin-top: 30px; |
diff --git a/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.scss b/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.scss index 8cb0b677d..700d516d5 100644 --- a/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.scss +++ b/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.scss | |||
@@ -19,7 +19,7 @@ | |||
19 | width: fit-content; | 19 | width: fit-content; |
20 | display: flex; | 20 | display: flex; |
21 | align-items: baseline; | 21 | align-items: baseline; |
22 | color: #000; | 22 | color: var(--mainForegroundColor); |
23 | 23 | ||
24 | .video-channel-display-name { | 24 | .video-channel-display-name { |
25 | font-weight: $font-semibold; | 25 | font-weight: $font-semibold; |
diff --git a/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.scss b/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.scss index 83d657f03..472cbb723 100644 --- a/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.scss +++ b/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.scss | |||
@@ -29,7 +29,7 @@ | |||
29 | width: fit-content; | 29 | width: fit-content; |
30 | display: flex; | 30 | display: flex; |
31 | align-items: baseline; | 31 | align-items: baseline; |
32 | color: #000; | 32 | color: var(--mainForegroundColor); |
33 | 33 | ||
34 | .video-channel-display-name { | 34 | .video-channel-display-name { |
35 | font-weight: $font-semibold; | 35 | font-weight: $font-semibold; |
diff --git a/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss b/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss index 8d0dec07d..2db81a3fe 100644 --- a/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss +++ b/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss | |||
@@ -59,7 +59,7 @@ | |||
59 | .video-info-name { | 59 | .video-info-name { |
60 | @include disable-default-a-behaviour; | 60 | @include disable-default-a-behaviour; |
61 | 61 | ||
62 | color: #000; | 62 | color: var(--mainForegroundColor); |
63 | display: block; | 63 | display: block; |
64 | width: fit-content; | 64 | width: fit-content; |
65 | font-size: 16px; | 65 | font-size: 16px; |
diff --git a/client/src/app/app.component.html b/client/src/app/app.component.html index 3eb8ef40a..0564e1a7b 100644 --- a/client/src/app/app.component.html +++ b/client/src/app/app.component.html | |||
@@ -14,7 +14,7 @@ | |||
14 | </a> | 14 | </a> |
15 | </div> | 15 | </div> |
16 | 16 | ||
17 | <div class="header-right"> | 17 | <div class="header-right" [ngClass]="{ 'border-bottom': isMenuDisplayed === false }"> |
18 | <my-header></my-header> | 18 | <my-header></my-header> |
19 | </div> | 19 | </div> |
20 | </div> | 20 | </div> |
diff --git a/client/src/app/app.component.scss b/client/src/app/app.component.scss index e772e3a37..b51a81eb1 100644 --- a/client/src/app/app.component.scss +++ b/client/src/app/app.component.scss | |||
@@ -7,6 +7,7 @@ | |||
7 | 7 | ||
8 | .sub-header-container { | 8 | .sub-header-container { |
9 | margin-top: $header-height; | 9 | margin-top: $header-height; |
10 | background-color: var(--mainBackgroundColor); | ||
10 | } | 11 | } |
11 | 12 | ||
12 | .header { | 13 | .header { |
@@ -14,7 +15,7 @@ | |||
14 | position: fixed; | 15 | position: fixed; |
15 | top: 0; | 16 | top: 0; |
16 | width: 100%; | 17 | width: 100%; |
17 | background-color: $bg-color; | 18 | background-color: var(--mainBackgroundColor); |
18 | z-index: 1000; | 19 | z-index: 1000; |
19 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16); | 20 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16); |
20 | display: flex; | 21 | display: flex; |
@@ -31,7 +32,8 @@ | |||
31 | @include icon(24px); | 32 | @include icon(24px); |
32 | 33 | ||
33 | &.icon-menu { | 34 | &.icon-menu { |
34 | background-image: url('../assets/images/header/menu.svg'); | 35 | background-color: var(--mainForegroundColor); |
36 | mask-image: url('../assets/images/header/menu.svg'); | ||
35 | margin: 0 18px 0 20px; | 37 | margin: 0 18px 0 20px; |
36 | } | 38 | } |
37 | } | 39 | } |
@@ -83,7 +85,6 @@ | |||
83 | } | 85 | } |
84 | 86 | ||
85 | footer { | 87 | footer { |
86 | border-top: 1px solid $footer-border-color; | ||
87 | padding: 10px 0; | 88 | padding: 10px 0; |
88 | font-size: 11px; | 89 | font-size: 11px; |
89 | margin-top: $footer-margin; | 90 | margin-top: $footer-margin; |
diff --git a/client/src/app/header/header.component.scss b/client/src/app/header/header.component.scss index 8251ec1b5..bd03c338a 100644 --- a/client/src/app/header/header.component.scss +++ b/client/src/app/header/header.component.scss | |||
@@ -8,7 +8,7 @@ | |||
8 | padding-right: 40px; // For the search icon | 8 | padding-right: 40px; // For the search icon |
9 | 9 | ||
10 | &::placeholder { | 10 | &::placeholder { |
11 | color: #000; | 11 | color: var(--inputPlaceholderColor); |
12 | } | 12 | } |
13 | 13 | ||
14 | &:focus::placeholder { | 14 | &:focus::placeholder { |
@@ -28,7 +28,8 @@ | |||
28 | @include icon(25px); | 28 | @include icon(25px); |
29 | height: 21px; | 29 | height: 21px; |
30 | 30 | ||
31 | background-image: url('../../assets/images/header/search.svg'); | 31 | background-color: var(--mainForegroundColor); |
32 | mask: url('../../assets/images/header/search.svg') no-repeat 50% 50%; | ||
32 | 33 | ||
33 | // yolo | 34 | // yolo |
34 | position: absolute; | 35 | position: absolute; |
diff --git a/client/src/app/login/login.component.scss b/client/src/app/login/login.component.scss index 7978c5891..8541a2681 100644 --- a/client/src/app/login/login.component.scss +++ b/client/src/app/login/login.component.scss | |||
@@ -18,7 +18,7 @@ input[type=submit] { | |||
18 | } | 18 | } |
19 | 19 | ||
20 | .create-an-account, .forgot-password-button { | 20 | .create-an-account, .forgot-password-button { |
21 | color: #000; | 21 | color: var(--mainForegroundColor); |
22 | cursor: pointer; | 22 | cursor: pointer; |
23 | 23 | ||
24 | &:hover { | 24 | &:hover { |
diff --git a/client/src/app/menu/menu.component.html b/client/src/app/menu/menu.component.html index 8fe6797d6..d9e75adea 100644 --- a/client/src/app/menu/menu.component.html +++ b/client/src/app/menu/menu.component.html | |||
@@ -87,6 +87,9 @@ | |||
87 | <span class="language"> | 87 | <span class="language"> |
88 | <span (click)="openLanguageChooser()" i18n-title title="Change the language" class="icon icon-language"></span> | 88 | <span (click)="openLanguageChooser()" i18n-title title="Change the language" class="icon icon-language"></span> |
89 | </span> | 89 | </span> |
90 | <span class="color-palette"> | ||
91 | <span (click)="toggleDarkTheme()" i18n-title title="Toggle dark interface" class="icon icon-moonsun"></span> | ||
92 | </span> | ||
90 | </div> | 93 | </div> |
91 | </menu> | 94 | </menu> |
92 | </div> | 95 | </div> |
diff --git a/client/src/app/menu/menu.component.scss b/client/src/app/menu/menu.component.scss index 941c208e2..4ef330b2f 100644 --- a/client/src/app/menu/menu.component.scss +++ b/client/src/app/menu/menu.component.scss | |||
@@ -9,7 +9,7 @@ | |||
9 | } | 9 | } |
10 | 10 | ||
11 | menu { | 11 | menu { |
12 | background-color: $black-background; | 12 | background-color: $menu-background; |
13 | margin: 0; | 13 | margin: 0; |
14 | padding: 0; | 14 | padding: 0; |
15 | height: 100%; | 15 | height: 100%; |
@@ -190,10 +190,10 @@ menu { | |||
190 | } | 190 | } |
191 | 191 | ||
192 | .footer { | 192 | .footer { |
193 | margin-bottom: 15px; | 193 | padding-bottom: 15px; |
194 | padding-left: $menu-left-padding; | 194 | padding-left: $menu-left-padding; |
195 | 195 | ||
196 | .language { | 196 | .language, .color-palette { |
197 | display: inline-block; | 197 | display: inline-block; |
198 | color: $menu-bottom-color; | 198 | color: $menu-bottom-color; |
199 | cursor: pointer; | 199 | cursor: pointer; |
@@ -213,6 +213,16 @@ menu { | |||
213 | background-image: url('../../assets/images/menu/language.png'); | 213 | background-image: url('../../assets/images/menu/language.png'); |
214 | } | 214 | } |
215 | 215 | ||
216 | &.icon-moonsun { | ||
217 | margin-left: 10px; | ||
218 | position: relative; | ||
219 | top: -1px; | ||
220 | width: 24px; | ||
221 | height: 24px; | ||
222 | |||
223 | background-image: url('../../assets/images/menu/moonsun.svg'); | ||
224 | } | ||
225 | |||
216 | &:hover { | 226 | &:hover { |
217 | opacity: 1; | 227 | opacity: 1; |
218 | } | 228 | } |
diff --git a/client/src/app/menu/menu.component.ts b/client/src/app/menu/menu.component.ts index dded6b4d5..3de4a78af 100644 --- a/client/src/app/menu/menu.component.ts +++ b/client/src/app/menu/menu.component.ts | |||
@@ -22,6 +22,8 @@ export class MenuComponent implements OnInit { | |||
22 | [UserRight.MANAGE_VIDEO_ABUSES]: '/admin/video-abuses', | 22 | [UserRight.MANAGE_VIDEO_ABUSES]: '/admin/video-abuses', |
23 | [UserRight.MANAGE_VIDEO_BLACKLIST]: '/admin/video-blacklist' | 23 | [UserRight.MANAGE_VIDEO_BLACKLIST]: '/admin/video-blacklist' |
24 | } | 24 | } |
25 | private theme = document.querySelector('body') | ||
26 | private previousTheme = { } | ||
25 | 27 | ||
26 | constructor ( | 28 | constructor ( |
27 | private authService: AuthService, | 29 | private authService: AuthService, |
@@ -51,6 +53,13 @@ export class MenuComponent implements OnInit { | |||
51 | } | 53 | } |
52 | } | 54 | } |
53 | ) | 55 | ) |
56 | |||
57 | // initialise the alternative theme with dark theme colors | ||
58 | this.previousTheme['mainBackgroundColor'] = '#111111' | ||
59 | this.previousTheme['mainForegroundColor'] = '#fff' | ||
60 | this.previousTheme['submenuColor'] = 'rgb(32,32,32)' | ||
61 | this.previousTheme['inputColor'] = 'gray' | ||
62 | this.previousTheme['inputPlaceholderColor'] = '#fff' | ||
54 | } | 63 | } |
55 | 64 | ||
56 | isRegistrationAllowed () { | 65 | isRegistrationAllowed () { |
@@ -96,6 +105,21 @@ export class MenuComponent implements OnInit { | |||
96 | this.languageChooserModal.show() | 105 | this.languageChooserModal.show() |
97 | } | 106 | } |
98 | 107 | ||
108 | toggleDarkTheme () { | ||
109 | // switch properties | ||
110 | this.switchProperty('mainBackgroundColor') | ||
111 | this.switchProperty('mainForegroundColor') | ||
112 | this.switchProperty('submenuColor') | ||
113 | this.switchProperty('inputColor') | ||
114 | this.switchProperty('inputPlaceholderColor') | ||
115 | } | ||
116 | |||
117 | private switchProperty (property, newValue?) { | ||
118 | const propertyOldvalue = window.getComputedStyle(this.theme).getPropertyValue('--' + property) | ||
119 | this.theme.style.setProperty('--' + property, (newValue) ? newValue : this.previousTheme[property]) | ||
120 | this.previousTheme[property] = propertyOldvalue | ||
121 | } | ||
122 | |||
99 | private computeIsUserHasAdminAccess () { | 123 | private computeIsUserHasAdminAccess () { |
100 | const right = this.getFirstAdminRightAvailable() | 124 | const right = this.getFirstAdminRightAvailable() |
101 | 125 | ||
diff --git a/client/src/app/search/search.component.scss b/client/src/app/search/search.component.scss index 3be8f5311..67b2094b0 100644 --- a/client/src/app/search/search.component.scss +++ b/client/src/app/search/search.component.scss | |||
@@ -67,7 +67,7 @@ | |||
67 | .video-info-name { | 67 | .video-info-name { |
68 | @include disable-default-a-behaviour; | 68 | @include disable-default-a-behaviour; |
69 | 69 | ||
70 | color: #000; | 70 | color: var(--mainForegroundColor); |
71 | display: block; | 71 | display: block; |
72 | width: fit-content; | 72 | width: fit-content; |
73 | font-size: 18px; | 73 | font-size: 18px; |
@@ -113,7 +113,7 @@ | |||
113 | 113 | ||
114 | display: flex; | 114 | display: flex; |
115 | align-items: baseline; | 115 | align-items: baseline; |
116 | color: #000; | 116 | color: var(--mainForegroundColor); |
117 | width: fit-content; | 117 | width: fit-content; |
118 | 118 | ||
119 | .video-channel-display-name { | 119 | .video-channel-display-name { |
diff --git a/client/src/app/shared/misc/help.component.scss b/client/src/app/shared/misc/help.component.scss index fe64a270d..5c73a8031 100644 --- a/client/src/app/shared/misc/help.component.scss +++ b/client/src/app/shared/misc/help.component.scss | |||
@@ -7,7 +7,6 @@ | |||
7 | position: relative; | 7 | position: relative; |
8 | top: -2px; | 8 | top: -2px; |
9 | background-image: url('../../../assets/images/global/help.svg'); | 9 | background-image: url('../../../assets/images/global/help.svg'); |
10 | background-color: #fff; | ||
11 | border: none; | 10 | border: none; |
12 | margin: 5px; | 11 | margin: 5px; |
13 | } | 12 | } |
diff --git a/client/src/app/shared/video/video-feed.component.scss b/client/src/app/shared/video/video-feed.component.scss index 9dab18ffd..385764be0 100644 --- a/client/src/app/shared/video/video-feed.component.scss +++ b/client/src/app/shared/video/video-feed.component.scss | |||
@@ -12,7 +12,8 @@ | |||
12 | &.icon-syndication { | 12 | &.icon-syndication { |
13 | position: relative; | 13 | position: relative; |
14 | top: -2px; | 14 | top: -2px; |
15 | background-image: url('../../../assets/images/global/syndication.svg'); | 15 | background-color: var(--mainForegroundColor); |
16 | mask-image: url('../../../assets/images/global/syndication.svg'); | ||
16 | } | 17 | } |
17 | } | 18 | } |
18 | } \ No newline at end of file | 19 | } \ No newline at end of file |
diff --git a/client/src/app/shared/video/video-miniature.component.scss b/client/src/app/shared/video/video-miniature.component.scss index cc643f9d9..895879adc 100644 --- a/client/src/app/shared/video/video-miniature.component.scss +++ b/client/src/app/shared/video/video-miniature.component.scss | |||
@@ -22,7 +22,7 @@ | |||
22 | transition: color 0.2s; | 22 | transition: color 0.2s; |
23 | font-size: 16px; | 23 | font-size: 16px; |
24 | font-weight: $font-semibold; | 24 | font-weight: $font-semibold; |
25 | color: $fg-color; | 25 | color: var(--mainForegroundColor); |
26 | margin-top: 5px; | 26 | margin-top: 5px; |
27 | margin-bottom: 5px; | 27 | margin-bottom: 5px; |
28 | 28 | ||
diff --git a/client/src/app/videos/+video-edit/video-add.component.scss b/client/src/app/videos/+video-edit/video-add.component.scss index 892520e40..2f078d46d 100644 --- a/client/src/app/videos/+video-edit/video-add.component.scss +++ b/client/src/app/videos/+video-edit/video-add.component.scss | |||
@@ -5,8 +5,6 @@ $border-width: 3px; | |||
5 | $border-type: solid; | 5 | $border-type: solid; |
6 | $border-color: #EAEAEA; | 6 | $border-color: #EAEAEA; |
7 | 7 | ||
8 | $background-color: #F7F7F7; | ||
9 | |||
10 | /deep/ .root-tabset.video-add-tabset { | 8 | /deep/ .root-tabset.video-add-tabset { |
11 | &.hide-nav .nav { | 9 | &.hide-nav .nav { |
12 | display: none !important; | 10 | display: none !important; |
@@ -24,7 +22,6 @@ $background-color: #F7F7F7; | |||
24 | a.nav-link { | 22 | a.nav-link { |
25 | @include disable-default-a-behaviour; | 23 | @include disable-default-a-behaviour; |
26 | 24 | ||
27 | color: #000; | ||
28 | height: 40px !important; | 25 | height: 40px !important; |
29 | padding: 0 30px !important; | 26 | padding: 0 30px !important; |
30 | font-size: 15px; | 27 | font-size: 15px; |
@@ -32,10 +29,10 @@ $background-color: #F7F7F7; | |||
32 | &.active { | 29 | &.active { |
33 | border: $border-width $border-type $border-color; | 30 | border: $border-width $border-type $border-color; |
34 | border-bottom: none; | 31 | border-bottom: none; |
35 | background-color: $background-color !important; | 32 | background-color: var(--mainBackgroundColor) !important; |
36 | 33 | ||
37 | span { | 34 | span { |
38 | border-bottom: 2px solid #F1680D; | 35 | border-bottom: 2px solid var(--mainColor); |
39 | font-weight: $font-bold; | 36 | font-weight: $font-bold; |
40 | } | 37 | } |
41 | } | 38 | } |
@@ -46,7 +43,7 @@ $background-color: #F7F7F7; | |||
46 | border: $border-width $border-type $border-color; | 43 | border: $border-width $border-type $border-color; |
47 | border-top: none; | 44 | border-top: none; |
48 | 45 | ||
49 | background-color: $background-color; | 46 | background-color: var(--mainBackgroundColor); |
50 | border-radius: 3px; | 47 | border-radius: 3px; |
51 | width: 100%; | 48 | width: 100%; |
52 | min-height: 440px; | 49 | min-height: 440px; |
diff --git a/client/src/app/videos/+video-watch/comment/video-comment.component.scss b/client/src/app/videos/+video-watch/comment/video-comment.component.scss index 78bcfe121..285db061f 100644 --- a/client/src/app/videos/+video-watch/comment/video-comment.component.scss +++ b/client/src/app/videos/+video-watch/comment/video-comment.component.scss | |||
@@ -35,7 +35,7 @@ | |||
35 | .comment-account { | 35 | .comment-account { |
36 | @include disable-default-a-behaviour; | 36 | @include disable-default-a-behaviour; |
37 | 37 | ||
38 | color: #000; | 38 | color: var(--mainForegroundColor); |
39 | font-weight: $font-bold; | 39 | font-weight: $font-bold; |
40 | } | 40 | } |
41 | 41 | ||
diff --git a/client/src/app/videos/+video-watch/video-watch.component.scss b/client/src/app/videos/+video-watch/video-watch.component.scss index be1388a83..edd5ae6ba 100644 --- a/client/src/app/videos/+video-watch/video-watch.component.scss +++ b/client/src/app/videos/+video-watch/video-watch.component.scss | |||
@@ -111,7 +111,7 @@ | |||
111 | a { | 111 | a { |
112 | @include disable-default-a-behaviour; | 112 | @include disable-default-a-behaviour; |
113 | 113 | ||
114 | color: #000; | 114 | color: var(--mainForegroundColor); |
115 | 115 | ||
116 | &:hover { | 116 | &:hover { |
117 | opacity: 0.8; | 117 | opacity: 0.8; |
@@ -137,7 +137,7 @@ | |||
137 | display: inline; | 137 | display: inline; |
138 | align-items: center; | 138 | align-items: center; |
139 | font-size: 13px; | 139 | font-size: 13px; |
140 | color: #000; | 140 | color: var(--mainForegroundColor); |
141 | 141 | ||
142 | span:hover { | 142 | span:hover { |
143 | opacity: 0.8; | 143 | opacity: 0.8; |
@@ -342,7 +342,7 @@ | |||
342 | 342 | ||
343 | a.video-attribute-value { | 343 | a.video-attribute-value { |
344 | @include disable-default-a-behaviour; | 344 | @include disable-default-a-behaviour; |
345 | color: #000; | 345 | color: var(--mainForegroundColor); |
346 | 346 | ||
347 | &:hover { | 347 | &:hover { |
348 | opacity: 0.9; | 348 | opacity: 0.9; |
@@ -413,7 +413,7 @@ | |||
413 | a { | 413 | a { |
414 | @include disable-default-a-behaviour; | 414 | @include disable-default-a-behaviour; |
415 | 415 | ||
416 | color: $orange-color; | 416 | color: var(--mainColor); |
417 | transition: color 0.3s; | 417 | transition: color 0.3s; |
418 | 418 | ||
419 | &:hover { | 419 | &:hover { |
@@ -422,7 +422,7 @@ | |||
422 | } | 422 | } |
423 | 423 | ||
424 | .privacy-concerns-okay { | 424 | .privacy-concerns-okay { |
425 | background-color: $orange-color; | 425 | background-color: var(--mainColor); |
426 | padding: 5px 8px 5px 7px; | 426 | padding: 5px 8px 5px 7px; |
427 | margin-left: auto; | 427 | margin-left: auto; |
428 | border-radius: 3px; | 428 | border-radius: 3px; |
diff --git a/client/src/app/videos/video-list/video-overview.component.scss b/client/src/app/videos/video-list/video-overview.component.scss index e7dc60b4b..f5508cf61 100644 --- a/client/src/app/videos/video-list/video-overview.component.scss +++ b/client/src/app/videos/video-list/video-overview.component.scss | |||
@@ -21,7 +21,7 @@ | |||
21 | a { | 21 | a { |
22 | @include disable-default-a-behaviour; | 22 | @include disable-default-a-behaviour; |
23 | 23 | ||
24 | color: #000; | 24 | color: var(--mainForegroundColor); |
25 | } | 25 | } |
26 | } | 26 | } |
27 | 27 | ||
diff --git a/client/src/assets/images/menu/moonsun.svg b/client/src/assets/images/menu/moonsun.svg new file mode 100644 index 000000000..fe2a96396 --- /dev/null +++ b/client/src/assets/images/menu/moonsun.svg | |||
@@ -0,0 +1 @@ | |||
<svg height="300px" width="300px" fill="#fff" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 100 100" x="0px" y="0px"><title>Artboard 633</title><circle cx="50" cy="6" r="4"/><circle cx="50" cy="94" r="4"/><circle cx="6" cy="50" r="4"/><circle cx="94" cy="50" r="4"/><circle cx="18" cy="18" r="4"/><circle cx="82" cy="82" r="4"/><circle cx="18" cy="82" r="4"/><circle cx="82" cy="18" r="4"/><path d="M82,50A32,32,0,1,0,50,82,32,32,0,0,0,82,50ZM50,26a23.67,23.67,0,0,1,5.87.76c4.36,9.93.57,19-4.66,24.29s-14.4,9.24-24.45,4.83A23.75,23.75,0,0,1,26,50,24,24,0,0,1,50,26Zm0,48a23.94,23.94,0,0,1-18.26-8.47,29.38,29.38,0,0,0,3.74.26,30.07,30.07,0,0,0,21.41-9.11,29.82,29.82,0,0,0,8.61-25A24,24,0,0,1,50,74Z"/></svg> \ No newline at end of file | |||
diff --git a/client/src/sass/application.scss b/client/src/sass/application.scss index a4fea13c2..b92036de7 100644 --- a/client/src/sass/application.scss +++ b/client/src/sass/application.scss | |||
@@ -21,7 +21,7 @@ $assets-path: '../assets/'; | |||
21 | body { | 21 | body { |
22 | font-family: $main-fonts; | 22 | font-family: $main-fonts; |
23 | font-weight: $font-regular; | 23 | font-weight: $font-regular; |
24 | color: #000; | 24 | color: var(--mainForegroundColor); |
25 | font-size: 14px; | 25 | font-size: 14px; |
26 | } | 26 | } |
27 | 27 | ||
@@ -83,7 +83,7 @@ label { | |||
83 | } | 83 | } |
84 | 84 | ||
85 | .sub-menu { | 85 | .sub-menu { |
86 | background-color: #F7F7F7; | 86 | background-color: var(--submenuColor); |
87 | width: 100%; | 87 | width: 100%; |
88 | height: 81px; | 88 | height: 81px; |
89 | margin-bottom: 30px; | 89 | margin-bottom: 30px; |
@@ -110,7 +110,7 @@ label { | |||
110 | } | 110 | } |
111 | 111 | ||
112 | .title-page { | 112 | .title-page { |
113 | color: #000; | 113 | color: var(--mainForegroundColor); |
114 | font-size: 16px; | 114 | font-size: 16px; |
115 | display: inline-block; | 115 | display: inline-block; |
116 | margin-right: 55px; | 116 | margin-right: 55px; |
@@ -118,14 +118,14 @@ label { | |||
118 | @include disable-default-a-behaviour; | 118 | @include disable-default-a-behaviour; |
119 | 119 | ||
120 | &.active, &.title-page-single { | 120 | &.active, &.title-page-single { |
121 | border-bottom: 2px solid $orange-color; | 121 | border-bottom: 2px solid var(--mainColor); |
122 | font-weight: $font-bold; | 122 | font-weight: $font-bold; |
123 | margin-top: 30px; | 123 | margin-top: 30px; |
124 | margin-bottom: 25px; | 124 | margin-bottom: 25px; |
125 | } | 125 | } |
126 | 126 | ||
127 | &:hover, &:active, &:focus { | 127 | &:hover, &:active, &:focus { |
128 | color: #000; | 128 | color: var(--mainForegroundColor); |
129 | } | 129 | } |
130 | 130 | ||
131 | @media screen and (max-width: 500px) { | 131 | @media screen and (max-width: 500px) { |
@@ -146,13 +146,14 @@ label { | |||
146 | @include disable-default-a-behaviour; | 146 | @include disable-default-a-behaviour; |
147 | 147 | ||
148 | font-size: 16px; | 148 | font-size: 16px; |
149 | color: #000; | 149 | color: var(--mainForegroundColor); |
150 | padding: 5px 15px; | 150 | padding: 5px 15px; |
151 | border-radius: 0.25rem; | 151 | border-radius: 0.25rem; |
152 | 152 | ||
153 | &.active { | 153 | &.active { |
154 | font-weight: $font-semibold; | 154 | font-weight: $font-semibold; |
155 | background-color: #f0f0f0; | 155 | background-color: #f0f0f0; |
156 | color: #000; | ||
156 | } | 157 | } |
157 | } | 158 | } |
158 | } | 159 | } |
@@ -188,6 +189,10 @@ label { | |||
188 | } | 189 | } |
189 | 190 | ||
190 | .modal { | 191 | .modal { |
192 | .modal-content { | ||
193 | background-color: var(--mainBackgroundColor); | ||
194 | } | ||
195 | |||
191 | .modal-header { | 196 | .modal-header { |
192 | border-bottom: none; | 197 | border-bottom: none; |
193 | margin-bottom: 5px; | 198 | margin-bottom: 5px; |
@@ -249,7 +254,7 @@ label { | |||
249 | a { | 254 | a { |
250 | @include disable-default-a-behaviour; | 255 | @include disable-default-a-behaviour; |
251 | 256 | ||
252 | color: #000; | 257 | color: var(--mainForegroundColor); |
253 | } | 258 | } |
254 | } | 259 | } |
255 | 260 | ||
@@ -259,7 +264,7 @@ ngb-tabset.bootstrap { | |||
259 | &, & a { | 264 | &, & a { |
260 | @include disable-default-a-behaviour; | 265 | @include disable-default-a-behaviour; |
261 | 266 | ||
262 | color: #000 !important; | 267 | color: var(--mainForegroundColor) !important; |
263 | } | 268 | } |
264 | } | 269 | } |
265 | } | 270 | } |
diff --git a/client/src/sass/include/_mixins.scss b/client/src/sass/include/_mixins.scss index 765297c87..6e2feb748 100644 --- a/client/src/sass/include/_mixins.scss +++ b/client/src/sass/include/_mixins.scss | |||
@@ -58,11 +58,15 @@ | |||
58 | display: inline-block; | 58 | display: inline-block; |
59 | height: $button-height; | 59 | height: $button-height; |
60 | width: $width; | 60 | width: $width; |
61 | background: #fff; | 61 | background: var(--inputColor); |
62 | border: 1px solid #C6C6C6; | 62 | border: 1px solid #C6C6C6; |
63 | border-radius: 3px; | 63 | border-radius: 3px; |
64 | padding-left: 15px; | 64 | padding-left: 15px; |
65 | padding-right: 15px; | 65 | padding-right: 15px; |
66 | |||
67 | &::placeholder { | ||
68 | color: var(--inputPlaceholderColor); | ||
69 | } | ||
66 | } | 70 | } |
67 | 71 | ||
68 | @mixin peertube-input-group($width) { | 72 | @mixin peertube-input-group($width) { |
@@ -73,6 +77,7 @@ | |||
73 | 77 | ||
74 | .input-group-text{ | 78 | .input-group-text{ |
75 | font-size: 14px; | 79 | font-size: 14px; |
80 | color: gray; | ||
76 | } | 81 | } |
77 | } | 82 | } |
78 | 83 | ||
@@ -87,12 +92,12 @@ | |||
87 | @mixin orange-button { | 92 | @mixin orange-button { |
88 | &, &:active, &:focus { | 93 | &, &:active, &:focus { |
89 | color: #fff; | 94 | color: #fff; |
90 | background-color: $orange-color; | 95 | background-color: var(--mainColor); |
91 | } | 96 | } |
92 | 97 | ||
93 | &:hover { | 98 | &:hover { |
94 | color: #fff; | 99 | color: #fff; |
95 | background-color: $orange-hoover-color; | 100 | background-color: var(--mainHoverColor); |
96 | } | 101 | } |
97 | 102 | ||
98 | &[disabled], &.disabled { | 103 | &[disabled], &.disabled { |
@@ -181,7 +186,7 @@ | |||
181 | width: $width; | 186 | width: $width; |
182 | border-radius: 3px; | 187 | border-radius: 3px; |
183 | overflow: hidden; | 188 | overflow: hidden; |
184 | background: #fff; | 189 | background: var(--inputColor); |
185 | position: relative; | 190 | position: relative; |
186 | font-size: 15px; | 191 | font-size: 15px; |
187 | 192 | ||
@@ -278,7 +283,7 @@ | |||
278 | position: relative; | 283 | position: relative; |
279 | width: 18px; | 284 | width: 18px; |
280 | height: 18px; | 285 | height: 18px; |
281 | border: $border-width solid #000; | 286 | border: $border-width solid var(--mainForegroundColor); |
282 | border-radius: 3px; | 287 | border-radius: 3px; |
283 | vertical-align: middle; | 288 | vertical-align: middle; |
284 | cursor: pointer; | 289 | cursor: pointer; |
@@ -292,14 +297,14 @@ | |||
292 | height: 12px; | 297 | height: 12px; |
293 | opacity: 0; | 298 | opacity: 0; |
294 | transform: rotate(45deg) scale(0); | 299 | transform: rotate(45deg) scale(0); |
295 | border-right: 2px solid #fff; | 300 | border-right: 2px solid var(--mainForegroundColor); |
296 | border-bottom: 2px solid #fff; | 301 | border-bottom: 2px solid var(--mainForegroundColor); |
297 | } | 302 | } |
298 | } | 303 | } |
299 | 304 | ||
300 | &:checked + span { | 305 | &:checked + span { |
301 | border-color: transparent; | 306 | border-color: transparent; |
302 | background: $orange-color; | 307 | background: var(--mainColor); |
303 | animation: jelly 0.6s ease; | 308 | animation: jelly 0.6s ease; |
304 | 309 | ||
305 | &:after { | 310 | &:after { |
@@ -357,7 +362,7 @@ | |||
357 | 362 | ||
358 | @mixin in-content-small-title { | 363 | @mixin in-content-small-title { |
359 | text-transform: uppercase; | 364 | text-transform: uppercase; |
360 | color: $orange-color; | 365 | color: var(--mainColor); |
361 | font-weight: $font-bold; | 366 | font-weight: $font-bold; |
362 | font-size: 13px; | 367 | font-size: 13px; |
363 | } | 368 | } |
@@ -365,10 +370,10 @@ | |||
365 | @mixin actor-owner { | 370 | @mixin actor-owner { |
366 | @include disable-default-a-behaviour; | 371 | @include disable-default-a-behaviour; |
367 | 372 | ||
368 | display: block; | 373 | display: inline-table; |
369 | font-size: 13px; | 374 | font-size: 13px; |
370 | margin-top: 4px; | 375 | margin-top: 4px; |
371 | color: #000; | 376 | color: var(--mainForegroundColor); |
372 | 377 | ||
373 | span:hover { | 378 | span:hover { |
374 | opacity: 0.8; | 379 | opacity: 0.8; |
diff --git a/client/src/sass/include/_variables.scss b/client/src/sass/include/_variables.scss index 7fd178c3b..792a3f9c2 100644 --- a/client/src/sass/include/_variables.scss +++ b/client/src/sass/include/_variables.scss | |||
@@ -8,8 +8,6 @@ $grey-hoover-color: #EFEFEF;; | |||
8 | $orange-color: #F1680D; | 8 | $orange-color: #F1680D; |
9 | $orange-hoover-color: #F97D46; | 9 | $orange-hoover-color: #F97D46; |
10 | 10 | ||
11 | $black-background: #000; | ||
12 | $grey-background: #f6f2f2; | ||
13 | $bg-color: #fff; | 11 | $bg-color: #fff; |
14 | $fg-color: #000; | 12 | $fg-color: #000; |
15 | 13 | ||
@@ -27,11 +25,14 @@ $header-height: 50px; | |||
27 | $header-border-color: #e9eff6; | 25 | $header-border-color: #e9eff6; |
28 | $search-input-width: 375px; | 26 | $search-input-width: 375px; |
29 | 27 | ||
28 | $menu-background: #000; | ||
30 | $menu-color: #fff; | 29 | $menu-color: #fff; |
31 | $menu-bottom-color: #C6C6C6; | 30 | $menu-bottom-color: #C6C6C6; |
32 | $menu-width: 240px; | 31 | $menu-width: 240px; |
33 | $menu-left-padding: 26px; | 32 | $menu-left-padding: 26px; |
34 | 33 | ||
34 | $sub-menu-color: #F7F7F7; | ||
35 | |||
35 | $footer-height: 30px; | 36 | $footer-height: 30px; |
36 | $footer-margin: 30px; | 37 | $footer-margin: 30px; |
37 | 38 | ||
@@ -41,3 +42,40 @@ $video-thumbnail-height: 110px; | |||
41 | $video-thumbnail-width: 200px; | 42 | $video-thumbnail-width: 200px; |
42 | 43 | ||
43 | $theater-bottom-space: 85px; | 44 | $theater-bottom-space: 85px; |
45 | |||
46 | $input-color: $bg-color; | ||
47 | $input-placeholder-color: #898989; | ||
48 | |||
49 | /*** theme ***/ | ||
50 | |||
51 | body { | ||
52 | // now beware node-sass requires interpolation | ||
53 | // for css custom properties #{$var} | ||
54 | --mainColor: #{$orange-color}; | ||
55 | --mainHoverColor: #{$orange-hoover-color}; | ||
56 | --mainBackgroundColor: #{$bg-color}; | ||
57 | --mainForegroundColor: #{$fg-color}; | ||
58 | --submenuColor: #{$sub-menu-color}; | ||
59 | --inputColor: #{$input-color}; | ||
60 | --inputPlaceholderColor: #{$input-placeholder-color}; | ||
61 | } | ||
62 | |||
63 | /*** map theme ***/ | ||
64 | |||
65 | // pass variables into a sass map, | ||
66 | // to be warned of non-existing variables | ||
67 | $variables: ( | ||
68 | --mainColor: var(--mainColor), | ||
69 | --mainHoverColor: var(--mainHoverColor), | ||
70 | --mainBackgroundColor: var(--mainBackgroundColor), | ||
71 | --mainForegroundColor: var(--mainForegroundColor), | ||
72 | --submenuColor: var(--submenuColor), | ||
73 | --inputColor: var(--inputColor), | ||
74 | --inputPlaceholderColor: var(--inputPlaceholderColor) | ||
75 | ); | ||
76 | |||
77 | /*** theme helper ***/ | ||
78 | |||
79 | @function var($variable) { | ||
80 | @return map-get($variables, $variable); | ||
81 | } | ||
diff --git a/client/src/sass/primeng-custom.scss b/client/src/sass/primeng-custom.scss index 1ec5c7da2..a998652d5 100644 --- a/client/src/sass/primeng-custom.scss +++ b/client/src/sass/primeng-custom.scss | |||
@@ -167,7 +167,7 @@ p-table { | |||
167 | &.ui-state-active { | 167 | &.ui-state-active { |
168 | &, &:hover, &:active, &:focus { | 168 | &, &:hover, &:active, &:focus { |
169 | color: #fff !important; | 169 | color: #fff !important; |
170 | background-color: $orange-color !important; | 170 | background-color: var(--mainColor) !important; |
171 | } | 171 | } |
172 | } | 172 | } |
173 | } | 173 | } |