From ada5a4c177a1247002bf0f89b0a6fe2bc3b99e7f Mon Sep 17 00:00:00 2001 From: librelad Date: Tue, 7 Jul 2026 21:40:57 +0100 Subject: [PATCH] fix(webui/config): box the master-toggle control row like the rest of a section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On /admin/config/general the Basic section's fields sit in the darker inset ".config-fields" box, but the Mail Enabled toggle and Installation Mode select did not — their control sits in its own .mail-master-toggle / .git-master-toggle wrapper, a sibling of .config-fields, which the boxing rule never covered. So a gated section's enable row read as loose, unboxed content above the (hidden) options. Extend the boxed-panel rule to the master-toggle wrappers (mail / install-mode / generic / backup-remote). Element-qualified to the wrapper
because renderToggleSection stamps the same class on the inner .checkbox-label pill too, which must not get its own nested box. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: librelad --- .../libreportal/frontend/core/forms/css/config.css | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/containers/libreportal/frontend/core/forms/css/config.css b/containers/libreportal/frontend/core/forms/css/config.css index 0fe5a50..f73328b 100644 --- a/containers/libreportal/frontend/core/forms/css/config.css +++ b/containers/libreportal/frontend/core/forms/css/config.css @@ -268,9 +268,19 @@ /* Boxed content panel for a config section's body (the area after the divider, before any action buttons). A darker inset inside the section card so the options read as their own content section — matches the boxed look used - elsewhere. Applies to regular option grids and the block editors - (domains/catalog/whitelist). Scoped to the main config editor (not app-config). */ + elsewhere. Covers regular option grids (.config-fields); the master-toggle + control row of a gated section (the enable checkbox / install-mode select sits + in its OWN wrapper, a sibling of .config-fields, so without this it was the one + part of the section body left unboxed — e.g. Mail Enabled, Installation Mode); + and the block editors (domains/catalog/whitelist). The toggle wrappers are + element-qualified to the
because renderToggleSection puts the same class + on the inner .checkbox-label pill too, which must not get its own box. Scoped + to the main config editor (not app-config). */ .config-category:not(.app-config) .config-fields, +.config-category:not(.app-config) div.mail-master-toggle, +.config-category:not(.app-config) div.git-master-toggle, +.config-category:not(.app-config) div.generic-master-toggle, +.config-category:not(.app-config) div.backup-remote-toggle, .config-category:not(.app-config) .domain-building-blocks, .config-category:not(.app-config) .whitelist-building-blocks { background: rgba(0, 0, 0, 0.20);