Skip to content

v2026.05.03-palette

Latest

Choose a tag to compare

@vekexasia vekexasia released this 03 May 12:42

Summary

Admin i18n, a full palette-switcher, and a redesigned dish-edit experience. The biggest operator-visible change is the new 0003_primary_locale.sql migration (see Upgrade actions).

Breaking changes

None.

Upgrade actions

Run the primary-locale migration on your D1 database before deploying:

wrangler d1 migrations apply <your-db-name> --remote

This applies 0003_primary_locale.sql, which adds a primary_locale column to the settings table (default 'it'). Skipping it causes the /catalog endpoint to return a malformed primaryLocale value, which in turn breaks the Save button on the admin Settings page.

What's new

Palette switcher

  • 7 built-in palettes: Terracotta, Forest, Slate, Aubergine, Rose, Charcoal, Saffron
  • Clicking a swatch instantly reapplies 6 CSS vars across the entire admin UI and the public menu (live preview, no save required)
  • Selection is persisted to restaurant.theme.palette and re-applied on every page load via ThemeProvider
  • All previously hardcoded accent hex values in admin pages replaced with CSS vars — they now track the active palette

Admin i18n

  • Admin UI fully internationalised; language follows the operator's browser preference
  • Runtime language picker in the admin header
  • Per-restaurant primary menu locale configurable from Settings › Languages

Dish edit UX

  • Dish edit moved to its own full-page route (?s=entries-edit) instead of an overlay
  • Edit page includes a phone-frame live preview that tracks the active menu tab
  • Category edit retains the slide-in side panel
  • Shared view components between admin preview and public menu page

Settings

  • Settings sub-sections reachable from mobile viewports via a top nav
  • Single-column layout on narrow screens

Local dev

  • backend/scripts/seed-from-demo.ts (npm run seed:demo): bootstraps the local D1 from the live demo API catalog, including schema migration patches for fresh DBs
  • wrangler dev now starts with --persist-to .wrangler/state so saves survive hot-reloads