Skip to content

G. Icons

The brand spec (p.14) is a 24 px grid, 2 px stroke, rounded ends, consistent weight, and unfamiliar icons always labelled. lucide-react is acceptable only as the implementation of that spec: it is drawn on a 24 grid with 2 px stroke and round caps and joins. Pin the exact version. Render at 20/16 with default (relative) stroke. Icon-only buttons need aria-label plus a tooltip, and the SVG gets aria-hidden.

Source observations. Neither the p.16 brand mock nor the reference sidebar (org5, org1) uses nav icons; both nav lists are text-only. The reference uses icons only for “View public page ↗”, the switcher chevrons, callouts and back arrows.

Default: no icons in the sidebar or member tabs. Icons appear only where a source shows them:

Use Icon
Search field (p.14 / p.16) Search
p.14 brand set Storage Archive, Parts Cpu, Location MapPin
Create actions (“+ Add item”, p.16) Plus
Back link “← All x” ArrowLeft
“View public page ↗” ArrowUpRight
Workspace switcher ChevronsUpDown
Callouts Info / TriangleAlert / CircleCheck
Overflow Ellipsis
Theme toggle Sun / Moon
Sign out LogOut

This replaces components/icons.tsx and staffNavIcons.tsx. The old nav-icon set is deleted.