Atoms
Single-element building blocks: buttons, form controls, badges, chips, and the language-tag
label. Each renders the real component from src/components/atoms/.
Buttons
One primary action per screen region. Secondary actions sit next to primary; never alone. Destructive actions are reserved for genuinely irreversible operations.
Default sizing
DaisyUI's btn primitive — primary / outline / ghost variants.
Large sizing (.btn-lg)
More generous padding for prominent CTAs. Landing hero search submit, citation copy button, other museum-grade primary actions.
Destructive actions
For genuinely irreversible operations only. Always opens a confirm modal. --error accent, muted not shouting. Never icon-only.
Icon-only buttons
For common, recognisable affordances. Mandatory aria-label and tooltip on hover/focus.
Form controls
Labels above inputs (visible, never placeholder-as-label). Lazy-on-first-blur validation. Error messages persist on the page until resolved.
Text inputs
Checkboxes & radios
Used in the filter sidebar. Native HTML controls with accent-primary; tab order
matches visual order.
Status badges
Variant prop: info, success, warning, error. Plain (no variant) for neutral counts and labels.
Filter chips (removable)
Active filter representation on search-result pages. Each chip has a remove button with a
clear aria-label.
Language-tagged label
Vocabulary fallback. Visible (lang) tag for sighted users; HTML lang attribute
for assistive tech.