MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-52

1.5 Web app shell + navigation

Done
Description

The chrome every signed-in surface lives inside: a persistent left sidebar holding project-scoped navigation (Issues, Boards, Settings), a thinner top nav for workspace switching + user menu + theme + cmd-k, and a main content panel. Replaces 1.3.4's temporary top-nav project switcher with the durable sidebar-driven IA Linear / Jira / GitHub Projects all use. Responsive (collapses to a drawer below the md breakpoint), keyboard-navigable end-to-end, theme-aware via the existing two-axis ThemeProvider from Story 1.0.5. No new data layer — every Subtask composes existing primitives + already-shipped services.

Prerequisites: Story 1.0.5 is the load-bearing dependency — the sidebar, command palette, and theme toggle all compose existing primitives (Button, Dialog, Tooltip, Popover, Toast, the ThemeProvider in lib/theme/, the --el-* token vocabulary). Story 1.2 ships the WorkspaceSwitcher the new top-nav consumes; Story 1.3 ships ProjectSwitcher + getActiveProject(). After 1.5, the top-nav project switcher from 1.3.4 is retired — the sidebar header carries it.

Verification

  • Pull the merged Story branch; pnpm install && pnpm dev.
  • Sign in (use the seeded auth-credentials fixture user); confirm landing at /dashboard with the sidebar visible on the left and the top-nav across the top.
  • Click "Issues" / "Boards" / "Reports" / "Settings" in the sidebar — each navigates and the active item highlights.
  • Click the sidebar collapse button → sidebar shrinks; reload → still collapsed. Click again → expands; reload → still expanded.
  • Press ⌘K → palette opens. Type "issues" → highlighted match. → URL is /issues.
  • Press ⌘K → type the alternate workspace's name → ↵ → workspace switches (cookie + sidebar contents reflect it).
  • Press ⌘K → type "theme" → ↵ → the theme toggles (light ↔ dark). Reload → preserved.
  • Press ? → shortcut cheatsheet opens, listing ⌘K / ⌘\ / ? at minimum. esc → closes.
  • Resize to a 375×812 viewport → sidebar disappears, hamburger appears in top-nav. Click hamburger → drawer slides in with scrim. Click an item → drawer closes after route change.
  • Open the user menu → "Sign out" → redirected to /sign-in. Sign back in.
  • Press ⌘K → "Sign out" → same outcome (palette path).
  • Sign in as a user with zero projects in their workspace (or temporarily archive all projects via Settings → Project) → confirm the sidebar header shows the projects empty-state CTA inline and project-scoped nav is hidden.
Status
Done
Type
Story