summaryrefslogtreecommitdiff
path: root/public/stylesheets
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-26 23:19:45 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-26 23:19:45 +0200
commit20ad9e9d60c6309c0208b3f37924b4712210fa7d (patch)
tree6d861c155e04aa5f4bd5b22ad19e71de53c145cd /public/stylesheets
parentf2a3fe4750f4d709b2bc6f97bd90427311d5e397 (diff)
Give the admin stylesheet a dark mode
Diffstat (limited to 'public/stylesheets')
-rw-r--r--public/stylesheets/admin.css69
1 files changed, 38 insertions, 31 deletions
diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css
index 9ec0129d..c6f82827 100644
--- a/public/stylesheets/admin.css
+++ b/public/stylesheets/admin.css
@@ -1,5 +1,7 @@
1/* "how much Canvas": 100% = pure Canvas. System colours are UA-defined. */ 1/* "how much Canvas": 100% = pure Canvas. System colours are UA-defined. */
2:root { 2:root {
3 color-scheme: light dark;
4
3 --text: CanvasText; 5 --text: CanvasText;
4 --surface: Canvas; 6 --surface: Canvas;
5 --surface-raised: color-mix(in srgb, CanvasText, Canvas 97%); /* #f7f7f7 */ 7 --surface-raised: color-mix(in srgb, CanvasText, Canvas 97%); /* #f7f7f7 */
@@ -11,41 +13,46 @@
11 --field-border: color-mix(in srgb, CanvasText, Canvas 60%); /* #989898 */ 13 --field-border: color-mix(in srgb, CanvasText, Canvas 60%); /* #989898 */
12 --handle-fill: color-mix(in srgb, CanvasText, Canvas 60%); /* #989898 as fill */ 14 --handle-fill: color-mix(in srgb, CanvasText, Canvas 60%); /* #989898 as fill */
13 --link-underline: color-mix(in srgb, CanvasText, Canvas 69%); /* #b0b0b0 */ 15 --link-underline: color-mix(in srgb, CanvasText, Canvas 69%); /* #b0b0b0 */
14 --text-muted: color-mix(in srgb, CanvasText, Canvas 59%); /* #969696 */ 16 --text-muted: color-mix(in srgb, CanvasText, Canvas 47%);
15 --text-dim: color-mix(in srgb, CanvasText, Canvas 47%); /* #777 */
16 17
17 /* ---- Neutrals that do NOT derive ---- */
18 --on-solid: #ffffff; /* text on accent/danger/action/compute fills */
19 --shadow-widget: 3px 3px 5px #b1b1b1;
20 --shadow-modal: 0 4px 16px rgba(0, 0, 0, 0.2);
21 --badge-scrim: rgba(255, 255, 255, 0.85); 18 --badge-scrim: rgba(255, 255, 255, 0.85);
22 19
23 /* ---- Semantic: literals for now, light-dark() pairs in stage 2 ---- */ 20 /* ---- Semantic. light-dark() resolves against the used color-scheme,
24 --accent: #ff9600; 21 so these follow the override in stage 3 without duplication.
25 --accent-surface: #fff8f2; 22 Dark halves checked against a Canvas of roughly #1e1e1e;
23 the exact value is UA-defined. ---- */
24 --accent: #ff9600; /* holds 7.6:1 on dark, unchanged */
25 --accent-surface: light-dark(#fff8f2, #2b1f14);
26 26
27 --danger: #cc0000; 27 --danger: light-dark(#cc0000, #ff8a80); /* text, icons, the 3px rule */
28 --danger-surface: #fdecea; 28 --danger-solid: light-dark(#cc0000, #b3231c); /* fill behind --on-solid */
29 --danger-surface: light-dark(#fdecea, #3b1a17);
29 30
30 --action: #0d47a1; /* state_changing buttons at rest */ 31 --action: light-dark(#0d47a1, #90caf9);
31 --action-solid: #1565c0; /* ...and on hover */ 32 --action-solid: #1565c0; /* holds white at 5.7:1 in both */
32 --action-surface: #e3f2fd; 33 --action-surface: light-dark(#e3f2fd, #12304f);
33 34
34 --selected: #1a4d8f; /* selected thumbnail */ 35 --selected: light-dark(#1a4d8f, #90caf9); /* selected thumbnail border */
35 36
36 --compute: #00838f; 37 --compute: light-dark(#00838f, #4dd0e1);
37 --compute-surface: #e0f2f1; 38 --compute-solid: light-dark(#00838f, #00697a);
39 --compute-surface: light-dark(#e0f2f1, #10312f);
38 40
39 --headline-mark: #f5b400; /* the star on a headline asset */ 41 --headline-mark: #f5b400; /* 9.1:1 on dark, unchanged */
40 --headline-border: #fff3cd; 42 --headline-border: light-dark(#fff3cd, #5c4a12);
41 --headline-surface: #fffdf5; 43 --headline-surface: light-dark(#fffdf5, #2a2313);
42 --headline-badge-bg: rgba(255, 243, 205, 0.95); 44 --headline-badge-bg: rgba(255, 243, 205, 0.95); /* sits over a photo in both schemes */
43 --headline-badge-fg: #6b5900; 45 --headline-badge-fg: #6b5900;
44 46
45 --diff-ins-bg: #ccffd8; 47 --diff-ins-bg: light-dark(#ccffd8, #12261a);
46 --diff-ins-fg: #055d20; 48 --diff-ins-fg: light-dark(#055d20, #7ee2a8);
47 --diff-del-bg: #ffd7d5; 49 --diff-del-bg: light-dark(#ffd7d5, #2d1416);
48 --diff-del-fg: #82071e; 50 --diff-del-fg: light-dark(#82071e, #ffa198);
51
52 --on-solid: #ffffff;
53
54 --shadow-widget: 3px 3px 5px light-dark(#b1b1b1, rgba(0, 0, 0, 0.7));
55 --shadow-modal: 0 4px 16px light-dark(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.7));
49 56
50 --radius: 6px; 57 --radius: 6px;
51} 58}
@@ -356,13 +363,13 @@ form.button_to.destructive button[type="submit"] {
356form.button_to.destructive input[type="submit"]:hover, 363form.button_to.destructive input[type="submit"]:hover,
357form.button_to.destructive button[type="submit"]:hover { 364form.button_to.destructive button[type="submit"]:hover {
358 color: var(--on-solid); 365 color: var(--on-solid);
359 background-color: var(--danger); 366 background-color: var(--danger-solid);
360} 367}
361 368
362form.button_to.computation input[type="submit"], 369form.button_to.computation input[type="submit"],
363form.button_to.computation button[type="submit"] { 370form.button_to.computation button[type="submit"] {
364 color: var(--compute); 371 color: var(--compute);
365 background-color: var(--compute-surface); 372 background-color: var(--compute-solid);
366} 373}
367 374
368form.button_to.computation input[type="submit"]:hover, 375form.button_to.computation input[type="submit"]:hover,
@@ -1550,7 +1557,7 @@ div#draft_list table td.actions a {
1550 white-space: nowrap; 1557 white-space: nowrap;
1551 vertical-align: top; 1558 vertical-align: top;
1552 font-size: 0.8em; 1559 font-size: 0.8em;
1553 color: var(--text-dim); 1560 color: var(--text-muted);
1554 padding-right: 1em; 1561 padding-right: 1em;
1555} 1562}
1556 1563
@@ -1582,18 +1589,18 @@ div#draft_list table td.actions a {
1582 margin-top: 0.2rem; 1589 margin-top: 0.2rem;
1583 cursor: pointer; 1590 cursor: pointer;
1584 font-size: smaller; 1591 font-size: smaller;
1585 color: var(--text-dim); 1592 color: var(--text-muted);
1586} 1593}
1587 1594
1588.node_action_icon { 1595.node_action_icon {
1589 color: var(--text-dim); 1596 color: var(--text-muted);
1590 margin-right: 0.35em; 1597 margin-right: 0.35em;
1591 vertical-align: text-top; 1598 vertical-align: text-top;
1592} 1599}
1593 1600
1594.revision_lifecycle { 1601.revision_lifecycle {
1595 font-size: 0.85rem; 1602 font-size: 0.85rem;
1596 color: var(--text-dim); 1603 color: var(--text-muted);
1597} 1604}
1598 1605
1599/* ============================================================ 1606/* ============================================================