apps/design-system/content/docs/ui-patterns/navigation.mdx
Supabase has a necessarily complex navigation system to handle multiple products and levels of hierarchy. This page introduces those general patterns, best practices, and the components involved.
A horizontal list of related views within a consistent PageLayout context, allowing for clearer page-level organisation. Activating a NavMenu item should trigger a URL change.
Keyboard-accessible skip link for apps with persistent header and sidebar chrome. Hidden until focused via Tab, then slides into view so users can jump past navigation to the main landmark. See Accessibility for broader context.
Browser page titles should follow a consistent most-specific-first structure so tabs and browser history are easier to scan:
Entity | Section | Surface | Project | Org | Supabase
Examples:
users | Table Editor | My Project | My Org | SupabaseBackups | Database | My Project | My Org | SupabaseImplementation notes (Studio):
apps/studio/lib/page-title.tsProjectLayout for project-scoped pagestitle prop when a wrapper layout exposes onebrowserTitle.section when rendering ProjectLayout directlybrowserTitle.entity for the most specific resource (table/function/query) when availableproduct as the single source of truth for the project-level surface segmentdocument.title ad hoc in individual pages/layouts