Captures hard-won lessons from forking the first site (chateau du
faune) off this boilerplate so future sessions don't relitigate them:
- Default to shadcn-vue primitives over hand-rolled UI. Lists the
installed family (Button, Card, Badge, NavigationMenu, Sheet, Alert)
and the as-child pattern for wrapping RouterLink / anchor.
- Prefer semantic theme tokens (bg-background, text-foreground,
border-border, …) over colour literals so site retheming is one
CSS variable edit instead of a global class sweep.
- Document the shadcn-vue CLI / nix-corepack conflict and the
registry-JSON workaround.
- Two consistent fixes when mirroring from the registry: lucide
imports (lucide-vue-next → @lucide/vue) and Tailwind v4 CSS
variable wrapping (h-[--name] → h-[var(--name)]), the latter
filed upstream as unovue/shadcn-vue#1853.
- tsconfig + components.json setup for when the CLI does work
(baseUrl + paths in both tsconfigs, ignoreDeprecations 6.0, no
framework key, no empty tailwind.config).
- Asset / hero / frosted-glass nav patterns we use and reuse.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Both directories are generated by tooling that any aiolabs site
forked off the boilerplate is likely to run:
- .playwright-mcp/ — written by the Playwright MCP server (snapshots,
console logs) every time it drives a browser. Lives in main now via
.mcp.json so this gitignore entry belongs here too.
- inspect/ — convention for a scratch folder holding
screenshots, style dumps and other visual-QA artifacts produced
during dev. Not source of truth for anything.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous commit added baseUrl so the shadcn-vue CLI's
resolvedPaths validator passes. TypeScript 6 emits a deprecation
error for baseUrl (slated for removal in TS 7); vue-tsc treats it as
a hard build failure.
Per the upstream guidance ('Specify compilerOption
"ignoreDeprecations": "6.0" to silence this error'), suppress the
deprecation in both tsconfig.json and tsconfig.app.json. Revisit
when shadcn-vue's CLI migrates off baseUrl.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The shadcn-vue CLI (verified against
https://www.shadcn-vue.com/docs/installation/vite) requires path
aliases declared with both baseUrl and paths in tsconfig.json AND
tsconfig.app.json. Without baseUrl the CLI's resolvedPaths validator
fails with:
Validation failed:
- resolvedPaths: Required,Required,Required,Required,Required
(one Required per declared alias under "aliases" in components.json).
Also drop two stale keys from components.json that newer shadcn-vue
schema versions reject:
- "framework": "vite" → no longer part of the schema
- "tailwind.config": "" → empty string fails validation; field is
optional for Tailwind 4 (no JS config file)
After this commit, "pnpm dlx shadcn-vue@latest add <component>"
succeeds out of the box.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirrors the configuration we use across aiolabs/webapp. Sites forked
from the boilerplate inherit a browser-driving MCP server for visual
inspection, screenshots and devtools-protocol access against any URL
without needing per-project setup.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>