Skip to content

v3.0.0

Latest

Choose a tag to compare

@lazercaveman lazercaveman released this 06 May 20:22
· 5 commits to main since this release
5746ed5

Summary

This release adds Storybook (@storybook/vue3-vite v10) and Chromatic to the starter, giving teams isolated component development, accessibility checks during development, and automated visual regression testing on every push. Nuxt compatibility stubs let components render in Storybook without booting a Nuxt server, and StarterButton ships with the first reference story. The release also fixes a pre-push hook that was silently auto-fixing code rather than validating it — formatting and lint failures had been slipping past pre-push checks as a result.

✨ Added

[✓] Storybook (@storybook/vue3-vite v10) with full Vite integration — Tailwind CSS, SVG loader, and Nuxt auto-import support wired in via viteFinal
[✓] .storybook/nuxt-stubs.ts — drop-in stubs for Nuxt globals (NuxtLink, useRoute, useRuntimeConfig, defineLazyHydrationComponent, $fetch) so components render in Storybook without a running Nuxt server
[✓] .storybook/preview.ts — global setup: Pinia, NuxtLink component, $route global property, viewport presets, dark/light theme switcher via data-theme, and Chromatic baseline config
[✓] Storybook addons: @storybook/addon-docs, @storybook/addon-a11y, @storybook/addon-vitest, @storybook/addon-themes, @chromatic-com/storybook
[✓] chromatic.config.json — Chromatic config with onlyChanged and zip enabled for efficient CI runs
[✓] StarterButton.stories.ts — first component story, serving as a reference for future stories
[✓] Storybook and Chromatic documentation sections in README.md

🔄 Changed

[✓] @ alias in Storybook's Vite config now correctly maps to app/ (matching Nuxt 4's path alias)
[✓] $route registered as a Vue global property in preview.ts so templates using $route.name render without Vue Router

🐛 Fixed

[✓] Pre-push hook: switched lint:fixlint and formatformat:check — the hook now validates without mutating files, so formatting and lint failures surface during pre-push instead of being silently auto-fixed
[✓] $fetch (Nuxt global) is now auto-imported from nuxt-stubs.ts via unplugin-auto-import, preventing ReferenceError when Pinia stores using $fetch are loaded in Storybook

🛠 Tooling / Infra

[✓] Added yarn storybook, yarn build-storybook, and yarn chromatic scripts to package.json
[✓] Updated @nuxt/test-utils setup version in .nuxtrc to 4.0.3

📦 Dependency Updates

[✓] Testing: bumped @nuxt/test-utils and vitest to latest patch/minor
[✓] Linting & formatting: bumped oxlint and oxfmt to latest patch/minor
[✓] Language: bumped typescript to latest patch/minor


Add storybook, chromatic and updates by @lazercaveman in #327

Full Changelog: v2.1.0...v3.0.0