From 1374a9d5fd945bdccb571c91df7f32db72a13d79 Mon Sep 17 00:00:00 2001 From: comwanga Date: Wed, 17 Jun 2026 18:35:10 +0300 Subject: [PATCH 1/7] docs(spec): breadcrumb navigation for nested dashboard pages --- ...2026-06-17-breadcrumb-navigation-design.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 docs/superpowers/specs/2026-06-17-breadcrumb-navigation-design.md diff --git a/docs/superpowers/specs/2026-06-17-breadcrumb-navigation-design.md b/docs/superpowers/specs/2026-06-17-breadcrumb-navigation-design.md new file mode 100644 index 0000000..d708ae5 --- /dev/null +++ b/docs/superpowers/specs/2026-06-17-breadcrumb-navigation-design.md @@ -0,0 +1,94 @@ +# Breadcrumb Navigation for Nested Dashboard Pages Design + +**Date:** 2026-06-17 +**Status:** Approved design (pending spec review) +**Branch:** `feat/breadcrumb-nav` (off `main`) + +## Problem + +The dashboard has only top-level global navigation (sidebar / mobile bottom-tabs → +Overview, Events, Settings). Once an organizer drills into an event's nested pages +(`/dashboard/events/[eventId]` and its `attendees` / `configure` / `engine` children), +there is **no upward or contextual navigation**: no breadcrumb trail and no "back to this +event" link. The only ways back to the specific event are the browser back button or the +sidebar (which lands on the top-level Events list, losing context). The Settings → Guide +page is the lone exception, with an ad-hoc `← Back to Settings` link. + +## Goals + +- Every nested dashboard page shows where it is and lets the user climb back to its parent(s). +- One reusable, accessible, responsive breadcrumb pattern across the app. +- Minimal, low-risk change: a presentational component dropped onto each nested page. + +## Non-Goals + +- Wizard-style Previous/Next stepping through the setup flow (explicitly deferred). +- Any change to the global sidebar / mobile tab bar. +- Navigation on the public attendee pages (`/join/[slug]`, `/results/[allocationId]`) — these + are standalone landing pages and stay as-is. + +## Components + +### 1. `components/layout/breadcrumb.tsx` (new) — generic, presentational +- Props: `items: { label: string; href?: string }[]`. +- Renders `