Skip to content

feat(dashboard): add collapsible sidebar with desktop toggle#19274

Closed
AllardQuek wants to merge 1 commit into
NousResearch:mainfrom
AllardQuek:feat/dashboard-collapsible-sidebar
Closed

feat(dashboard): add collapsible sidebar with desktop toggle#19274
AllardQuek wants to merge 1 commit into
NousResearch:mainfrom
AllardQuek:feat/dashboard-collapsible-sidebar

Conversation

@AllardQuek

@AllardQuek AllardQuek commented May 3, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds a collapsible sidebar to the dashboard UI. This feature allows users to minimize the sidebar to an icon-only rail on desktop, freeing up workspace and reducing visual clutter.

  • The sidebar can be toggled via a chevron button, and
  • the collapsed/expanded state is persisted in localStorage.
  • When collapsed, all text labels, section headers, and the footer are hidden;
  • system status is shown as a colored dot;
  • theme and language switchers show only their icons.
  • Mobile sidebar behavior is unchanged.

This approach provides a more flexible and user-friendly interface, especially for users on smaller screens or those who prefer a minimalist workspace.

Related Issue

Fixes #19272

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻️ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

  • web/src/App.tsx: Adds sidebarCollapsed state, toggle button, and threads collapsed/hideLabel props to sidebar children. Adjusts padding logic for mobile/desktop.
  • web/src/components/SidebarStatusStrip.tsx: Adds collapsed prop; renders a colored dot indicator for system status when collapsed.
  • web/src/components/SidebarFooter.tsx: Adds collapsed prop; hides footer when sidebar is collapsed.
  • web/src/components/ThemeSwitcher.tsx: Adds hideLabel prop; hides theme name when sidebar is collapsed.
  • web/src/components/LanguageSwitcher.tsx: Adds hideLabel prop; hides language label when sidebar is collapsed.

How to Test

  1. Start the dashboard (hermes dashboard or equivalent).
  2. On desktop, use the chevron button at the top of the sidebar to collapse/expand it.
  3. Verify that:
    • When collapsed, only icons are visible; all text labels, section headers, and the footer are hidden.
    • System status is shown as a colored dot.
    • Theme and language switchers show only their icons.
    • The collapsed/expanded state persists after reload.
    • On mobile, the sidebar remains unchanged.
  4. Expand the sidebar and verify that all content returns to normal.

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (fix(scope):, feat(scope):, etc.)
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature (no unrelated commits)
  • I've run pytest tests/ -q and all tests pass
  • I've added tests for my changes (required for bug fixes, strongly encouraged for features)
  • I've tested on my platform: macOS 26.4

Documentation & Housekeeping

  • I've updated relevant documentation (README, docs/, docstrings) — or N/A
  • I've updated cli-config.yaml.example if I added/changed config keys — or N/A
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — or N/A
  • I've considered cross-platform impact (Windows, macOS) per the compatibility guide — or N/A
  • I've updated tool descriptions/schemas if I changed tool behavior — or N/A

For New Skills

  • This skill is broadly useful to most users (if bundled) — see Contributing Guide
  • SKILL.md follows the standard format (frontmatter, trigger conditions, steps, pitfalls)
  • No external dependencies that aren't already available (prefer stdlib, curl, existing Hermes tools)
  • I've tested the skill end-to-end: hermes --toolsets skills -q "Use the X skill to do Y"

Screenshots / Logs

Collapsed sidebar (gateway off):
image

…istence

- Adds a `sidebarCollapsed` state with localStorage persistence for desktop users.
- Adds a chevron toggle button to collapse/expand the sidebar at the `lg:` breakpoint.
- Sidebar shrinks to icon-only view when collapsed; tooltips are provided for accessibility.
- All sidebar sections (navigation, plugins, system actions, footer) adapt to the collapsed state.
- Mobile sidebar behavior is unchanged.
- Improves UX for users wanting more screen space in dashboard views.
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have labels May 3, 2026
@austinpickett

Copy link
Copy Markdown
Collaborator

Closing, completed in #33421

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Collapsible Sidebar for Dashboard

3 participants