feat(settings): collapse settings sections and rework the footer editor - #143
Merged
Conversation
The settings screen had grown to six full-height cards stacked end to end
(~9,200px), and the footer menu was most of it: 6 columns x ~8 entries
rendered as one vertical list of ~48 identical wrapping form rows.
Add SettingsSection, a collapsible card used by every group. Sections
collapse to a single row, remember their open state in localStorage, and
show a summary ("6 columns", "Enabled") plus an "Unsaved" chip so
collapsing cannot hide pending edits. Bodies are hidden with CSS rather
than unmounted, since sections own fetched state and in-progress edits
that a remount would discard.
Lay the footer editor out as a grid mirroring the footer it produces,
with label above href per entry, a segmented heading/link/spacer picker
replacing the per-row select, and move/delete controls revealed on hover
or focus.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The settings screen had grown to six full-height cards stacked end to end — about 9,200px of page. The footer menu was most of it: 6 columns × ~8 entries rendered as one long vertical list of ~48 identical wrapping form rows.
Collapsed, the page is now ~1,250px and fits on one screen.
Collapsible sections
New
SettingsSectionwraps every group (Site, Homepage Carousel, Breaking News, Footer Menu, Taxonomy, Media Library). The profile card is left alone — it's identity, not a setting.localStorage.The Triangle,2 slides,Enabled,6 columns, andReindexing…/Rebuilding…while those jobs run. Descriptions render only when expanded.Add Slidemoved from the carousel header into the body, since it can't nest inside the header's toggle button.Footer menu editor
Columns now lay out in a responsive grid mirroring the footer they produce, instead of stacking. Per entry, the label sits above the href; headings render semibold and spacers draw a dashed "Blank line" rule. A segmented heading/link/spacer picker replaces the per-row
<select>, and move/delete controls are revealed on hover or focus. The new-tab toggle stays visible while enabled so it's legible at a glance.Testing
tsc --noEmitandeslintclean. Driven in a browser against the real default footer (6 columns / 48 entries) with the settings endpoints stubbed, since the page is behind OIDC:About, Contact Us, Staff, Join The Triangle.Caught this way and fixed: the first version used the
hiddenattribute alone, which Tailwind'sflexclass overrode, leaving every section fully expanded under a collapsed chevron.Note
tailwind.config.jssetsdarkMode: ["class"], but there is no.darkvariable block insrc/index.cssand nothing toggles the class — dark mode is unused boilerplate, so this was designed light-only.🤖 Generated with Claude Code