From f72170b4e1fda74cac891a8b0a5ac1a58d54d134 Mon Sep 17 00:00:00 2001 From: Waters Church Date: Thu, 17 Sep 2026 13:22:11 -0400 Subject: [PATCH] The folding section reads as a heading first MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Theme's title was coming out at the normal weight — does not inherit an

's boldness, so sitting it under .admin-h1 got the size, colour and spacing but not the type. It now matches the other section headings exactly. The caret moved to the right of the words. A marker in front pushes the heading out of line with every other one on the page; behind it, the section still reads as "Theme" first and the caret only says there is more. Written as the pattern rather than as Theme's own styling: any section that folds is a
headed by a , and the whole row is the target. Co-Authored-By: Claude Opus 5 --- public/admin/admin.css | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/public/admin/admin.css b/public/admin/admin.css index 569076a..52180f5 100644 --- a/public/admin/admin.css +++ b/public/admin/admin.css @@ -451,19 +451,26 @@ a.btn { text-decoration: none; } /* one swatch per preset: a miniature dashboard (page, a tile on it, the accent as a status dot) and the name; the current one wears the accent */ -/* A whole admin section that folds, wearing the same disclosure triangle as - a module's config groups. Theme is set once for a building and then left - alone, so it starts closed and keeps the rest of the page in reach. */ +/* ── a collapsible admin section ───────────────────────────────────── + The pattern for any section of this page that folds. The markup is a +
holding the section's contents, headed by a + : the title keeps the same + type as every other section heading — a would otherwise come + out at the normal weight — and the caret follows the words, so a folded + section still reads as a heading first. The whole row is the hit target. */ details.admin-fold > summary.admin-fold-title { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; + font-weight: 700; /* matches h1.admin-h1; summary defaults to normal */ user-select: none; } details.admin-fold > summary.admin-fold-title::-webkit-details-marker { display: none; } -details.admin-fold > summary.admin-fold-title::before { +/* after the title, not before it — the heading reads first, the caret says + there is more behind it */ +details.admin-fold > summary.admin-fold-title::after { content: ""; width: 0; height: 0; border-left: 6px solid var(--muted); @@ -471,7 +478,7 @@ details.admin-fold > summary.admin-fold-title::before { border-bottom: 5px solid transparent; transition: transform 0.15s; } -details.admin-fold[open] > summary.admin-fold-title::before { transform: rotate(90deg); } +details.admin-fold[open] > summary.admin-fold-title::after { transform: rotate(90deg); } details.admin-fold > summary.admin-fold-title:hover { color: var(--accent); } .theme-swatches {