From 65ffad60d93a1b0cd9365014db0712303fa911bb Mon Sep 17 00:00:00 2001
From: Runxi Yu <me@runxiyu.org>
Date: Tue, 11 Feb 2025 10:51:30 +0800
Subject: [PATCH] chroma.css: Add dark theme

---
 static/chroma.css | 215 ++++++++++++++++++++++++++++++++++++-----------------

diff --git a/static/chroma.css b/static/chroma.css
index 54bba8fd54286fa2b8f2205a7579a1099b9f354b..7157d043fb41153fd8d8eecae0f99db48263e261 100644
--- a/static/chroma.css
+++ b/static/chroma.css
@@ -1,68 +1,147 @@
-/* Background */ .bg { background-color: #ffffff; }
-/* PreWrapper */ .chroma { background-color: #ffffff; }
-/* Error */ .chroma .err { color: #ff0000; background-color: #ffaaaa }
-/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
-/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
-/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
-/* LineHighlight */ .chroma .hl { background-color: #e5e5e5 }
-/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-/* Line */ .chroma .line { display: flex; }
-/* Keyword */ .chroma .k { color: #0000aa }
-/* KeywordConstant */ .chroma .kc { color: #0000aa }
-/* KeywordDeclaration */ .chroma .kd { color: #0000aa }
-/* KeywordNamespace */ .chroma .kn { color: #0000aa }
-/* KeywordPseudo */ .chroma .kp { color: #0000aa }
-/* KeywordReserved */ .chroma .kr { color: #0000aa }
-/* KeywordType */ .chroma .kt { color: #00aaaa }
-/* NameAttribute */ .chroma .na { color: #1e90ff }
-/* NameBuiltin */ .chroma .nb { color: #00aaaa }
-/* NameClass */ .chroma .nc { color: #00aa00; text-decoration: underline }
-/* NameConstant */ .chroma .no { color: #aa0000 }
-/* NameDecorator */ .chroma .nd { color: #888888 }
-/* NameEntity */ .chroma .ni { color: #880000; font-weight: bold }
-/* NameFunction */ .chroma .nf { color: #00aa00 }
-/* NameNamespace */ .chroma .nn { color: #00aaaa; text-decoration: underline }
-/* NameTag */ .chroma .nt { color: #1e90ff; font-weight: bold }
-/* NameVariable */ .chroma .nv { color: #aa0000 }
-/* LiteralString */ .chroma .s { color: #aa5500 }
-/* LiteralStringAffix */ .chroma .sa { color: #aa5500 }
-/* LiteralStringBacktick */ .chroma .sb { color: #aa5500 }
-/* LiteralStringChar */ .chroma .sc { color: #aa5500 }
-/* LiteralStringDelimiter */ .chroma .dl { color: #aa5500 }
-/* LiteralStringDoc */ .chroma .sd { color: #aa5500 }
-/* LiteralStringDouble */ .chroma .s2 { color: #aa5500 }
-/* LiteralStringEscape */ .chroma .se { color: #aa5500 }
-/* LiteralStringHeredoc */ .chroma .sh { color: #aa5500 }
-/* LiteralStringInterpol */ .chroma .si { color: #aa5500 }
-/* LiteralStringOther */ .chroma .sx { color: #aa5500 }
-/* LiteralStringRegex */ .chroma .sr { color: #009999 }
-/* LiteralStringSingle */ .chroma .s1 { color: #aa5500 }
-/* LiteralStringSymbol */ .chroma .ss { color: #0000aa }
-/* LiteralNumber */ .chroma .m { color: #009999 }
-/* LiteralNumberBin */ .chroma .mb { color: #009999 }
-/* LiteralNumberFloat */ .chroma .mf { color: #009999 }
-/* LiteralNumberHex */ .chroma .mh { color: #009999 }
-/* LiteralNumberInteger */ .chroma .mi { color: #009999 }
-/* LiteralNumberIntegerLong */ .chroma .il { color: #009999 }
-/* LiteralNumberOct */ .chroma .mo { color: #009999 }
-/* OperatorWord */ .chroma .ow { color: #0000aa }
-/* Comment */ .chroma .c { color: #aaaaaa; font-style: italic }
-/* CommentHashbang */ .chroma .ch { color: #aaaaaa; font-style: italic }
-/* CommentMultiline */ .chroma .cm { color: #aaaaaa; font-style: italic }
-/* CommentSingle */ .chroma .c1 { color: #aaaaaa; font-style: italic }
-/* CommentSpecial */ .chroma .cs { color: #0000aa; font-style: italic }
-/* CommentPreproc */ .chroma .cp { color: #4c8317 }
-/* CommentPreprocFile */ .chroma .cpf { color: #4c8317 }
-/* GenericDeleted */ .chroma .gd { color: #aa0000 }
-/* GenericEmph */ .chroma .ge { font-style: italic }
-/* GenericError */ .chroma .gr { color: #aa0000 }
-/* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
-/* GenericInserted */ .chroma .gi { color: #00aa00 }
-/* GenericOutput */ .chroma .go { color: #888888 }
-/* GenericPrompt */ .chroma .gp { color: #555555 }
-/* GenericStrong */ .chroma .gs { font-weight: bold }
-/* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
-/* GenericTraceback */ .chroma .gt { color: #aa0000 }
-/* GenericUnderline */ .chroma .gl { text-decoration: underline }
-/* TextWhitespace */ .chroma .w { color: #bbbbbb }
+@media (prefers-color-scheme: light) {
+	/* Background */ .bg { ; }
+	/* PreWrapper */ .chroma { ; }
+	/* Error */ .chroma .err {  }
+	/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
+	/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+	/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
+	/* LineHighlight */ .chroma .hl { background-color: #e5e5e5 }
+	/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+	/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+	/* Line */ .chroma .line { display: flex; }
+	/* Keyword */ .chroma .k { color: #008000; font-weight: bold }
+	/* KeywordConstant */ .chroma .kc { color: #008000; font-weight: bold }
+	/* KeywordDeclaration */ .chroma .kd { color: #008000; font-weight: bold }
+	/* KeywordNamespace */ .chroma .kn { color: #008000; font-weight: bold }
+	/* KeywordPseudo */ .chroma .kp { color: #008000 }
+	/* KeywordReserved */ .chroma .kr { color: #008000; font-weight: bold }
+	/* KeywordType */ .chroma .kt { color: #b00040 }
+	/* NameAttribute */ .chroma .na { color: #7d9029 }
+	/* NameBuiltin */ .chroma .nb { color: #008000 }
+	/* NameClass */ .chroma .nc { color: #0000ff; font-weight: bold }
+	/* NameConstant */ .chroma .no { color: #880000 }
+	/* NameDecorator */ .chroma .nd { color: #aa22ff }
+	/* NameEntity */ .chroma .ni { color: #999999; font-weight: bold }
+	/* NameException */ .chroma .ne { color: #d2413a; font-weight: bold }
+	/* NameFunction */ .chroma .nf { color: #0000ff }
+	/* NameLabel */ .chroma .nl { color: #a0a000 }
+	/* NameNamespace */ .chroma .nn { color: #0000ff; font-weight: bold }
+	/* NameTag */ .chroma .nt { color: #008000; font-weight: bold }
+	/* NameVariable */ .chroma .nv { color: #19177c }
+	/* LiteralString */ .chroma .s { color: #ba2121 }
+	/* LiteralStringAffix */ .chroma .sa { color: #ba2121 }
+	/* LiteralStringBacktick */ .chroma .sb { color: #ba2121 }
+	/* LiteralStringChar */ .chroma .sc { color: #ba2121 }
+	/* LiteralStringDelimiter */ .chroma .dl { color: #ba2121 }
+	/* LiteralStringDoc */ .chroma .sd { color: #ba2121; font-style: italic }
+	/* LiteralStringDouble */ .chroma .s2 { color: #ba2121 }
+	/* LiteralStringEscape */ .chroma .se { color: #bb6622; font-weight: bold }
+	/* LiteralStringHeredoc */ .chroma .sh { color: #ba2121 }
+	/* LiteralStringInterpol */ .chroma .si { color: #bb6688; font-weight: bold }
+	/* LiteralStringOther */ .chroma .sx { color: #008000 }
+	/* LiteralStringRegex */ .chroma .sr { color: #bb6688 }
+	/* LiteralStringSingle */ .chroma .s1 { color: #ba2121 }
+	/* LiteralStringSymbol */ .chroma .ss { color: #19177c }
+	/* LiteralNumber */ .chroma .m { color: #666666 }
+	/* LiteralNumberBin */ .chroma .mb { color: #666666 }
+	/* LiteralNumberFloat */ .chroma .mf { color: #666666 }
+	/* LiteralNumberHex */ .chroma .mh { color: #666666 }
+	/* LiteralNumberInteger */ .chroma .mi { color: #666666 }
+	/* LiteralNumberIntegerLong */ .chroma .il { color: #666666 }
+	/* LiteralNumberOct */ .chroma .mo { color: #666666 }
+	/* Operator */ .chroma .o { color: #666666 }
+	/* OperatorWord */ .chroma .ow { color: #aa22ff; font-weight: bold }
+	/* Comment */ .chroma .c { color: #408080; font-style: italic }
+	/* CommentHashbang */ .chroma .ch { color: #408080; font-style: italic }
+	/* CommentMultiline */ .chroma .cm { color: #408080; font-style: italic }
+	/* CommentSingle */ .chroma .c1 { color: #408080; font-style: italic }
+	/* CommentSpecial */ .chroma .cs { color: #408080; font-style: italic }
+	/* CommentPreproc */ .chroma .cp { color: #bc7a00 }
+	/* CommentPreprocFile */ .chroma .cpf { color: #bc7a00 }
+	/* GenericDeleted */ .chroma .gd { color: #a00000 }
+	/* GenericEmph */ .chroma .ge { font-style: italic }
+	/* GenericError */ .chroma .gr { color: #ff0000 }
+	/* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
+	/* GenericInserted */ .chroma .gi { color: #00a000 }
+	/* GenericOutput */ .chroma .go { color: #888888 }
+	/* GenericPrompt */ .chroma .gp { color: #000080; font-weight: bold }
+	/* GenericStrong */ .chroma .gs { font-weight: bold }
+	/* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
+	/* GenericTraceback */ .chroma .gt { color: #0044dd }
+	/* GenericUnderline */ .chroma .gl { text-decoration: underline }
+	/* TextWhitespace */ .chroma .w { color: #bbbbbb }
+}
+@media (prefers-color-scheme: dark) {
+	/* Background */ .bg { color: #e6edf3; background-color: #000000; }
+	/* PreWrapper */ .chroma { color: #e6edf3; background-color: #000000; }
+	/* Error */ .chroma .err { color: #f85149 }
+	/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
+	/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+	/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
+	/* LineHighlight */ .chroma .hl { background-color: #6e7681 }
+	/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #737679 }
+	/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
+	/* Line */ .chroma .line { display: flex; }
+	/* Keyword */ .chroma .k { color: #ff7b72 }
+	/* KeywordConstant */ .chroma .kc { color: #79c0ff }
+	/* KeywordDeclaration */ .chroma .kd { color: #ff7b72 }
+	/* KeywordNamespace */ .chroma .kn { color: #ff7b72 }
+	/* KeywordPseudo */ .chroma .kp { color: #79c0ff }
+	/* KeywordReserved */ .chroma .kr { color: #ff7b72 }
+	/* KeywordType */ .chroma .kt { color: #ff7b72 }
+	/* NameClass */ .chroma .nc { color: #f0883e; font-weight: bold }
+	/* NameConstant */ .chroma .no { color: #79c0ff; font-weight: bold }
+	/* NameDecorator */ .chroma .nd { color: #d2a8ff; font-weight: bold }
+	/* NameEntity */ .chroma .ni { color: #ffa657 }
+	/* NameException */ .chroma .ne { color: #f0883e; font-weight: bold }
+	/* NameFunction */ .chroma .nf { color: #d2a8ff; font-weight: bold }
+	/* NameLabel */ .chroma .nl { color: #79c0ff; font-weight: bold }
+	/* NameNamespace */ .chroma .nn { color: #ff7b72 }
+	/* NameProperty */ .chroma .py { color: #79c0ff }
+	/* NameTag */ .chroma .nt { color: #7ee787 }
+	/* NameVariable */ .chroma .nv { color: #79c0ff }
+	/* Literal */ .chroma .l { color: #a5d6ff }
+	/* LiteralDate */ .chroma .ld { color: #79c0ff }
+	/* LiteralString */ .chroma .s { color: #a5d6ff }
+	/* LiteralStringAffix */ .chroma .sa { color: #79c0ff }
+	/* LiteralStringBacktick */ .chroma .sb { color: #a5d6ff }
+	/* LiteralStringChar */ .chroma .sc { color: #a5d6ff }
+	/* LiteralStringDelimiter */ .chroma .dl { color: #79c0ff }
+	/* LiteralStringDoc */ .chroma .sd { color: #a5d6ff }
+	/* LiteralStringDouble */ .chroma .s2 { color: #a5d6ff }
+	/* LiteralStringEscape */ .chroma .se { color: #79c0ff }
+	/* LiteralStringHeredoc */ .chroma .sh { color: #79c0ff }
+	/* LiteralStringInterpol */ .chroma .si { color: #a5d6ff }
+	/* LiteralStringOther */ .chroma .sx { color: #a5d6ff }
+	/* LiteralStringRegex */ .chroma .sr { color: #79c0ff }
+	/* LiteralStringSingle */ .chroma .s1 { color: #a5d6ff }
+	/* LiteralStringSymbol */ .chroma .ss { color: #a5d6ff }
+	/* LiteralNumber */ .chroma .m { color: #a5d6ff }
+	/* LiteralNumberBin */ .chroma .mb { color: #a5d6ff }
+	/* LiteralNumberFloat */ .chroma .mf { color: #a5d6ff }
+	/* LiteralNumberHex */ .chroma .mh { color: #a5d6ff }
+	/* LiteralNumberInteger */ .chroma .mi { color: #a5d6ff }
+	/* LiteralNumberIntegerLong */ .chroma .il { color: #a5d6ff }
+	/* LiteralNumberOct */ .chroma .mo { color: #a5d6ff }
+	/* Operator */ .chroma .o { color: #ff7b72; font-weight: bold }
+	/* OperatorWord */ .chroma .ow { color: #ff7b72; font-weight: bold }
+	/* Comment */ .chroma .c { color: #8b949e; font-style: italic }
+	/* CommentHashbang */ .chroma .ch { color: #8b949e; font-style: italic }
+	/* CommentMultiline */ .chroma .cm { color: #8b949e; font-style: italic }
+	/* CommentSingle */ .chroma .c1 { color: #8b949e; font-style: italic }
+	/* CommentSpecial */ .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic }
+	/* CommentPreproc */ .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic }
+	/* CommentPreprocFile */ .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
+	/* GenericDeleted */ .chroma .gd { color: #ffa198; background-color: #490202 }
+	/* GenericEmph */ .chroma .ge { font-style: italic }
+	/* GenericError */ .chroma .gr { color: #ffa198 }
+	/* GenericHeading */ .chroma .gh { color: #79c0ff; font-weight: bold }
+	/* GenericInserted */ .chroma .gi { color: #56d364; background-color: #0f5323 }
+	/* GenericOutput */ .chroma .go { color: #8b949e }
+	/* GenericPrompt */ .chroma .gp { color: #8b949e }
+	/* GenericStrong */ .chroma .gs { font-weight: bold }
+	/* GenericSubheading */ .chroma .gu { color: #79c0ff }
+	/* GenericTraceback */ .chroma .gt { color: #ff7b72 }
+	/* GenericUnderline */ .chroma .gl { text-decoration: underline }
+	/* TextWhitespace */ .chroma .w { color: #6e7681 }
+}

-- 
2.48.1