beads-kanban-ui 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +16 -222
  2. package/package.json +18 -55
  3. package/.designs/beads-kanban-ui-bj0.md +0 -73
  4. package/.designs/beads-kanban-ui-qxq.md +0 -144
  5. package/.designs/epic-support.md +0 -282
  6. package/.env.local.example +0 -2
  7. package/.eslintrc.json +0 -3
  8. package/.gitattributes +0 -3
  9. package/.github/workflows/release.yml +0 -123
  10. package/.history/README_20260121193710.md +0 -227
  11. package/.history/README_20260121193918.md +0 -227
  12. package/.history/README_20260121193921.md +0 -227
  13. package/.history/README_20260121193933.md +0 -227
  14. package/.history/README_20260121193934.md +0 -227
  15. package/.history/README_20260121193944.md +0 -227
  16. package/.history/README_20260121193953.md +0 -227
  17. package/.history/src/app/page_20260121133429.tsx +0 -134
  18. package/.history/src/app/page_20260121133928.tsx +0 -134
  19. package/.history/src/app/page_20260121144850.tsx +0 -138
  20. package/.history/src/app/page_20260121144854.tsx +0 -138
  21. package/.history/src/app/page_20260121144858.tsx +0 -138
  22. package/.history/src/app/page_20260121144902.tsx +0 -138
  23. package/.history/src/app/page_20260121144906.tsx +0 -138
  24. package/.history/src/app/page_20260121144911.tsx +0 -138
  25. package/.history/src/app/page_20260121144928.tsx +0 -138
  26. package/.playwright-mcp/.playwright-mcp/morphing-dialog-wheel-scroll-fix.png +0 -0
  27. package/.playwright-mcp/beams-test.png +0 -0
  28. package/.playwright-mcp/card-verification.png +0 -0
  29. package/.playwright-mcp/design-doc-dialog-fix-verification.png +0 -0
  30. package/.playwright-mcp/dialog-width-test.png +0 -0
  31. package/.playwright-mcp/homepage.png +0 -0
  32. package/.playwright-mcp/morphing-dialog-expanded.png +0 -0
  33. package/.playwright-mcp/morphing-dialog-fixes-final.png +0 -0
  34. package/.playwright-mcp/morphing-dialog-open.png +0 -0
  35. package/.playwright-mcp/page-2026-01-21T14-08-31-529Z.png +0 -0
  36. package/.playwright-mcp/page-2026-01-21T14-09-23-431Z.png +0 -0
  37. package/.playwright-mcp/page-2026-01-21T14-10-28-773Z.png +0 -0
  38. package/.playwright-mcp/page-2026-01-21T14-10-47-432Z.png +0 -0
  39. package/.playwright-mcp/page-2026-01-21T14-11-12-350Z.png +0 -0
  40. package/.playwright-mcp/screenshot-after-click.png +0 -0
  41. package/.playwright-mcp/screenshot-after-dialog-click.png +0 -0
  42. package/.playwright-mcp/sheet-restored-after-dialog-close.png +0 -0
  43. package/.playwright-mcp/test-1-sheet-open-with-overlay.png +0 -0
  44. package/.playwright-mcp/test-2-morphing-dialog-with-overlay.png +0 -0
  45. package/.playwright-mcp/test-3-sheet-open-dark-overlay.png +0 -0
  46. package/.playwright-mcp/test-4-morphing-dialog-with-dark-overlay.png +0 -0
  47. package/.playwright-mcp/test-5-morphing-dialog-scrolled.png +0 -0
  48. package/.playwright-mcp/test-6-sheet-restored-after-dialog-close.png +0 -0
  49. package/.playwright-mcp/wheel-scroll-fixed.png +0 -0
  50. package/Screenshots/bead-detail.png +0 -0
  51. package/Screenshots/dashboard.png +0 -0
  52. package/Screenshots/kanban-board.png +0 -0
  53. package/components.json +0 -27
  54. package/logo/logo.svg +0 -1
  55. package/next.config.js +0 -9
  56. package/npm/README.md +0 -37
  57. package/npm/package.json +0 -20
  58. package/postcss.config.js +0 -6
  59. package/public/logo.svg +0 -1
  60. package/restart.sh +0 -5
  61. package/server/Cargo.lock +0 -1685
  62. package/server/Cargo.toml +0 -24
  63. package/server/src/db.rs +0 -570
  64. package/server/src/main.rs +0 -141
  65. package/server/src/routes/beads.rs +0 -413
  66. package/server/src/routes/cli.rs +0 -150
  67. package/server/src/routes/fs.rs +0 -360
  68. package/server/src/routes/git.rs +0 -169
  69. package/server/src/routes/mod.rs +0 -107
  70. package/server/src/routes/projects.rs +0 -177
  71. package/server/src/routes/watch.rs +0 -211
  72. package/src/app/globals.css +0 -101
  73. package/src/app/layout.tsx +0 -36
  74. package/src/app/page.tsx +0 -348
  75. package/src/app/project/kanban-board.tsx +0 -356
  76. package/src/app/project/page.tsx +0 -18
  77. package/src/app/settings/page.tsx +0 -224
  78. package/src/components/Beams.css +0 -5
  79. package/src/components/Beams.jsx +0 -307
  80. package/src/components/Galaxy.css +0 -5
  81. package/src/components/Galaxy.jsx +0 -333
  82. package/src/components/activity-timeline.tsx +0 -172
  83. package/src/components/add-project-dialog.tsx +0 -219
  84. package/src/components/bead-card.tsx +0 -196
  85. package/src/components/bead-detail.tsx +0 -306
  86. package/src/components/color-picker.tsx +0 -101
  87. package/src/components/comment-input.tsx +0 -155
  88. package/src/components/comment-list.tsx +0 -147
  89. package/src/components/dependency-badge.tsx +0 -106
  90. package/src/components/design-doc-dialog.tsx +0 -58
  91. package/src/components/design-doc-preview.tsx +0 -97
  92. package/src/components/design-doc-viewer.tsx +0 -199
  93. package/src/components/editable-project-name.tsx +0 -178
  94. package/src/components/epic-card.tsx +0 -263
  95. package/src/components/folder-browser.tsx +0 -273
  96. package/src/components/footer.tsx +0 -27
  97. package/src/components/kanban/default.tsx +0 -184
  98. package/src/components/kanban-column.tsx +0 -167
  99. package/src/components/project-card.tsx +0 -191
  100. package/src/components/quick-filter-bar.tsx +0 -279
  101. package/src/components/scan-directory-dialog.tsx +0 -368
  102. package/src/components/status-donut.tsx +0 -197
  103. package/src/components/subtask-list.tsx +0 -128
  104. package/src/components/tag-picker.tsx +0 -252
  105. package/src/components/ui/.gitkeep +0 -0
  106. package/src/components/ui/alert-dialog.tsx +0 -141
  107. package/src/components/ui/avatar.tsx +0 -67
  108. package/src/components/ui/badge.tsx +0 -230
  109. package/src/components/ui/button.tsx +0 -433
  110. package/src/components/ui/card/index.tsx +0 -24
  111. package/src/components/ui/card/roiui-card.module.css +0 -197
  112. package/src/components/ui/card/roiui-card.tsx +0 -154
  113. package/src/components/ui/card/shadcn-card.tsx +0 -76
  114. package/src/components/ui/chart.tsx +0 -369
  115. package/src/components/ui/dialog.tsx +0 -122
  116. package/src/components/ui/dropdown-menu.tsx +0 -201
  117. package/src/components/ui/input.tsx +0 -22
  118. package/src/components/ui/kanban.tsx +0 -522
  119. package/src/components/ui/morphing-dialog.tsx +0 -457
  120. package/src/components/ui/popover.tsx +0 -33
  121. package/src/components/ui/progress.tsx +0 -28
  122. package/src/components/ui/scroll-area.tsx +0 -48
  123. package/src/components/ui/select.tsx +0 -159
  124. package/src/components/ui/separator.tsx +0 -31
  125. package/src/components/ui/sheet.tsx +0 -142
  126. package/src/components/ui/skeleton.tsx +0 -15
  127. package/src/components/ui/toast.tsx +0 -129
  128. package/src/components/ui/toaster.tsx +0 -35
  129. package/src/components/ui/tooltip.tsx +0 -30
  130. package/src/hooks/.gitkeep +0 -0
  131. package/src/hooks/use-bead-filters.ts +0 -261
  132. package/src/hooks/use-beads.ts +0 -162
  133. package/src/hooks/use-branch-statuses.ts +0 -161
  134. package/src/hooks/use-epics.ts +0 -173
  135. package/src/hooks/use-file-watcher.ts +0 -111
  136. package/src/hooks/use-keyboard-navigation.ts +0 -282
  137. package/src/hooks/use-project.ts +0 -61
  138. package/src/hooks/use-projects.ts +0 -93
  139. package/src/hooks/use-toast.ts +0 -194
  140. package/src/hooks/useClickOutside.tsx +0 -26
  141. package/src/lib/.gitkeep +0 -0
  142. package/src/lib/api.ts +0 -186
  143. package/src/lib/beads-parser.ts +0 -252
  144. package/src/lib/cli.ts +0 -193
  145. package/src/lib/db.ts +0 -145
  146. package/src/lib/design-doc.ts +0 -74
  147. package/src/lib/epic-parser.ts +0 -242
  148. package/src/lib/git.ts +0 -102
  149. package/src/lib/utils.ts +0 -12
  150. package/src/types/index.ts +0 -107
  151. package/tailwind.config.ts +0 -85
  152. package/tsconfig.json +0 -26
  153. /package/{npm/bin → bin}/cli.js +0 -0
  154. /package/{npm/scripts → scripts}/postinstall.js +0 -0
package/README.md CHANGED
@@ -1,242 +1,36 @@
1
- # Beads Kanban UI
1
+ # beads-ui
2
2
 
3
- **See all your tasks at a glance. Organize, and track progress across projects - no CLI required.**
3
+ Visual Kanban board for the [Beads CLI](https://github.com/AvivK5498/beads-kanban-ui) task tracker.
4
4
 
5
- A beautiful visual Kanban board for the [Beads CLI](https://github.com/steveyegge/beads) task tracker. Beads stores tasks as git-native files (`.beads/issues.jsonl`), and this UI gives you the dashboard and board you've been missing.
5
+ ## Installation
6
6
 
7
- > **Works great with [Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — A multi-agent orchestration framework for Claude Code that uses beads for git-native task tracking.
8
-
9
- ## See It in Action
10
-
11
- **Dashboard** — All your projects in one place with status at a glance:
12
- ![Dashboard with multi-project view, status donuts, and tags](Screenshots/dashboard.png)
13
-
14
- **Kanban Board** — Organize tasks across Open → In Progress → In Review → Closed:
15
- ![Kanban board showing epic groups and task cards with git branch info](Screenshots/kanban-board.png)
16
-
17
- **Bead Details** — Dive into epics with full context and subtasks:
18
- ![Bead detail panel showing epic with progress bar and subtasks](Screenshots/bead-detail.png)
19
-
20
- ## What You Get
21
-
22
- - **Multi-project dashboard** — Manage all your beads projects in one place with status donut charts
23
- - **Kanban board** — Open → In Progress → In Review → Closed
24
- - **Epic support** — Group related tasks, track progress with bars, view all subtasks
25
- - **Real-time sync** — File watcher auto-updates when beads files change on disk
26
- - **Git integration** — See branch status for each task at a glance
27
- - **Search & filter** — Quick filters for status, priority, owner, and tags
28
- - **Project tagging** — Organize with colored tags and filter by them
29
-
30
- ## Quick Start
31
-
32
- ### Option 1: npm install (Recommended)
33
-
34
- **Prerequisites:**
35
- - Beads CLI: `brew install steveyegge/beads/bd`
36
-
37
- **Install and run:**
38
7
  ```bash
39
8
  npm install -g beads-ui
40
- bead-kanban
41
- ```
42
-
43
- That's it! The server starts automatically and opens your browser.
44
-
45
- > On first run, the postinstall script downloads the platform binary (~15MB). This is one-time only.
46
-
47
- ### Option 2: Build from source
48
-
49
- **Prerequisites:**
50
- ```bash
51
- # Install beads CLI
52
- brew install steveyegge/beads/bd
53
-
54
- # You'll also need Node.js 18+ and Rust
55
- ```
56
-
57
- **Install and run:**
58
- ```bash
59
- git clone https://github.com/AvivK5498/beads-kanban-ui
60
- cd beads-kanban-ui
61
- npm install
62
- npm run dev:full
63
- ```
64
-
65
- Then navigate to **`http://localhost:3007`** and add your beads projects.
66
-
67
- The app watches for file changes and syncs in real-time.
68
-
69
- ---
70
-
71
- ## Detailed Setup
72
-
73
- ### Development Mode
74
-
75
- Run both frontend and backend together:
76
- ```bash
77
- npm run dev:full
78
- ```
79
-
80
- Or run separately:
81
- ```bash
82
- # Terminal 1: Frontend (http://localhost:3007)
83
- npm run dev
84
-
85
- # Terminal 2: Backend (http://localhost:3008)
86
- npm run server:dev
87
9
  ```
88
10
 
89
- The Rust backend builds automatically on first run. If you need to rebuild it:
90
- ```bash
91
- cd server && cargo build --release && cd ..
92
- ```
93
-
94
- ### Production Build
11
+ ## Usage
95
12
 
96
- For a single binary deployment:
97
13
  ```bash
98
- npm run build
99
- npm run server:build
100
- ./server/target/release/beads-server
101
- ```
102
-
103
- The production server embeds the frontend and serves everything from a single binary on port 3008.
104
-
105
- ---
106
-
107
- ## How It Works
108
-
109
- ### Dashboard
110
- 1. Click **+ Add Project** and select a directory with a `.beads/` folder
111
- 2. See all projects with status donuts showing task distribution
112
- 3. Click any project to view its Kanban board
113
-
114
- ### Kanban Board
115
- 1. Tasks are organized by status: Open, In Progress, In Review, Closed
116
- 2. Drag cards between columns to update status
117
- 3. Click any task to see full details, comments, and related subtasks (for epics)
118
-
119
- ### Features in Detail
120
-
121
- **Search & Filter**
122
- - Quick filters for status, priority, and assigned owner
123
- - Project tags for organization
124
-
125
- **Real-time Sync**
126
- - The app watches `.beads/issues.jsonl` and updates automatically
127
- - No refresh needed—changes appear instantly
128
-
129
- **Git Integration**
130
- - Each task shows its git branch status
131
- - Useful for tracking which branch a task lives on
132
-
133
- ---
134
-
135
- ## Architecture
136
-
137
- ```
138
- ┌─────────────────────────────────────────────────────────┐
139
- │ Beads Kanban UI │
140
- ├─────────────────────────────────────────────────────────┤
141
- │ Frontend (Next.js 14) │ Backend (Rust/Axum) │
142
- │ ───────────────────── │ ────────────────────│
143
- │ • React 18 │ • SQLite (projects) │
144
- │ • shadcn/ui components │ • beads CLI bridge │
145
- │ • Tailwind CSS │ • File watcher │
146
- │ • TypeScript │ • Git integration │
147
- └─────────────────────────────────────────────────────────┘
148
-
149
-
150
- ┌─────────────────────────┐
151
- │ .beads/ directory │
152
- │ (issues.jsonl, etc.) │
153
- └─────────────────────────┘
154
- ```
155
-
156
- ### Tech Stack
157
- - **Frontend**: Next.js 14, React 18, Tailwind CSS, shadcn/ui
158
- - **Backend**: Rust with Axum framework
159
- - **Database**: SQLite for project metadata
160
- - **File Sync**: Real-time watcher for `.beads/` changes
161
-
162
- ### Project Structure
163
- ```
164
- beads-kanban-ui/
165
- ├── src/
166
- │ ├── app/ # Next.js pages and routes
167
- │ │ ├── page.tsx # Projects dashboard
168
- │ │ ├── project/ # Kanban board view
169
- │ │ └── settings/ # Settings page
170
- │ ├── components/ # React components
171
- │ │ ├── ui/ # shadcn/ui components
172
- │ │ ├── kanban-column.tsx
173
- │ │ ├── bead-card.tsx
174
- │ │ └── bead-detail.tsx
175
- │ ├── hooks/ # Custom React hooks
176
- │ ├── lib/ # Utilities and API client
177
- │ └── types/ # TypeScript type definitions
178
- ├── server/
179
- │ └── src/
180
- │ ├── main.rs # Axum server entry point
181
- │ ├── db.rs # SQLite database layer
182
- │ └── routes/ # API route handlers
183
- └── package.json
14
+ bead-kanban
184
15
  ```
185
16
 
186
- ---
187
-
188
- ## API Endpoints
189
-
190
- | Endpoint | Method | Description |
191
- |----------|--------|-------------|
192
- | `/api/health` | GET | Server health check |
193
- | `/api/projects` | GET/POST | List or create projects |
194
- | `/api/projects/:id` | GET/PUT/DELETE | Manage individual projects |
195
- | `/api/beads?path=` | GET | Read beads from a project path |
196
- | `/api/beads/comment` | POST | Add comment to a bead |
197
- | `/api/bd/command` | POST | Execute beads CLI commands |
198
- | `/api/git/branch-status` | GET | Get git branch status for a bead |
199
- | `/api/fs/list` | GET | List directory contents |
200
- | `/api/fs/exists` | GET | Check if a path exists |
201
- | `/api/watch/beads` | GET | Server-sent events for file changes |
202
-
203
- ### Environment Variables
17
+ This will start the Kanban board server on port 3008 and automatically open your browser to http://localhost:3008.
204
18
 
205
- | Variable | Default | Description |
206
- |----------|---------|-------------|
207
- | `PORT` | `3008` | Backend server port |
208
- | `NEXT_PUBLIC_BACKEND_URL` | `http://localhost:3008` | Backend URL for frontend API calls |
19
+ ## Requirements
209
20
 
210
- ---
211
-
212
- ## Development Commands
213
-
214
- ```bash
215
- # Run both frontend and backend
216
- npm run dev:full
217
-
218
- # Run frontend only
219
- npm run dev
220
-
221
- # Run backend only
222
- npm run server:dev
223
-
224
- # Build for production
225
- npm run build
226
- npm run server:build
227
-
228
- # Linting
229
- npm run lint
230
- ```
21
+ - Node.js 18 or higher
22
+ - [Beads CLI](https://github.com/AvivK5498/beads-kanban-ui) installed and configured
231
23
 
232
- ---
24
+ ## Supported Platforms
233
25
 
234
- ## Related Projects
26
+ - macOS (Apple Silicon and Intel)
27
+ - Linux x64
28
+ - Windows x64
235
29
 
236
- - **[Beads CLI](https://github.com/steveyegge/beads)** — Git-native issue tracker (the core tool this UI wraps)
237
- - **[Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — Multi-agent orchestration framework for Claude Code using beads
30
+ ## Links
238
31
 
239
- ---
32
+ - [GitHub Repository](https://github.com/AvivK5498/beads-kanban-ui)
33
+ - [Report Issues](https://github.com/AvivK5498/beads-kanban-ui/issues)
240
34
 
241
35
  ## License
242
36
 
package/package.json CHANGED
@@ -1,62 +1,25 @@
1
1
  {
2
2
  "name": "beads-kanban-ui",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
+ "description": "Visual Kanban board for the Beads CLI task tracker",
5
+ "bin": {
6
+ "bead-kanban": "./bin/cli.js"
7
+ },
4
8
  "scripts": {
5
- "dev": "next dev -p 3007",
6
- "build": "next build",
7
- "start": "next start -p 3007",
8
- "lint": "next lint",
9
- "server:dev": "cd server && cargo run",
10
- "server:build": "cd server && cargo build --release",
11
- "dev:full": "concurrently \"npm run dev\" \"npm run server:dev\""
9
+ "postinstall": "node scripts/postinstall.js"
12
10
  },
13
- "dependencies": {
14
- "@base-ui/react": "^1.1.0",
15
- "@dnd-kit/core": "^6.3.1",
16
- "@dnd-kit/sortable": "^10.0.0",
17
- "@dnd-kit/utilities": "^3.2.2",
18
- "@radix-ui/react-alert-dialog": "^1.1.15",
19
- "@radix-ui/react-dialog": "^1.1.15",
20
- "@radix-ui/react-dropdown-menu": "^2.1.16",
21
- "@radix-ui/react-popover": "^1.1.15",
22
- "@radix-ui/react-progress": "^1.1.8",
23
- "@radix-ui/react-scroll-area": "^1.2.10",
24
- "@radix-ui/react-select": "^2.2.6",
25
- "@radix-ui/react-separator": "^1.1.8",
26
- "@radix-ui/react-slot": "^1.2.4",
27
- "@radix-ui/react-toast": "^1.2.15",
28
- "@radix-ui/react-tooltip": "^1.2.8",
29
- "@react-three/drei": "^9.122.0",
30
- "@react-three/fiber": "^8.18.0",
31
- "class-variance-authority": "^0.7.1",
32
- "clsx": "^2.1.1",
33
- "date-fns": "^4.1.0",
34
- "lucide-react": "^0.562.0",
35
- "motion": "^12.27.5",
36
- "next": "^14.2.0",
37
- "ogl": "^1.0.11",
38
- "radix-ui": "^1.4.3",
39
- "react": "^18.3.0",
40
- "react-dom": "^18.3.0",
41
- "react-markdown": "^10.1.0",
42
- "recharts": "^2.15.4",
43
- "rehype-highlight": "^7.0.2",
44
- "tailwind-merge": "^3.4.0",
45
- "tailwindcss-animate": "^1.0.7",
46
- "three": "^0.166.1"
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/AvivK5498/beads-kanban-ui"
47
14
  },
48
- "devDependencies": {
49
- "@tailwindcss/typography": "^0.5.19",
50
- "@types/node": "^20.0.0",
51
- "@types/react": "^18.3.0",
52
- "@types/react-dom": "^18.3.0",
53
- "autoprefixer": "^10.4.0",
54
- "concurrently": "^8.2.0",
55
- "eslint": "^8.0.0",
56
- "eslint-config-next": "^14.2.0",
57
- "playwright": "^1.57.0",
58
- "postcss": "^8.4.0",
59
- "tailwindcss": "^3.4.0",
60
- "typescript": "^5.0.0"
15
+ "keywords": [
16
+ "beads",
17
+ "kanban",
18
+ "task-tracker",
19
+ "cli"
20
+ ],
21
+ "license": "MIT",
22
+ "engines": {
23
+ "node": ">=18"
61
24
  }
62
25
  }
@@ -1,73 +0,0 @@
1
- # Main Page Design Overhaul
2
-
3
- ## Epic ID: beads-kanban-ui-bj0
4
-
5
- ## Overview
6
-
7
- Modernize the main projects page with an animated beam background, custom typography, and improved layout structure. Remove navbar, add centered heading, create a visually appealing project grid.
8
-
9
- ## Requirements
10
-
11
- 1. **Background**: Animated Beams component from @react-bits registry
12
- - Full-screen, fixed position, behind all content
13
- - Config: beamWidth=8, beamHeight=14, beamNumber=20, lightColor="#f0c7ff", speed=2, noiseIntensity=1.75, scale=0.2, rotation=30
14
-
15
- 2. **Typography**: Space Grotesk font family
16
- - Imported via next/font/google
17
- - Applied to headings
18
-
19
- 3. **Layout**:
20
- - Remove navbar/header completely
21
- - Add centered heading: "Manage Your Beads Projects"
22
- - Center the 3-column grid with max-width constraint (~1200px)
23
- - Keep FAB button for adding projects
24
- - Move settings icon to top-right corner (fixed position)
25
-
26
- ## Visual Layout
27
-
28
- ```
29
- +--------------------------------------------------+
30
- | [Settings Icon] (fixed)|
31
- | |
32
- | "Manage Your Beads Projects" |
33
- | (Space Grotesk, centered) |
34
- | |
35
- | +-------+ +-------+ +-------+ |
36
- | | Card | | Card | | Card | |
37
- | +-------+ +-------+ +-------+ |
38
- | |
39
- | [+ FAB] (fixed) |
40
- +--------------------------------------------------+
41
- * Animated Beams fill entire viewport behind *
42
- ```
43
-
44
- ## Z-Index Layering
45
-
46
- | Layer | z-index | Component |
47
- |-------|---------|-----------|
48
- | Background | 0 | Beams |
49
- | Content | 10 | Main container, grid, cards |
50
- | Controls | 20 | FAB, Settings icon |
51
- | Dialogs | 50 | AddProjectDialog |
52
-
53
- ## Implementation Tasks
54
-
55
- 1. **beads-kanban-ui-bj0.1**: Install Beams component
56
- - `npx shadcn@latest add @react-bits/Beams-JS-CSS`
57
-
58
- 2. **beads-kanban-ui-bj0.2**: Configure Space Grotesk font
59
- - Add to layout.tsx via next/font/google
60
- - Add .font-heading utility class
61
-
62
- 3. **beads-kanban-ui-bj0.3**: Restructure main page layout
63
- - Remove header, add Beams background, add heading, center grid
64
- - Depends on tasks 1 and 2
65
-
66
- ## File Changes
67
-
68
- | File | Change |
69
- |------|--------|
70
- | src/app/page.tsx | Remove navbar, add Beams, add heading, center layout |
71
- | src/app/layout.tsx | Add Space Grotesk font |
72
- | src/app/globals.css | Add .font-heading class |
73
- | src/components/ui/beams.tsx | New file (from registry) |
@@ -1,144 +0,0 @@
1
- # Dark Minimalist Theme for Kanban and Settings Pages
2
-
3
- ## Epic ID: beads-kanban-ui-qxq
4
-
5
- ## Overview
6
-
7
- Apply the dark minimalist aesthetic from the home page to the Kanban board (project page) and Settings page. The goal is visual consistency across all pages: dark backgrounds, glass-morphism cards, subtle borders, and refined typography.
8
-
9
- ## Reference Implementation
10
-
11
- The home page (`src/app/page.tsx`) establishes the target aesthetic:
12
- - Root container: `dark min-h-dvh bg-[#0a0a0a]`
13
- - Nav: `border-zinc-800 bg-[#0a0a0a]/80 backdrop-blur-sm`
14
- - Cards: roiui glass effect with `backdrop-filter: blur(12px)`
15
-
16
- ---
17
-
18
- ## 1. Color Palette
19
-
20
- ### Background Colors
21
-
22
- | Usage | Value | Tailwind Class |
23
- |-------|-------|----------------|
24
- | Page background | `#0a0a0a` | `bg-[#0a0a0a]` |
25
- | Column background | - | `bg-zinc-900/50` |
26
-
27
- ### Border Colors
28
-
29
- | Usage | Tailwind Class |
30
- |-------|----------------|
31
- | Default border | `border-zinc-800` |
32
- | Hover border | `border-zinc-700` |
33
- | Focus ring | `ring-zinc-400` |
34
-
35
- ### Text Colors
36
-
37
- | Usage | Tailwind Class |
38
- |-------|----------------|
39
- | Primary text | `text-white` or `text-foreground` |
40
- | Secondary text | `text-zinc-400` |
41
- | Muted text | `text-zinc-500` |
42
-
43
- ---
44
-
45
- ## 2. Card Styling (Glass Effect)
46
-
47
- ```tsx
48
- <div className={cn(
49
- "rounded-lg",
50
- "bg-zinc-900/70 backdrop-blur-md",
51
- "border border-zinc-800/60",
52
- "shadow-sm shadow-black/20",
53
- "transition-all duration-200",
54
- "hover:-translate-y-0.5 hover:shadow-lg hover:shadow-black/30",
55
- "hover:border-zinc-700"
56
- )}>
57
- ```
58
-
59
- ### Selected State
60
- ```tsx
61
- isSelected && "ring-2 ring-zinc-400 ring-offset-2 ring-offset-[#0a0a0a]"
62
- ```
63
-
64
- ### Blocked State
65
- ```tsx
66
- blocked ? "border-l-4 border-l-red-500" : "border-l-4 border-l-transparent"
67
- ```
68
-
69
- ---
70
-
71
- ## 3. Column Differentiation
72
-
73
- Use subtle colored accent bars at the top of each column header instead of colored backgrounds.
74
-
75
- ### Column Container
76
- ```tsx
77
- <div className="flex flex-col h-full min-h-0 rounded-lg bg-zinc-900/30 border border-zinc-800/50">
78
- ```
79
-
80
- ### Column Color Mapping
81
-
82
- | Status | Accent Border | Header Text | Badge BG | Badge Text |
83
- |--------|---------------|-------------|----------|------------|
84
- | Open | `border-t-blue-500/60` | `text-blue-400` | `bg-blue-500/20` | `text-blue-400` |
85
- | In Progress | `border-t-amber-500/60` | `text-amber-400` | `bg-amber-500/20` | `text-amber-400` |
86
- | In Review | `border-t-purple-500/60` | `text-purple-400` | `bg-purple-500/20` | `text-purple-400` |
87
- | Closed | `border-t-green-500/60` | `text-green-400` | `bg-green-500/20` | `text-green-400` |
88
-
89
- ---
90
-
91
- ## 4. Badge Colors (Dark Theme)
92
-
93
- ### Priority Badges
94
-
95
- | Priority | Background | Text |
96
- |----------|------------|------|
97
- | P0 (Critical) | `bg-red-500/20` | `text-red-400` |
98
- | P1 (High) | `bg-orange-500/20` | `text-orange-400` |
99
- | P2 (Medium) | `bg-zinc-500/20` | `text-zinc-400` |
100
- | P3/P4 (Low) | `bg-zinc-600/20` | `text-zinc-500` |
101
-
102
- ### Status Badges
103
-
104
- | Status | Background | Text |
105
- |--------|------------|------|
106
- | BLOCKED | `bg-red-500/20` | `text-red-400` |
107
- | Open | `bg-blue-500/20` | `text-blue-400` |
108
- | In Progress | `bg-amber-500/20` | `text-amber-400` |
109
- | In Review | `bg-purple-500/20` | `text-purple-400` |
110
- | Closed | `bg-green-500/20` | `text-green-400` |
111
-
112
- ---
113
-
114
- ## 5. Page Wrapper Pattern
115
-
116
- ### Kanban Page
117
- ```tsx
118
- <div className="dark min-h-dvh bg-[#0a0a0a]">
119
- <header className="sticky top-0 z-30 border-b border-zinc-800 bg-[#0a0a0a]/80 backdrop-blur-sm px-4 py-3">
120
- </header>
121
- <main className="flex-1 overflow-hidden p-4">
122
- </main>
123
- </div>
124
- ```
125
-
126
- ### Settings Page
127
- ```tsx
128
- <div className="dark min-h-dvh bg-[#0a0a0a]">
129
- <header className="sticky top-0 z-30 border-b border-zinc-800 bg-[#0a0a0a]/80 backdrop-blur-sm px-6 py-4">
130
- </header>
131
- <main className="mx-auto max-w-2xl p-6">
132
- </main>
133
- </div>
134
- ```
135
-
136
- ---
137
-
138
- ## 6. Button Variants
139
-
140
- | Variant | Classes |
141
- |---------|---------|
142
- | Primary | `bg-zinc-100 text-zinc-900 hover:bg-white` |
143
- | Ghost | `text-zinc-400 hover:bg-zinc-800/50 hover:text-zinc-100` |
144
- | Destructive | `bg-red-900/30 text-red-400 border-red-800/50 hover:bg-red-900/50` |