NC
HomeGuidesMechanics

Changelog entry

V5 primitives pack B: form controls, loading/empty/error states (Issue #769)

2026-04-02

  • Added `Input`, `Select`, `Textarea` React primitives sharing a `FORM_BASE` style constant — forms on migrated pages no longer fall back to browser-default chrome.
  • Added `FormField` wrapper (label + hint/error slot) and `InlineError` (`role="alert"`) for consistent field-level error display.
  • Added `EmptyState` component with optional icon, title, description, and action slots.
  • Enhanced `LoadingSkeleton` with `count` (multi-row) and `variant` (`block`/`text`/`circle`) props and `aria-busy` for screen readers.
  • Base CSS layer now gives all raw `<input>`, `<select>`, and `<textarea>` elements full token-based styling (border, radius, padding, placeholder, focus ring, disabled state).
  • Added `prefers-reduced-motion` override to disable skeleton pulse animation and fall back to a static dimmed element.