Some checks failed
CI / skinny-install (aco) (push) Successful in 1m12s
CI / skinny-install (api) (push) Successful in 30s
CI / skinny-install (bcda) (push) Successful in 36s
CI / skinny-install (bib) (push) Successful in 35s
CI / skinny-install (bls) (push) Successful in 27s
CI / skinny-install (ccw) (push) Successful in 32s
CI / skinny-install (cli) (push) Successful in 41s
CI / skinny-install (cms) (push) Successful in 37s
CI / skinny-install (conf) (push) Successful in 38s
CI / skinny-install (opps) (push) Successful in 33s
CI / skinny-install (perf) (push) Successful in 38s
CI / skinny-install (pfs) (push) Successful in 38s
CI / skinny-install (rex) (push) Successful in 34s
Deploy / build-scan-report (push) Failing after 46s
Infra CI / notebooks (push) Failing after 25s
Infra CI / zotero (push) Successful in 12s
Infra CI / docs (push) Failing after 16s
CI / lint-test (push) Failing after 11m2s
Infra CI / mc (push) Successful in 21s
Infra CI / api (push) Successful in 29s
Package Supply Chain / pkg-supply-chain (push) Failing after 41s
Mail: Maddy on DO (corwins.media+Resend, fhirworx.io+Postmark), touchless/stateless/idempotent. Gitea SMTP via env_file. CMS inbox at cmsupdates@mail.fhirworx.io with IMAP→bib poller. Bib: regulations.gov v4 client, Federal Register discovery, 164K comment backfill (running), IMAP email ingest, Zotero sync routing. PRISMA: altcha PoW solver, CrossRef DOI resolution, 83/129 PDFs. Zotero: schema parity, ops module, CLI, fail-fast guard. CI: docs.Dockerfile COPY glob fix (tracks #341). Infra: Gitea+marimo fhirworx themes, IOM/OIG modules.
565 lines
20 KiB
CSS
565 lines
20 KiB
CSS
/* =============================================================================
|
|
Fhirworx — Gitea theme (dark variant)
|
|
=============================================================================
|
|
Structural reference: Gitea v1.25.4 web_src/css/themes/theme-gitea-dark.css.
|
|
Variable order mirrors upstream line-for-line (clean-diff rule). Only
|
|
VALUES differ from upstream. Shares variable NAMES with theme-fhirworx.css.
|
|
========================================================================== */
|
|
|
|
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,400&family=JetBrains+Mono:wght@400;500;600&display=swap');
|
|
|
|
gitea-theme-meta-info {
|
|
--theme-display-name: "Fhirworx Dark";
|
|
}
|
|
|
|
:root {
|
|
/* --- Fhirworx dark palette (source of truth) ---------------------------- */
|
|
--fw-background: #0F1419; /* deep dark body */
|
|
--fw-foreground: #E8E5DD; /* warm off-white body text */
|
|
--fw-card: #1A2028; /* card/panel surface, lifted from body */
|
|
--fw-card-hover: #232A34;
|
|
--fw-primary: #5684A3; /* muted blue; lifted so it beats --card contrast */
|
|
--fw-primary-foreground: #0F1419;
|
|
--fw-secondary: #1F262E;
|
|
--fw-muted-foreground: #8A8A87;
|
|
--fw-border: #3A4452;
|
|
--fw-nav-bg: #0A0E13; /* even darker than body (visible separation) */
|
|
--fw-nav-text: #E8F0F8;
|
|
--fw-nav-hover-bg: #1C2B3A;
|
|
--fw-nav-active-bg: #25384C;
|
|
--fw-destructive: #E07A6E;
|
|
--fw-link: #5C9CC0;
|
|
--fw-chart-3: #B8A078;
|
|
--fw-chart-5: #E08A4A;
|
|
|
|
--fonts-override: "Source Serif 4", Georgia, serif;
|
|
--fonts-monospace: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
|
|
/* ======================================================================= */
|
|
/* BELOW: Gitea variables in upstream order (theme-gitea-dark.css). */
|
|
/* ======================================================================= */
|
|
|
|
--is-dark-theme: true;
|
|
--color-primary: var(--fw-primary);
|
|
--color-primary-contrast: var(--fw-primary-foreground);
|
|
--color-primary-dark-1: #6D97B3;
|
|
--color-primary-dark-2: #85ABC2;
|
|
--color-primary-dark-3: #9CBED1;
|
|
--color-primary-dark-4: #B3D0DF;
|
|
--color-primary-dark-5: #C8DDE8;
|
|
--color-primary-dark-6: #DEEAF1;
|
|
--color-primary-dark-7: #F1F6F9;
|
|
--color-primary-light-1: #4A7590;
|
|
--color-primary-light-2: #3E657D;
|
|
--color-primary-light-3: #33556A;
|
|
--color-primary-light-4: #294557;
|
|
--color-primary-light-5: #203644;
|
|
--color-primary-light-6: #162531;
|
|
--color-primary-light-7: #0D1620;
|
|
--color-primary-alpha-10: #5684A319;
|
|
--color-primary-alpha-20: #5684A333;
|
|
--color-primary-alpha-30: #5684A34B;
|
|
--color-primary-alpha-40: #5684A366;
|
|
--color-primary-alpha-50: #5684A380;
|
|
--color-primary-alpha-60: #5684A399;
|
|
--color-primary-alpha-70: #5684A3B3;
|
|
--color-primary-alpha-80: #5684A3CC;
|
|
--color-primary-alpha-90: #5684A3E1;
|
|
--color-primary-hover: var(--color-primary-dark-1);
|
|
--color-primary-active: var(--color-primary-dark-2);
|
|
|
|
--color-secondary: var(--fw-border);
|
|
--color-secondary-dark-1: #45505E;
|
|
--color-secondary-dark-2: #505C6A;
|
|
--color-secondary-dark-3: #5F6B7A;
|
|
--color-secondary-dark-4: #6E7A89;
|
|
--color-secondary-dark-5: #7E8A99;
|
|
--color-secondary-dark-6: #8D99A7;
|
|
--color-secondary-dark-7: #9CA7B4;
|
|
--color-secondary-dark-8: #ABB5C0;
|
|
--color-secondary-dark-9: #B7C0CA;
|
|
--color-secondary-dark-10: #C3CBD4;
|
|
--color-secondary-dark-11: #CFD6DE;
|
|
--color-secondary-dark-12: #DAE0E7;
|
|
--color-secondary-dark-13: #E3E8EE;
|
|
--color-secondary-light-1: #2F3845;
|
|
--color-secondary-light-2: #262D38;
|
|
--color-secondary-light-3: #1C222B;
|
|
--color-secondary-light-4: #161B22;
|
|
--color-secondary-alpha-10: #3A445219;
|
|
--color-secondary-alpha-20: #3A445233;
|
|
--color-secondary-alpha-30: #3A44524B;
|
|
--color-secondary-alpha-40: #3A445266;
|
|
--color-secondary-alpha-50: #3A445280;
|
|
--color-secondary-alpha-60: #3A445299;
|
|
--color-secondary-alpha-70: #3A4452B3;
|
|
--color-secondary-alpha-80: #3A4452CC;
|
|
--color-secondary-alpha-90: #3A4452E1;
|
|
--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 */
|
|
--color-console-fg: #F7F8F9;
|
|
--color-console-fg-subtle: #BDC4CC;
|
|
--color-console-bg: #050910;
|
|
--color-console-border: #2A323A;
|
|
--color-console-hover-bg: #121820;
|
|
--color-console-active-bg: #1A2028;
|
|
--color-console-menu-bg: #161B22;
|
|
--color-console-menu-border: #2E353D;
|
|
|
|
/* named colors — lifted ~15% lightness from the light variant so each hue
|
|
reads on dark bg. */
|
|
--color-red: var(--fw-destructive);
|
|
--color-orange: var(--fw-chart-5);
|
|
--color-yellow: #E5BE5A;
|
|
--color-olive: #ABC075;
|
|
--color-green: #4CB28A;
|
|
--color-teal: #66C7C0;
|
|
--color-blue: var(--fw-link);
|
|
--color-violet: #9B7FDB;
|
|
--color-purple: #B478D4;
|
|
--color-pink: #D878B0;
|
|
--color-brown: var(--fw-chart-3);
|
|
--color-black: #0A0E13;
|
|
|
|
--color-red-light: #E89891;
|
|
--color-orange-light: #E8A576;
|
|
--color-yellow-light: #EDD084;
|
|
--color-olive-light: #BCCF95;
|
|
--color-green-light: #77C6A5;
|
|
--color-teal-light: #8BD4CE;
|
|
--color-blue-light: #7CB0CB;
|
|
--color-violet-light: #AE97E0;
|
|
--color-purple-light: #C494DD;
|
|
--color-pink-light: #DF96C0;
|
|
--color-brown-light: #C6B28E;
|
|
--color-black-light: #2C333C;
|
|
|
|
--color-red-dark-1: #C86559;
|
|
--color-orange-dark-1: #C87239;
|
|
--color-yellow-dark-1: #C9A347;
|
|
--color-olive-dark-1: #92A65F;
|
|
--color-green-dark-1: #3A9876;
|
|
--color-teal-dark-1: #4FA9A2;
|
|
--color-blue-dark-1: #487FA1;
|
|
--color-violet-dark-1: #7E65BD;
|
|
--color-purple-dark-1: #9860B7;
|
|
--color-pink-dark-1: #BA6097;
|
|
--color-brown-dark-1: #9A8260;
|
|
--color-black-dark-1: #05080B;
|
|
|
|
--color-red-dark-2: #A74D42;
|
|
--color-orange-dark-2: #A35824;
|
|
--color-yellow-dark-2: #A8862F;
|
|
--color-olive-dark-2: #788B47;
|
|
--color-green-dark-2: #2D7C5F;
|
|
--color-teal-dark-2: #3B8C86;
|
|
--color-blue-dark-2: #3A688A;
|
|
--color-violet-dark-2: #634E9E;
|
|
--color-purple-dark-2: #7C4E99;
|
|
--color-pink-dark-2: #9B4C7E;
|
|
--color-brown-dark-2: #7B684C;
|
|
--color-black-dark-2: #020406;
|
|
|
|
/* ansi */
|
|
--color-ansi-black: #1E2327;
|
|
--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 */
|
|
--color-grey: var(--fw-muted-foreground);
|
|
--color-grey-light: #98948C;
|
|
--color-gold: var(--fw-chart-3);
|
|
--color-white: #FFFFFF;
|
|
|
|
/* diff colors */
|
|
--color-diff-added-linenum-bg: #1E3C2A;
|
|
--color-diff-added-row-bg: #18301E;
|
|
--color-diff-added-row-border: #2A4A32;
|
|
--color-diff-added-word-bg: #2E5C3E;
|
|
--color-diff-moved-row-bg: #423E20;
|
|
--color-diff-moved-row-border: #6A6836;
|
|
--color-diff-removed-linenum-bg: #402020;
|
|
--color-diff-removed-row-bg: #2C1818;
|
|
--color-diff-removed-row-border: #5A3434;
|
|
--color-diff-removed-word-bg: #5C2D2D;
|
|
--color-diff-inactive: #1A1F26;
|
|
|
|
--color-error-border: #8A3B3B;
|
|
--color-error-bg: #3C1F1F;
|
|
--color-error-bg-active:#5C2E2E;
|
|
--color-error-bg-hover: #4A2525;
|
|
--color-error-text: #F0B0B0;
|
|
--color-success-border: #3F7D4F;
|
|
--color-success-bg: #1F3A2A;
|
|
--color-success-text: #7EC89A;
|
|
--color-warning-border: #8A7A30;
|
|
--color-warning-bg: #3A3220;
|
|
--color-warning-text: #E5BE5A;
|
|
--color-info-border: #3A6A8F;
|
|
--color-info-bg: #1A2E44;
|
|
--color-info-text: var(--color-blue);
|
|
|
|
--color-red-badge: var(--color-red);
|
|
--color-red-badge-bg: #E07A6E1A;
|
|
--color-red-badge-hover-bg: #E07A6E4D;
|
|
--color-green-badge: var(--color-green);
|
|
--color-green-badge-bg: #4CB28A1A;
|
|
--color-green-badge-hover-bg:#4CB28A4D;
|
|
--color-yellow-badge: var(--color-yellow);
|
|
--color-yellow-badge-bg: #E5BE5A1A;
|
|
--color-yellow-badge-hover-bg:#E5BE5A4D;
|
|
--color-orange-badge: var(--color-orange);
|
|
--color-orange-badge-bg: #E08A4A1A;
|
|
--color-orange-badge-hover-bg:#E08A4A4D;
|
|
|
|
--color-git: #F05133;
|
|
--color-logo: var(--fw-primary);
|
|
|
|
/* target-based */
|
|
--color-body: var(--fw-background);
|
|
--color-box-header: var(--fw-secondary);
|
|
--color-box-body: var(--fw-card);
|
|
--color-box-body-highlight: #1E2630;
|
|
--color-text-dark: #F5F2EA;
|
|
--color-text: var(--fw-foreground);
|
|
--color-text-light: #CFCCC5;
|
|
--color-text-light-1: #B4B0A8;
|
|
--color-text-light-2: #9A968E;
|
|
--color-text-light-3: #807C74;
|
|
--color-footer: var(--color-nav-bg);
|
|
--color-timeline: var(--fw-border);
|
|
--color-input-text: var(--color-text-dark);
|
|
--color-input-background: #12171E;
|
|
--color-input-toggle-background: #2A323D;
|
|
--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: #E8F3FF28;
|
|
--color-hover: #E8F3FF14;
|
|
--color-hover-opaque: var(--fw-card-hover);
|
|
--color-active: #E8F3FF24;
|
|
|
|
/* Dropdown/menu panel bg — must visibly separate from body, even when
|
|
floating over nav. In dark we use --card (slightly lifted from body). */
|
|
--color-menu: var(--fw-card);
|
|
--color-card: var(--fw-card);
|
|
--color-markup-table-row: #E8F3FF0F;
|
|
--color-markup-code-block: #E8F3FF12;
|
|
--color-markup-code-inline:#E8F3FF20;
|
|
--color-button: var(--fw-card);
|
|
--color-code-bg: #0B0F14;
|
|
--color-shadow: #00001758;
|
|
--color-shadow-opaque: #000017;
|
|
--color-secondary-bg: var(--fw-secondary);
|
|
--color-expand-button: #2A3845;
|
|
--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);
|
|
--color-reaction-bg: #E8F3FF12;
|
|
--color-reaction-hover-bg: var(--color-primary-light-4);
|
|
--color-reaction-active-bg: var(--color-primary-light-5);
|
|
--color-tooltip-text: #F5F2EA;
|
|
--color-tooltip-bg: #000B17F0;
|
|
|
|
/* NAVBAR — still darker than body for separation */
|
|
--color-nav-bg: var(--fw-nav-bg);
|
|
--color-nav-hover-bg: var(--fw-nav-hover-bg);
|
|
--color-nav-text: var(--fw-nav-text);
|
|
--color-secondary-nav-bg: var(--color-secondary-light-3);
|
|
|
|
--color-label-text: var(--fw-foreground);
|
|
--color-label-bg: #6A7A8E4B;
|
|
--color-label-hover-bg: #6A7A8EA0;
|
|
--color-label-active-bg: #6A7A8EFF;
|
|
|
|
--color-accent: var(--color-primary-dark-1);
|
|
--color-small-accent: var(--color-primary-light-4);
|
|
--color-highlight-fg: #C9A347;
|
|
--color-highlight-bg: #3A2E1A;
|
|
--color-overlay-backdrop: #000B17D0;
|
|
|
|
/* Convenience aliases (fhirworx custom templates) */
|
|
--color-warning: var(--color-yellow);
|
|
--color-success: var(--color-green);
|
|
--color-info: var(--color-blue);
|
|
--color-error: var(--color-red);
|
|
--color-primary-foreground: var(--fw-primary-foreground);
|
|
|
|
accent-color: var(--color-accent);
|
|
color-scheme: dark only;
|
|
}
|
|
|
|
/* ============================================================================
|
|
Component polish — same structural rules as light variant.
|
|
============================================================================ */
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
font-family: "Playfair Display", Georgia, serif;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
#navbar {
|
|
border-bottom: 3px solid var(--fw-border);
|
|
}
|
|
|
|
/* ---------- #navbar sweep ---------------------------------------------------
|
|
Same logic as light variant: Fomantic classes leak default text color into
|
|
nav. In dark theme the leak is from --color-text (warm off-white) onto
|
|
--color-nav-bg (near-black) — that's actually readable, but we still force
|
|
consistent nav-text color because some Fomantic state rules flip to white/
|
|
black directly, not through variables. */
|
|
|
|
#navbar,
|
|
#navbar a,
|
|
#navbar button,
|
|
#navbar .item,
|
|
#navbar .ui.button,
|
|
#navbar .ui.label,
|
|
#navbar .ui.menu,
|
|
#navbar .ui.menu .item,
|
|
#navbar .ui.dropdown,
|
|
#navbar .ui.dropdown > .text,
|
|
#navbar .ui.input,
|
|
#navbar #navbar-expand-toggle,
|
|
#navbar .navbar-left > *,
|
|
#navbar .navbar-right > *,
|
|
#navbar .navbar-mobile-right > * {
|
|
color: var(--color-nav-text);
|
|
}
|
|
|
|
#navbar svg,
|
|
#navbar svg path,
|
|
#navbar svg circle,
|
|
#navbar svg rect,
|
|
#navbar svg polygon {
|
|
fill: currentcolor;
|
|
color: currentcolor;
|
|
}
|
|
|
|
#navbar a:hover,
|
|
#navbar button:hover,
|
|
#navbar .ui.button:hover,
|
|
#navbar .item:hover,
|
|
#navbar .item.active,
|
|
#navbar #navbar-expand-toggle:hover {
|
|
background: var(--color-nav-hover-bg);
|
|
color: var(--color-nav-text);
|
|
}
|
|
|
|
#navbar .ui.button,
|
|
#navbar .item.button {
|
|
background: transparent;
|
|
}
|
|
|
|
/* Navbar dropdown popouts: panels float over body (--fw-background); use
|
|
card surface so they visually detach from the nav. */
|
|
#navbar .ui.dropdown > .menu {
|
|
background: var(--color-menu);
|
|
color: var(--color-text);
|
|
border: 1px solid var(--color-secondary);
|
|
}
|
|
#navbar .ui.dropdown > .menu .item,
|
|
#navbar .ui.dropdown > .menu a.item,
|
|
#navbar .ui.dropdown > .menu .header.item {
|
|
color: var(--color-text);
|
|
background: transparent;
|
|
}
|
|
#navbar .ui.dropdown > .menu .item:hover,
|
|
#navbar .ui.dropdown > .menu .item.selected,
|
|
#navbar .ui.dropdown > .menu .item.active {
|
|
background: var(--color-hover);
|
|
color: var(--color-text);
|
|
}
|
|
#navbar .ui.dropdown > .menu .item svg,
|
|
#navbar .ui.dropdown > .menu .item .svg {
|
|
color: var(--color-text);
|
|
fill: currentcolor;
|
|
}
|
|
#navbar .ui.dropdown > .menu .divider {
|
|
border-color: var(--color-secondary);
|
|
}
|
|
|
|
/* Notification badge: same override as light — upstream sets
|
|
color:var(--color-nav-bg), which here is near-black = same as badge bg. */
|
|
#navbar a.item .notification_count,
|
|
#navbar a.item .header-stopwatch-dot {
|
|
color: var(--fw-nav-bg);
|
|
background: var(--fw-chart-5);
|
|
border-color: var(--fw-nav-bg);
|
|
}
|
|
#navbar a.item:hover .notification_count,
|
|
#navbar a.item:hover .header-stopwatch-dot {
|
|
border-color: var(--fw-nav-hover-bg);
|
|
}
|
|
|
|
#navbar input,
|
|
#navbar .ui.input input {
|
|
background: var(--fw-nav-hover-bg);
|
|
color: var(--fw-nav-text);
|
|
border-color: var(--fw-nav-active-bg);
|
|
}
|
|
#navbar input::placeholder,
|
|
#navbar .ui.input input::placeholder {
|
|
color: var(--color-text-light-3);
|
|
}
|
|
|
|
/* Footer + monospace */
|
|
.page-footer {
|
|
border-top: 3px solid var(--fw-border);
|
|
font-family: var(--fonts-monospace);
|
|
font-size: 12px;
|
|
}
|
|
.commit-sha, .sha, [class*="sha"],
|
|
.branch-name, .tag-name, .file-name, code.ref {
|
|
font-family: var(--fonts-monospace);
|
|
}
|
|
|
|
/* Yellow/olive/orange labels & buttons: on light-hue fills the default white
|
|
fg is still okay on dark-theme yellow/orange when the hue is lifted, but
|
|
to stay consistent across variants we pin to foreground color in both. */
|
|
.ui.ui.ui.yellow.label,
|
|
.ui.ui.ui.olive.label,
|
|
.ui.ui.ui.orange.label,
|
|
.ui.yellow.button,
|
|
.ui.olive.button,
|
|
.ui.orange.button,
|
|
.ui.yellow.button:hover,
|
|
.ui.olive.button:hover,
|
|
.ui.orange.button:hover {
|
|
color: #0F1419; /* dark text on light-hue fills; explicit for WCAG AA */
|
|
}
|
|
|
|
/* Basic-green label on dark bg — use the bright green directly, it has AA */
|
|
.ui.basic.green.label,
|
|
.ui.basic.green.labels .label {
|
|
color: var(--color-green);
|
|
border-color: var(--color-green);
|
|
}
|
|
|
|
a.ui.ui.ui.grey.label:hover,
|
|
a.ui.ui.ui.grey.label:focus {
|
|
color: var(--color-label-text);
|
|
background: var(--color-label-hover-bg);
|
|
}
|
|
|
|
.review-comments-counter {
|
|
background-color: var(--color-primary);
|
|
color: var(--color-primary-contrast);
|
|
}
|
|
|
|
.ui.card > .extra,
|
|
.ui.cards .card > .extra {
|
|
border-top-color: var(--color-secondary);
|
|
}
|
|
|
|
.text.small,
|
|
.flex-item-body .text.small {
|
|
font-family: var(--fonts-proportional), sans-serif;
|
|
}
|
|
|
|
/* `.text.COLOR` helpers — on dark bg, use the *light* variants so hue stays
|
|
saturated and contrast is on the right side of 4.5:1. base.css uses
|
|
!important, so we must match it. */
|
|
.text.orange { color: var(--color-orange-light) !important; /* AA: base.css uses !important */ }
|
|
.text.yellow { color: var(--color-yellow-light) !important; /* AA: base.css uses !important */ }
|
|
.text.olive { color: var(--color-olive-light) !important; /* AA: base.css uses !important */ }
|
|
.text.teal { color: var(--color-teal-light) !important; /* AA: base.css uses !important */ }
|
|
.text.brown { color: var(--color-brown-light) !important; /* AA: base.css uses !important */ }
|
|
.text.pink { color: var(--color-pink-light) !important; /* AA: base.css uses !important */ }
|
|
.text.gold { color: var(--color-brown-light) !important; /* AA: base.css uses !important */ }
|
|
.text.green { color: var(--color-green) !important; /* AA: base.css uses !important */ }
|
|
.text.red { color: var(--color-red) !important; /* AA: base.css uses !important */ }
|
|
.text.blue { color: var(--color-blue) !important; /* AA: base.css uses !important */ }
|
|
|
|
.ui.positive.message, .ui.success.message { color: var(--color-success-text); }
|
|
.ui.negative.message, .ui.error.message { color: var(--color-error-text); }
|
|
.ui.warning.message { color: var(--color-warning-text); }
|
|
.ui.info.message { color: var(--color-info-text); }
|
|
|
|
.secondary-nav {
|
|
background: var(--color-secondary-nav-bg) !important; /* beats .ui.secondary.menu !important */
|
|
border-bottom: 1px solid var(--color-secondary);
|
|
}
|
|
|
|
/* Link color: upstream `a { color: var(--color-primary) }`; primary in dark
|
|
is the muted blue which IS our link color already, so this is mostly a
|
|
no-op — kept for consistency with light variant. Exclude UI atoms. */
|
|
a:not(.item):not(.button):not(.label):not(.tab) {
|
|
color: var(--color-blue);
|
|
}
|
|
a:not(.item):not(.button):not(.label):not(.tab):hover {
|
|
color: var(--color-blue-light);
|
|
}
|
|
a.muted, a.suppressed, a.silenced, .muted-links a {
|
|
color: inherit;
|
|
}
|
|
|
|
.repository .diff-detail-box .diff-detail-stats strong:nth-of-type(1) {
|
|
color: var(--color-yellow);
|
|
}
|
|
|
|
/* ============================================================================
|
|
prefers-color-scheme:light defense — for users who set UA to light and
|
|
somehow land on this theme; re-assert our dark palette.
|
|
============================================================================ */
|
|
|
|
@media (prefers-color-scheme: light) {
|
|
:root {
|
|
color-scheme: dark only !important;
|
|
--color-body: var(--fw-background) !important;
|
|
--color-text: var(--fw-foreground) !important;
|
|
--color-nav-bg: var(--fw-nav-bg) !important;
|
|
--color-nav-text: var(--fw-nav-text) !important;
|
|
--color-box-body: var(--fw-card) !important;
|
|
--color-card: var(--fw-card) !important;
|
|
--color-menu: var(--fw-card) !important;
|
|
}
|
|
body {
|
|
background: var(--fw-background) !important; /* beats UA light override */
|
|
color: var(--fw-foreground) !important; /* beats UA light override */
|
|
}
|
|
}
|
|
|
|
/* invert emojis that upstream identifies as hard-to-read on dark bg */
|
|
.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);
|
|
}
|