5.5 KiB
5.5 KiB
小程序 UI 更新日志
更新时间
2026年2月8日(远端渲染改造)
本次关键变更
为解决“大字体多预览下载慢”的问题,小程序渲染链路从“本地下载字体并 Worker 渲染”改为“请求远端 API 返回 SVG”:
- 新增
apiserver/目录,服务端读取fonts.json+fonts/并渲染 SVG。 - 小程序新增
miniprogram/utils/mp/render-api.js,调用https://fonts.biboer.cn/api/render-svg。 miniprogram/pages/index/index.js移除本地loadFontBuffer + worker.generateSvg依赖,改为远端渲染。miniprogram/app.js新增全局配置:svgRenderApiUrlapiTimeoutMs
兼容性说明
- 字体清单仍使用
https://fonts.biboer.cn/fonts.json,字体分类、收藏、导出逻辑保持不变。 - 导出 PNG 仍在小程序端由 Canvas 渲染,导出 SVG 仍沿用原分享流程。
更新时间
2026年2月8日
更新内容
根据 Figma 设计稿 (https://www.figma.com/design/S7WVUzg3Z0DMWjYUC6dJzN/font2svg?node-id=584-64) 对小程序首页进行了全面重构。
1. 资源文件更新
- 图标素材:从 web 端
frontend/src/assets/icons/复制了所有 SVG 图标到miniprogram/assets/icons/ - 新增的图标包括:
- 字体大小控制:
font-size-increase.svg,font-size-decrease.svg - 导出功能:
export.svg,export-svg.svg,export-png.svg - 颜色选择:
choose-color.svg - 字体管理:
font-icon.svg,expand.svg - 复选框:
checkbox.svg,icons_idx _32.svg,icons_idx _34.svg等 - 收藏功能:
icons_idx _18.svg,icons_idx _19.svg
- 字体大小控制:
2. 页面结构重构 (index.wxml)
顶部导航栏
- Logo 展示(星程字体图标)
- "TextToSVG" 品牌标题
- 字体大小滑块(带增减按钮)
- 颜色选择按钮
输入区域
- 简化的输入框("此处输入内容")
- 导出按钮组(支持 SVG、PNG 导出)
效果预览区域
- 显示多个选中字体的预览
- 每个预览项包含:
- 字体名称
- 复选框(控制是否显示)
- 预览图像
字体选择区域(左右分栏)
-
左侧:字体选择
- 树状分类结构
- 支持展开/收起
- 每个字体项包含:复选框、收藏按钮
-
右侧:已收藏字体
- 显示已收藏的字体
- 同样支持树状结构
- 点击取消收藏
颜色选择器弹窗
- 预设颜色调色板
- 自定义颜色输入
3. 样式更新 (index.wxss)
-
整体布局:采用 flex 布局,优化空间利用
-
颜色方案:
- 主色:
#8552A1,#9B6BC2(紫色系) - 填充色:
#F7F8FA,#E5E6EB - 文字色:
#4E5969,#86909C,#C9CDD4 - 边框色:
#f7e0e0
- 主色:
-
组件样式:
- 顶部导航栏高度:96rpx
- 输入框高度:78rpx
- 字体树容器高度:360rpx
- 圆角设计:12rpx - 24rpx
-
响应式设计:
- 使用 flex 布局适应不同屏幕
- scroll-view 实现内容滚动
4. 功能逻辑更新 (index.js)
新增功能
-
多字体选择
- 支持同时选择多个字体
- 每个字体独立预览
selectedFonts数组管理选中的字体
-
字体分类树
- 自动构建字体分类结构
- 支持展开/收起操作
fontCategories和favoriteCategories管理
-
收藏功能
- 收藏/取消收藏字体
- 收藏状态持久化存储
- 已收藏字体独立展示
-
字体大小控制
- 滑块调整(24-320px)
- 增加/减少按钮(步进 10px)
- 实时预览更新
-
颜色选择器
- 弹窗式颜色选择器
- 预设颜色调色板
- 自定义颜色输入
-
批量导出
- 导出全部选中字体为 SVG
- 导出全部选中字体为 PNG
- 单个字体导出
核心方法
updateFontTrees()- 更新字体分类树onToggleFont()- 切换字体选择状态onToggleFavorite()- 切换收藏状态onToggleCategory()- 切换分类展开/收起generatePreviewForFont()- 生成单个字体预览generateAllPreviews()- 生成所有选中字体预览exportAllSvg()- 批量导出 SVGexportAllPng()- 批量导出 PNG
5. 全局样式更新 (app.wxss)
- 页面背景改为白色
- 容器高度设为 100vh,支持全屏布局
- 添加
overflow: hidden避免滚动问题
技术亮点
- 树状结构:使用 Map 数据结构高效管理字体分类
- 性能优化:字体 buffer 按需加载并缓存
- 防抖处理:输入和调整时使用 260ms 防抖
- 状态持久化:选中字体、收藏状态自动保存
- 并发生成:支持多个字体同时生成预览
使用说明
- 选择字体:在左侧"字体选择"区域勾选想要使用的字体
- 输入文字:在顶部输入框输入要转换的文本
- 调整样式:
- 使用滑块或增减按钮调整字体大小
- 点击调色板图标选择颜色
- 查看预览:在"效果预览"区域查看所有选中字体的效果
- 导出文件:
- 点击 SVG 图标导出为 SVG 格式
- 点击 PNG 图标导出为 PNG 格式并保存到相册
- 点击 export 图标可选择批量导出
注意事项
- 首次加载字体可能需要一些时间,请耐心等待
- 建议不要同时选择过多字体,以免影响性能
- PNG 导出到相册需要用户授权
- SVG 分享使用系统分享功能
后续优化建议
- 添加字体搜索功能
- 支持预览文字大小独立调整
- 添加字体加载进度指示
- 支持批量框选字体
- 优化大字体渲染性能