Icons — Lucide only (canonical)¶
This is the single normative rule for icon libraries in this monorepo. Other docs must link here instead of restating policy.
Requirement¶
- Use
lucide-reactonly for icons inapps/cms,apps/lms, and packages that ship author- or learner-facing React UI (notably@open-learning-hub/widget-renderers). - Do not add or import
@phosphor-icons/react,@tabler/icons-react, or other general-purpose icon packages unless product explicitly approves an exception and this file is updated.
Conventions¶
- shadcn/ui defaults align with Lucide; keep
components.json/ generated primitives consistent with that. - CMS widget catalogue icons live in
apps/cms/src/lib/widgets/icons.tsx(Lucide). - Missing glyphs: add a small inline SVG under
apps/cms/src/components/icons/orapps/lms/src/components/icons/as appropriate — do not pull in another icon dependency for a one-off shape.