From bc41215c8f49ab8d5dae2a01f19ff70e8305e438 Mon Sep 17 00:00:00 2001 From: Mattias Bengtsson Date: Sun, 1 Mar 2026 22:54:42 +0100 Subject: [PATCH] Website: Support dark mode (#501) * Update Gemfile.lock Running Jekyll according to `CONTRIBUTING.md` fails complaining about missing a `nokogiri` dependency. Updating `Gemfile.lock` seems to solve this issue. Fixes: #500 * Website: Support dark mode Support `prefers-color-scheme: dark` by employing some more or less hacky CSS overrides. One should perhaps just use a different off-the-shelf Jekyll theme that does this properly from the start. --- Gemfile.lock | 64 +++++++++++++------------ assets/css/app.css | 113 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+), 29 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 74a9554..20e110c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,9 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.2.1) + activesupport (7.2.3) base64 + benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) @@ -12,38 +13,42 @@ GEM minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - base64 (0.2.0) - bigdecimal (3.1.8) + addressable (2.8.9) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + benchmark (0.5.0) + bigdecimal (4.0.1) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.12.2) colorator (1.1.0) - commonmarker (0.23.10) - concurrent-ruby (1.3.4) - connection_pool (2.4.1) - csv (3.3.0) - dnsruby (1.72.2) + commonmarker (0.23.12) + concurrent-ruby (1.3.6) + connection_pool (2.5.5) + csv (3.3.5) + dnsruby (1.73.1) + base64 (>= 0.2) + logger (~> 1.6) simpleidn (~> 0.2.1) - drb (2.2.1) + drb (2.2.3) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) - ethon (0.16.0) + ethon (0.18.0) ffi (>= 1.15.0) + logger eventmachine (1.2.7) - execjs (2.9.1) + execjs (2.10.0) faraday (2.14.1) faraday-net_http (>= 2.0, < 3.5) json logger faraday-net_http (3.4.2) net-http (~> 0.5) - ffi (1.17.0) - ffi (1.17.0-x86_64-linux-gnu) - ffi (1.17.0-x86_64-linux-musl) + ffi (1.17.3) + ffi (1.17.3-x86_64-linux-gnu) + ffi (1.17.3-x86_64-linux-musl) forwardable-extended (2.6.0) gemoji (4.1.0) github-pages (232) @@ -101,8 +106,8 @@ GEM html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (1.14.6) + http_parser.rb (0.8.1) + i18n (1.14.8) concurrent-ruby (~> 1.0) jekyll (3.10.0) addressable (~> 2.4) @@ -220,7 +225,8 @@ GEM kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.4) - listen (3.9.0) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) @@ -230,15 +236,15 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.25.1) + minitest (5.27.0) net-http (0.9.1) uri (>= 0.11.1) - nokogiri (1.19.1) + nokogiri (1.18.10) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.19.1-x86_64-linux-gnu) + nokogiri (1.18.10-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.1-x86_64-linux-musl) + nokogiri (1.18.10-x86_64-linux-musl) racc (~> 1.4) octokit (4.25.1) faraday (>= 1, < 3) @@ -250,19 +256,19 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.4.2) + rexml (3.4.4) rouge (3.30.0) - rubyzip (2.3.2) + rubyzip (2.4.1) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) + sawyer (0.9.3) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) - securerandom (0.3.1) + securerandom (0.4.1) simpleidn (0.2.3) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) @@ -272,7 +278,7 @@ GEM concurrent-ruby (~> 1.0) unicode-display_width (1.8.0) uri (1.1.1) - webrick (1.8.2) + webrick (1.9.2) PLATFORMS ruby @@ -284,4 +290,4 @@ DEPENDENCIES webrick (~> 1.8) BUNDLED WITH - 2.3.13 + 2.3.25 diff --git a/assets/css/app.css b/assets/css/app.css index c563958..8a089e4 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -141,3 +141,116 @@ ul#sponsoring li a img { .page-header { padding-bottom: 30px; } + +@media (prefers-color-scheme: dark) { + + #rules-navbar.affix { + background-color: #2b2b2b; + } + + /*********************** style.css overrides ******************************/ + /* This should *probably* be its own theme instead. */ + + body { + color: #a3b0b6; + background-color: #242424; + } + .page-header { + color: #fff; + text-align: center; + background-color: #006128; + background-image: linear-gradient(120deg, #002968, #003c04); + } + .site-footer { + border-top: solid 1px #525354; + } + hr { + background-color: #525354!important; + } + a { + color: #3d86d6; + } + .main-content h1 , + .main-content h2 , + .main-content h3 , + .main-content h4 , + .main-content h5 , + .main-content h6 { + color: #55c883; + } + + /* Syntax Highlighting from dark-plus of pygments-styles */ + /* See: https://github.com/lepture/pygments-styles */ + .main-content pre { + background: #1E1E1E; + border: solid 1px #272f36; + } + code, .highlight { + background: #1E1E1E; + color: #D4D4D4 + } + .highlight .hll { + background-color: #ADD6FF26 + } + .highlight .c { color: #6A9955 } + .highlight .err { color: #F44747 } + .highlight .k { color: #C586C0 } + .highlight .l { color: #CE9178 } + .highlight .ch { color: #6A9955 } + .highlight .cm { color: #6A9955 } + .highlight .cp { color: #C586C0 } + .highlight .cpf { color: #CE9178 } + .highlight .c1 { color: #6A9955 } + .highlight .cs { color: #6A9955 } + .highlight .gd { color: #CE9178 } + .highlight .ge { font-style: italic } + .highlight .gr { color: #F44747 } + .highlight .gh { color: #569CD6 } + .highlight .gi { color: #B5CEA8 } + .highlight .go { color: #CE9178 } + .highlight .gp { color: #C8C8C8 } + .highlight .gs { color: #569CD6; font-weight: bold } + .highlight .gu { color: #569CD6 } + .highlight .gt { color: #F44747 } + .highlight .kc { color: #CE9178 } + .highlight .kd { color: #C586C0 } + .highlight .kn { color: #C586C0 } + .highlight .kp { color: #D7BA7D } + .highlight .kr { color: #C586C0 } + .highlight .kt { color: #569CD6 } + .highlight .ld { color: #CE9178 } + .highlight .m { color: #B5CEA8 } + .highlight .s { color: #CE9178 } + .highlight .na { color: #9CDCFE } + .highlight .nb { color: #DCDCAA } + .highlight .nc { color: #4EC9B0 } + .highlight .no { color: #B5CEA8 } + .highlight .nd { color: #DCDCAA } + .highlight .ne { color: #4EC9B0 } + .highlight .nf { color: #DCDCAA } + .highlight .nl { color: #C8C8C8 } + .highlight .nx { color: #D4D4D4 } + .highlight .nt { color: #569CD6 } + .highlight .w { color: #D4D4D4 } + .highlight .mb { color: #B5CEA8 } + .highlight .mf { color: #B5CEA8 } + .highlight .mh { color: #B5CEA8 } + .highlight .mi { color: #B5CEA8 } + .highlight .mo { color: #B5CEA8 } + .highlight .sa { color: #CE9178 } + .highlight .sb { color: #CE9178 } + .highlight .sc { color: #CE9178 } + .highlight .dl { color: #CE9178 } + .highlight .sd { color: #CE9178 } + .highlight .s2 { color: #CE9178 } + .highlight .se { color: #CE9178 } + .highlight .sh { color: #CE9178 } + .highlight .si { color: #569CD6 } + .highlight .sx { color: #CE9178 } + .highlight .sr { color: #D16969 } + .highlight .s1 { color: #CE9178 } + .highlight .ss { color: #CE9178 } + .highlight .bp { color: #D7BA7D } + .highlight .fm { color: #DCDCAA } + .highlight .il { color: #B5CEA8 } +}