Repository navigation
Switch dark-mode visibility, disable Team sync toggle, sidebar cleanup - #2932
Conversation
closes #2813) - Switch: unchecked track uses a new --switch-track token that clears WCAG 1.4.11 (3:1) in both themes; --input was 1.25:1 light, near-invisible dark - Labs: Team synchronization switch visible but disabled; contact email is a real mailto: link - Sidebar: delete the database switcher; its missing-database alert moves to a reusable nav-item badge shown on Settings (accessible name, visible when collapsed); hide Favorites and Conflicts nav items pending readiness Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pragmatic Code Review — PR #2932Review Type: Initial Review SummaryA clean, well-scoped change that does what the issue asks, and in a few places does it better (token-level fix, one shared nav-item snippet, badge text in the accessible name). The PR has one commit and every change serves #2813. I checked the contrast numbers against the tokens (light Requirements Check1. Switch visibility
2. Team sync email
3. Team sync toggle disabled
4/5. Database switcher, Favorites, Conflicts
6. Missing-database badge
Verification
Code Review Findings🔴 CriticalNone. 🟡 Improvements
🟢 Nits
Standards / Security / Performance
Recommendation: APPROVEEvery acceptance criterion is met, and the change is a clear improvement in code health: about 40 lines of duplicated nav-button markup collapse into one snippet, a dead component is deleted, and a token-level a11y fix lands. The two 🟡 items are quick follow-ups and can go in this PR or be deferred at the author's discretion. 🤖 Generated with Claude Code |
malibio
left a comment
There was a problem hiding this comment.
Automated pragmatic-code-review: APPROVE (posted as a comment — GitHub blocks self-approval). Full findings in the review comment above.
…ments - NavBadge carries an optional settingsCategory; the missing-database badge routes the Settings click straight to Settings → Database (the deleted switcher's behavior) - Labs comment no longer claims the disabled switch keeps sync off; it reflects the stored value but can't change it - open-settings docstring drops the deleted database indicator - Merge NavigationItem type import into the layout import Skipped: shared settings-link class (two call sites, out of scope), removing Happy-DOM keyboard assertions (harmless belt-and-braces beside the disabled check), moving startup loading to the app shell (separate refactor). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Review addressed (bf7efb7)✅ Addressed (4)
⏭️ Skipped (3)
Re-review decision: NO RE-REVIEW NEEDED — small, low-risk changes (one optional field + one argument, comments, import), covered by tests; pre-push gate passed. 🤖 Generated with Claude Code |
Closes #2813
Switch visibility (component/token level)
--switch-tracktoken for the unchecked track, used byswitch.svelteinstead of--input. Clears WCAG 1.4.11 (3:1) in both themes: light 3.57:1 on card (was 1.25:1 — deliberate improvement), dark 3.50:1 on card (was near-invisible). Thumb vs track in dark: 3.56:1.--inputis unchanged, soinput.svelte/textarea.svelteare unaffected.Labs
disabled(not focusable, can't be toggled by click or keyboard); AI Chat toggle unchanged.developer@nodespace.aiis a realmailto:anchor (no{@html}). It usestext-foreground+ underline rather thantext-primary: per app.css, primary is 3.67:1 in light and not meant for small body text.Sidebar
database-switcher.sveltedeleted.databaseStore.load()it ran on mount moved to the sidebar'sonMount.openConflicts()and the conflict journal are untouched; the per-node conflict badge still opens it.navBadgesmap keyed by item id; nav items now render through onenavItemButtonsnippet). Settings gets an alert badge when the active database ismissing. The glyph sits on the icon, so it shows in the collapsed rail too, and its text is added to the button's accessible name ("Settings — Active database is missing"), so the alert isn't conveyed by colour alone.Verification
navigation-sidebar-nav-items.test.ts(hidden items, badge present/cleared, expanded+collapsed, click still opens Settings); Labs and layout tests updated.missingstatus.🤖 Generated with Claude Code