基于HTML设计稿的Flutter界面布局描述文档生成提示词
根据上个版本的提示词进行了调整,目前准确度大大提升。
提示词如下:
基于HTML设计稿的Flutter界面布局描述文档生成提示词
请基于提供的HTML设计稿文件,生成一个极其详细的Flutter界面布局描述文档,用于指导AI准确生成Flutter Widget代码。描述需要包含以下具体内容:
1. HTML设计稿分析
页面结构解析
- 分析HTML的DOM结构和层级关系
- 识别主要的布局容器(div、section、header、main、footer等)
- 解析CSS样式表中的布局属性(display、position、flex、grid等)
- 提取响应式设计的断点和媒体查询
视觉元素提取
- 颜色方案(background-color、color、border-color等)
- 字体样式(font-family、font-size、font-weight、line-height等)
- 间距规范(margin、padding、gap等)
- 尺寸规格(width、height、min/max尺寸等)
- 边框和圆角(border、border-radius等)
- 阴影效果(box-shadow、text-shadow等)
2. Flutter Scaffold架构映射
整体页面结构
- 将HTML的页面布局映射到Flutter的Scaffold结构
- AppBar配置(基于HTML的header或导航栏)
- Body布局模式(根据HTML的主要内容区域确定Column、Row、Stack、ListView等)
- BottomNavigationBar或FloatingActionButton(基于HTML的底部导航或悬浮按钮)
- Drawer或EndDrawer侧边栏(基于HTML的侧边菜单)
布局容器转换
- HTML的div容器 → Flutter的Container/Column/Row
- CSS Flexbox → Flutter的Flex/Column/Row
- CSS Grid → Flutter的GridView
- CSS Position → Flutter的Stack/Positioned
- HTML列表元素 → Flutter的ListView/GridView
3. Widget层级和嵌套关系
DOM到Widget树的映射
- 从HTML的根元素到具体UI元素的完整Widget树
- 基于CSS的盒模型确定Container、Padding、Margin的具体数值
- 根据CSS的flex属性设置Expanded、Flexible的flex比例
- 识别需要SafeArea、SingleChildScrollView等包装Widget的场景
布局Widget配置
- 基于CSS的justify-content映射Column/Row的mainAxisAlignment
- 基于CSS的align-items映射Column/Row的crossAxisAlignment
- 根据CSS的z-index和position确定Stack的alignment和positioning
- 基于CSS Grid的grid-template-columns确定GridView的crossAxisCount和spacing
4. 具体UI元素规格转换
文本组件映射
- HTML文本元素(h1-h6、p、span等)→ Flutter Text Widget
- CSS字体样式 → TextStyle配置(fontSize、fontWeight、color等)
- CSS文本对齐 → textAlign属性
- CSS文本溢出处理 → overflow、maxLines等属性
按钮组件转换
- HTML按钮元素(button、input[type=”button”]等)→ Flutter按钮组件
- CSS按钮样式 → ButtonStyle配置(backgroundColor、foregroundColor、elevation)
- CSS尺寸属性 → 按钮的minimumSize、padding
- HTML事件处理 → onPressed回调函数说明
输入组件映射
- HTML表单元素(input、textarea、select等)→ Flutter输入组件
- HTML属性(placeholder、required等)→ InputDecoration配置
- CSS样式 → TextField的decoration属性
- HTML表单验证 → Flutter验证逻辑
图片和图标转换
- HTML img元素 → Flutter Image Widget
- CSS background-image → Container的decoration
- HTML图标字体或SVG → Flutter Icon或自定义图标
- CSS图片样式(object-fit等)→ Flutter的fit、alignment属性
卡片和容器映射
- HTML卡片式布局 → Flutter Card组件
- CSS盒模型 → Container的decoration(BoxDecoration配置)
- CSS颜色值 → Flutter颜色(Colors.xxx或Color(0xFFxxxxxx))
- CSS边框样式 → Border.all、BorderRadius.circular
- CSS阴影效果 → boxShadow配置
列表和网格转换
- HTML列表元素(ul、ol、li)→ Flutter ListView
- CSS Grid布局 → Flutter GridView
- HTML表格 → Flutter Table或DataTable
- CSS列表样式 → ListTile配置
5. 主题和样式系统
CSS变量到Flutter主题
- CSS自定义属性(–primary-color等)→ Flutter ThemeData
- CSS颜色方案 → Flutter ColorScheme
- CSS字体系统 → Flutter TextTheme
- CSS间距系统 → Flutter标准间距值
响应式设计转换
- CSS媒体查询 → Flutter MediaQuery和LayoutBuilder
- CSS断点 → Flutter屏幕尺寸适配
- CSS Flexbox的响应式 → Flutter Expanded和Flexible
- CSS Grid的响应式 → Flutter GridView的动态配置
6. 交互和状态管理
HTML事件到Flutter手势
- HTML点击事件 → Flutter GestureDetector的onTap
- HTML悬停效果 → Flutter InkWell的点击效果
- HTML表单交互 → Flutter状态管理
- CSS伪类(:hover、:active等)→ Flutter交互状态
动态内容处理
- HTML动态内容 → Flutter StatefulWidget
- JavaScript状态管理 → Flutter setState或状态管理方案
- HTML表单验证 → Flutter表单验证逻辑
7. 性能和优化考虑
HTML到Flutter的性能映射
- CSS动画 → Flutter Animation系统
- HTML懒加载 → Flutter ListView.builder
- CSS优化 → Flutter Widget优化(const构造函数等)
- HTML缓存策略 → Flutter图片缓存和Widget复用
描述要求
描述要足够详细和准确,使得Flutter开发者仅凭HTML设计稿分析和文字描述就能完全还原界面设计。请按照以下顺序组织内容:
- HTML结构分析:先分析HTML的整体结构和CSS样式
- Flutter架构映射:将HTML结构映射到Flutter的Widget体系
- 详细组件转换:逐个分析HTML元素到Flutter Widget的转换
- 样式和主题:将CSS样式系统转换为Flutter主题系统
- 交互和状态:分析HTML/JavaScript交互并转换为Flutter状态管理
- 响应式适配:将CSS响应式设计转换为Flutter适配方案
代码组织建议
文件结构规划
- 基于HTML页面结构规划Flutter文件组织
- 根据CSS模块化程度确定Widget拆分策略
- 样式常量和主题的统一管理
开发优先级
- 先实现静态布局,再添加交互功能
- 优先完成核心页面结构,再优化细节样式
- 分阶段实现响应式适配
质量保证
- 像素级还原HTML设计稿的视觉效果
- 保持与原HTML相同的交互体验
- 确保Flutter代码的性能和可维护性
通过以上详细的HTML到Flutter转换分析,开发者可以准确理解设计稿意图,并使用Flutter框架高效实现界面效果。