Repository navigation
Use @ponti-studios/ui for the interface - #1
Conversation
Replace the hand-rolled CSS and components with the shared package: Dialog (sheets), DropdownMenu, Button, Badge, Card, Table, Select, TextField, MetricCard, EmptyState, Alert, Avatar. Styling moves to Tailwind v4 with the package's tokens; lucide-react is bumped to 1.x to match the package. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DacRXgSj6Gg58a5Md8nBup
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2ebec60633
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Mobile dialog safe-area and breakpoint regressions, plus a category-filter collision, should be resolved before approval.
Review effort: Balanced
Findings: 3
Open (3)
What changed in this PR
Replaces the custom interface with the shared Ponti UI system and Tailwind v4.
Changes:
- Migrates controls, dialogs, tables, cards, and feedback states to shared components.
- Rebuilds responsive layouts using Tailwind utilities.
- Adds required UI and Tailwind dependencies.
| File | Description |
|---|---|
vite.config.ts |
Enables Tailwind’s Vite plugin. |
src/style.css |
Imports Tailwind and shared UI styles. |
src/components/Sheet.tsx |
Replaces custom sheets with Dialog. |
src/components/Overview.tsx |
Migrates metrics, cards, badges, and buttons. |
src/components/Menu.tsx |
Uses shared dropdown menus. |
src/components/ItemSheet.tsx |
Migrates item form controls. |
src/components/ItemList.tsx |
Adds shared selects, cards, badges, and table. |
src/components/GroupSheet.tsx |
Migrates group form controls. |
src/components/Groups.tsx |
Uses shared cards and empty states. |
src/App.tsx |
Rebuilds application chrome and feedback states. |
README.md |
Documents the new UI conventions. |
package.json |
Adds UI and Tailwind dependencies. |
package-lock.json |
Locks the new dependency graph. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…fe area - Prefix category option values so a category named "all" can't collide with the All sentinel. - Switch the dialog from bottom sheet to modal at md (not sm) to match the app shell. - Pad the mobile dialog for safe-area-inset-bottom. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DacRXgSj6Gg58a5Md8nBup

Summary
Still's hand-rolled UI is replaced with the shared
@ponti-studios/uipackage (1.8.0, public npm) so it matches other Ponti apps.@tailwindcss/vite) plus the package'sstyles.cssand tokens.src/style.csswent from 231 lines to a few imports. The custom palette and Google Fonts are gone.Dialog(bottom sheet on phones, modal on desktop).DropdownMenu.Button,Badge,Card.TextFieldandSelect.Table.MetricCard.EmptyState,Alert,Spinner.Avatar.lucide-reactbumped from 0.468 to 1.x to match the package. The package ships TS source, so Vite transpiles it.Notes
Buttonand tokens. The package'sTabsare panel tabs, and itsNavigationis a top bar, so neither fits.Item.colorinmapping.tsis now unused by the UI. I left it alone to keep this diff focused.Testing
tsc -b,npm test(4 passed) andnpm run buildpass.🤖 Generated with Claude Code
https://claude.ai/code/session_01DacRXgSj6Gg58a5Md8nBup
Generated by Claude Code