[nu-demo] hero_collab island uses its own dark theme; should follow hero_os theme tokens #147
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
The Communication > Collab island renders in its own dark navy/black palette regardless of the hero_os theme. All other islands follow the light theme that matches the desktop chrome. Visual inconsistency hurts demo polish.
Root cause
hero_collab_uiships with hard-coded CSS instead of consuming hero_os CSS variables (--color-text, --color-bg, --color-primary, etc.) the way other archipelagos do.Demo workaround
None — purely cosmetic.
Proper fix
hero_collab_uistatic CSS; replace hex colors withvar(--color-*)tokens defined by hero_os theme system.themefield from IslandContext (already passed:darkorlight) to switch palette accordingly.Signed-off-by: mik-tf — 2026-04-23
webfeature build — OSIS/Services have only native variants, Services is dead wood, Videos missing, Books needs iframe default #171Fixed in hero_collab commit
445f17bondevelopment.Root cause — pinned via Hero Browser MCP on the live herodemo:
chat.htmlhad<html lang="en" data-bs-theme="dark">hardcoded AND its inline<style>block declared all CSS variables under a single:root { ... }rule (no theme conditional). Even when the hero_os host or the page itself flippeddata-bs-theme="light", the variable values stayed dark — body bgrgb(26, 26, 46), sidebar bgrgb(15, 22, 40), etc. — and the entire island ignored Bootstrap's theme attribute.editor.htmlhad the same pattern with a smaller variable set.Fix — matches the canonical Hero UI pattern used by
hero_aibrokerandhero_books:<html lang="en">— drop the hardcodeddata-bs-theme.localStorage.getItem('theme'), defaults todarkwhen unset, setsdata-bs-themeon the root. Hero OS shell can override at any time by re-setting the attribute (the standard cross-island theme-sync hook).:root { ... }becomes:root, [data-bs-theme="dark"] { ... }so a dark page bootstraps cleanly without a flash, AND the variable block is also addressable when something flips the attribute later.[data-bs-theme="light"] { ... }block declares the light-mode token values. Same variable names, light palette.window.__heroCollabTheme === 'light' ? 'default' : 'dark'.Verification — live test on herodemo via Hero Browser MCP
js_evaluate:/tmp/collab.png— dark navy in light-host contextgetComputedStyle()on#app--bg: #1a1a2e,--text: #e0e0e0(dark, despitehtmlTheme="light")<style>:root { --bg: #1a1a2e ... }(no theme conditional)--bg: #ffffff,--text: #212529(light flipped cleanly)/tmp/collab_light_fixed.png— full light palette throughoutDeploy: the fix lands automatically on next hero_collab_ui binary rebuild — both templates are embedded into the binary at build time. No infra changes needed.
Meta-tracker: home#193.
Signed-off-by: mik-tf
webfeature build — OSIS/Services have only native variants, Services is dead wood, Videos missing, Books needs iframe default #34