A two-pane layout (list left, focused message right) for any "list + detail" surface — inboxes, notification centers, comment threads, audit logs. The chrome is universal: tab strip → toolbar → optional bulk-action bar → two-pane body.
Inbox is a composition, not a single component. It assembles a tab strip (Tabs), a toolbar with persistent select-all, a message card list, a detail pane, and an optional bulk-action bar. The bulk bar replaces the toolbar's right cluster when rows are selected — it never floats over.
| Part | Class | Role |
|---|---|---|
| Tab strip | .ib-tabs | Filters by status (All · Unread · Mentions). Count pills inside each tab. |
| Toolbar | .ib-toolbar | Select-all on the left, search · sort · new on the right. |
| Bulk action bar | .ib-bulkbar | Appears only when rows are selected. Replaces the toolbar's right cluster. |
| Message card | .ib-card | List row — avatar + title + preview + timestamp + unread dot. |
| Detail pane | .ib-detail | Right side. Empty state explains "Select a message". Full body + reply when populated. |
| Bell trigger | .ib-bell-trigger | The entry point. Bell icon in the global header opens a 5-card preview dropdown. |
Inbox composes from: Tabs (status filters), Buttons (toolbar actions), Badges (mention/priority chips on cards), Dropdowns (select-all menu, bell preview).