v0.53.0

Latest release

6 November 2026

The daisy addon is replaced by a new ui addon with its own elements, components and UnoCSS preset.

Added

  • The phlat/ui addon, mounted by default. {ui name, ...} renders an element from views/name.latte and {component name, ...} renders one from views/components/name.latte. A paired tag fills the template's {block default}. A site overrides either in site/views/@ui/ and site/views/@ui/components/.
  • Elements: accordion, alert, avatar, badge, breadcrumb, button, card, dropdown, field (input, textarea, select, checkbox, radio, switch, range), list, menu, progress, separator, skeleton, spinner, status, table and tooltip.
  • Components: tabs, pagination, modal and toast. tabs load their panel from a :block fragment, pagination links to ?page=N for Page::paginate(), and modal and toast are fragments the server returns.
  • The items() Latte function turns pages, strings and arrays into the shared item shape (title, description, href, icon, meta, active, open, items) that breadcrumb, list, menu and tabs take.
  • assets/preset.mjs, the UnoCSS preset that styles the elements from HSL tokens (background, foreground, primary, border, radius, ...) with a light and a dark set, xs and xxl breakpoints, a container utility and success, warning and info status colours.
  • assets/ui.css styles plain tags (h1 to h6, p, a, lists, blockquote, pre, code) at zero specificity, so bare HTML looks right and any class still wins.
  • assets/ui.js, served from the addon's page as ui.js, closes an open dropdown on Escape or an outside click and handles modal focus and toast removal.
  • npm run build:ui bundles ui.js, npm run build:ui:styles and npm run watch:ui:styles build the site stylesheet with UnoCSS and LightningCSS, and task phlat:watch:ui rebuilds it when a ui template changes.

Changed

  • The site stylesheet is built with UnoCSS and the ui preset instead of Tailwind. The admin theme still uses Tailwind and DaisyUI. npm run build:styles and npm run watch:styles are gone.
  • phlat/config.json mounts phlat/ui instead of phlat/daisy.
  • README.md and STYLE.md describe the ui elements and the UnoCSS build.

Removed

  • The phlat/daisy addon, its @daisy/... partials and Phlat\Daisy\DaisyExtension. Elements are now {ui button, title: 'Save' /} and take variant and size with no color axis. To migrate, rename each {include '@daisy/x.latte', ...} to {ui x, ...} ({component x, ...} for modal, toast, tabs and pagination), replace color: with variant:, move overrides from site/views/@daisy/ to site/views/@ui/, and remove "phlat/daisy" from addons in site/config.json.