Skip to content

feat: add centerButton, menuButton, linksContent snippets and bars icon to BottomNavigation#3473

Open
rossnelson wants to merge 4 commits into
mainfrom
dt-3705-mobile-nav-center
Open

feat: add centerButton, menuButton, linksContent snippets and bars icon to BottomNavigation#3473
rossnelson wants to merge 4 commits into
mainfrom
dt-3705-mobile-nav-center

Conversation

@rossnelson
Copy link
Copy Markdown
Collaborator

@rossnelson rossnelson commented May 28, 2026

Description & motivation 💭

Adds customization hooks to BottomNavigation for consumers that need to override the default mobile nav bar sections. All new props are optional and fall back to existing behavior when not provided, so this remains backward-compatible.

The merged implementation keeps BottomNavigation aligned with the current linksSnippet-based mobile nav API from main while preserving the new customization points introduced in this PR.

New snippet props on BottomNavigation:

  • menuButton?: Snippet<[{open, onClick}]> — replaces the default left menu/logo button
  • centerButton?: Snippet<[{open, onClick}]> — replaces the default namespace-switcher center section
  • linksContent?: Snippet<[{open, closeMenu}]> — replaces the default mobile links panel content

New holocene icon:

  • bars — three-line hamburger menu icon, consistent with the filter-lines icon style

Screenshots (if applicable) 📸

N/A

Design Considerations 🎨

No design changes beyond exposing existing mobile nav areas as optional snippet overrides.

Testing 🧪

How was this tested 👻

  • Manual testing
  • E2E tests added
  • Unit tests added

Validated with:

  • node_modules/.bin/prettier --check src/lib/components/bottom-nav.svelte
  • corepack pnpm check

Attempted targeted Playwright integration coverage for mobile navigation, but the configured web server failed to start in this environment before tests executed.

Steps for others to test: 🚶🏽‍♂️🚶🏽‍♀️

  1. Render BottomNavigation without the new snippet props and confirm the default mobile nav behavior is unchanged.
  2. Pass menuButton and verify it renders in place of the default left button.
  3. Pass centerButton and verify it renders in place of the namespace switcher area.
  4. Pass linksContent and verify it renders in place of the default mobile links panel content.
  5. Render <Icon name="bars" /> and confirm the hamburger icon appears correctly.

Checklists

Draft Checklist

  • Merge conflict resolved against main
  • BottomNavigation kept compatible with current linksSnippet API
  • Manual QA

Merge Checklist

  • Formatting/checks run for affected code
  • Merge conflict fully resolved
  • Optional manual verification in app

Docs

Any docs updates needed?

No docs updates needed.

@rossnelson rossnelson requested a review from a team as a code owner May 28, 2026 21:34
@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment May 29, 2026 4:11pm

Request Review

@rossnelson rossnelson changed the title [DT-3705] Add centerButton, menuButton, and linksContent snippet props to BottomNavigation feat: add centerButton, menuButton, linksContent snippets and bars icon to BottomNavigation May 28, 2026
@rossnelson rossnelson marked this pull request as ready for review May 29, 2026 16:04
@rossnelson
Copy link
Copy Markdown
Collaborator Author

@copilot resolve the merge conflicts in this pull request

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ rossnelson
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Copy Markdown

Copilot AI commented May 29, 2026

@copilot resolve the merge conflicts in this pull request

Resolved in 6a66126.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants