# Shadcn UI for Flutter - 集成完成 ## ✅ 已完成 ### 1. 技能文档创建 已创建完整的 shadcn_ui Flutter 技能文档,位于: ``` ~/.agents/skills/shadcn-ui-flutter/SKILL.md ``` 以后 LLM 可以通过这个技能文档了解如何使用 shadcn_ui。 ### 2. 项目集成 已将 shadcn_ui 集成到 monisuo 项目: - 更新 `pubspec.yaml` 添加 shadcn_ui 依赖 - 更新 `main.dart` 使用 ShadApp - 创建 shadcn 风格的登录页面示例 --- ## 📦 依赖 ```yaml dependencies: shadcn_ui: ^0.2.4 flutter_localizations: sdk: flutter ``` --- ## 🚀 使用方式 ### 1. 安装依赖 ```bash cd ~/Desktop/projects/monisuo/flutter_monisuo flutter pub get ``` ### 2. 导入组件 ```dart import 'package:shadcn_ui/shadcn_ui.dart'; ``` ### 3. 使用组件 ```dart // 按钮 ShadButton(child: Text('Primary'), onPressed: () {}) ShadButton.secondary(child: Text('Secondary')) ShadButton.destructive(child: Text('Delete')) // 输入框 ShadInputFormField( id: 'email', label: Text('Email'), placeholder: Text('Enter email'), ) // 卡片 ShadCard( title: Text('Card Title'), description: Text('Card description'), child: Text('Content'), ) // 对话框 showShadDialog( context: context, builder: (context) => ShadDialog( title: Text('Dialog'), actions: [ ShadButton(child: Text('OK')), ], ), ) ``` --- ## 🎨 主题 ### 深色主题(默认) ```dart ShadApp( themeMode: ThemeMode.dark, darkTheme: ShadThemeData( brightness: Brightness.dark, colorScheme: const ShadSlateColorScheme.dark(), ), ) ``` ### 可用颜色方案 - `blue` - 蓝色 - `slate` - 石板色(推荐深色模式) - `zinc` - 锌色(推荐浅色模式) - `green` - 绿色 - `red` - 红色 - `violet` - 紫色 - 等等... ### 切换主题 ```dart final colorScheme = ShadColorScheme.fromName('slate', brightness: Brightness.dark); ``` --- ## 📝 迁移现有代码 ### Material Button → Shadcn Button ```dart // Before ElevatedButton( child: Text('Submit'), onPressed: () {}, ) // After ShadButton( child: Text('Submit'), onPressed: () {}, ) ``` ### Material TextField → Shadcn Input ```dart // Before TextField( decoration: InputDecoration( labelText: 'Email', ), ) // After ShadInputFormField( id: 'email', label: Text('Email'), placeholder: Text('Enter email'), ) ``` ### Material Card → Shadcn Card ```dart // Before Card( child: Text('Content'), ) // After ShadCard( title: Text('Title'), description: Text('Description'), child: Text('Content'), ) ``` --- ## 🎯 核心组件 ### Button(按钮) - `ShadButton` - 主要按钮 - `ShadButton.secondary` - 次要按钮 - `ShadButton.destructive` - 危险按钮 - `ShadButton.outline` - 边框按钮 - `ShadButton.ghost` - 幽灵按钮 - `ShadButton.link` - 链接按钮 ### Input(输入框) - `ShadInput` - 基础输入框 - `ShadInputFormField` - 表单输入框 ### Card(卡片) - `ShadCard` - 卡片组件 ### Dialog(对话框) - `ShadDialog` - 对话框 - `ShadDialog.alert` - 警告对话框 ### Form(表单) - `ShadForm` - 表单容器 - `ShadCheckboxFormField` - 复选框 - `ShadSwitchFormField` - 开关 - `ShadSelectFormField` - 选择器 - `ShadDatePickerFormField` - 日期选择器 ### 其他组件 - `ShadAlert` - 警告 - `ShadBadge` - 徽章 - `ShadAvatar` - 头像 - `ShadCalendar` - 日历 - `ShadAccordion` - 手风琴 - `ShadBreadcrumb` - 面包屑 - `ShadSelect` - 选择器 - `ShadCheckbox` - 复选框 - `ShadSwitch` - 开关 - `ShadIconButton` - 图标按钮 --- ## 🎬 动画 所有组件都支持 `flutter_animate`: ```dart ShadButton( child: Text('Animated'), ).animate().fadeIn().slideX() ``` --- ## 📚 图标 使用 Lucide Icons: ```dart Icon(LucideIcons.home) Icon(LucideIcons.settings) Icon(LucideIcons.user) ``` 浏览图标:https://lucide.dev/icons/ --- ## 📖 完整文档 查看技能文档获取完整信息: ``` ~/.agents/skills/shadcn-ui-flutter/SKILL.md ``` --- ## 🚨 注意事项 1. **必须使用 ShadApp**:不要直接使用 MaterialApp 2. **主题访问**:使用 `ShadTheme.of(context)` 3. **图标**:使用 `LucideIcons` 而不是 Material Icons 4. **表单**:推荐使用 ShadForm 配合 FormField 组件 --- ## 🔧 下一步 1. 运行 `flutter pub get` 安装依赖 2. 替换现有 Material 组件为 Shadcn 组件 3. 测试所有页面功能 4. 根据需要定制主题 --- **状态**: ✅ 技能创建完成,项目已集成 **版本**: shadcn_ui 0.2.4