diff --git a/docs/plans/20260505-1230-ui-fixes/plan.md b/docs/plans/20260505-1230-ui-fixes/plan.md new file mode 100644 index 0000000..a64bba9 --- /dev/null +++ b/docs/plans/20260505-1230-ui-fixes/plan.md @@ -0,0 +1,385 @@ +# Plan: DaisyUI v5 Form Class Migration + Homepage Hero Button Redesign + +**Date:** 2026-05-05 +**Branch:** `chore/ui-fixes` + +--- + +## Background + +The project uses Tailwind CSS v4 + DaisyUI v5 via a CSS-first build (`@plugin "daisyui"` in `input.css`). DaisyUI v5 **removed** several component classes that existed in v4: + +| DaisyUI v4 Class | v5 Status | v5 Replacement | +|------------------------|-----------------|------------------------------------------| +| `.form-control` | Removed | `.fieldset` or Tailwind-native flex/grid | +| `.label-text` | Removed | `.fieldset-label` provides muted text | +| `.label-text-alt` | Removed | Tailwind-native (e.g. `text-xs text-error`) | +| `.label` | Still exists | — | +| `.btn`, `.card`, etc. | Still exist | — | + +The `.form-control` and `.label-text` classes are used in production code (`node-detail.js`, `map.js`) but produce **no CSS output** in the built `tailwind.css` since DaisyUI v5 does not generate them. This causes forms to render without proper layout styling. + +Separately, the homepage hero section uses `btn btn-outline` for navigation buttons. The user wants a redesigned, more compact card-based layout. + +--- + +## Root Cause Analysis + +DaisyUI CSS **is** included in the build — the `@plugin "daisyui"` directive in `input.css` correctly loads DaisyUI v5 and generates all currently-supported component classes. The issue is that `form-control` and `label-text` were **deprecated and removed in DaisyUI v5**. DaisyUI v5's plugin no longer defines these classes, so they don't appear in `tailwind.css`. + +**Evidence:** +- `tailwind.css` (101KB minified) contains `.label`, `.btn`, `.card`, `.navbar`, `.modal`, `.badge`, `.alert`, `.table`, `.fieldset`, `.fieldset-label`, `.fieldset-legend` and all other v5 components +- `form-control` and `label-text` do **not** appear anywhere in the built CSS +- The DaisyUI v5 source (`node_modules/daisyui/components/`) has no `form-control` component; it was replaced by `fieldset` + +--- + +## Task 1: Replace `form-control` / `label-text` / `label-text-alt` with DaisyUI v5 + Tailwind-native equivalents + +### Error display strategy + +**Decision:** Error containers use `