Group 1 of 8 — sub-issue of #68 (PRD-018 / RFC-016). ## Scope Implement 7 pure-CSS visual atoms under `template/src/shared/ui` using CSS variables from `app/styles/app.css`: - [ ] `Badge` — variant (primary/secondary/success/danger/ghost), size (sm/md) - [ ] `Separator` — orientation (horizontal/vertical) - [ ] `Skeleton` — width/height/radius props, shimmer animation - [ ] `Spinner` — size (sm/md/lg), inline / block - [ ] `Card` — padding (sm/md/lg), elevated/flat - [ ] `Alert` — variant (info/success/warning/danger), title + body slot - [ ] `Progress` — value (0-100), indeterminate ## Done when - [ ] Each primitive has `<Name>.svelte` + `index.ts` barrel. - [ ] `shared/ui/index.ts` re-exports all 7. - [ ] `npm run check` passes. - [ ] One commit on `feature/issue-68-shadcn-components`. Parent: #68
Group 1 of 8 — sub-issue of #68 (PRD-018 / RFC-016).
Scope
Implement 7 pure-CSS visual atoms under
template/src/shared/uiusing CSS variables fromapp/styles/app.css:Badge— variant (primary/secondary/success/danger/ghost), size (sm/md)Separator— orientation (horizontal/vertical)Skeleton— width/height/radius props, shimmer animationSpinner— size (sm/md/lg), inline / blockCard— padding (sm/md/lg), elevated/flatAlert— variant (info/success/warning/danger), title + body slotProgress— value (0-100), indeterminateDone when
<Name>.svelte+index.tsbarrel.shared/ui/index.tsre-exports all 7.npm run checkpasses.feature/issue-68-shadcn-components.Parent: #68