Updates & Changelog
Track all changes and improvements to LocaleDB
Current Version:v0.6.1
β¨ Features
π New `ChangelogAccordion` ([/updates](src/app/[locale]/updates/page.tsx))
- **Apple-style motion.** Open/close uses Framer Motion `height: 0 β "auto"` + opacity tween on signature Apple easing `cubic-bezier(0.32, 0.72, 0, 1)` (0.42s height, 0.28s opacity, 0.35s chevron rotate). Feels like a live organism rather than a snap.
- **Mobile/tablet responsive.** Trigger padding (`px-4 py-3.5 sm:px-5 sm:py-4`), version/meta type (`text-xs sm:text-sm` / `text-[11px] sm:text-xs`), chevron (`h-3.5 sm:h-4`), inner spacing, code-block padding, list indent β all scale across breakpoints. Touch target β₯44px on mobile (WCAG 2.5.5).
- **shadcn `<Button>` trigger.** Replaced bare `<button>` with `variant="ghost"` Button + class overrides (`h-auto`, `!justify-between`, `whitespace-normal`) to preserve project component conventions.
- **`min-w-0` + `shrink-0`** on flex children so long version labels wrap cleanly on narrow screens.
- **a11y.** `aria-expanded`, `aria-hidden` fade-in logic, focus-visible ring, keyboard-friendly Button.
π¦ Docs page: Data Export section ([/docs](src/app/[locale]/docs/page.tsx))
- New `#data-export` section with sky-500 icon between Data Schemas and Project Structure.
- **Wizard summary card** β 4-step grid (dataset β entities β fields β format).
- **Formats list** β JSON pretty/min, CSV (RFC 4180), ZIP β each with a matching `lucide-react` icon.
- **API reference** β POST `/api/export` example payload via `<CodeBlock>` + 500-entity / dataset-enum limits.
- **TOC entry** added to [`TableOfContents`](src/components/docs/table-of-contents.tsx).
π§ Sticky-on-scroll TOC sidebar
- --
π UI / UX Polish
- **TOC button colors.** Explicit, theme-aware zinc tokens (`!text-zinc-600 dark:!text-zinc-400`, `hover:!text-zinc-900 dark:hover:!text-zinc-100`) replace `text-muted-foreground` to keep labels readable on the new `!bg-zinc-100 / dark:!bg-zinc-800` hover backgrounds.
- **TOC button bg.** `!bg-transparent !border-transparent` base + soft gray hover, both modes.
- **Active TOC entry** uses `!text-primary`.
- --
π Fixes
Dark utilities leaking into light mode
- **`globals.css`** β switched custom variant to the official v4 form: `&:where(.dark, .dark *)`. `:where()` is zero-specificity, the explicit `.dark, .dark *` matches both the `<html>` element and any descendant.
- **`.changelog-trigger`** β for the accordion trigger we sidestepped Tailwind variants entirely with a raw CSS class (light + `.dark .changelog-trigger` rules in `globals.css`). Bulletproof against any further v4-beta cascade quirks.
Old `UpdatesList` removed
- --
π Internationalization
- Added `docs.toc.dataExport` and full `docs.dataExport.*` namespace (wizard steps, formats, api) to `messages/en.json`.
- Ran `scripts/sync-i18n.ts` to backfill the 10 non-EN locales with EN fallbacks. Run `scripts/translate-missing-keys.ts` separately for proper translations.
- --
π§ Technical
- **Tailwind upgrade.** `tailwindcss` + `@tailwindcss/postcss`: `4.0.0-beta.1` β `4.3.0`. The "Invalid code point 6477951" build error that originally pinned the project to the beta is resolved upstream. Production build clean (6003 static pages).
- TypeScript strict typecheck clean. No new lint regressions.
- --
π Commits
- feat: changelog accordion, docs export section, tailwind 4.3 (`8fca556`)
- 0.6.1 (`8dfdbce`)
- --
π File Changes
messages/{11 locales}.json | docs.dataExport.* keys
package.json | version 0.6.1 + tailwind 4.3.0
pnpm-lock.yaml | tailwind dependency tree
src/app/[locale]/countries/[code]/page.tsx | minor cleanup
src/app/[locale]/docs/page.tsx | + Data Export section
src/app/[locale]/updates/page.tsx | swap UpdatesList β ChangelogAccordion
src/app/globals.css | dark variant fix + .changelog-trigger
src/components/docs/table-of-contents.tsx | scroll fade-in, theme-aware text
src/components/updates/changelog-accordion.tsx | NEW
src/components/updates/updates-list.tsx | REMOVED
updates/v0.6.1.md | this file