Scope
apps/web/components.json (shadcn config)
apps/web/src/lib/utils.ts (cn helper using clsx + tailwind-merge)
apps/web/tailwind.config.{js,ts} — add shadcn theme extension (keep daisyUI plugin enabled)
apps/web/src/app/globals.css — add shadcn CSS variables / base layer
package.json — add class-variance-authority, clsx, tailwind-merge, lucide-react
Acceptance
Depends on
Research
Risk
low — config-only, no consumer swap.
Steps
- Run
npx shadcn@latest init inside apps/web with App Router + CSS variables + front/* alias (@/* mapped to apps/web/src/* via components.json aliases).
- Commit
components.json, lib/utils.ts, updated tailwind.config, updated globals.css.
- Verify
front/lib/utils import resolves from a dummy spot, then remove.
npx nx affected -t lint test build.
Scope
apps/web/components.json(shadcn config)apps/web/src/lib/utils.ts(cnhelper usingclsx+tailwind-merge)apps/web/tailwind.config.{js,ts}— add shadcn theme extension (keep daisyUI plugin enabled)apps/web/src/app/globals.css— add shadcn CSS variables / base layerpackage.json— addclass-variance-authority,clsx,tailwind-merge,lucide-reactAcceptance
npx nx affected -t lint test buildgreennpx shadcn@latest initcompleted non-interactively;components.jsoncommittedDepends on
Research
Risk
low — config-only, no consumer swap.
Steps
npx shadcn@latest initinsideapps/webwith App Router + CSS variables +front/*alias (@/*mapped toapps/web/src/*viacomponents.jsonaliases).components.json,lib/utils.ts, updatedtailwind.config, updatedglobals.css.front/lib/utilsimport resolves from a dummy spot, then remove.npx nx affected -t lint test build.