Skip to content

meeting-recorder: style the panel with crow's own tokens - #338

Merged
kh0pper merged 1 commit into
mainfrom
fix/meeting-recorder-panel-theme
Sep 9, 2026
Merged

meeting-recorder: style the panel with crow's own tokens#338
kh0pper merged 1 commit into
mainfrom
fix/meeting-recorder-panel-theme

Conversation

@kh0pper

@kh0pper kh0pper commented Sep 9, 2026

Copy link
Copy Markdown
Owner

The panel shipped in #336 looked fine as a standalone page and wrong inside the dashboard. Two causes, both mine:

Invented CSS variables. The panel styled itself with --surface, --border, --text-muted and --accent. Crow defines none of them, so every fallback applied and the panel rendered as white cards with muted grey labels sitting inside the dark dashboard. Fallback values fail silently, which is what made it look like a theme bug rather than a typo.

The checkbox rule. The base sheet sets input, textarea, select { width: 100%; padding: 0.6rem }, which catches input[type=checkbox] too: each box stretched across its row and pushed its label text to the far right edge.

Now the panel uses --crow-* tokens and the dashboard's own .card, .btn, .btn-primary and .data-table classes, so it follows the theme instead of re-declaring one. Checkboxes get an explicit width: auto override, and the hint text under each source label is a block rather than running on inline.

Verified by rendering the panel through renderLayout() into a static page and screenshotting it with prefers-color-scheme emulated in both directions. Dark mode was the broken one and now matches the rest of the dashboard: dark cards, readable labels, correctly sized checkboxes, accent-coloured primary button, table styled by .data-table.

No behaviour change; markup and client script are otherwise untouched.

The panel shipped with invented CSS variable names (--surface, --border,
--text-muted, --accent). None of them exist, so every fallback applied and
the panel rendered as white cards with muted grey labels inside the dark
dashboard. The checkboxes were worse: the base sheet's "input { width:100% }"
stretched each one across its row and shoved the label text to the far right.

Now it uses --crow-* tokens and the dashboard's own .card, .btn and
.data-table classes, with one deliberate override giving checkboxes their
natural width. Hints sit under their labels rather than running on inline.

Verified by rendering the panel through renderLayout() and screenshotting it
in both schemes; dark mode was the one that was broken and is the one shown
in the report.
@kh0pper
kh0pper merged commit 200cf83 into main Sep 9, 2026
3 checks passed
@kh0pper
kh0pper deleted the fix/meeting-recorder-panel-theme branch September 9, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant