Draft
App kit
The app-level pieces every Bridge OS screen reuses.
What the app kit is
The thin layer between the package and a screen: the pieces every Bridge OS page reuses so it never rebuilds them. Package components are the same in every app; the app kit belongs to one app.
Written again on every page
| Piece | Today |
|---|---|
| Page header (title, subtitle, actions) | Written inline on every page, at 16, 20, 22, 24 or 28px; 22px is the pick. |
| "← Back" link | Written inline on five sub-pages. |
| Section header (icon + title above a card) | Written inline everywhere. |
| The shell's chrome on pages outside it | Seven public and profile pages copy the top bar, footer and background by hand. |
Product components (stay in Bridge OS)
These are about contacts, intros and networks. They stay in Bridge OS and move into the package only if a second app needs them (Share at two).
| Components | For |
|---|---|
| ContactCard, ContactRow, NetworkResultRow | How a person appears in lists and search. |
| PersonProfileCard, ProfileTab, ProfileHoverCard | A person's profile and its hover preview. |
| RelationshipCell, RelationshipDetailDrawer | How you're connected to someone, and the detail behind it. |
| intros-table, IntroDetailDrawer, PersonIntrosView | Intros: the table, one intro, one person's intros. |
| ContactActionsMenu, NetworkShareAction, invite-share | Acting on a contact: intro, share, invite. |
| IcpCard, IcpNetworkSuggestions | ICP, and matching suggestions. |
| UpcomingMeetingCard, MemberMeetingStats, CalendarSyncControl | Meetings and calendar sync. |
| RatingButtons, RatingPill, IntroFeedback | Rating intros. |
| OrgFavicon, CompanyFavicon, OrgContextLine | Organizations. |
Not decided yet
Until these are settled, follow Bridge OS as it is today.
- Proposal: a shared PageHeader (24px title, subtitle, actions), BackLink and SectionHeader in Bridge OS, so pages stop writing them inline. They're app-level, not package components, until a second app needs them.
- Proposal: one public layout for pages outside the shell, so the top bar, footer and background aren't copied by hand.
- Proposal: a loading.tsx per template (dashboard, record, table) instead of one generic skeleton, so the page-change skeleton matches the page.
Sources
- Bridge OS route survey (2026-11-02).
- Bridge OS
components.md(product components).