feat(tailwind): install Tailwind v4 alongside Vuetify (parallel mode)

Three additions wire Tailwind v4 into the SPA without disturbing the
existing Vuetify pipeline:

- apps/app/src/assets/styles/tailwind.css — Tailwind v4 CSS-first entry.
  Uses @import "tailwindcss"; @plugin "tailwindcss-primeui"; and
  @source pointing at apps/app/src/ to scan template content.

- apps/app/vite.config.ts — adds the @tailwindcss/vite plugin between
  vue() and vuetify(). After vue() so it sees compiled template
  content; before vuetify() so Vuetify's SCSS pipeline runs unimpeded.

- apps/app/src/main.ts — imports tailwind.css before the Vuetify/Vuexy
  SCSS so utility classes are available alongside Vuetify's cascade.

optimizeDeps.exclude remains ['vuetify'] (no PrimeVue addition) — HMR
behaves correctly in dev with the current config; revisit if needed.

Verification:
- pnpm typecheck — clean.
- pnpm build — succeeds in 13.97s; CSS emitted per-route as expected.
- pnpm test — 402 tests pass unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-11 01:02:05 +02:00
parent 0272961a95
commit 90d5c1678c
3 changed files with 21 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
/* Tailwind v4 CSS-first entry. Imports the framework and the
* tailwindcss-primeui plugin (semantic-token utilities that map
* PrimeVue Aura tokens like {primary.500} to Tailwind classes
* like bg-primary-500).
*
* Per Tailwind v4 with @tailwindcss/vite, the @source directive
* tells the plugin where to scan template content — we point it at
* apps/app/src/. Existing Vuetify/Vuexy SCSS stays untouched and is
* imported separately from main.ts.
*/
@import "tailwindcss";
@plugin "tailwindcss-primeui";
@source "../../**/*.{vue,ts,js,tsx,jsx}";