SuperAPI AI 工具集

mobile-shadcn-conventions

前端与建站

查看项目

更新于 10-15 16:42

技能介绍

用途:这是 Agenta 移动端 web/mobile 的 shadcn/ui 使用约定,规范组件安装、主题与聊天 UI 的构建方式。技术栈为 shadcn/ui + Tailwind v4 + CSS 变量,不使用 antd。

主要能力与约定:优先使用共享原语,若 @agenta/ui/ui 已导出 Button、Input、Select、Dialog、Sheet、DropdownMenu 等,应直接从该处导入,不要本地重复安装;button 只存在于 @agenta/ui。本地 src/components/ui/sheet.tsx 仅供 ChannelsPanelSheet 使用,不得别处导入。其余组件在 web/mobile/ 下用 pnpm dlx shadcn@latest add <component> 安装,落到 src/components/ui/。组件为自有代码,可修改但应保持最小差异并用语义 token 表达。CLI 会把同级依赖写入 web/mobile/package.json,需与 web/pnpm-lock.yaml 一同提交。不要手工从官网复制组件源码。若组件引用新 token(如 bg-sidebar、chart-*),需先在 scripts/generate-shadcn-tokens.ts 的 VARS 与 globals.css 的 @theme inline 映射中扩展,否则 Tailwind v4 不会生成。

主题:shadcn 变量由 scripts/generate-shadcn-tokens.ts 依据 web/oss/src/styles/theme/palette.ts 生成到 src/styles/theme.generated.css。改颜色应编辑 palette.ts 或脚本中的 ROLE MAP,再运行 pnpm --filter @agenta/mobile generate:tokens 并提交生成的 CSS;不要直接编辑生成文件或使用原始十六进制值。暗色模式通过 <html> 上的 .dark 类,由 _document.tsx 的初始化脚本从 agenta-theme localStorage 键在绘制前设置,新界面需同时检查两套主题。扩展组件时遵循包裹而非分叉,特性变体放在 src/features/* 作为 components/ui/* 的薄包装(可用 cva),类名合并统一用 @/lib/utils 的 cn。

聊天 UI:应用中没有 Vercel AI Elements,也没有 src/components/ai-elements/。聊天位于 src/features/chat/(ChatScreen、Composer、LiveConversation、TranscriptTurns 等),基于 @agenta/chat 与 Lexical 的 @agenta/ui/rich-chat-input,Markdown 经 streamdown 流式渲染。行为来自 @agenta/chat hooks,不要在渲染组件内重新实现编排逻辑。图标同时使用 @phosphor-icons/react(多数文件)与 lucide-react(较旧文件及 shadcn 输出),应与所在特性保持一致。

限制:以上为团队内部约定,未提供公开价格、支持平台或效果数据;具体组件清单与 token 名称以仓库实际为准。