The canonical daisyUI primitive catalogue — every component daisy ships, organized by daisy's own categories.
This is host-agnostic reference data. Each entry has a stable atom :id,
the daisy class string, a default status (:available for normal
primitives or :reference for ones that are listed for awareness only),
and an optional note.
daisyUI version
The catalogue describes daisyUI 5.7.16 (see daisy_version/0).
Entries introduced after 5.0 carry a :since key and say so in their
note — a host pinned to an older daisy bundle will find those classes
absent from its CSS. assets/vendor/daisyui.js is vendored per host,
so check the host's own bundle before reaching for a :since entry.
Hosts that have wrapped a primitive declare it via daisy_overrides/0 on
their manifest module:
def daisy_overrides, do: %{
button: %{wrapper: "<.button>", anchor: "#design-button"},
badge: %{wrapper: "<.badge>", anchor: "#design-badge"}
}The merged/1 function applies those overrides to flip the matching
entries to :wrapped and attach the wrapper label + anchor link.
Summary
Functions
Static catalogue with default statuses; no host-specific overrides applied.
The daisyUI release this catalogue was verified against.
Renders the small live-demo for a daisy primitive, dispatched on its :id.
Returns the daisyUI documentation URL for a primitive.
Returns the catalogue with host overrides applied.
Slug helper: turns a category or component name into a stable URL fragment.
Functions
Static catalogue with default statuses; no host-specific overrides applied.
The daisyUI release this catalogue was verified against.
Hosts vendor their own assets/vendor/daisyui.js, so this is the
version the catalogue describes, not necessarily the one a given app
ships. Compare the two before trusting a :since entry.
Renders the small live-demo for a daisy primitive, dispatched on its :id.
Used inside each catalogue card so consumers see a working example beside the class string.
Attributes
id(:atom) (required)
Returns the daisyUI documentation URL for a primitive.
Pass a catalogue entry to honour its :docs_slug; passing a bare name
derives the slug from the display name, which is right for most
entries but 404s wherever our label differs from daisy's URL (e.g.
"Chat bubble" → /components/chat/). Prefer the entry form.
Returns the catalogue with host overrides applied.
Walks the manifest module's daisy_overrides/0 map (a %{id => %{wrapper, anchor}}
mapping) and flips matching entries from default_status to :wrapped,
attaching the wrapper label and anchor for cross-linking.
Slug helper: turns a category or component name into a stable URL fragment.