Icon Rendering

Core icon identifiers (commonv1.IconId) are mapped to Lucide icon names in internal/platform/icons/lucide.go. UI surfaces should render icons through the shared sprite so the admin and web services stay visually consistent.

Source of truth

  • Mapping: internal/platform/icons/lucide.go
  • Sprite markup: internal/platform/icons/lucide_sprite.go
  • Shared templ helpers: internal/services/shared/templates/icons.templ

Usage

Inject the sprite once per page (already wired into admin and web layouts) and render icons with the shared helpers:

@sharedtemplates.LucideIcon("book-open", "size-4")
@sharedtemplates.LucideIconID(iconID, "size-4")

When adding a new core icon, update the mapping and sprite together so tests and rendering stay aligned.