Web – React + Vite + Tailwind + shadcn/ui
Use this skill when implementing UI in apps/web.
When to Use This Skill
- •“Add a page / card / layout”, “desktop-first shell”
- •“Add shadcn component”, “update components.json”
- •“Fix dark mode”, “semantic tokens”, “Tailwind styling”
References
- •
docs/standarts/desktop-ui-standards.md - •
docs/standarts/theming-guide.md - •
docs/proxy-config.md(corp proxy env vars) - •
docs/technical-overview.md(UI shell + providers)
Hard Requirements
- •Desktop-first: design for ≥1280px, graceful down to 1024px.
- •Use semantic Tailwind tokens (
bg-card,text-foreground,border-border) instead of hard-coded colors. - •Prefer shadcn/ui primitives; do not hand-roll new components if a shadcn equivalent exists.
- •New components must work in light + dark mode.
Where Things Live
- •shadcn components:
apps/web/src/components/ui/* - •Shared UI helpers:
apps/web/src/lib/* - •Global theme tokens:
apps/web/src/styles/globals.css - •Theme control:
ThemeProvideranduseTheme()
Step-by-Step Workflow: Add a shadcn/ui Component (with proxy)
- •Set proxy env vars (PowerShell) using
docs/proxy-config.mdvalues. - •From repo root, run:
- •
pnpm shadcn@latest add <component> -y
- •
- •Confirm files land under
apps/web/src/components/ui. - •Run
pnpm lintto catch import/style issues.
Step-by-Step Workflow: Build a New Screen/Card
- •Start from existing layout primitives (sidebar/top nav) and follow the desktop UI standards.
- •Compose using shadcn components (Card, Tabs, Table, Dialog/Sheet, Button).
- •Add loading and error states inside the card using semantic classes (
text-destructive,text-muted-foreground). - •Validate in light + dark mode using the mode toggle.
Troubleshooting
- •UI looks wrong in dark mode: remove hard-coded
bg-white,text-gray-*, etc.; use semantic tokens. - •shadcn CLI fails behind proxy: re-check
HTTP_PROXY,HTTPS_PROXY, andNODE_EXTRA_CA_CERTSfromdocs/proxy-config.md. - •Import path issues: keep
@/*alias patterns consistent with the existing Vite/TS config.