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/src/sass/include | |
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/src/sass/include')
-rw-r--r-- | client/src/sass/include/_mixins.scss | 27 | ||||
-rw-r--r-- | client/src/sass/include/_variables.scss | 42 |
2 files changed, 56 insertions, 13 deletions
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 | } | ||