Skip to content

Commit 053cba7

Browse files
committed
css: switch to using CSS custom properties
CSS custom properties are wildly popular, and have been supported by every major browser (except Internet Explorer, but you're not supposed to use it anymore, even Microsoft says so in https://blogs.windows.com/windowsexperience/2021/05/19/the-future-of-internet-explorer-on-windows-10-is-in-microsoft-edge/ because Internet Explorer has been unsupported since June 15, 2022). There is a slight complication here, though: We use the `darken()` and `lighten()` functions extensively, and they are SASS preprocessor functions, i.e. they are evaluated at compile time, while the actual CSS custom properties are evaluated in the browser. Therefore, we need to move every `darken()`/`lighten()` call into an individual CSS custom property that is evaluated at compile time. This is the first step in preparation for supporting dark mode on https://git-scm.com/. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 422ea88 commit 053cba7

File tree

14 files changed

+126
-107
lines changed

14 files changed

+126
-107
lines changed

assets/sass/application.scss

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ pre {
3636
background-color: #fff;
3737
border: solid 1px #efeee6;
3838
border-radius: 3px;
39-
color: $orange;
39+
color: var(--orange);
4040
display: block;
4141
font-family: $fixed-width-font-family;
4242
font-variant-ligatures: none;
@@ -49,3 +49,27 @@ pre {
4949
.d-flex{
5050
display: flex;
5151
}
52+
53+
html {
54+
--orange: #{$orange};
55+
--orange-darker-5: #{darken($orange, 5%)};
56+
--blue: #{$blue};
57+
--font-color: #{$font-color};
58+
--font-color-lighter-20: #{lighten($font-color, 20%)};
59+
--light-font-color: #{$light-font-color};
60+
--light-font-color-darker-10: #{darken($light-font-color, 10%)};
61+
--light-font-color-darker-25: #{darken($light-font-color, 25%)};
62+
--light-font-color-darker-35: #{darken($light-font-color, 35%)};
63+
--light-font-color-darker-55: #{darken($light-font-color, 55%)};
64+
--light-font-color-lighter-20: #{lighten($light-font-color, 20%)};
65+
--link-color: #{$link-color};
66+
--link-hover-color: #{lighten($link-color, 10%)};
67+
--fixed-width-font-color: #{$fixed-width-font-color};
68+
--base-border-color: #{$base-border-color};
69+
--base-border-color-darker-8: #{darken($base-border-color, 8%)};
70+
--base-border-color-lighter-10: #{lighten($base-border-color, 10%)};
71+
--callout-color: #{$callout-color};
72+
73+
--black-3: #{$black-3};
74+
--main-bg: #{$main-bg};
75+
}

assets/sass/book.scss

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
padding-bottom: 20px !important;
1414
background-color: transparent !important;
1515
overflow: hidden;
16-
border: solid 1px lighten($base-border-color, 10%);
16+
border: solid 1px var(--base-border-color-lighter-10);
1717
}
1818

1919
#book-intro {
@@ -36,7 +36,7 @@
3636
.license {
3737
font-size: 11px;
3838
line-height: 1.3;
39-
color: $light-font-color;
39+
color: var(--light-font-color);
4040
}
4141

4242
a#open-book {
@@ -52,7 +52,7 @@
5252
display: none;
5353
padding-left: 22px;
5454
font-size: 12px;
55-
color: $light-font-color;
55+
color: var(--light-font-color);
5656
text-align: center;
5757
text-indent: 40px;
5858

@@ -74,7 +74,7 @@ ol.book-toc {
7474
}
7575

7676
h2 {
77-
color: $font-color;
77+
color: var(--font-color);
7878
}
7979

8080
a {
@@ -139,7 +139,7 @@ ol.book-toc {
139139

140140
&.active {
141141
font-weight: bold;
142-
color: $orange;
142+
color: var(--orange);
143143
}
144144
}
145145
}

assets/sass/downloads.scss

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
p {
1111
font-size: 12px;
1212
line-height: 1.4;
13-
color: $light-font-color;
13+
color: var(--light-font-color);
1414
}
1515

1616
p + p {
@@ -56,7 +56,7 @@
5656

5757
a {
5858
display: block;
59-
color: $font-color;
59+
color: var(--font-color);
6060
text-align: center;
6161
background-repeat: no-repeat;
6262
background-position: 0 0;
@@ -75,7 +75,7 @@
7575
h3 {
7676
font-size: 18px;
7777
font-weight: bold;
78-
color: $orange;
78+
color: var(--orange);
7979
}
8080

8181
p {
@@ -90,7 +90,7 @@
9090
}
9191

9292
h3 {
93-
color: darken($orange, 5%);
93+
color: var(--orange-darker-5);
9494
}
9595
}
9696
}
@@ -100,7 +100,7 @@
100100
top: 8px;
101101
left: 12px;
102102
display: none;
103-
color: $orange;
103+
color: var(--orange);
104104
}
105105

106106
.downloading .hide {

assets/sass/errors.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ body {
55
font-size: $base-font-size;
66
line-height: $base-line-height;
77
font-family: $base-font-family;
8-
color: $font-color;
8+
color: var(--font-color);
99
background: #f0efe7 url($baseurl + "images/bg/body.jpg");
1010
}
1111

@@ -43,9 +43,9 @@ nav ul {
4343
li {
4444
a {
4545
display: block;
46-
color: $orange;
46+
color: var(--orange);
4747
&:hover {
48-
color: darken($orange, 5%);
48+
color: var(--orange-darker-5);
4949
}
5050
}
5151
}

assets/sass/forms.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ input.inactive {
1515
}
1616

1717
input.active {
18-
color: $font-color !important;
18+
color: var(--font-color) !important;
1919
}
2020

2121
input, textarea {
@@ -39,7 +39,7 @@ form#search {
3939
width: 262px;
4040
padding-left: 32px;
4141
@include background-image-2x($baseurl + "images/icons/search", 17px, 17px, 10px 50%);
42-
background-color: $main-bg !important;
42+
background-color: var(--main-bg) !important;
4343
border: solid 1px #ceccc5;
4444
@include border-radius(20px);
4545
@include box-shadow(inset 0 1px 4px #ddd);
@@ -51,7 +51,7 @@ form#search {
5151
margin-top: 4px;
5252
margin-bottom: 2px;
5353
line-height: 1em;
54-
color: $font-color;
54+
color: var(--font-color);
5555
background-color: transparent;
5656
border: 0;
5757
}

assets/sass/front-page.scss

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
float: left;
1111
width: 618px;
1212
margin-bottom: 24px;
13-
border-right: solid 1px $base-border-color;
13+
border-right: solid 1px var(--base-border-color);
1414
}
1515
}
1616

@@ -43,7 +43,7 @@
4343
display: block;
4444
height: 86px;
4545
padding-left: 90px;
46-
color: $font-color;
46+
color: var(--font-color);
4747
background-repeat: no-repeat;
4848
background-position: 0 0;
4949
transition-duration: 0.3s;
@@ -61,7 +61,7 @@
6161
h3 {
6262
font-size: 18px;
6363
font-weight: bold;
64-
color: $orange;
64+
color: var(--orange);
6565
}
6666

6767
p {
@@ -76,7 +76,7 @@
7676
}
7777

7878
h3 {
79-
color: darken($orange, 5%);
79+
color: var(--orange-darker-5);
8080
}
8181
}
8282
}
@@ -85,7 +85,7 @@
8585
float: left;
8686
width: 590px;
8787
padding-top: 20px;
88-
border-top: solid 1px $base-border-color;
88+
border-top: solid 1px var(--base-border-color);
8989

9090
img {
9191
float: left;
@@ -203,7 +203,7 @@ $monitor-height: 271px;
203203
#companies-projects {
204204
padding-top: 20px;
205205
clear: both;
206-
border-top: solid 1px $base-border-color;
206+
border-top: solid 1px var(--base-border-color);
207207

208208
ul {
209209
@extend .unstyled !optional;
@@ -395,7 +395,7 @@ a.icon {
395395
}
396396
}
397397
#front-downloads {
398-
border-bottom: 1px solid $base-border-color;
398+
border-bottom: 1px solid var(--base-border-color);
399399
margin-bottom: 2rem;
400400
padding-bottom: 1rem;
401401
.monitor, table {

assets/sass/layout.scss

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body {
77
font-family: $base-font-family;
88
font-size: $base-font-size;
99
line-height: $base-line-height;
10-
color: $font-color;
10+
color: var(--font-color);
1111
background: #f0efe7 url($baseurl + "images/bg/body.jpg");
1212
}
1313

@@ -40,7 +40,7 @@ aside {
4040
#main {
4141
padding: 22px;
4242
margin-bottom: 35px;
43-
background-color: $main-bg;
43+
background-color: var(--main-bg);
4444
border: solid 1px #e2e0d8;
4545
@include border-radius(5px);
4646

@@ -59,7 +59,7 @@ aside {
5959
}
6060

6161
.callout {
62-
background-color: $callout-color;
62+
background-color: var(--callout-color);
6363
@include border-radius(3px);
6464
padding: 8px 14px 4px;
6565
margin-bottom: 1.4em;
@@ -122,7 +122,7 @@ header {
122122
margin-top: 1px;
123123
font-size: 24px;
124124
line-height: 24px;
125-
color: $light-font-color;
125+
color: var(--light-font-color);
126126

127127
em {
128128
letter-spacing: 1px;
@@ -145,7 +145,7 @@ aside nav ul {
145145
color: #413932;
146146

147147
&.active, &:hover {
148-
color: $orange;
148+
color: var(--orange);
149149
}
150150
}
151151

@@ -208,7 +208,7 @@ p.center {
208208
p {
209209
font-size: 12px;
210210
line-height: 1.4;
211-
color: $light-font-color;
211+
color: var(--light-font-color);
212212
}
213213

214214
p + p {
@@ -222,12 +222,12 @@ p.center {
222222
}
223223

224224
.callout.downloading {
225-
background: $callout-color url($baseurl + "images/icons/download.png") 24px 24px no-repeat;
225+
background: var(--callout-color) url($baseurl + "images/icons/download.png") 24px 24px no-repeat;
226226
padding: 20px 30px 20px 100px !important;
227227

228228
h3 {
229229
font-size: 18px;
230-
color: $orange;
230+
color: var(--orange);
231231
}
232232

233233
p {
@@ -240,7 +240,7 @@ p.center {
240240
margin-bottom: 0 !important;
241241
font-size: 12px;
242242
line-height: 1.4;
243-
color: $light-font-color;
243+
color: var(--light-font-color);
244244
}
245245
}
246246

@@ -301,7 +301,7 @@ a.dropdown-trigger {
301301
background-color: #fff !important;
302302
@include border-top-left-radius(3px);
303303
@include border-top-right-radius(3px);
304-
border: solid 1px darken($base-border-color, 8%);
304+
border: solid 1px var(--base-border-color-darker-8);
305305
border-bottom: 0;
306306
}
307307
}
@@ -311,7 +311,7 @@ a.dropdown-trigger {
311311
z-index: 199;
312312
display: none;
313313
background-color: #fff;
314-
border: solid 1px darken($base-border-color, 8%);
314+
border: solid 1px var(--base-border-color-darker-8);
315315
@include border-radius(3px);
316316
@include box-shadow(0 1px 2px #ccc);
317317

@@ -332,14 +332,14 @@ footer {
332332
@include clearfix;
333333
font-size: 12px;
334334
line-height: $base-line-height * 0.7;
335-
color: $light-font-color;
336-
border-top: solid 1px $base-border-color;
335+
color: var(--light-font-color);
336+
border-top: solid 1px var(--base-border-color);
337337

338338
a {
339-
color: darken($light-font-color, 35%);
339+
color: var(--light-font-color-darker-35);
340340

341341
&:hover {
342-
color: darken($light-font-color, 55%);
342+
color: var(--light-font-color-darker-55);
343343
}
344344
}
345345

@@ -402,7 +402,7 @@ table.benchmarks {
402402
color: var(--color-neutral-emphasis-plus);
403403
content: "";
404404
border: 6px solid transparent;
405-
border-color:$black-3 transparent transparent;
405+
border-color:var(--black-3) transparent transparent;
406406
top: -0.55rem;
407407
position: absolute;
408408
}
@@ -415,8 +415,8 @@ table.benchmarks {
415415
word-wrap: break-word;
416416
white-space: pre;
417417
padding: .5em .75em;
418-
color:$callout-color;
419-
background-color:$black-3;
418+
color:var(--callout-color);
419+
background-color:var(--black-3);
420420
font: normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;
421421
}
422422
}

0 commit comments

Comments
 (0)