Implement the 010-ui-baseline feature that establishes a modern UI using Tailwind CSS v4 and shadcn/ui-style components for the encounter screen
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
62
specs/010-ui-baseline/quickstart.md
Normal file
62
specs/010-ui-baseline/quickstart.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Quickstart: UI Baseline
|
||||
|
||||
**Feature**: 010-ui-baseline | **Date**: 2026-03-05
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Node.js 18+
|
||||
- pnpm 10.6+
|
||||
|
||||
## Setup
|
||||
|
||||
```bash
|
||||
# Install dependencies (from repo root)
|
||||
pnpm install
|
||||
|
||||
# Start dev server
|
||||
pnpm --filter web dev
|
||||
# → http://localhost:5173
|
||||
```
|
||||
|
||||
## New Dependencies (to be added)
|
||||
|
||||
```bash
|
||||
# Tailwind CSS v4 with Vite plugin
|
||||
pnpm --filter web add tailwindcss @tailwindcss/vite
|
||||
|
||||
# shadcn/ui utilities
|
||||
pnpm --filter web add clsx tailwind-merge class-variance-authority
|
||||
|
||||
# Radix UI primitives (used by shadcn/ui components)
|
||||
pnpm --filter web add @radix-ui/react-slot @radix-ui/react-tooltip
|
||||
|
||||
# Icons
|
||||
pnpm --filter web add lucide-react
|
||||
```
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `apps/web/src/index.css` | Tailwind directives + CSS custom properties |
|
||||
| `apps/web/src/lib/utils.ts` | `cn()` class merge utility |
|
||||
| `apps/web/src/components/ui/` | shadcn/ui primitives (Button, Input, etc.) |
|
||||
| `apps/web/src/components/combatant-row.tsx` | Combatant row component |
|
||||
| `apps/web/src/App.tsx` | Main layout (header, list, action bar) |
|
||||
| `apps/web/vite.config.ts` | Updated with Tailwind plugin |
|
||||
|
||||
## Quality Gate
|
||||
|
||||
```bash
|
||||
# Must pass before commit
|
||||
pnpm check
|
||||
```
|
||||
|
||||
This runs: knip → format → lint → typecheck → test
|
||||
|
||||
## Design System
|
||||
|
||||
- **Styling**: Tailwind CSS v4 utility classes
|
||||
- **Components**: shadcn/ui (copied into project, not a package dependency)
|
||||
- **Icons**: Lucide React
|
||||
- **Class merging**: `cn()` from `lib/utils.ts` (clsx + tailwind-merge)
|
||||
Reference in New Issue
Block a user