LearnNewsExamplesServices
Frontmatter
id12565
titletheme-neo-light/dark: dialog styling incomplete (footer buttons, dark border-color, dark backgrounds)
stateClosed
labels
enhancementai
assigneesneo-gpt
createdAtJun 5, 2026, 11:45 AM
updatedAtJun 6, 2026, 4:13 PM
githubUrlhttps://github.com/neomjs/neo/issues/12565
authorneo-opus-grace
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 6, 2026, 4:13 PM

theme-neo-light/dark: dialog styling incomplete (footer buttons, dark border-color, dark backgrounds)

neo-opus-grace
neo-opus-grace commented on Jun 5, 2026, 11:45 AM

Context

theme-neo-light / theme-neo-dark were authored for the neo portal app, which uses no dialogs — so dialog styling is incomplete. A real app consuming neo's dev branch directly surfaced these gaps via dogfooding. They currently get patched per-app, which is the wrong layer.

Gaps

1. Footer-toolbar buttons unstyled. Every app dialog's footer buttons want the same treatment; a consuming app patches it locally today:

.neo-footer-toolbar {
    .neo-button { border-radius: 5px; height: 1.7em; margin-left: .3em; }
}

-> belongs in the theme so all app dialogs inherit it.

2. theme-neo-dark: --dialog-border-color is gray. The dark theme is dark-blue / deep-purple; a gray dialog border doesn't fit:

.neo-dialog { border: 1px solid var(--dialog-border-color); box-shadow: var(--dialog-box-shadow); display: flex; flex-direction: column; }

-> --dialog-border-color (and --dialog-box-shadow) should map to the dark palette, e.g. --purple-800.

3. theme-neo-dark: fieldset / container background is light gray. Wrong for a dark theme — needs a dark-palette background.

Contract Ledger

Target Surface Source of Authority Proposed Behavior Fallback / Edge Case Docs Evidence
resources/scss/theme-neo-light/dialog/Base.scss footer toolbar buttons Issue #12565 + current src/dialog/Base.mjs dialog footer/header toolbar structure + consuming-app dogfood patch Define theme-owned footer button structural styling so consuming apps can remove local .neo-footer-toolbar .neo-button overrides Must not regress header toolbar icon buttons or generic toolbar buttons outside dialogs No public docs expected unless theme guide mentions dialog overrides SCSS build plus visual verification of a dialog in theme-neo-light
resources/scss/theme-neo-dark/dialog/Base.scss dialog border/shadow Issue #12565 + current dark design-token layering Map dialog border/shadow to the dark blue/purple theme vocabulary through the appropriate token layer Must avoid changing global --sem-color-border-default unless the implementation explicitly accepts that wider blast radius No public docs expected unless token guide changes SCSS build plus visual verification of a dialog in theme-neo-dark
resources/scss/theme-neo-dark/form/Fieldset.scss fieldset/container backgrounds Issue #12565 + current fieldset theme source + dark palette tokens Map fieldset/container surfaces to dark-theme-appropriate semantic/component tokens Fieldset is global, not dialog-only; implementation must not make light/dark form contrast worse outside dialogs No public docs expected unless token guide changes SCSS build plus visual verification of a fieldset in theme-neo-dark

Acceptance

  • Dialogs render correctly in both theme-neo-light and theme-neo-dark with no per-app patches (a consuming app can drop its local footer-toolbar override).
  • theme-neo-dark dialog border + box-shadow + container/fieldset backgrounds use the dark (blue/purple) palette.

Surfaced by @tobiu via dogfooding a real app on neo dev. Filed by @neo-opus-grace.

tobiu referenced in commit 93a9575 - "fix(theme): complete neo dialog and fieldset styling (#12565) (#12610) on Jun 6, 2026, 4:13 PM
tobiu closed this issue on Jun 6, 2026, 4:13 PM