From 1670109b91a6d5cfb4da0225d7a52c423031322d Mon Sep 17 00:00:00 2001
From: silverwind <me@silverwind.io>
Date: Sat, 3 Sep 2022 17:24:18 +0200
Subject: [PATCH] Improve arc-green code theme (#21039)

- Increase contrasts overall
- Add various missing theme classes
- Ensure strings and constants are colored the same across languages

Before:
<img width="575" alt="Screen Shot 2022-09-03 at 15 20 19" src="https://user-images.githubusercontent.com/115237/188272267-c3af3de0-a1d9-4a80-a3ab-278e9b04cb44.png">
<img width="705" alt="Screen Shot 2022-09-03 at 15 10 12" src="https://user-images.githubusercontent.com/115237/188272194-dc40ac7d-1629-44a0-a881-5f0922285195.png">

After:
<img width="579" alt="Screen Shot 2022-09-03 at 15 19 31" src="https://user-images.githubusercontent.com/115237/188272275-55b87bc7-1122-410f-9250-14cf9e973124.png">
<img width="703" alt="image" src="https://user-images.githubusercontent.com/115237/188272715-a5fcd180-c5dc-4303-8e77-de785d5e0937.png">
---
 web_src/less/chroma/dark.less  | 131 +++++++++++++++++----------------
 web_src/less/chroma/light.less | 100 ++++++++++++-------------
 2 files changed, 117 insertions(+), 114 deletions(-)

diff --git a/web_src/less/chroma/dark.less b/web_src/less/chroma/dark.less
index 67531ec962..4be9cf7912 100644
--- a/web_src/less/chroma/dark.less
+++ b/web_src/less/chroma/dark.less
@@ -1,67 +1,70 @@
+.chroma .bp { color: #fabd2f; } /* NameBuiltinPseudo */
+.chroma .c { color: #777e94; } /* Comment */
+.chroma .c1 { color: #777e94; } /* CommentSingle */
+.chroma .ch { color: #777e94; } /* CommentHashbang */
+.chroma .cm { color: #777e94; } /* CommentMultiline */
+.chroma .cp { color: #8ec07c; } /* CommentPreproc */
+.chroma .cpf { color: #649bc4; } /* CommentPreprocFile */
+.chroma .cs { color: #9075cd; } /* CommentSpecial */
+.chroma .dl { color: #649bc4; } /* LiteralStringDelimiter */
+.chroma .gd { color: #ffffff; background-color: #5f3737; } /* GenericDeleted */
+.chroma .ge { color: #ddee30; } /* GenericEmph */
+.chroma .gh { color: #ffaa10; } /* GenericHeading */
+.chroma .gi { color: #ffffff; background-color: #3a523a; } /* GenericInserted */
+.chroma .go { color: #777e94; } /* GenericOutput */
+.chroma .gp { color: #ebdbb2; } /* GenericPrompt */
+.chroma .gr { color: #ff4433; } /* GenericError */
+.chroma .gs { color: #ebdbb2; } /* GenericStrong */
+.chroma .gt { color: #ff7540; } /* GenericTraceback */
+.chroma .gu { color: #b8bb26; } /* GenericSubheading */
 .chroma .hl { background-color: #3f424d; } /* LineHighlight */
-.chroma .lnt { color: #7f7f7f; } /* LineNumbersTable */
-.chroma .ln { color: #7f7f7f; } /* LineNumbers */
-.chroma .k { color: #f63; } /* Keyword */
-.chroma .kc { color: #fa1; } /* KeywordConstant */
-.chroma .kd { color: #9daccc; } /* KeywordDeclaration */
-.chroma .kn { color: #fa1; } /* KeywordNamespace */
+.chroma .il { color: #649bc4; } /* LiteralNumberIntegerLong */
+.chroma .k { color: #ff7540; } /* Keyword */
+.chroma .kc { color: #649bc4; } /* KeywordConstant */
+.chroma .kd { color: #ff7540; } /* KeywordDeclaration */
+.chroma .kn { color: #ffaa10; } /* KeywordNamespace */
 .chroma .kp { color: #5f8700; } /* KeywordPseudo */
-.chroma .kr { color: #f63; } /* KeywordReserved */
-.chroma .kt { color: #9daccc; } /* KeywordType */
-.chroma .na { color: #8a8a8a; } /* NameAttribute */
-.chroma .nb { color: #9daccc; } /* NameBuiltin */
-.chroma .bp { color: #9daccc; } /* NameBuiltinPseudo */
-.chroma .nc { color: #fa1; } /* NameClass */
-.chroma .no { color: #fa1; } /* NameConstant */
-.chroma .nd { color: #9daccc; } /* NameDecorator */
-.chroma .ni { color: #fa1; } /* NameEntity */
-.chroma .ne { color: #af8700; } /* NameException */
-.chroma .nf { color: #9daccc; } /* NameFunction */
-.chroma .nl { color: #fa1; } /* NameLabel */
-.chroma .nn { color: #fa1; } /* NameNamespace */
-.chroma .nx { color: #9daccc; } /* NameOther */
-.chroma .nt { color: #9daccc; } /* NameTag */
-.chroma .nv { color: #9daccc; } /* NameVariable */
-.chroma .vc { color: #f81; } /* NameVariableClass */
-.chroma .vg { color: #fa1; } /* NameVariableGlobal */
-.chroma .vi { color: #fa1; } /* NameVariableInstance */
-.chroma .s { color: #1af; } /* LiteralString */
-.chroma .sa { color: #1af; } /* LiteralStringAffix */
-.chroma .sb { color: #a0cc75; } /* LiteralStringBacktick */
-.chroma .sc { color: #1af; } /* LiteralStringChar */
-.chroma .dl { color: #1af; } /* LiteralStringDelimiter */
-.chroma .sd { color: #6a737d; } /* LiteralStringDoc */
-.chroma .s2 { color: #a0cc75; } /* LiteralStringDouble */
-.chroma .se { color: #f63; } /* LiteralStringEscape */
-.chroma .sh { color: #1af; } /* LiteralStringHeredoc */
-.chroma .si { color: #fa1; } /* LiteralStringInterpol */
-.chroma .sx { color: #fa1; } /* LiteralStringOther */
-.chroma .sr { color: #97c; } /* LiteralStringRegex */
-.chroma .s1 { color: #a0cc75; } /* LiteralStringSingle */
-.chroma .ss { color: #fa1; } /* LiteralStringSymbol */
-.chroma .m { color: #1af; } /* LiteralNumber */
-.chroma .mb { color: #1af; } /* LiteralNumberBin */
-.chroma .mf { color: #1af; } /* LiteralNumberFloat */
-.chroma .mh { color: #1af; } /* LiteralNumberHex */
-.chroma .mi { color: #1af; } /* LiteralNumberInteger */
-.chroma .il { color: #1af; } /* LiteralNumberIntegerLong */
-.chroma .mo { color: #1af; } /* LiteralNumberOct */
-.chroma .o { color: #f63; } /* Operator */
+.chroma .kr { color: #ff7540; } /* KeywordReserved */
+.chroma .kt { color: #fabd2f; } /* KeywordType */
+.chroma .ln { color: #7f8699; } /* LineNumbers */
+.chroma .lnt { color: #7f8699; } /* LineNumbersTable */
+.chroma .m { color: #649bc4; } /* LiteralNumber */
+.chroma .mb { color: #649bc4; } /* LiteralNumberBin */
+.chroma .mf { color: #649bc4; } /* LiteralNumberFloat */
+.chroma .mh { color: #649bc4; } /* LiteralNumberHex */
+.chroma .mi { color: #649bc4; } /* LiteralNumberInteger */
+.chroma .mo { color: #649bc4; } /* LiteralNumberOct */
+.chroma .n { color: #fabd2f; } /* Name */
+.chroma .na { color: #b8bb26; } /* NameAttribute */
+.chroma .nb { color: #fabd2f; } /* NameBuiltin */
+.chroma .nc { color: #ffaa10; } /* NameClass */
+.chroma .nd { color: #8ec07c; } /* NameDecorator */
+.chroma .ne { color: #ff7540; } /* NameException */
+.chroma .nf { color: #fabd2f; } /* NameFunction */
+.chroma .ni { color: #fabd2f; } /* NameEntity */
+.chroma .nl { color: #ff7540; } /* NameLabel */
+.chroma .nn { color: #ffaa10; } /* NameNamespace */
+.chroma .no { color: #649bc4; } /* NameConstant */
+.chroma .nt { color: #ff7540; } /* NameTag */
+.chroma .nv { color: #ebdbb2; } /* NameVariable */
+.chroma .nx { color: #b6bac5; } /* NameOther */
+.chroma .o { color: #ff7540; } /* Operator */
 .chroma .ow { color: #5f8700; } /* OperatorWord */
-.chroma .c { color: #6a737d; } /* Comment */
-.chroma .ch { color: #6a737d; } /* CommentHashbang */
-.chroma .cm { color: #6a737d; } /* CommentMultiline */
-.chroma .c1 { color: #6a737d; } /* CommentSingle */
-.chroma .cs { color: #95ad; } /* CommentSpecial */
-.chroma .cp { color: #fc6; } /* CommentPreproc */
-.chroma .cpf { color: #03dfff; } /* CommentPreprocFile */
-.chroma .gd { color: #fff; background-color: #5f3737; } /* GenericDeleted */
-.chroma .ge { color: #ef5; } /* GenericEmph */
-.chroma .gr { color: #f33; } /* GenericError */
-.chroma .gh { color: #fa1; } /* GenericHeading */
-.chroma .gi { color: #fff; background-color: #3a523a; } /* GenericInserted */
-.chroma .go { color: #888888; } /* GenericOutput */
-.chroma .gp { color: #555555; } /* GenericPrompt */
-.chroma .gu { color: #9daccc; } /* GenericSubheading */
-.chroma .gt { color: #f63; } /* GenericTraceback */
-.chroma .w { color: #bbbbbb; } /* TextWhitespace */
+.chroma .p { color: #d2d4db; } /* Punctuation */
+.chroma .s { color: #b8bb26; } /* LiteralString */
+.chroma .s1 { color: #b8bb26; } /* LiteralStringSingle */
+.chroma .s2 { color: #b8bb26; } /* LiteralStringDouble */
+.chroma .sa { color: #649bc4; } /* LiteralStringAffix */
+.chroma .sb { color: #b8bb26; } /* LiteralStringBacktick */
+.chroma .sc { color: #649bc4; } /* LiteralStringChar */
+.chroma .sd { color: #777e94; } /* LiteralStringDoc */
+.chroma .se { color: #ff7540; } /* LiteralStringEscape */
+.chroma .sh { color: #649bc4; } /* LiteralStringHeredoc */
+.chroma .si { color: #ffaa10; } /* LiteralStringInterpol */
+.chroma .sr { color: #9075cd; } /* LiteralStringRegex */
+.chroma .ss { color: #ff7540; } /* LiteralStringSymbol */
+.chroma .sx { color: #ffaa10; } /* LiteralStringOther */
+.chroma .vc { color: #ff7540; } /* NameVariableClass */
+.chroma .vg { color: #ffaa10; } /* NameVariableGlobal */
+.chroma .vi { color: #ffaa10; } /* NameVariableInstance */
+.chroma .w { color: #7f8699; } /* TextWhitespace */
diff --git a/web_src/less/chroma/light.less b/web_src/less/chroma/light.less
index 9728800765..2e811844c2 100644
--- a/web_src/less/chroma/light.less
+++ b/web_src/less/chroma/light.less
@@ -1,6 +1,23 @@
+.chroma .bp { color: #999999; } /* NameBuiltinPseudo */
+.chroma .c { color: #6a737d; } /* Comment */
+.chroma .c1 { color: #6a737d; } /* CommentSingle */
+.chroma .ch { color: #6a737d; } /* CommentHashbang */
+.chroma .cm { color: #999988; } /* CommentMultiline */
+.chroma .cp { color: #109295; } /* CommentPreproc */
+.chroma .cpf { color: #4c4dbc; } /* CommentPreprocFile */
+.chroma .cs { color: #999999; } /* CommentSpecial */
+.chroma .dl { color: #106303; } /* LiteralStringDelimiter */
+.chroma .gd { color: #000000; background-color: #ffdddd; } /* GenericDeleted */
+.chroma .ge { color: #000000; } /* GenericEmph */
+.chroma .gh { color: #999999; } /* GenericHeading */
+.chroma .gi { color: #000000; background-color: #ddffdd; } /* GenericInserted */
+.chroma .go { color: #888888; } /* GenericOutput */
+.chroma .gp { color: #555555; } /* GenericPrompt */
+.chroma .gr { color: #aa0000; } /* GenericError */
+.chroma .gt { color: #aa0000; } /* GenericTraceback */
+.chroma .gu { color: #aaaaaa; } /* GenericSubheading */
 .chroma .hl { background-color: #e5e5e5; } /* LineHighlight */
-.chroma .lnt { color: #7f7f7f; } /* LineNumbersTable */
-.chroma .ln { color: #7f7f7f; } /* LineNumbers */
+.chroma .il { color: #009999; } /* LiteralNumberIntegerLong */
 .chroma .k { color: #d73a49; } /* Keyword */
 .chroma .kc { color: #d73a49; } /* KeywordConstant */
 .chroma .kd { color: #d73a49; } /* KeywordDeclaration */
@@ -8,60 +25,43 @@
 .chroma .kp { color: #d73a49; } /* KeywordPseudo */
 .chroma .kr { color: #d73a49; } /* KeywordReserved */
 .chroma .kt { color: #445588; } /* KeywordType */
-.chroma .na { color: #d73a49; } /* NameAttribute */
-.chroma .nb { color: #005cc5; } /* NameBuiltin */
-.chroma .bp { color: #999999; } /* NameBuiltinPseudo */
-.chroma .nc { color: #445588; } /* NameClass */
-.chroma .no { color: #008080; } /* NameConstant */
-.chroma .nd { color: #3c5d5d; } /* NameDecorator */
-.chroma .ni { color: #6f42c1; } /* NameEntity */
-.chroma .ne { color: #990000; } /* NameException */
-.chroma .nf { color: #005cc5; } /* NameFunction */
-.chroma .nl { color: #990000; } /* NameLabel */
-.chroma .nn { color: #555555; } /* NameNamespace */
-.chroma .nx { color: #24292e; } /* NameOther */
-.chroma .nt { color: #22863a; } /* NameTag */
-.chroma .nv { color: #008080; } /* NameVariable */
-.chroma .vc { color: #008080; } /* NameVariableClass */
-.chroma .vg { color: #008080; } /* NameVariableGlobal */
-.chroma .vi { color: #008080; } /* NameVariableInstance */
-.chroma .s { color: #106303; } /* LiteralString */
-.chroma .sa { color: #106303; } /* LiteralStringAffix */
-.chroma .sb { color: #106303; } /* LiteralStringBacktick */
-.chroma .sc { color: #106303; } /* LiteralStringChar */
-.chroma .dl { color: #106303; } /* LiteralStringDelimiter */
-.chroma .sd { color: #106303; } /* LiteralStringDoc */
-.chroma .s2 { color: #106303; } /* LiteralStringDouble */
-.chroma .se { color: #106303; } /* LiteralStringEscape */
-.chroma .sh { color: #106303; } /* LiteralStringHeredoc */
-.chroma .si { color: #106303; } /* LiteralStringInterpol */
-.chroma .sx { color: #106303; } /* LiteralStringOther */
-.chroma .sr { color: #22863a; } /* LiteralStringRegex */
-.chroma .s1 { color: #cc7a00; } /* LiteralStringSingle */
-.chroma .ss { color: #106303; } /* LiteralStringSymbol */
+.chroma .ln { color: #7f7f7f; } /* LineNumbers */
+.chroma .lnt { color: #7f7f7f; } /* LineNumbersTable */
 .chroma .m { color: #009999; } /* LiteralNumber */
 .chroma .mb { color: #009999; } /* LiteralNumberBin */
 .chroma .mf { color: #009999; } /* LiteralNumberFloat */
 .chroma .mh { color: #009999; } /* LiteralNumberHex */
 .chroma .mi { color: #009999; } /* LiteralNumberInteger */
-.chroma .il { color: #009999; } /* LiteralNumberIntegerLong */
 .chroma .mo { color: #009999; } /* LiteralNumberOct */
+.chroma .na { color: #d73a49; } /* NameAttribute */
+.chroma .nb { color: #005cc5; } /* NameBuiltin */
+.chroma .nc { color: #445588; } /* NameClass */
+.chroma .nd { color: #3c5d5d; } /* NameDecorator */
+.chroma .ne { color: #990000; } /* NameException */
+.chroma .nf { color: #005cc5; } /* NameFunction */
+.chroma .ni { color: #6f42c1; } /* NameEntity */
+.chroma .nl { color: #990000; } /* NameLabel */
+.chroma .nn { color: #555555; } /* NameNamespace */
+.chroma .no { color: #008080; } /* NameConstant */
+.chroma .nt { color: #22863a; } /* NameTag */
+.chroma .nv { color: #008080; } /* NameVariable */
+.chroma .nx { color: #24292e; } /* NameOther */
 .chroma .o { color: #d73a49; } /* Operator */
 .chroma .ow { color: #d73a49; } /* OperatorWord */
-.chroma .c { color: #6a737d; } /* Comment */
-.chroma .ch { color: #6a737d; } /* CommentHashbang */
-.chroma .cm { color: #999988; } /* CommentMultiline */
-.chroma .c1 { color: #6a737d; } /* CommentSingle */
-.chroma .cs { color: #999999; } /* CommentSpecial */
-.chroma .cp { color: #109295; } /* CommentPreproc */
-.chroma .cpf { color: #4c4dbc; } /* CommentPreprocFile */
-.chroma .gd { color: #000000; background-color: #ffdddd; } /* GenericDeleted */
-.chroma .ge { color: #000000; } /* GenericEmph */
-.chroma .gr { color: #aa0000; } /* GenericError */
-.chroma .gh { color: #999999; } /* GenericHeading */
-.chroma .gi { color: #000000; background-color: #ddffdd; } /* GenericInserted */
-.chroma .go { color: #888888; } /* GenericOutput */
-.chroma .gp { color: #555555; } /* GenericPrompt */
-.chroma .gu { color: #aaaaaa; } /* GenericSubheading */
-.chroma .gt { color: #aa0000; } /* GenericTraceback */
+.chroma .s { color: #106303; } /* LiteralString */
+.chroma .s1 { color: #cc7a00; } /* LiteralStringSingle */
+.chroma .s2 { color: #106303; } /* LiteralStringDouble */
+.chroma .sa { color: #106303; } /* LiteralStringAffix */
+.chroma .sb { color: #106303; } /* LiteralStringBacktick */
+.chroma .sc { color: #106303; } /* LiteralStringChar */
+.chroma .sd { color: #106303; } /* LiteralStringDoc */
+.chroma .se { color: #106303; } /* LiteralStringEscape */
+.chroma .sh { color: #106303; } /* LiteralStringHeredoc */
+.chroma .si { color: #106303; } /* LiteralStringInterpol */
+.chroma .sr { color: #22863a; } /* LiteralStringRegex */
+.chroma .ss { color: #106303; } /* LiteralStringSymbol */
+.chroma .sx { color: #106303; } /* LiteralStringOther */
+.chroma .vc { color: #008080; } /* NameVariableClass */
+.chroma .vg { color: #008080; } /* NameVariableGlobal */
+.chroma .vi { color: #008080; } /* NameVariableInstance */
 .chroma .w { color: #bbbbbb; } /* TextWhitespace */