--- name: docyrus-app-ui-design description: Design and build production-grade UI components for Docyrus React applications using preferred component libraries. Use when creating dashboards, forms, data tables, layouts, or any UI elements. Triggers on tasks involving component selection, UI design, dashboard creation, layout design, shadcn, diceui, animate-ui, docyrus-ui, reui components, or requests to build user interfaces. --- # Docyrus App UI Design Build polished, accessible UI components for Docyrus React applications using a curated set of 127+ pre-built components from shadcn, diceui, animate-ui, docyrus-ui, and reui libraries. ## Component Library Preferences **Primary component libraries (in order of preference):** 1. **shadcn** — 43 core components (buttons, forms, dialogs, tables, charts) 2. **diceui** — 42 advanced components (data grids, kanban, file upload, color picker) 3. **animate-ui** — 21 animated components (sidebar, dialogs, cards, menus) 4. **docyrus** — 19 Docyrus-specific components (data grid, form fields, value renderers) 5. **reui** — 2 utility components (file upload, sortable) **Total available**: 127 components ## Critical Design Rules 1. **Always check preferred components first** — Before implementing any new component, search the preferred components reference to find an existing match. 2. **Use AwesomeCard for dashboards** — Unless the user specifically requests a different card design, use `@docyrus/ui-awesome-card` for dashboard stat cards and metrics. 3. **Use animate-ui Sidebar for layouts** — Unless the user requests a different layout, use `@animate-ui/sidebar` for app navigation. 4. **Prefer Recharts for charting** — Use Recharts as the first choice for all data visualization needs. shadcn Chart components are built on Recharts. 5. **Icon library preference order**: - **First choice**: hugeicons - **Second choice**: fontawesome light - **Third choice**: lucide-icons ## Quick Start Patterns ### Dashboard with AwesomeCard ```tsx import { AwesomeCard } from '@/components/ui/awesome-card' import { HugeIcon } from '@/components/ui/icons' } trend={{ value: 12.5, direction: 'up' }} /> ``` ### App Layout with animate-ui Sidebar ```tsx import { Sidebar, SidebarContent, SidebarHeader } from '@/components/ui/sidebar' ``` ### Data Table with diceui ```tsx import { DataTable } from '@/components/ui/data-table' ``` ### Charts with shadcn + Recharts ```tsx import { ChartContainer, ChartTooltip } from '@/components/ui/chart' import { LineChart, Line, XAxis, YAxis } from 'recharts' ``` ## Component Selection Strategy When the user requests a UI component: 1. **Search the reference** — Check `references/preferred-components-catalog.md` for existing components by name, category, or functionality 2. **Match by use case** — If multiple options exist, prefer: - shadcn for basic/common components - diceui for advanced/specialized components - animate-ui for components requiring animation/transitions - docyrus for Docyrus-specific data handling 3. **Install the component** — Use the registry install command from the catalog 4. **Reference the docs** — Point to the component's doc file for detailed usage ## Installation Pattern All components follow the shadcn registry pattern: ```bash # shadcn components pnpm dlx shadcn@latest add button # diceui components pnpm dlx shadcn@latest add @diceui/data-table # animate-ui components pnpm dlx shadcn@latest add @animate-ui/sidebar # docyrus components pnpm dlx shadcn@latest add @docyrus/ui-awesome-card # reui components pnpm dlx shadcn@latest add @reui/file-upload-default ``` ## Common Use Cases | Use Case | Preferred Component | Library | |----------|-------------------|---------| | Dashboard cards | AwesomeCard | docyrus | | App navigation | Sidebar | animate-ui | | Data tables | DataTable | diceui | | Editable grids | Data Grid | docyrus | | Forms | Form Fields | docyrus | | File upload | File Upload | diceui | | Charts | Chart + Recharts | shadcn | | Dialogs | Responsive Dialog | diceui | | Date picker | Date Time Picker | docyrus | | Color picker | Color Picker | diceui | | Kanban board | Kanban | diceui | | Timeline | Timeline | diceui | | Rating | Rating | diceui | ## References Read these files for detailed component information: - **`references/preferred-components-catalog.md`** — Complete catalog of all 127 components with descriptions, install commands, and doc paths - **`references/component-selection-guide.md`** — Decision trees and guidelines for choosing the right component for each use case - **`references/icon-usage-guide.md`** — Icon library integration patterns and usage examples for hugeicons, fontawesome, and lucide ## Integration with docyrus-app-dev This skill works alongside `docyrus-app-dev` for full-stack app development: - **docyrus-app-dev** handles data fetching, collections, queries, auth - **docyrus-app-ui-design** handles component selection, UI design, layout When building a feature: 1. Use `docyrus-app-dev` to set up data queries and mutations 2. Use `docyrus-app-ui-design` to select and implement UI components 3. Combine them for complete, polished features