---
id: TASK-110
title: Module sub-nav bar + rCart UX polish
status: Done
assignee: []
created_date: '2026-03-12 04:02'
updated_date: '2026-03-12 04:02'
labels:
  - shell
  - rcart
  - ux
  - typescript
dependencies: []
priority: medium
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Add a secondary horizontal pill navigation bar to the shell showing each module's outputPaths and subPageInfos as navigable links. Polish rCart group buy page with fill-up visual, hero stats, warm gradient progress bar, pledge avatars, and green CTA. Fix 3 pre-existing TS build errors.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 Sub-nav bar renders between tab-row and <main> for modules with outputPaths/subPageInfos
- [x] #2 Active pill highlighted via client-side pathname matching
- [x] #3 Hidden in iframe-embedded mode
- [x] #4 rCart /buy/:id renamed to /group-buy/:id with updated shareUrl
- [x] #5 rCart outputPaths: carts, catalog, orders, payments, group-buys
- [x] #6 rinbox outputPaths: mailboxes
- [x] #7 Group buy page: hero card with stat boxes, fill-up liquid visual, warm gradient progress bar, pledge avatars, green CTA, responsive
- [x] #8 TS error fixed: walletAddress added to rstack-identity SessionState.eid
- [x] #9 TS errors fixed: ambient type declarations for 3d-force-graph and three
- [x] #10 Build passes (tsc --noEmit + vite build)
<!-- AC:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Committed as adb0d17 on dev, merged to main, deployed to Netcup.\n\nFiles changed:\n- server/shell.ts — renderModuleSubNav() + SUBNAV_CSS\n- modules/rcart/mod.ts — route rename, outputPaths update\n- modules/rcart/components/folk-group-buy-page.ts — full UX overhaul\n- modules/rcart/components/cart.css — flex centering for narrow pages\n- modules/rcart/components/folk-payment-page.ts, folk-payment-request.ts — width fix\n- modules/rinbox/mod.ts — added mailboxes outputPath\n- shared/components/rstack-identity.ts — walletAddress type fix\n- types/3d-force-graph.d.ts, types/three.d.ts — new ambient declarations
<!-- SECTION:FINAL_SUMMARY:END -->
