Skip to content

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-react only for icons in apps/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/ or apps/lms/src/components/icons/ as appropriate — do not pull in another icon dependency for a one-off shape.