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.
Context
theme-neo-light/theme-neo-darkwere authored for the neo portal app, which uses no dialogs — so dialog styling is incomplete. A real app consuming neo'sdevbranch 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-coloris 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
resources/scss/theme-neo-light/dialog/Base.scssfooter toolbar buttonssrc/dialog/Base.mjsdialog footer/header toolbar structure + consuming-app dogfood patch.neo-footer-toolbar .neo-buttonoverridestheme-neo-lightresources/scss/theme-neo-dark/dialog/Base.scssdialog border/shadow--sem-color-border-defaultunless the implementation explicitly accepts that wider blast radiustheme-neo-darkresources/scss/theme-neo-dark/form/Fieldset.scssfieldset/container backgroundstheme-neo-darkAcceptance
theme-neo-lightandtheme-neo-darkwith no per-app patches (a consuming app can drop its local footer-toolbar override).theme-neo-darkdialog 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.