394 lines
16 KiB
CSS
394 lines
16 KiB
CSS
/*
|
|
* theme-mono-dark.css
|
|
* ─────────────────────────────────────────────────────────────────────────
|
|
* Monochrome dark + soft-UI. The default look: grayscale chrome, a near-white
|
|
* accent, and a shared neumorphic layer. Colour is reserved for meaning
|
|
* (success / warning / danger / diffs) rather than decoration.
|
|
*
|
|
* Layers: built-in dark palette → neumorphism → monochrome overrides.
|
|
*/
|
|
|
|
@import url("./_base-forgejo-dark.css");
|
|
@import url("./theme-neumorphism.css");
|
|
|
|
:root {
|
|
color-scheme: dark;
|
|
--is-dark-theme: true;
|
|
|
|
/* ── Typography ─────────────────────────────────────────────────── */
|
|
--fonts-proportional: "Inter", "SF Pro Text", -apple-system, "Segoe UI",
|
|
"Noto Sans", system-ui, sans-serif !important;
|
|
--fonts-monospace: "JetBrains Mono", "Cascadia Code", "Fira Code",
|
|
"SF Mono", "Source Code Pro", ui-monospace, "DejaVu Sans Mono",
|
|
Consolas, monospace !important;
|
|
|
|
/* ── Neutral ramp (dark → light) ────────────────────────────────── */
|
|
--steel-900: #101012;
|
|
--steel-850: #101012;
|
|
--steel-800: #17171a;
|
|
--steel-750: #1d1d20;
|
|
--steel-700: #1d1d20;
|
|
--steel-650: #2c2c30;
|
|
--steel-600: #45454b;
|
|
--steel-550: #5a5a61;
|
|
--steel-500: #737379;
|
|
--steel-450: #8f8f96;
|
|
--steel-400: #ababb2;
|
|
--steel-350: #c7c7cd;
|
|
--steel-300: #c7c7cd;
|
|
--steel-250: #e3e3e8;
|
|
--steel-200: #e3e3e8;
|
|
--steel-150: #e3e3e8;
|
|
--steel-100: #f5f5f7;
|
|
|
|
/* ── Primary: near-white ────────────────────────────────────────── */
|
|
--color-primary: #dcdce1;
|
|
--color-primary-contrast: #121214;
|
|
--color-primary-dark-1: #ececf0;
|
|
--color-primary-dark-2: #ececf0;
|
|
--color-primary-dark-3: #f3f3f5;
|
|
--color-primary-dark-4: #f3f3f5;
|
|
--color-primary-dark-5: #f8f8fa;
|
|
--color-primary-dark-6: #fafafb;
|
|
--color-primary-dark-7: #fdfdfe;
|
|
--color-primary-light-1: #b6b6bd;
|
|
--color-primary-light-2: #8f8f96;
|
|
--color-primary-light-3: #8f8f96;
|
|
--color-primary-light-4: #737379;
|
|
--color-primary-light-5: #5a5a61;
|
|
--color-primary-light-6: #45454b;
|
|
--color-primary-light-7: #36363b;
|
|
--color-primary-alpha-10: rgba(220, 220, 225, 0.10);
|
|
--color-primary-alpha-20: rgba(220, 220, 225, 0.20);
|
|
--color-primary-alpha-30: rgba(220, 220, 225, 0.30);
|
|
--color-primary-alpha-40: rgba(220, 220, 225, 0.40);
|
|
--color-primary-alpha-50: rgba(220, 220, 225, 0.50);
|
|
--color-primary-alpha-60: rgba(220, 220, 225, 0.60);
|
|
--color-primary-alpha-70: rgba(220, 220, 225, 0.70);
|
|
--color-primary-alpha-80: rgba(220, 220, 225, 0.80);
|
|
--color-primary-alpha-90: rgba(220, 220, 225, 0.90);
|
|
--color-primary-hover: #ececf0;
|
|
--color-primary-active: #b6b6bd;
|
|
|
|
/* ── Secondary ──────────────────────────────────────────────────── */
|
|
--color-secondary: #2c2c30;
|
|
--color-secondary-dark-1: #5a5a61;
|
|
--color-secondary-dark-2: #737379;
|
|
--color-secondary-dark-3: #8f8f96;
|
|
--color-secondary-dark-4: #ababb2;
|
|
--color-secondary-dark-5: #c7c7cd;
|
|
--color-secondary-dark-6: #c7c7cd;
|
|
--color-secondary-dark-7: #e3e3e8;
|
|
--color-secondary-dark-8: #e3e3e8;
|
|
--color-secondary-dark-9: #e3e3e8;
|
|
--color-secondary-dark-10: #f5f5f7;
|
|
--color-secondary-dark-11: #f5f5f7;
|
|
--color-secondary-dark-12: #f5f5f7;
|
|
--color-secondary-dark-13: #f5f5f7;
|
|
--color-secondary-light-1: #36363b;
|
|
--color-secondary-light-2: #1d1d20;
|
|
--color-secondary-light-3: #1d1d20;
|
|
--color-secondary-light-4: #17171a;
|
|
--color-secondary-alpha-10: rgba(44, 44, 48, 0.10);
|
|
--color-secondary-alpha-20: rgba(44, 44, 48, 0.20);
|
|
--color-secondary-alpha-30: rgba(44, 44, 48, 0.30);
|
|
--color-secondary-alpha-40: rgba(44, 44, 48, 0.40);
|
|
--color-secondary-alpha-50: rgba(44, 44, 48, 0.50);
|
|
--color-secondary-alpha-60: rgba(44, 44, 48, 0.60);
|
|
--color-secondary-alpha-70: rgba(44, 44, 48, 0.70);
|
|
--color-secondary-alpha-80: rgba(44, 44, 48, 0.80);
|
|
--color-secondary-alpha-90: rgba(44, 44, 48, 0.90);
|
|
--color-secondary-hover: #36363b;
|
|
--color-secondary-active: #45454b;
|
|
|
|
/* ── Named accents: muted, used only for meaning ────────────────── */
|
|
--color-red: #e0736f;
|
|
--color-orange: #d9a066;
|
|
--color-yellow: #d9c069;
|
|
--color-olive: #a8bf7a;
|
|
--color-green: #9cbf87;
|
|
--color-teal: #7fb3a4;
|
|
--color-blue: #8fb0c9;
|
|
--color-violet: #a894c9;
|
|
--color-purple: #c09ac9;
|
|
--color-pink: #c99ab3;
|
|
--color-brown: #a98d72;
|
|
--color-grey: #8f8f96;
|
|
--color-black: #17171a;
|
|
|
|
--color-red-light: #ef9a97;
|
|
--color-orange-light: #e8bd8c;
|
|
--color-yellow-light: #e8d79a;
|
|
--color-olive-light: #c3d4a0;
|
|
--color-green-light: #bcd5ab;
|
|
--color-teal-light: #a3cdc1;
|
|
--color-blue-light: #b3cadd;
|
|
--color-violet-light: #c4b6dd;
|
|
--color-purple-light: #d6bcdd;
|
|
--color-pink-light: #ddbcd0;
|
|
--color-brown-light: #c4ab93;
|
|
--color-grey-light: #ababb2;
|
|
--color-black-light: #1d1d20;
|
|
|
|
--color-red-dark-1: #b85552;
|
|
--color-orange-dark-1: #b07f4a;
|
|
--color-yellow-dark-1: #b09a4a;
|
|
--color-olive-dark-1: #82965c;
|
|
--color-green-dark-1: #789660;
|
|
--color-teal-dark-1: #5f8f82;
|
|
--color-blue-dark-1: #6f8fa8;
|
|
--color-violet-dark-1: #8370a3;
|
|
--color-purple-dark-1: #9a76a3;
|
|
--color-pink-dark-1: #a3768f;
|
|
--color-brown-dark-1: #856e58;
|
|
--color-grey-dark-1: #737379;
|
|
--color-black-dark-1: #101012;
|
|
|
|
--color-red-dark-2: #8f3f3d;
|
|
--color-orange-dark-2: #8a6339;
|
|
--color-yellow-dark-2: #8a7839;
|
|
--color-olive-dark-2: #647346;
|
|
--color-green-dark-2: #5c734a;
|
|
--color-teal-dark-2: #486d63;
|
|
--color-blue-dark-2: #546d80;
|
|
--color-violet-dark-2: #65557d;
|
|
--color-purple-dark-2: #775a7d;
|
|
--color-pink-dark-2: #7d5a6d;
|
|
--color-brown-dark-2: #665444;
|
|
--color-grey-dark-2: #5a5a61;
|
|
--color-black-dark-2: #101012;
|
|
|
|
--color-gold: #b8a05a;
|
|
--color-white: #f5f5f7;
|
|
--color-pure-black: #101012;
|
|
|
|
/* ── ANSI ───────────────────────────────────────────────────────── */
|
|
--color-ansi-black: #1d1d20;
|
|
--color-ansi-red: #b85552;
|
|
--color-ansi-green: #789660;
|
|
--color-ansi-yellow: #b09a4a;
|
|
--color-ansi-blue: #6f8fa8;
|
|
--color-ansi-magenta: #9a76a3;
|
|
--color-ansi-cyan: #5f8f82;
|
|
--color-ansi-white: #ababb2;
|
|
--color-ansi-bright-black: #5a5a61;
|
|
--color-ansi-bright-red: #ef9a97;
|
|
--color-ansi-bright-green: #bcd5ab;
|
|
--color-ansi-bright-yellow: #e8d79a;
|
|
--color-ansi-bright-blue: #b3cadd;
|
|
--color-ansi-bright-magenta: #d6bcdd;
|
|
--color-ansi-bright-cyan: #a3cdc1;
|
|
--color-ansi-bright-white: #f5f5f7;
|
|
|
|
/* ── Diffs ──────────────────────────────────────────────────────── */
|
|
--color-diff-removed-word-bg: rgba(224, 115, 111, 0.30);
|
|
--color-diff-added-word-bg: rgba(156, 191, 135, 0.26);
|
|
--color-diff-removed-row-bg: rgba(224, 115, 111, 0.10);
|
|
--color-diff-moved-row-bg: rgba(217, 160, 102, 0.13);
|
|
--color-diff-added-row-bg: rgba(156, 191, 135, 0.10);
|
|
--color-diff-removed-row-border: rgba(224, 115, 111, 0.40);
|
|
--color-diff-moved-row-border: rgba(217, 192, 105, 0.40);
|
|
--color-diff-added-row-border: rgba(156, 191, 135, 0.40);
|
|
--color-diff-inactive: #1d1d20;
|
|
|
|
/* ── Status ─────────────────────────────────────────────────────── */
|
|
--color-error-border: #a05a58;
|
|
--color-error-bg: #3a2526;
|
|
--color-error-bg-active: #4a2c2d;
|
|
--color-error-bg-hover: #4a2c2d;
|
|
--color-error-text: #f0b7b5;
|
|
--color-success-border: #6f9a7e;
|
|
--color-success-bg: #25302a;
|
|
--color-success-text: #b8e0c4;
|
|
--color-warning-border: #b7a05a;
|
|
--color-warning-bg: #33301f;
|
|
--color-warning-text: #f0dfa8;
|
|
--color-info-border: #6f93ad;
|
|
--color-info-bg: #23303a;
|
|
--color-info-text: #b8d4e8;
|
|
|
|
/* ── Badges ─────────────────────────────────────────────────────── */
|
|
--color-red-badge: #e0736f;
|
|
--color-red-badge-bg: rgba(224, 115, 111, 0.14);
|
|
--color-red-badge-hover-bg: rgba(224, 115, 111, 0.26);
|
|
--color-green-badge: #9cbf87;
|
|
--color-green-badge-bg: rgba(156, 191, 135, 0.14);
|
|
--color-green-badge-hover-bg: rgba(156, 191, 135, 0.26);
|
|
--color-yellow-badge: #d9c069;
|
|
--color-yellow-badge-bg: rgba(217, 192, 105, 0.14);
|
|
--color-yellow-badge-hover-bg: rgba(217, 192, 105, 0.26);
|
|
--color-orange-badge: #d9a066;
|
|
--color-orange-badge-bg: rgba(217, 160, 102, 0.14);
|
|
--color-orange-badge-hover-bg: rgba(217, 160, 102, 0.26);
|
|
|
|
/* ── Thin accents / danger ──────────────────────────────────────── */
|
|
--color-thin-green: #9cbf87;
|
|
--color-thin-red: #e0736f;
|
|
--color-thin-purple: #c09ac9;
|
|
--color-thin-orange: #d9a066;
|
|
--color-thin-red-highlight: #ef9a97;
|
|
--color-danger-bg: #3a2526;
|
|
|
|
/* ── Surfaces ───────────────────────────────────────────────────── */
|
|
--color-body: #17171a;
|
|
--color-box-header: #1d1d20;
|
|
--color-box-body: #1d1d20;
|
|
--color-box-body-highlight: #2c2c30;
|
|
--color-text-dark: #121214;
|
|
--color-text: #e3e3e8;
|
|
--color-text-light: #c7c7cd;
|
|
--color-text-light-1: #c7c7cd;
|
|
--color-text-light-2: #ababb2;
|
|
--color-text-light-3: #8f8f96;
|
|
--color-footer: #101012;
|
|
--color-timeline: #2c2c30;
|
|
--color-input-text: #e3e3e8;
|
|
--color-input-background: #121214;
|
|
--color-input-toggle-background: #2c2c30;
|
|
--color-input-border: #45454b;
|
|
--color-input-border-hover: #5a5a61;
|
|
--color-header-wrapper: #101012;
|
|
--color-header-wrapper-transparent: rgba(16, 16, 18, 0);
|
|
--color-light: rgba(0, 0, 0, 0.30);
|
|
--color-light-border: rgba(255, 255, 255, 0.10);
|
|
--color-hover: #2c2c30;
|
|
--color-active: #36363b;
|
|
--color-menu: #1d1d20;
|
|
--color-card: #1d1d20;
|
|
--fancy-card-bg: #1d1d20;
|
|
--fancy-card-border: #2c2c30;
|
|
--color-markup-table-row: rgba(255, 255, 255, 0.03);
|
|
--color-markup-code-block: #121214;
|
|
--color-markup-code-inline: #1d1d20;
|
|
--color-button: #1d1d20;
|
|
--color-code-bg: #121214;
|
|
--color-shadow: rgba(0, 0, 0, 0.45);
|
|
--color-secondary-bg: #1d1d20;
|
|
--color-text-focus: #f5f5f7;
|
|
--color-expand-button: #2c2c30;
|
|
--color-placeholder-text: #5a5a61;
|
|
--color-editor-line-highlight: #1d1d20;
|
|
--color-project-board-bg: #1d1d20;
|
|
--color-project-board-dark-label: #8f8f96;
|
|
--color-caret: #dcdce1;
|
|
--color-reaction-bg: rgba(255, 255, 255, 0.06);
|
|
--color-reaction-active-bg: rgba(220, 220, 225, 0.22);
|
|
--color-reaction-hover-bg: rgba(220, 220, 225, 0.32);
|
|
--color-tooltip-text: #e3e3e8;
|
|
--color-tooltip-bg: #101012;
|
|
--color-nav-bg: #101012;
|
|
--color-nav-hover-bg: #2c2c30;
|
|
--color-secondary-nav-bg: #17171a;
|
|
--color-label-text: #e3e3e8;
|
|
--color-label-bg: #2c2c30;
|
|
--color-label-hover-bg: #36363b;
|
|
--color-label-active-bg: #45454b;
|
|
--color-label-bg-alt: #36363b;
|
|
--color-accent: #dcdce1;
|
|
--color-small-accent: #8f8f96;
|
|
--color-highlight-fg: #e3e3e8;
|
|
--color-highlight-bg: rgba(220, 220, 225, 0.12);
|
|
--color-overlay-backdrop: rgba(16, 16, 18, 0.78);
|
|
--color-selection-bg: rgba(220, 220, 225, 0.28);
|
|
--color-selection-fg: #f5f5f7;
|
|
--checkerboard-color-1: #1d1d20;
|
|
--checkerboard-color-2: #121214;
|
|
--color-indicator-offline: #737379;
|
|
--color-indicator-offline-20: rgba(115, 115, 121, 0.20);
|
|
--color-indicator-idle: #9cbf87;
|
|
--color-indicator-idle-20: rgba(156, 191, 135, 0.20);
|
|
--color-indicator-active: #8fb0c9;
|
|
--color-indicator-active-20: rgba(143, 176, 201, 0.20);
|
|
|
|
/* ── Console ────────────────────────────────────────────────────── */
|
|
--color-console-fg: #e3e3e8;
|
|
--color-console-fg-subtle: #8f8f96;
|
|
--color-console-bg: #0e0e10;
|
|
--color-console-border: #2c2c30;
|
|
--color-console-hover-bg: rgba(255, 255, 255, 0.06);
|
|
--color-console-active-bg: #36363b;
|
|
--color-console-menu-bg: #1d1d20;
|
|
--color-console-menu-border: #45454b;
|
|
|
|
/* ── Neumorphism ────────────────────────────────────────────────── */
|
|
--nm-shadow-dark: rgba(0, 0, 0, 0.58);
|
|
--nm-shadow-light: rgba(255, 255, 255, 0.045);
|
|
--nm-divider-color: rgba(255, 255, 255, 0.06);
|
|
--nm-radius: 14px;
|
|
--nm-radius-sm: 10px;
|
|
}
|
|
|
|
/* ═══════════════════════════════════════════════════════════════════════
|
|
Monochrome flavour
|
|
═══════════════════════════════════════════════════════════════════════ */
|
|
|
|
body {
|
|
background-color: #17171a !important;
|
|
color: #e3e3e8 !important;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
a { color: #c7c7cd !important; text-decoration: none !important; }
|
|
a:hover,
|
|
a:focus {
|
|
color: #f5f5f7 !important;
|
|
text-decoration: underline !important;
|
|
text-underline-offset: 2px;
|
|
}
|
|
.text.grey a,
|
|
.meta a,
|
|
.commit-header a,
|
|
.breadcrumb a,
|
|
.ui.breadcrumb a,
|
|
.sha,
|
|
.commit-sha { color: #8f8f96 !important; }
|
|
.text.grey a:hover,
|
|
.meta a:hover,
|
|
.commit-header a:hover,
|
|
.breadcrumb a:hover { color: #f5f5f7 !important; }
|
|
|
|
.navbar .brand,
|
|
.navbar .brand:hover { color: #f5f5f7 !important; font-weight: 600; }
|
|
|
|
::selection {
|
|
background: rgba(220, 220, 225, 0.28);
|
|
color: #f5f5f7;
|
|
}
|
|
|
|
.sha,
|
|
.commit-sha,
|
|
.commit-id-short,
|
|
.version,
|
|
.ui.label.sha { font-family: var(--fonts-monospace) !important; }
|
|
|
|
/* Greyscale syntax highlighting — structure from weight, not colour */
|
|
.chroma { background: #121214 !important; }
|
|
.chroma .c, .chroma .c1, .chroma .ch, .chroma .cm,
|
|
.chroma .cs, .chroma .cp, .chroma .cpf { color: #6a6a72; font-style: italic; }
|
|
.chroma .k, .chroma .kc, .chroma .kd, .chroma .kn,
|
|
.chroma .kr, .chroma .kt, .chroma .nt, .chroma .nc, .chroma .ne { color: #e3e3e8; font-weight: 600; }
|
|
.chroma .o, .chroma .ow, .chroma .p, .chroma .punctuation { color: #8f8f96; }
|
|
.chroma .s, .chroma .s1, .chroma .s2, .chroma .sb, .chroma .sc,
|
|
.chroma .sd, .chroma .sh, .chroma .sx, .chroma .se, .chroma .ss { color: #ababb2; }
|
|
.chroma .m, .chroma .mb, .chroma .mf, .chroma .mh,
|
|
.chroma .mi, .chroma .mo, .chroma .il { color: #c7c7cd; }
|
|
.chroma .n, .chroma .nx, .chroma .nn, .chroma .nv,
|
|
.chroma .vc, .chroma .vg, .chroma .vi, .chroma .vm { color: #e3e3e8; }
|
|
.chroma .na, .chroma .nb, .chroma .bp, .chroma .nf,
|
|
.chroma .ni, .chroma .nl, .chroma .py, .chroma .nd { color: #dcdce1; }
|
|
.chroma .gd { color: #f5f5f7; background-color: #3a2526; }
|
|
.chroma .gi { color: #f5f5f7; background-color: #25302a; }
|
|
|
|
/* CodeMirror */
|
|
.CodeMirror.cm-s-default .cm-keyword, .CodeMirror.cm-s-paper .cm-keyword { color: #f5f5f7; font-weight: 600; }
|
|
.CodeMirror.cm-s-default .cm-atom, .CodeMirror.cm-s-paper .cm-atom,
|
|
.CodeMirror.cm-s-default .cm-number, .CodeMirror.cm-s-paper .cm-number { color: #c7c7cd; }
|
|
.CodeMirror.cm-s-default .cm-def, .CodeMirror.cm-s-paper .cm-def { color: #dcdce1; }
|
|
.CodeMirror.cm-s-default .cm-comment, .CodeMirror.cm-s-paper .cm-comment { color: #6a6a72; }
|
|
.CodeMirror.cm-s-default .cm-string, .CodeMirror.cm-s-paper .cm-string { color: #ababb2; }
|
|
.CodeMirror.cm-s-default .cm-string-2, .CodeMirror.cm-s-paper .cm-string-2 { color: #c7c7cd; }
|
|
.CodeMirror.cm-s-default .cm-meta, .CodeMirror.cm-s-paper .cm-meta,
|
|
.CodeMirror.cm-s-default .cm-builtin, .CodeMirror.cm-s-paper .cm-builtin,
|
|
.CodeMirror.cm-s-default .cm-attribute, .CodeMirror.cm-s-paper .cm-attribute { color: #dcdce1; }
|
|
.CodeMirror.cm-s-default .cm-tag, .CodeMirror.cm-s-paper .cm-tag { color: #f5f5f7; }
|
|
.CodeMirror.cm-s-default .cm-link, .CodeMirror.cm-s-paper .cm-link { color: #c7c7cd; }
|