summaryrefslogtreecommitdiffstats
path: root/web_src/css/themes
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
committerDaniel Baumann <daniel@debian.org>2024-12-12 23:57:56 +0100
commite68b9d00a6e05b3a941f63ffb696f91e554ac5ec (patch)
tree97775d6c13b0f416af55314eb6a89ef792474615 /web_src/css/themes
parentInitial commit. (diff)
downloadforgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.tar.xz
forgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.zip
Adding upstream version 9.0.3.
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to '')
-rw-r--r--web_src/css/themes/theme-forgejo-auto-deuteranopia-protanopia.css2
-rw-r--r--web_src/css/themes/theme-forgejo-auto-tritanopia.css2
-rw-r--r--web_src/css/themes/theme-forgejo-auto.css2
-rw-r--r--web_src/css/themes/theme-forgejo-dark-deuteranopia-protanopia.css11
-rw-r--r--web_src/css/themes/theme-forgejo-dark-tritanopia.css11
-rw-r--r--web_src/css/themes/theme-forgejo-dark.css357
-rw-r--r--web_src/css/themes/theme-forgejo-light-deuteranopia-protanopia.css11
-rw-r--r--web_src/css/themes/theme-forgejo-light-tritanopia.css11
-rw-r--r--web_src/css/themes/theme-forgejo-light.css325
-rw-r--r--web_src/css/themes/theme-gitea-auto.css2
-rw-r--r--web_src/css/themes/theme-gitea-dark.css271
-rw-r--r--web_src/css/themes/theme-gitea-light.css247
12 files changed, 1252 insertions, 0 deletions
diff --git a/web_src/css/themes/theme-forgejo-auto-deuteranopia-protanopia.css b/web_src/css/themes/theme-forgejo-auto-deuteranopia-protanopia.css
new file mode 100644
index 0000000..5f97fa3
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-auto-deuteranopia-protanopia.css
@@ -0,0 +1,2 @@
+@import "theme-forgejo-light-deuteranopia-protanopia.css";
+@import "theme-forgejo-dark-deuteranopia-protanopia.css" (prefers-color-scheme: dark);
diff --git a/web_src/css/themes/theme-forgejo-auto-tritanopia.css b/web_src/css/themes/theme-forgejo-auto-tritanopia.css
new file mode 100644
index 0000000..256a703
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-auto-tritanopia.css
@@ -0,0 +1,2 @@
+@import "theme-forgejo-light-tritanopia.css";
+@import "theme-forgejo-dark-tritanopia.css" (prefers-color-scheme: dark);
diff --git a/web_src/css/themes/theme-forgejo-auto.css b/web_src/css/themes/theme-forgejo-auto.css
new file mode 100644
index 0000000..ebf5994
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-auto.css
@@ -0,0 +1,2 @@
+@import "theme-forgejo-light.css";
+@import "theme-forgejo-dark.css" (prefers-color-scheme: dark);
diff --git a/web_src/css/themes/theme-forgejo-dark-deuteranopia-protanopia.css b/web_src/css/themes/theme-forgejo-dark-deuteranopia-protanopia.css
new file mode 100644
index 0000000..b30cfd6
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-dark-deuteranopia-protanopia.css
@@ -0,0 +1,11 @@
+@import "./theme-forgejo-dark.css";
+
+:root {
+ --color-diff-removed-word-bg: #693f17;
+ --color-diff-removed-row-border: #693f17;
+ --color-diff-removed-row-bg: #221b17;
+ --color-diff-added-word-bg: #214d88;
+ --color-diff-added-row-border: #214d88;
+ --color-diff-added-row-bg: #13233a;
+ --color-code-bg: #0d1117;
+}
diff --git a/web_src/css/themes/theme-forgejo-dark-tritanopia.css b/web_src/css/themes/theme-forgejo-dark-tritanopia.css
new file mode 100644
index 0000000..aefdaa1
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-dark-tritanopia.css
@@ -0,0 +1,11 @@
+@import "./theme-forgejo-dark.css";
+
+:root {
+ --color-diff-removed-word-bg: #792e2e;
+ --color-diff-removed-row-border: #792e2e;
+ --color-diff-removed-row-bg: #25171c;
+ --color-diff-added-word-bg: #214d88;
+ --color-diff-added-row-border: #214d88;
+ --color-diff-added-row-bg: #13233a;
+ --color-code-bg: #0d1117;
+}
diff --git a/web_src/css/themes/theme-forgejo-dark.css b/web_src/css/themes/theme-forgejo-dark.css
new file mode 100644
index 0000000..bc321f3
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-dark.css
@@ -0,0 +1,357 @@
+@import "../chroma/dark.css";
+@import "../codemirror/dark.css";
+@import "../markup/dark.css";
+
+:root {
+ --steel-900: #10161d;
+ --steel-850: #131a21;
+ --steel-800: #171e26;
+ --steel-750: #1d262f;
+ --steel-700: #242d38;
+ --steel-650: #2b3642;
+ --steel-600: #374351;
+ --steel-550: #445161;
+ --steel-500: #515f70;
+ --steel-450: #5f6e80;
+ --steel-400: #6d7d8f;
+ --steel-350: #7c8c9f;
+ --steel-300: #8c9caf;
+ --steel-250: #9dadc0;
+ --steel-200: #aebed0;
+ --steel-150: #c0cfe0;
+ --steel-100: #d2e0f0;
+ --is-dark-theme: true;
+ --color-primary: #fb923c;
+ --color-primary-contrast: #000;
+ --color-primary-dark-1: #fdba74;
+ --color-primary-dark-2: #fdba74;
+ --color-primary-dark-3: #fed7aa;
+ --color-primary-dark-4: #fed7aa;
+ --color-primary-dark-5: #ffedd5;
+ --color-primary-dark-6: #ffedd5;
+ --color-primary-dark-7: #fff7ed;
+ --color-primary-light-1: #f97316;
+ --color-primary-light-2: #ea580c;
+ --color-primary-light-3: #c2410c;
+ --color-primary-light-4: #9a3412;
+ --color-primary-light-5: #9a3412;
+ --color-primary-light-6: #7c2d12;
+ --color-primary-light-7: #7c2d12;
+ --color-primary-alpha-10: #ea580c19;
+ --color-primary-alpha-20: #ea580c33;
+ --color-primary-alpha-30: #ea580c4b;
+ --color-primary-alpha-40: #ea580c66;
+ --color-primary-alpha-50: #ea580c80;
+ --color-primary-alpha-60: #ea580c99;
+ --color-primary-alpha-70: #ea580cb3;
+ --color-primary-alpha-80: #ea580ccc;
+ --color-primary-alpha-90: #ea580ce1;
+ --color-primary-hover: var(--color-primary-light-1);
+ --color-primary-active: var(--color-primary-light-2);
+ --color-secondary: var(--steel-700);
+ --color-secondary-dark-1: var(--steel-550);
+ --color-secondary-dark-2: var(--steel-500);
+ --color-secondary-dark-3: var(--steel-450);
+ --color-secondary-dark-4: var(--steel-400);
+ --color-secondary-dark-5: var(--steel-350);
+ --color-secondary-dark-6: var(--steel-300);
+ --color-secondary-dark-7: var(--steel-250);
+ --color-secondary-dark-8: var(--steel-200);
+ --color-secondary-dark-9: var(--steel-150);
+ --color-secondary-dark-10: var(--steel-100);
+ --color-secondary-dark-11: var(--steel-100);
+ --color-secondary-dark-12: var(--steel-100);
+ --color-secondary-dark-13: var(--steel-100);
+ --color-secondary-light-1: var(--steel-650);
+ --color-secondary-light-2: var(--steel-700);
+ --color-secondary-light-3: var(--steel-750);
+ --color-secondary-light-4: var(--steel-800);
+ --color-secondary-alpha-10: #2b364219;
+ --color-secondary-alpha-20: #2b364233;
+ --color-secondary-alpha-30: #2b36424b;
+ --color-secondary-alpha-40: #2b364266;
+ --color-secondary-alpha-50: #2b364280;
+ --color-secondary-alpha-60: #2b364299;
+ --color-secondary-alpha-70: #2b3642b3;
+ --color-secondary-alpha-80: #2b3642cc;
+ --color-secondary-alpha-90: #2b3642e1;
+ --color-secondary-hover: var(--color-secondary-light-1);
+ --color-secondary-active: var(--color-secondary-light-2);
+ /* console colors - used for actions console and console files */
+ --color-console-fg: #eeeff2;
+ --color-console-fg-subtle: #959cab;
+ --color-console-bg: #1f212b;
+ --color-console-border: #383c47;
+ --color-console-hover-bg: #ffffff16;
+ --color-console-active-bg: #454a57;
+ --color-console-menu-bg: #383c47;
+ --color-console-menu-border: #5c6374;
+ /* colors */
+ --color-red: #b91c1c;
+ --color-orange: #ea580c;
+ --color-yellow: #ca8a04;
+ --color-olive: #91a313;
+ --color-green: #15803d;
+ --color-teal: #0d9488;
+ --color-blue: #2563eb;
+ --color-violet: #7c3aed;
+ --color-purple: #9333ea;
+ --color-pink: #db2777;
+ --color-brown: #a47252;
+ --color-grey: var(--steel-500);
+ --color-black: #111827;
+ /* light variants */
+ --color-red-light: #dc2626;
+ --color-orange-light: #f97316;
+ --color-yellow-light: #eab308;
+ --color-olive-light: #839311;
+ --color-green-light: #16a34a;
+ --color-teal-light: #14b8a6;
+ --color-blue-light: #3b82f6;
+ --color-violet-light: #8b5cf6;
+ --color-purple-light: #a855f7;
+ --color-pink-light: #ec4899;
+ --color-brown-light: #94674a;
+ --color-grey-light: var(--steel-300);
+ --color-black-light: #1f2937;
+ /* dark 1 variants produced via Sass scale-color(color, $lightness: -10%) */
+ --color-red-dark-1: #a71919;
+ --color-orange-dark-1: #d34f0b;
+ --color-yellow-dark-1: #b67c04;
+ --color-olive-dark-1: #839311;
+ --color-green-dark-1: #137337;
+ --color-teal-dark-1: #0c857a;
+ --color-blue-dark-1: #1554e0;
+ --color-violet-dark-1: #6a1feb;
+ --color-purple-dark-1: #8519e7;
+ --color-pink-dark-1: #c7216b;
+ --color-brown-dark-1: #94674a;
+ --color-black-dark-1: #0f1623;
+ /* dark 2 variants produced via Sass scale-color(color, $lightness: -20%) */
+ --color-red-dark-2: #941616;
+ --color-orange-dark-2: #bb460a;
+ --color-yellow-dark-2: #ca8a04;
+ --color-olive-dark-2: #91a313;
+ --color-green-dark-2: #15803d;
+ --color-teal-dark-2: #0a766d;
+ --color-blue-dark-2: #2563eb;
+ --color-violet-dark-2: #5c14d8;
+ --color-purple-dark-2: #7c3aed;
+ --color-pink-dark-2: #b11d5f;
+ --color-brown-dark-2: #a47252;
+ --color-black-dark-2: #111827;
+ /* ansi colors used for actions console and console files */
+ --color-ansi-black: #1d2328;
+ --color-ansi-red: #cc4848;
+ --color-ansi-green: #87ab63;
+ --color-ansi-yellow: #cc9903;
+ --color-ansi-blue: #3a8ac6;
+ --color-ansi-magenta: #d22e8b;
+ --color-ansi-cyan: #00918a;
+ --color-ansi-white: var(--color-console-fg-subtle);
+ --color-ansi-bright-black: #424851;
+ --color-ansi-bright-red: #d15a5a;
+ --color-ansi-bright-green: #93b373;
+ --color-ansi-bright-yellow: #eaaf03;
+ --color-ansi-bright-blue: #4e96cc;
+ --color-ansi-bright-magenta: #d74397;
+ --color-ansi-bright-cyan: #00b6ad;
+ --color-ansi-bright-white: var(--color-console-fg);
+ /* other colors */
+ --color-gold: #b1983b;
+ --color-white: #ffffff;
+ --color-pure-black: #000000;
+ --color-diff-removed-word-bg: #783030;
+ --color-diff-added-word-bg: #255c39;
+ --color-diff-removed-row-bg: #432121;
+ --color-diff-moved-row-bg: #825718;
+ --color-diff-added-row-bg: #1b3625;
+ --color-diff-removed-row-border: #783030;
+ --color-diff-moved-row-border: #a67a1d;
+ --color-diff-added-row-border: #255c39;
+ --color-diff-inactive: var(--steel-650);
+ --color-error-border: #783030;
+ --color-error-bg: #5f2525;
+ --color-error-bg-active: #783030;
+ --color-error-bg-hover: #783030;
+ --color-error-text: #fef2f2;
+ --color-success-border: #1f6e3c;
+ --color-success-bg: #1d462c;
+ --color-success-text: #aef0c2;
+ --color-warning-border: #a67a1d;
+ --color-warning-bg: #644821;
+ --color-warning-text: #fff388;
+ --color-info-border: #2e50b0;
+ --color-info-bg: #2a396b;
+ --color-info-text: var(--steel-100);
+ --color-red-badge: #b91c1c;
+ --color-red-badge-bg: #b91c1c22;
+ --color-red-badge-hover-bg: #b91c1c44;
+ --color-green-badge: #16a34a;
+ --color-green-badge-bg: #16a34a22;
+ --color-green-badge-hover-bg: #16a34a44;
+ --color-yellow-badge: #ca8a04;
+ --color-yellow-badge-bg: #ca8a0422;
+ --color-yellow-badge-hover-bg: #ca8a0444;
+ --color-orange-badge: #ea580c;
+ --color-orange-badge-bg: #ea580c22;
+ --color-orange-badge-hover-bg: #ea580c44;
+ --color-git: #f05133;
+ /* Icon colors (PR/Issue/...) */
+ --color-icon-green: #3fb950;
+ --color-icon-red: #f85149;
+ --color-icon-purple: #aa76ff;
+ /* target-based colors */
+ --color-body: var(--steel-800);
+ --color-box-header: var(--steel-700);
+ --color-box-body: var(--steel-750);
+ --color-box-body-highlight: var(--steel-650);
+ --color-text-dark: #fff;
+ --color-text: var(--steel-100);
+ --color-text-light: var(--steel-150);
+ --color-text-light-1: var(--steel-150);
+ --color-text-light-2: var(--steel-200);
+ --color-text-light-3: var(--steel-200);
+ --color-footer: var(--steel-900);
+ --color-timeline: var(--steel-650);
+ --color-input-text: var(--steel-100);
+ --color-input-background: var(--steel-650);
+ --color-input-toggle-background: var(--steel-650);
+ --color-input-border: var(--steel-550);
+ --color-input-border-hover: var(--steel-450);
+ --color-header-wrapper: var(--steel-850);
+ --color-header-wrapper-transparent: #242d3800;
+ --color-light: #00000028;
+ --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
+ --color-light-border: #ffffff28;
+ --color-hover: var(--steel-600);
+ --color-active: var(--steel-650);
+ --color-menu: var(--steel-700);
+ --color-card: var(--steel-700);
+ --color-markup-table-row: #ffffff06;
+ --color-markup-code-block: var(--steel-800);
+ --color-markup-code-inline: var(--steel-850);
+ --color-button: var(--steel-600);
+ --color-code-bg: var(--steel-750);
+ --color-shadow: #00000060;
+ --color-secondary-bg: var(--steel-700);
+ --color-text-focus: #fff;
+ --color-expand-button: #3c404d;
+ --color-placeholder-text: var(--color-text-light-3);
+ --color-editor-line-highlight: var(--steel-700);
+ --color-project-board-bg: var(--color-secondary-light-3);
+ --color-project-board-dark-label: var(--color-text-light-3);
+ --color-caret: var(--color-text);
+ /* should ideally be --color-text-dark, see #15651 */
+ --color-reaction-bg: #ffffff12;
+ --color-reaction-active-bg: var(--color-primary-alpha-30);
+ --color-reaction-hover-bg: var(--color-primary-alpha-40);
+ --color-tooltip-text: #ffffff;
+ --color-tooltip-bg: #000000f0;
+ --color-nav-bg: var(--steel-900);
+ --color-nav-hover-bg: var(--steel-600);
+ --color-nav-text: var(--color-text);
+ --color-secondary-nav-bg: var(--color-body);
+ --color-label-text: #fff;
+ --color-label-bg: var(--steel-600);
+ --color-label-hover-bg: var(--steel-550);
+ --color-label-active-bg: var(--steel-500);
+ --color-label-bg-alt: var(--steel-550);
+ --color-accent: var(--color-primary-light-1);
+ --color-small-accent: var(--color-primary-light-5);
+ --color-highlight-fg: var(--color-primary-light-4);
+ --color-highlight-bg: var(--color-primary-alpha-20);
+ --color-overlay-backdrop: #080808c0;
+ /* pattern colors for image diff */
+ --checkerboard-color-1: #474747;
+ --checkerboard-color-2: #313131;
+ accent-color: var(--color-accent);
+ color-scheme: dark;
+}
+/* invert emojis that are hard to read otherwise */
+.emoji[aria-label="check mark"],
+.emoji[aria-label="currency exchange"],
+.emoji[aria-label="TOP arrow"],
+.emoji[aria-label="END arrow"],
+.emoji[aria-label="ON! arrow"],
+.emoji[aria-label="SOON arrow"],
+.emoji[aria-label="heavy dollar sign"],
+.emoji[aria-label="copyright"],
+.emoji[aria-label="registered"],
+.emoji[aria-label="trade mark"],
+.emoji[aria-label="multiply"],
+.emoji[aria-label="plus"],
+.emoji[aria-label="minus"],
+.emoji[aria-label="divide"],
+.emoji[aria-label="curly loop"],
+.emoji[aria-label="double curly loop"],
+.emoji[aria-label="wavy dash"],
+.emoji[aria-label="paw prints"],
+.emoji[aria-label="musical note"],
+.emoji[aria-label="musical notes"] {
+ filter: invert(100%) hue-rotate(180deg);
+}
+i.grey.icon.icon.icon.icon {
+ color: var(--steel-350) !important;
+}
+.ui.secondary.vertical.menu {
+ border-radius: 0.28571429rem !important;
+ overflow: hidden;
+}
+.ui.basic.primary.button.item {
+ background-color: var(--color-active) !important;
+ color: var(--color-text) !important;
+ box-shadow: none !important;
+}
+.ui.red.label.notification_count,
+.ui.primary.label,
+.ui.primary.labels .label {
+ background-color: var(--color-primary-light-3) !important;
+}
+.repository.view.issue .comment-list .code-comment + .code-comment {
+ margin: 1.25rem 0 !important;
+ padding-top: 1.25rem !important;
+ border-top-color: var(--steel-650) !important;
+}
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ background-color: var(--color-light) !important;
+}
+#review-box .review-comments-counter {
+ background-color: var(--color-shadow) !important;
+ color: var(--color-white) !important;
+ margin-left: 0.5em;
+}
+.ui.basic.labels .primary.label,
+.ui.ui.ui.basic.primary.label {
+ color: var(--color-text-dark) !important;
+}
+.ui.basic.yellow.label.pending-label {
+ background: var(--color-light) !important;
+}
+::selection {
+ background: var(--steel-100) !important;
+ color: var(--color-pure-black) !important;
+}
+strong.attention-important, svg.attention-important {
+ color: var(--color-violet-light);
+}
+strong.attention-note, svg.attention-note {
+ color: var(--color-blue-light);
+}
+strong.attention-caution, svg.attention-caution {
+ color: var(--color-red-light);
+}
+.ui.basic.red.button {
+ background-color: var(--color-red);
+ color: var(--color-white);
+}
+.ui.basic.red.button:hover,
+.ui.basic.red.button:focus {
+ background-color: var(--color-red-dark-1);
+ color: var(--color-white);
+}
+.ui.basic.red.button:active {
+ background-color: var(--color-red-dark-2);
+ color: var(--color-white);
+}
diff --git a/web_src/css/themes/theme-forgejo-light-deuteranopia-protanopia.css b/web_src/css/themes/theme-forgejo-light-deuteranopia-protanopia.css
new file mode 100644
index 0000000..eb48b75
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-light-deuteranopia-protanopia.css
@@ -0,0 +1,11 @@
+@import "./theme-forgejo-light.css";
+
+:root {
+ --color-diff-removed-word-bg: #ffdbb0;
+ --color-diff-removed-row-border: #ffdbb0;
+ --color-diff-removed-row-bg: #fffaf3;
+ --color-diff-added-word-bg: #b1dbff;
+ --color-diff-added-row-border: #b1dbff;
+ --color-diff-added-row-bg: #eef9ff;
+ --color-code-bg: #ffffff;
+}
diff --git a/web_src/css/themes/theme-forgejo-light-tritanopia.css b/web_src/css/themes/theme-forgejo-light-tritanopia.css
new file mode 100644
index 0000000..208da55
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-light-tritanopia.css
@@ -0,0 +1,11 @@
+@import "./theme-forgejo-light.css";
+
+:root {
+ --color-diff-removed-word-bg: #ffd0ce;
+ --color-diff-removed-row-border: #ffd0ce;
+ --color-diff-removed-row-bg: #fff5f4;
+ --color-diff-added-word-bg: #b1dbff;
+ --color-diff-added-row-border: #eef9ff;
+ --color-diff-added-row-bg: #eef9ff;
+ --color-code-bg: #ffffff;
+}
diff --git a/web_src/css/themes/theme-forgejo-light.css b/web_src/css/themes/theme-forgejo-light.css
new file mode 100644
index 0000000..fa89cc2
--- /dev/null
+++ b/web_src/css/themes/theme-forgejo-light.css
@@ -0,0 +1,325 @@
+@import "../chroma/light.css";
+@import "../codemirror/light.css";
+@import "../markup/light.css";
+
+:root {
+ --steel-900: #10161d;
+ --steel-850: #131a21;
+ --steel-800: #171e26;
+ --steel-750: #1d262f;
+ --steel-700: #242d38;
+ --steel-650: #2b3642;
+ --steel-600: #374351;
+ --steel-550: #445161;
+ --steel-500: #515f70;
+ --steel-450: #5f6e80;
+ --steel-400: #6d7d8f;
+ --steel-350: #7c8c9f;
+ --steel-300: #8c9caf;
+ --steel-250: #9dadc0;
+ --steel-200: #aebed0;
+ --steel-150: #c0cfe0;
+ --steel-100: #d2e0f0;
+ --zinc-50: #fafafa;
+ --zinc-100: #f4f4f5;
+ --zinc-150: #ececee;
+ --zinc-200: #e4e4e7;
+ --zinc-250: #dcdce0;
+ --zinc-300: #d4d4d8;
+ --zinc-350: #babac1;
+ --zinc-400: #a1a1aa;
+ --zinc-450: #898992;
+ --zinc-500: #71717a;
+ --zinc-550: #61616a;
+ --zinc-600: #52525b;
+ --zinc-650: #484850;
+ --zinc-700: #3f3f46;
+ --zinc-750: #333338;
+ --zinc-800: #27272a;
+ --zinc-850: #1f1f23;
+ --zinc-900: #18181b;
+ --color-primary: #c2410c;
+ --color-primary-contrast: #ffffff;
+ --color-primary-dark-1: #c2410c;
+ --color-primary-dark-2: #9a3412;
+ --color-primary-dark-3: #9a3412;
+ --color-primary-dark-4: #7c2d12;
+ --color-primary-dark-5: #7c2d12;
+ --color-primary-dark-6: #7c2d12;
+ --color-primary-dark-7: #7c2d12;
+ --color-primary-light-1: #ea580c;
+ --color-primary-light-2: #f97316;
+ --color-primary-light-3: #fb923c;
+ --color-primary-light-4: #fdba74;
+ --color-primary-light-5: #fed7aa;
+ --color-primary-light-6: #ffedd5;
+ --color-primary-light-7: #fff7ed;
+ --color-primary-alpha-10: #c2410c19;
+ --color-primary-alpha-20: #c2410c33;
+ --color-primary-alpha-30: #c2410c4b;
+ --color-primary-alpha-40: #c2410c66;
+ --color-primary-alpha-50: #c2410c80;
+ --color-primary-alpha-60: #c2410c99;
+ --color-primary-alpha-70: #c2410cb3;
+ --color-primary-alpha-80: #c2410ccc;
+ --color-primary-alpha-90: #c2410ce1;
+ --color-primary-hover: var(--color-primary-dark-2);
+ --color-primary-active: var(--color-primary-dark-4);
+ --color-secondary: var(--zinc-200);
+ --color-secondary-dark-1: var(--zinc-200);
+ --color-secondary-dark-2: var(--zinc-300);
+ --color-secondary-dark-3: var(--zinc-300);
+ --color-secondary-dark-4: var(--zinc-400);
+ --color-secondary-dark-5: var(--zinc-400);
+ --color-secondary-dark-6: var(--zinc-500);
+ --color-secondary-dark-7: var(--zinc-500);
+ --color-secondary-dark-8: var(--zinc-600);
+ --color-secondary-dark-9: var(--zinc-600);
+ --color-secondary-dark-10: var(--zinc-700);
+ --color-secondary-dark-11: var(--zinc-700);
+ --color-secondary-dark-12: var(--zinc-800);
+ --color-secondary-dark-13: var(--zinc-800);
+ --color-secondary-light-1: var(--zinc-200);
+ --color-secondary-light-2: var(--zinc-100);
+ --color-secondary-light-3: var(--zinc-100);
+ --color-secondary-light-4: var(--zinc-50);
+ --color-secondary-alpha-10: #d4d4d819;
+ --color-secondary-alpha-20: #d4d4d833;
+ --color-secondary-alpha-30: #d4d4d84b;
+ --color-secondary-alpha-40: #d4d4d866;
+ --color-secondary-alpha-50: #d4d4d880;
+ --color-secondary-alpha-60: #d4d4d899;
+ --color-secondary-alpha-70: #d4d4d8b3;
+ --color-secondary-alpha-80: #d4d4d8cc;
+ --color-secondary-alpha-90: #d4d4d8e1;
+ --color-secondary-hover: var(--color-secondary-dark-2);
+ --color-secondary-active: var(--color-secondary-dark-4);
+ /* console colors - used for actions console and console files */
+ --color-console-fg: #eeeff2;
+ --color-console-fg-subtle: #959cab;
+ --color-console-bg: #1f212b;
+ --color-console-border: #383c47;
+ --color-console-hover-bg: #ffffff16;
+ --color-console-active-bg: #454a57;
+ --color-console-menu-bg: #383c47;
+ --color-console-menu-border: #5c6374;
+ /* colors */
+ --color-red: #dc2626;
+ --color-orange: #ea580c;
+ --color-yellow: #ca8a04;
+ --color-olive: #91a313;
+ --color-green: #15803d;
+ --color-teal: #0d9488;
+ --color-blue: #2563eb;
+ --color-violet: #7c3aed;
+ --color-purple: #9333ea;
+ --color-pink: #db2777;
+ --color-brown: #a47252;
+ --color-grey: #4b5563;
+ --color-black: #000000;
+ /* light variants */
+ --color-red-light: #ef4444;
+ --color-orange-light: #f97316;
+ --color-yellow-light: #eab308;
+ --color-olive-light: #839311;
+ --color-green-light: #16a34a;
+ --color-teal-light: #14b8a6;
+ --color-blue-light: #3b82f6;
+ --color-violet-light: #8b5cf6;
+ --color-purple-light: #a855f7;
+ --color-pink-light: #ec4899;
+ --color-brown-light: #94674a;
+ --color-grey-light: #6b7280;
+ --color-black-light: #181818;
+ /* dark 1 variants - produced via Sass scale-color(color, $lightness: -10%) */
+ --color-red-dark-1: #c82020;
+ --color-orange-dark-1: #d34f0b;
+ --color-yellow-dark-1: #b67c04;
+ --color-olive-dark-1: #839311;
+ --color-green-dark-1: #137337;
+ --color-teal-dark-1: #0c857a;
+ --color-blue-dark-1: #1554e0;
+ --color-violet-dark-1: #6a1feb;
+ --color-purple-dark-1: #8519e7;
+ --color-pink-dark-1: #c7216b;
+ --color-brown-dark-1: #94674a;
+ --color-black-dark-1: #000000;
+ /* dark 2 variants - produced via Sass scale-color(color, $lightness: -20%) */
+ --color-red-dark-2: #b21d1d;
+ --color-orange-dark-2: #bb460a;
+ --color-yellow-dark-2: #a26e03;
+ --color-olive-dark-2: #74820f;
+ --color-green-dark-2: #116631;
+ --color-teal-dark-2: #0a766d;
+ --color-blue-dark-2: #124bc7;
+ --color-violet-dark-2: #5c14d8;
+ --color-purple-dark-2: #7715cf;
+ --color-pink-dark-2: #b11d5f;
+ --color-brown-dark-2: #835b42;
+ --color-black-dark-2: #000000;
+ /* ansi colors used for actions console and console files */
+ --color-ansi-black: #1f2326;
+ --color-ansi-red: #cc4848;
+ --color-ansi-green: #87ab63;
+ --color-ansi-yellow: #cc9903;
+ --color-ansi-blue: #3a8ac6;
+ --color-ansi-magenta: #d22e8b;
+ --color-ansi-cyan: #00918a;
+ --color-ansi-white: var(--color-console-fg-subtle);
+ --color-ansi-bright-black: #46494d;
+ --color-ansi-bright-red: #d15a5a;
+ --color-ansi-bright-green: #93b373;
+ --color-ansi-bright-yellow: #eaaf03;
+ --color-ansi-bright-blue: #4e96cc;
+ --color-ansi-bright-magenta: #d74397;
+ --color-ansi-bright-cyan: #00b6ad;
+ --color-ansi-bright-white: var(--color-console-fg);
+ /* other colors */
+ --color-gold: #b1983b;
+ --color-white: #ffffff;
+ --color-diff-removed-word-bg: #fca5a5;
+ --color-diff-added-word-bg: #86efac;
+ --color-diff-removed-row-bg: #fee2e2;
+ --color-diff-moved-row-bg: #fef9c3;
+ --color-diff-added-row-bg: #dcfce7;
+ --color-diff-removed-row-border: #fca5a5;
+ --color-diff-moved-row-border: #fde047;
+ --color-diff-added-row-border: #86efac;
+ --color-diff-inactive: var(--zinc-100);
+ --color-error-border: #fecaca;
+ --color-error-bg: #fee2e2;
+ --color-error-bg-active: #fca5a5;
+ --color-error-bg-hover: #fecaca;
+ --color-error-text: #7f1d1d;
+ --color-success-border: #bbf7d0;
+ --color-success-bg: #dcfce7;
+ --color-success-text: #14532d;
+ --color-warning-border: #fde047;
+ --color-warning-bg: #fef3c7;
+ --color-warning-text: #78350f;
+ --color-info-border: #bae6fd;
+ --color-info-bg: #e0f2fe;
+ --color-info-text: #0c4a6e;
+ --color-red-badge: #b91c1c;
+ --color-red-badge-bg: #b91c1c22;
+ --color-red-badge-hover-bg: #b91c1c44;
+ --color-green-badge: #16a34a;
+ --color-green-badge-bg: #16a34a22;
+ --color-green-badge-hover-bg: #16a34a44;
+ --color-yellow-badge: #ca8a04;
+ --color-yellow-badge-bg: #ca8a0422;
+ --color-yellow-badge-hover-bg: #ca8a0444;
+ --color-orange-badge: #ea580c;
+ --color-orange-badge-bg: #ea580c22;
+ --color-orange-badge-hover-bg: #ea580c44;
+ --color-git: #f05133;
+ /* Icon colors (PR/Issue/...) */
+ --color-icon-green: var(--color-green-light);
+ --color-icon-red: var(--color-red-light);
+ --color-icon-purple: var(--color-purple-light);
+ /* target-based colors */
+ --color-body: #fff;
+ --color-box-header: var(--zinc-100);
+ --color-box-body: var(--zinc-50);
+ --color-box-body-highlight: var(--zinc-200);
+ --color-text-dark: #000;
+ --color-text: var(--zinc-900);
+ --color-text-light: var(--zinc-700);
+ --color-text-light-1: var(--zinc-650);
+ --color-text-light-2: var(--zinc-600);
+ --color-text-light-3: var(--zinc-550);
+ --color-footer: var(--zinc-100);
+ --color-timeline: var(--zinc-200);
+ --color-input-text: var(--zinc-800);
+ --color-input-background: #fff;
+ --color-input-toggle-background: #fff;
+ --color-input-border: var(--zinc-300);
+ --color-input-border-hover: var(--zinc-400);
+ --color-header-wrapper: var(--zinc-50);
+ --color-header-wrapper-transparent: #d2e0f000;
+ --color-light: #ffffffcc;
+ --color-light-mimic-enabled: rgba(0, 0, 0, calc(6 / 255 * 222 / 255 / var(--opacity-disabled)));
+ --color-light-border: #0000001d;
+ --color-hover: #e4e4e4aa;
+ --color-active: #d4d4d8aa;
+ --color-menu: var(--zinc-100);
+ --color-card: var(--zinc-50);
+ --color-markup-table-row: #ffffff06;
+ --color-markup-code-block: var(--zinc-150);
+ --color-markup-code-inline: var(--zinc-200);
+ --color-button: var(--zinc-150);
+ --color-code-bg: var(--zinc-50);
+ --color-shadow: #00000060;
+ --color-secondary-bg: var(--zinc-100);
+ --color-text-focus: #fff;
+ --color-expand-button: var(--zinc-200);
+ --color-placeholder-text: var(--color-text-light-3);
+ --color-editor-line-highlight: var(--zinc-100);
+ --color-project-board-bg: var(--color-secondary-light-2);
+ --color-project-board-dark-label: var(--color-text-light-3);
+ --color-caret: var(--color-text);
+ /* should ideally be --color-text-dark, see #15651 */
+ --color-reaction-bg: #0000000a;
+ --color-reaction-active-bg: var(--color-primary-alpha-20);
+ --color-reaction-hover-bg: var(--color-primary-alpha-30);
+ --color-tooltip-text: #ffffff;
+ --color-tooltip-bg: #000000f0;
+ --color-nav-bg: var(--zinc-100);
+ --color-nav-hover-bg: var(--zinc-300);
+ --color-nav-text: var(--color-text);
+ --color-secondary-nav-bg: var(--color-body);
+ --color-label-text: var(--color-text);
+ --color-label-bg: #cacaca5b;
+ --color-label-hover-bg: #cacacaa0;
+ --color-label-active-bg: #cacacaff;
+ --color-label-bg-alt: #cacacaff;
+ --color-accent: var(--color-primary-light-1);
+ --color-small-accent: var(--color-primary-light-5);
+ --color-highlight-fg: var(--color-primary-light-4);
+ --color-highlight-bg: var(--color-primary-light-6);
+ --color-overlay-backdrop: #080808c0;
+ /* pattern colors for gradient */
+ --checkerboard-color-1: #ffffff;
+ --checkerboard-color-2: #e5e5e5;
+ accent-color: var(--color-accent);
+ color-scheme: light;
+}
+.ui.secondary.vertical.menu {
+ border-radius: 0.28571429rem !important;
+ overflow: hidden;
+}
+.ui.basic.primary.button.item {
+ background-color: var(--color-active) !important;
+ color: var(--color-text) !important;
+ box-shadow: none !important;
+}
+.ui.red.label.notification_count,
+.ui.primary.labels .label {
+ background-color: var(--color-primary-dark-1) !important;
+}
+.repository.view.issue .comment-list .code-comment + .code-comment {
+ margin: 1.25rem 0 !important;
+ padding-top: 1.25rem !important;
+ border-top-color: var(--zinc-250) !important;
+}
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ background-color: var(--color-shadow) !important;
+}
+#review-box .review-comments-counter {
+ background-color: var(--color-label-bg) !important;
+ margin-left: 0.5em;
+}
+.ui.basic.labels .primary.label,
+.ui.ui.ui.basic.primary.label {
+ color: var(--color-text-dark) !important;
+}
+.ui.basic.yellow.label.pending-label {
+ background: var(--color-warning-bg) !important;
+ color: var(--color-warning-text) !important;
+ border-color: var(--color-yellow-light) !important;
+}
+::selection {
+ background: var(--steel-450) !important;
+ color: var(--color-white) !important;
+}
diff --git a/web_src/css/themes/theme-gitea-auto.css b/web_src/css/themes/theme-gitea-auto.css
new file mode 100644
index 0000000..509889e
--- /dev/null
+++ b/web_src/css/themes/theme-gitea-auto.css
@@ -0,0 +1,2 @@
+@import "./theme-gitea-light.css" (prefers-color-scheme: light);
+@import "./theme-gitea-dark.css" (prefers-color-scheme: dark);
diff --git a/web_src/css/themes/theme-gitea-dark.css b/web_src/css/themes/theme-gitea-dark.css
new file mode 100644
index 0000000..6ad6efe
--- /dev/null
+++ b/web_src/css/themes/theme-gitea-dark.css
@@ -0,0 +1,271 @@
+@import "../chroma/dark.css";
+@import "../codemirror/dark.css";
+@import "../markup/dark.css";
+
+:root {
+ --is-dark-theme: true;
+ --color-primary: #4183c4;
+ --color-primary-contrast: #ffffff;
+ --color-primary-dark-1: #548fca;
+ --color-primary-dark-2: #679cd0;
+ --color-primary-dark-3: #7aa8d6;
+ --color-primary-dark-4: #8db5dc;
+ --color-primary-dark-5: #b3cde7;
+ --color-primary-dark-6: #d9e6f3;
+ --color-primary-dark-7: #f4f8fb;
+ --color-primary-light-1: #3876b3;
+ --color-primary-light-2: #31699f;
+ --color-primary-light-3: #2b5c8b;
+ --color-primary-light-4: #254f77;
+ --color-primary-light-5: #193450;
+ --color-primary-light-6: #0c1a28;
+ --color-primary-light-7: #04080c;
+ --color-primary-alpha-10: #4183c419;
+ --color-primary-alpha-20: #4183c433;
+ --color-primary-alpha-30: #4183c44b;
+ --color-primary-alpha-40: #4183c466;
+ --color-primary-alpha-50: #4183c480;
+ --color-primary-alpha-60: #4183c499;
+ --color-primary-alpha-70: #4183c4b3;
+ --color-primary-alpha-80: #4183c4cc;
+ --color-primary-alpha-90: #4183c4e1;
+ --color-primary-hover: var(--color-primary-light-1);
+ --color-primary-active: var(--color-primary-light-2);
+ --color-secondary: #3b444a;
+ --color-secondary-dark-1: #424b51;
+ --color-secondary-dark-2: #4a545b;
+ --color-secondary-dark-3: #59646c;
+ --color-secondary-dark-4: #6b7681;
+ --color-secondary-dark-5: #78858f;
+ --color-secondary-dark-6: #87929d;
+ --color-secondary-dark-7: #939ea9;
+ --color-secondary-dark-8: #a1acb4;
+ --color-secondary-dark-9: #aab3bc;
+ --color-secondary-dark-10: #b6bfc8;
+ --color-secondary-dark-11: #c2cbd3;
+ --color-secondary-dark-12: #ccd4dc;
+ --color-secondary-dark-13: #cfd7df;
+ --color-secondary-light-1: #2e353b;
+ --color-secondary-light-2: #2b353e;
+ --color-secondary-light-3: #1c2227;
+ --color-secondary-light-4: #161b1f;
+ --color-secondary-alpha-10: #3b444a19;
+ --color-secondary-alpha-20: #3b444a33;
+ --color-secondary-alpha-30: #3b444a4b;
+ --color-secondary-alpha-40: #3b444a66;
+ --color-secondary-alpha-50: #3b444a80;
+ --color-secondary-alpha-60: #3b444a99;
+ --color-secondary-alpha-70: #3b444ab3;
+ --color-secondary-alpha-80: #3b444acc;
+ --color-secondary-alpha-90: #3b444ae1;
+ --color-secondary-button: var(--color-secondary-dark-4);
+ --color-secondary-hover: var(--color-secondary-dark-3);
+ --color-secondary-active: var(--color-secondary-dark-2);
+ /* console colors - used for actions console and console files */
+ --color-console-fg: #f8f8f9;
+ --color-console-fg-subtle: #bec4c8;
+ --color-console-bg: #171b1e;
+ --color-console-border: #2e353b;
+ --color-console-hover-bg: #292d31;
+ --color-console-active-bg: #2e353b;
+ --color-console-menu-bg: #252b30;
+ --color-console-menu-border: #424b51;
+ /* named colors */
+ --color-red: #cc4848;
+ --color-orange: #cc580c;
+ --color-yellow: #cc9903;
+ --color-olive: #91a313;
+ --color-green: #87ab63;
+ --color-teal: #00918a;
+ --color-blue: #3a8ac6;
+ --color-violet: #906ae1;
+ --color-purple: #b259d0;
+ --color-pink: #d22e8b;
+ --color-brown: #a47252;
+ --color-black: #1d2328;
+ /* light variants - produced via Sass scale-color(color, $lightness: +10%) */
+ --color-red-light: #d15a5a;
+ --color-orange-light: #f6a066;
+ --color-yellow-light: #eaaf03;
+ --color-olive-light: #abc016;
+ --color-green-light: #93b373;
+ --color-teal-light: #00b6ad;
+ --color-blue-light: #4e96cc;
+ --color-violet-light: #9b79e4;
+ --color-purple-light: #ba6ad5;
+ --color-pink-light: #d74397;
+ --color-brown-light: #b08061;
+ --color-black-light: #424851;
+ /* dark 1 variants - produced via Sass scale-color(color, $lightness: -10%) */
+ --color-red-dark-1: #c23636;
+ --color-orange-dark-1: #f38236;
+ --color-yellow-dark-1: #b88a03;
+ --color-olive-dark-1: #839311;
+ --color-green-dark-1: #7a9e55;
+ --color-teal-dark-1: #00837c;
+ --color-blue-dark-1: #347cb3;
+ --color-violet-dark-1: #7b4edb;
+ --color-purple-dark-1: #a742c9;
+ --color-pink-dark-1: #be297d;
+ --color-brown-dark-1: #94674a;
+ --color-black-dark-1: #292e38;
+ /* dark 2 variants - produced via Sass scale-color(color, $lightness: -20%) */
+ --color-red-dark-2: #ad3030;
+ --color-orange-dark-2: #f16e17;
+ --color-yellow-dark-2: #a37a02;
+ --color-olive-dark-2: #74820f;
+ --color-green-dark-2: #6c8c4c;
+ --color-teal-dark-2: #00746e;
+ --color-blue-dark-2: #2e6e9f;
+ --color-violet-dark-2: #6733d6;
+ --color-purple-dark-2: #9834b9;
+ --color-pink-dark-2: #a9246f;
+ --color-brown-dark-2: #835b42;
+ --color-black-dark-2: #272930;
+ /* ansi colors used for actions console and console files */
+ --color-ansi-black: #1d2328;
+ --color-ansi-red: #cc4848;
+ --color-ansi-green: #87ab63;
+ --color-ansi-yellow: #cc9903;
+ --color-ansi-blue: #3a8ac6;
+ --color-ansi-magenta: #d22e8b;
+ --color-ansi-cyan: #00918a;
+ --color-ansi-white: var(--color-console-fg-subtle);
+ --color-ansi-bright-black: #424851;
+ --color-ansi-bright-red: #d15a5a;
+ --color-ansi-bright-green: #93b373;
+ --color-ansi-bright-yellow: #eaaf03;
+ --color-ansi-bright-blue: #4e96cc;
+ --color-ansi-bright-magenta: #d74397;
+ --color-ansi-bright-cyan: #00b6ad;
+ --color-ansi-bright-white: var(--color-console-fg);
+ /* other colors */
+ --color-grey: #384147;
+ --color-grey-light: #828f99;
+ --color-gold: #b1983b;
+ --color-white: #ffffff;
+ --color-diff-removed-word-bg: #6f3333;
+ --color-diff-added-word-bg: #3c653c;
+ --color-diff-removed-row-bg: #3c2626;
+ --color-diff-moved-row-bg: #818044;
+ --color-diff-added-row-bg: #283e2d;
+ --color-diff-removed-row-border: #634343;
+ --color-diff-moved-row-border: #bcca6f;
+ --color-diff-added-row-border: #314a37;
+ --color-diff-inactive: #22282d;
+ --color-error-border: #a04141;
+ --color-error-bg: #522;
+ --color-error-bg-active: #744;
+ --color-error-bg-hover: #633;
+ --color-error-text: #f9cbcb;
+ --color-success-border: #458a57;
+ --color-success-bg: #284034;
+ --color-success-text: #6cc664;
+ --color-warning-border: #bb9d00;
+ --color-warning-bg: #3a3a30;
+ --color-warning-text: #fbbd08;
+ --color-info-border: #306090;
+ --color-info-bg: #26354c;
+ --color-info-text: #38a8e8;
+ --color-red-badge: #db2828;
+ --color-red-badge-bg: #db28281a;
+ --color-red-badge-hover-bg: #db28284d;
+ --color-green-badge: #21ba45;
+ --color-green-badge-bg: #21ba451a;
+ --color-green-badge-hover-bg: #21ba454d;
+ --color-yellow-badge: #fbbd08;
+ --color-yellow-badge-bg: #fbbd081a;
+ --color-yellow-badge-hover-bg: #fbbd084d;
+ --color-orange-badge: #f2711c;
+ --color-orange-badge-bg: #f2711c1a;
+ --color-orange-badge-hover-bg: #f2711c4d;
+ --color-git: #f05133;
+ /* Icon colors (PR/Issue/...) */
+ --color-icon-green: var(--color-green);
+ --color-icon-red: var(--color-red);
+ --color-icon-purple: var(--color-purple);
+ /* target-based colors */
+ --color-body: #1c1f25;
+ --color-box-header: #1a1d1f;
+ --color-box-body: #14171a;
+ --color-box-body-highlight: #1c2227;
+ --color-text-dark: #f8f8f9;
+ --color-text: #d1d5d8;
+ --color-text-light: #bdc3c7;
+ --color-text-light-1: #a8afb5;
+ --color-text-light-2: #929ba2;
+ --color-text-light-3: #7c8790;
+ --color-footer: var(--color-nav-bg);
+ --color-timeline: #353c42;
+ --color-input-text: var(--color-text-dark);
+ --color-input-background: #151a1e;
+ --color-input-toggle-background: #2e353b;
+ --color-input-border: var(--color-secondary);
+ --color-input-border-hover: var(--color-secondary-dark-1);
+ --color-light: #00001728;
+ --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
+ --color-light-border: #e8e8ff28;
+ --color-hover: #e8e8ff19;
+ --color-active: #e8e8ff24;
+ --color-menu: #151a1e;
+ --color-card: #151a1e;
+ --color-markup-table-row: #e8e8ff0f;
+ --color-markup-code-block: #e8e8ff12;
+ --color-markup-code-inline: #e8e8ff28;
+ --color-button: #151a1e;
+ --color-code-bg: #14171a;
+ --color-shadow: #00001758;
+ --color-secondary-bg: #2f3138;
+ --color-expand-button: #2b353e;
+ --color-placeholder-text: var(--color-text-light-3);
+ --color-editor-line-highlight: var(--color-primary-light-5);
+ --color-project-column-bg: var(--color-secondary-light-2);
+ --color-caret: var(--color-text); /* should ideally be --color-text-dark, see #15651 */
+ --color-reaction-bg: #e8e8ff12;
+ --color-reaction-hover-bg: var(--color-primary-light-4);
+ --color-reaction-active-bg: var(--color-primary-light-5);
+ --color-tooltip-text: #fafafb;
+ --color-tooltip-bg: #000017f0;
+ --color-nav-bg: #16191c;
+ --color-nav-hover-bg: var(--color-secondary-light-1);
+ --color-nav-text: var(--color-text);
+ --color-secondary-nav-bg: #181c20;
+ --color-label-text: var(--color-text);
+ --color-label-bg: #73828e4b;
+ --color-label-hover-bg: #73828ea0;
+ --color-label-active-bg: #73828eff;
+ --color-accent: var(--color-primary-light-1);
+ --color-small-accent: var(--color-primary-light-5);
+ --color-highlight-fg: #87651e;
+ --color-highlight-bg: #352c1c;
+ --color-overlay-backdrop: #080808c0;
+ /* pattern colors for image diff */
+ --checkerboard-color-1: #313131;
+ --checkerboard-color-2: #212121;
+ accent-color: var(--color-accent);
+ color-scheme: dark;
+}
+
+/* invert emojis that are hard to read otherwise */
+.emoji[aria-label="check mark"],
+.emoji[aria-label="currency exchange"],
+.emoji[aria-label="TOP arrow"],
+.emoji[aria-label="END arrow"],
+.emoji[aria-label="ON! arrow"],
+.emoji[aria-label="SOON arrow"],
+.emoji[aria-label="heavy dollar sign"],
+.emoji[aria-label="copyright"],
+.emoji[aria-label="registered"],
+.emoji[aria-label="trade mark"],
+.emoji[aria-label="multiply"],
+.emoji[aria-label="plus"],
+.emoji[aria-label="minus"],
+.emoji[aria-label="divide"],
+.emoji[aria-label="curly loop"],
+.emoji[aria-label="double curly loop"],
+.emoji[aria-label="wavy dash"],
+.emoji[aria-label="paw prints"],
+.emoji[aria-label="musical note"],
+.emoji[aria-label="musical notes"] {
+ filter: invert(100%) hue-rotate(180deg);
+}
diff --git a/web_src/css/themes/theme-gitea-light.css b/web_src/css/themes/theme-gitea-light.css
new file mode 100644
index 0000000..830b96f
--- /dev/null
+++ b/web_src/css/themes/theme-gitea-light.css
@@ -0,0 +1,247 @@
+@import "../chroma/light.css";
+@import "../codemirror/light.css";
+@import "../markup/light.css";
+
+:root {
+ --is-dark-theme: false;
+ --color-primary: #4183c4;
+ --color-primary-contrast: #ffffff;
+ --color-primary-dark-1: #3876b3;
+ --color-primary-dark-2: #31699f;
+ --color-primary-dark-3: #2b5c8b;
+ --color-primary-dark-4: #254f77;
+ --color-primary-dark-5: #193450;
+ --color-primary-dark-6: #0c1a28;
+ --color-primary-dark-7: #04080c;
+ --color-primary-light-1: #548fca;
+ --color-primary-light-2: #679cd0;
+ --color-primary-light-3: #7aa8d6;
+ --color-primary-light-4: #8db5dc;
+ --color-primary-light-5: #b3cde7;
+ --color-primary-light-6: #d9e6f3;
+ --color-primary-light-7: #f4f8fb;
+ --color-primary-alpha-10: #4183c419;
+ --color-primary-alpha-20: #4183c433;
+ --color-primary-alpha-30: #4183c44b;
+ --color-primary-alpha-40: #4183c466;
+ --color-primary-alpha-50: #4183c480;
+ --color-primary-alpha-60: #4183c499;
+ --color-primary-alpha-70: #4183c4b3;
+ --color-primary-alpha-80: #4183c4cc;
+ --color-primary-alpha-90: #4183c4e1;
+ --color-primary-hover: var(--color-primary-dark-1);
+ --color-primary-active: var(--color-primary-dark-2);
+ --color-secondary: #d0d7de;
+ --color-secondary-dark-1: #c7ced5;
+ --color-secondary-dark-2: #b9c0c7;
+ --color-secondary-dark-3: #99a0a7;
+ --color-secondary-dark-4: #899097;
+ --color-secondary-dark-5: #7a8188;
+ --color-secondary-dark-6: #6a7178;
+ --color-secondary-dark-7: #5b6269;
+ --color-secondary-dark-8: #4b5259;
+ --color-secondary-dark-9: #3c434a;
+ --color-secondary-dark-10: #2c333a;
+ --color-secondary-dark-11: #1d242b;
+ --color-secondary-dark-12: #0d141b;
+ --color-secondary-dark-13: #00040b;
+ --color-secondary-light-1: #dee5ec;
+ --color-secondary-light-2: #e4ebf2;
+ --color-secondary-light-3: #ebf2f9;
+ --color-secondary-light-4: #f1f8ff;
+ --color-secondary-alpha-10: #d0d7de19;
+ --color-secondary-alpha-20: #d0d7de33;
+ --color-secondary-alpha-30: #d0d7de4b;
+ --color-secondary-alpha-40: #d0d7de66;
+ --color-secondary-alpha-50: #d0d7de80;
+ --color-secondary-alpha-60: #d0d7de99;
+ --color-secondary-alpha-70: #d0d7deb3;
+ --color-secondary-alpha-80: #d0d7decc;
+ --color-secondary-alpha-90: #d0d7dee1;
+ --color-secondary-button: var(--color-secondary-dark-4);
+ --color-secondary-hover: var(--color-secondary-dark-5);
+ --color-secondary-active: var(--color-secondary-dark-6);
+ /* console colors - used for actions console and console files */
+ --color-console-fg: #f8f8f9;
+ --color-console-fg-subtle: #bec4c8;
+ --color-console-bg: #171b1e;
+ --color-console-border: #2e353b;
+ --color-console-hover-bg: #292d31;
+ --color-console-active-bg: #2e353b;
+ --color-console-menu-bg: #252b30;
+ --color-console-menu-border: #424b51;
+ /* named colors */
+ --color-red: #db2828;
+ --color-orange: #f2711c;
+ --color-yellow: #fbbd08;
+ --color-olive: #b5cc18;
+ --color-green: #21ba45;
+ --color-teal: #00b5ad;
+ --color-blue: #2185d0;
+ --color-violet: #6435c9;
+ --color-purple: #a333c8;
+ --color-pink: #e03997;
+ --color-brown: #a5673f;
+ --color-black: #191c1d;
+ /* light variants - produced via Sass scale-color(color, $lightness: +25%) */
+ --color-red-light: #e45e5e;
+ --color-orange-light: #f59555;
+ --color-yellow-light: #fcce46;
+ --color-olive-light: #d3e942;
+ --color-green-light: #46de6a;
+ --color-teal-light: #08fff4;
+ --color-blue-light: #51a5e3;
+ --color-violet-light: #8b67d7;
+ --color-purple-light: #bb64d8;
+ --color-pink-light: #e86bb1;
+ --color-brown-light: #c58b66;
+ --color-black-light: #525558;
+ /* dark 1 variants - produced via Sass scale-color(color, $lightness: -10%) */
+ --color-red-dark-1: #c82121;
+ --color-orange-dark-1: #e6630d;
+ --color-yellow-dark-1: #e5ac04;
+ --color-olive-dark-1: #a3b816;
+ --color-green-dark-1: #1ea73e;
+ --color-teal-dark-1: #00a39c;
+ --color-blue-dark-1: #1e78bb;
+ --color-violet-dark-1: #5a30b5;
+ --color-purple-dark-1: #932eb4;
+ --color-pink-dark-1: #db228a;
+ --color-brown-dark-1: #955d39;
+ --color-black-dark-1: #16191c;
+ /* dark 2 variants - produced via Sass scale-color(color, $lightness: -20%) */
+ --color-red-dark-2: #b11e1e;
+ --color-orange-dark-2: #cc580c;
+ --color-yellow-dark-2: #cc9903;
+ --color-olive-dark-2: #91a313;
+ --color-green-dark-2: #1a9537;
+ --color-teal-dark-2: #00918a;
+ --color-blue-dark-2: #1a6aa6;
+ --color-violet-dark-2: #502aa1;
+ --color-purple-dark-2: #8229a0;
+ --color-pink-dark-2: #c21e7b;
+ --color-brown-dark-2: #845232;
+ --color-black-dark-2: #131619;
+ /* ansi colors used for actions console and console files */
+ --color-ansi-black: #1f2326;
+ --color-ansi-red: #cc4848;
+ --color-ansi-green: #87ab63;
+ --color-ansi-yellow: #cc9903;
+ --color-ansi-blue: #3a8ac6;
+ --color-ansi-magenta: #d22e8b;
+ --color-ansi-cyan: #00918a;
+ --color-ansi-white: var(--color-console-fg-subtle);
+ --color-ansi-bright-black: #46494d;
+ --color-ansi-bright-red: #d15a5a;
+ --color-ansi-bright-green: #93b373;
+ --color-ansi-bright-yellow: #eaaf03;
+ --color-ansi-bright-blue: #4e96cc;
+ --color-ansi-bright-magenta: #d74397;
+ --color-ansi-bright-cyan: #00b6ad;
+ --color-ansi-bright-white: var(--color-console-fg);
+ /* other colors */
+ --color-grey: #697077;
+ --color-grey-light: #7c838a;
+ --color-gold: #a1882b;
+ --color-white: #ffffff;
+ --color-diff-removed-word-bg: #fdb8c0;
+ --color-diff-added-word-bg: #acf2bd;
+ --color-diff-removed-row-bg: #ffeef0;
+ --color-diff-moved-row-bg: #f1f8d1;
+ --color-diff-added-row-bg: #e6ffed;
+ --color-diff-removed-row-border: #f1c0c0;
+ --color-diff-moved-row-border: #d0e27f;
+ --color-diff-added-row-border: #e6ffed;
+ --color-diff-inactive: #f0f2f4;
+ --color-error-border: #e0b4b4;
+ --color-error-bg: #fff6f6;
+ --color-error-bg-active: #fbb;
+ --color-error-bg-hover: #fdd;
+ --color-error-text: #9f3a38;
+ --color-success-border: #a3c293;
+ --color-success-bg: #fcfff5;
+ --color-success-text: #2c662d;
+ --color-warning-border: #c9ba9b;
+ --color-warning-bg: #fffaf3;
+ --color-warning-text: #573a08;
+ --color-info-border: #a9d5de;
+ --color-info-bg: #f8ffff;
+ --color-info-text: #276f86;
+ --color-red-badge: #db2828;
+ --color-red-badge-bg: #db28281a;
+ --color-red-badge-hover-bg: #db28284d;
+ --color-green-badge: #21ba45;
+ --color-green-badge-bg: #21ba451a;
+ --color-green-badge-hover-bg: #21ba454d;
+ --color-yellow-badge: #fbbd08;
+ --color-yellow-badge-bg: #fbbd081a;
+ --color-yellow-badge-hover-bg: #fbbd084d;
+ --color-orange-badge: #f2711c;
+ --color-orange-badge-bg: #f2711c1a;
+ --color-orange-badge-hover-bg: #f2711c4d;
+ --color-git: #f05133;
+ /* Icon colors (PR/Issue/...) */
+ --color-icon-green: var(--color-green);
+ --color-icon-red: var(--color-red);
+ --color-icon-purple: var(--color-purple);
+ /* target-based colors */
+ --color-body: #ffffff;
+ --color-box-header: #f1f3f5;
+ --color-box-body: #ffffff;
+ --color-box-body-highlight: #ecf5fd;
+ --color-text-dark: #01050a;
+ --color-text: #181c21;
+ --color-text-light: #30363b;
+ --color-text-light-1: #40474d;
+ --color-text-light-2: #5b6167;
+ --color-text-light-3: #747c84;
+ --color-footer: var(--color-nav-bg);
+ --color-timeline: #d0d7de;
+ --color-input-text: var(--color-text-dark);
+ --color-input-background: #fff;
+ --color-input-toggle-background: #d0d7de;
+ --color-input-border: var(--color-secondary);
+ --color-input-border-hover: var(--color-secondary-dark-1);
+ --color-light: #00001706;
+ --color-light-mimic-enabled: rgba(0, 0, 0, calc(6 / 255 * 222 / 255 / var(--opacity-disabled)));
+ --color-light-border: #0000171d;
+ --color-hover: #00001708;
+ --color-active: #00001714;
+ --color-menu: #f8f9fb;
+ --color-card: #f8f9fb;
+ --color-markup-table-row: #0030600a;
+ --color-markup-code-block: #00306010;
+ --color-markup-code-inline: #00306012;
+ --color-button: #f8f9fb;
+ --color-code-bg: #fafdff;
+ --color-shadow: #00001726;
+ --color-secondary-bg: #f2f5f8;
+ --color-expand-button: #cfe8fa;
+ --color-placeholder-text: var(--color-text-light-3);
+ --color-editor-line-highlight: var(--color-primary-light-6);
+ --color-project-column-bg: var(--color-secondary-light-4);
+ --color-caret: var(--color-text-dark);
+ --color-reaction-bg: #0000170a;
+ --color-reaction-hover-bg: var(--color-primary-light-5);
+ --color-reaction-active-bg: var(--color-primary-light-6);
+ --color-tooltip-text: #fbfdff;
+ --color-tooltip-bg: #000017f0;
+ --color-nav-bg: #f6f7fa;
+ --color-nav-hover-bg: var(--color-secondary-light-1);
+ --color-nav-text: var(--color-text);
+ --color-secondary-nav-bg: #f9fafb;
+ --color-label-text: var(--color-text);
+ --color-label-bg: #949da64b;
+ --color-label-hover-bg: #949da6a0;
+ --color-label-active-bg: #949da6ff;
+ --color-accent: var(--color-primary-light-1);
+ --color-small-accent: var(--color-primary-light-6);
+ --color-highlight-fg: #eed200;
+ --color-highlight-bg: #fffbdd;
+ --color-overlay-backdrop: #080808c0;
+ /* pattern colors for gradient */
+ --checkerboard-color-1: #ffffff;
+ --checkerboard-color-2: #e5e5e5;
+ accent-color: var(--color-accent);
+ color-scheme: light;
+}