当前位置: 首页 > news >正文

我与 CodeBuddy 携手打造 FontFlow 字体预览工坊

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴

写在前面

有时候,一个想法萌生的瞬间,就是一次探索的开始。那天我脑中突然闪过一个念头:能不能做一个在线字体预览工具? 它可以导入 Google Fonts、本地字体文件,自由输入文字并实时预览,还能调整字距、字重、行高、字号,甚至收藏喜欢的字体组合并导出配置。界面上嘛,最好是极简暗色系、带点现代感的卡片布局。于是我把这个想法一口气抛给了 CodeBuddy。

我发给它的 prompt 是这样的:

我要用 Vue3 + WebFontLoader 制作一个字体预览工具 FontFlow,支持:

  • 在线导入 Google Fonts 和本地字体文件;
  • 实时输入文字并应用字体;
  • 支持字体大小、行高、字重、字距调整;
  • UI 设计采用高亮展示 + 极简暗色布局,使用多列卡片展示预览效果;
  • 支持收藏字体组合、导出样式配置;
  • 不用使用脚手架,手动帮我创建相应文件,帮我设计并完善上述功能。

我本以为它会先回几个建议,结果它一句废话没说,直接开干。


从零搭建项目结构

CodeBuddy 没有用 Vue CLI 或 Vite 初始化项目,而是完全手动起步。它先创建了一个干净的 index.html 文件,引用了 CDN 版本的 Vue3,并加上了一些 SEO 和响应式的 meta 标签。然后,它又紧接着为我创建了 main.jsApp.js 文件,作为入口和主组件。

在这里插入图片描述

我注意到 App.js 不是传统的 .vue 文件,而是标准的 JavaScript 模块形式,CodeBuddy 还贴心地解释说是为了兼容不使用构建工具的场景。

接着,它为我创建了三个组件文件夹:FontPreview.js 用于实时显示文字和字体效果;ControlPanel.js 提供字体调整选项,比如大小、行高、字距等;FavoritesList.js 用于展示用户收藏的字体组合。这一切都逻辑清晰、结构合理。

此外,它还新建了两个工具目录:一个是 fontLoader.js,封装了 WebFontLoader 的使用逻辑;另一个是 exportUtils.js,实现了将字体配置导出为 JSON 的功能。这个模块划分真是让我眼前一亮。


打造极简暗色 UI

除了功能实现,CodeBuddy 对样式也毫不含糊。它新建了 styles/main.cssstyles/app-layout.css 两个样式文件。

主样式负责定义整体暗色风格,设置了一套带灰调的背景、文字颜色和按钮高亮效果,甚至通过 CSS 变量控制主题色,让后续扩展变得更灵活。而 app-layout.css 则负责布局,使用了 CSS Grid 和 Flex 实现响应式的多列卡片排列,并且统一了组件之间的间距和容器最大宽度。

UI 效果干净利落,非常适合字体类工具的展示需求。

在这里插入图片描述


实现字体加载和交互逻辑

我很喜欢 CodeBuddy 在逻辑上的精细设计。例如它在 fontLoader.js 中封装了一个 loadFont(fontFamily) 函数,用 WebFontLoader 异步加载 Google Fonts,并在加载完成后动态更新字体样式。这样做的好处是,页面初始加载不拖慢,而且用户点击字体时能立刻应用效果。

ControlPanel.js 中,它没有简单地用几个 input,而是用了 Vue 的数据响应式绑定机制,实现字体大小、行高、字重等参数的动态调整。而且每个控制项都带有 label、范围说明、单位,非常注重用户体验。

收藏功能也做得非常完整。用户点“♥”图标即可收藏当前字体配置,CodeBuddy 用 localStorage 实现了持久保存,并在 FavoritesList.js 中动态渲染所有收藏记录,支持点击一键恢复配置。


构建完整 Vue 项目结构

虽然最初我们是“裸奔”运行的 HTML+JS 模式,但后来我提到想让它转为标准 Vue 项目结构,CodeBuddy 立刻响应,把所有代码整理进了一个完整的 Vite + Vue3 项目中。

它为我自动生成了:

  • package.json,包含 Vue、WebFontLoader、Vite 等依赖;
  • vite.config.js,设定了基本构建逻辑;
  • .gitignore.eslintrc.js,方便后续开发和版本控制;
  • src 目录结构,把组件、工具、样式等文件统一迁移整理;
  • public 目录,准备放置 favicon 和字体文件。

我完全没有手动去敲一行命令,一切都由它自动完成,而且还给我展示了更新后的目录树。

在这里插入图片描述


收尾与总结

最终,我在浏览器中打开了网站,输入了一段文字,点击切换字体,调整了字距、字重和行高,页面实时渲染出新的效果。选中喜欢的组合后点个 ♥,它就保存在收藏夹里。再点击导出按钮,我得到了一个 JSON 文件,里面包含了所有字体配置参数。

整个体验顺滑流畅,从交互到外观都达到了我心目中的预期。更让我惊讶的是,这些功能并不是我一项项提出来让它实现,而是我一开始抛出一个目标,它就自己一步步为我搭好了完整系统。


致谢 CodeBuddy:你太会写代码了!

和 CodeBuddy 搭建 FontFlow 的过程让我非常惊喜。它的代码不仅功能完整,而且结构清晰、逻辑严谨。尤其是在组件拆分、样式规划和工具函数封装方面,完全不输专业前端开发者的手工项目。

更难能可贵的是,它做事情从不拖泥带水。给它一个目标,它就能有条不紊地一步步完成,而且每一步都会解释原因、提前规划结构、更新目录,让我全程感到安心、可靠。

我想说,CodeBuddy 不仅是我的编码助手,更像是一个值得信赖的前端拍档。FontFlow 的开发也许只是个开始,未来我还会继续和它一起探索更多创意项目。

在这里插入图片描述

相关文章:

  • OpenHarmony平台驱动使用 (二),Camera
  • java.lang.ArithmeticException
  • nt!MiRemovePageByColor函数分析之脱链和刷新颜色表
  • Linux面试题集合(2)
  • 定扭矩微压痕工具试验台
  • Python绘制克利夫兰点图:从入门到实战
  • 30、WebAssembly:古代魔法——React 19 性能优化
  • OCC笔记:Brep格式
  • Scanner对象
  • Go语言实现链式调用
  • 2025年第三届盘古石杯初赛(智能冰箱,监控部分)
  • Docker数据卷
  • docker迅雷自定义端口号、登录用户名密码
  • Elasticsearch 官网阅读之 Term-level Queries
  • 校园导游大模型介绍
  • 大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)
  • 2025最新软件测试面试题(含答案解析+文档)
  • 2025年EB SCI2区TOP,多策略改进黑翅鸢算法MBKA+空调系统RC参数辨识与负载聚合分析,深度解析+性能实测
  • 鸿蒙北向源码开发: 检查应用接口dts文件api规范性
  • vue使用Pinia实现不同页面共享token
  • 光明日报社副总编辑薄洁萍调任求是杂志社副总编辑
  • 首次带人形机器人走科技节红毯,傅利叶顾捷:机器人行业没包袱,很多事都能从零开始
  • 美联储官员:美国经济增速可能放缓,现行关税政策仍将导致物价上涨
  • 中欧互动中的合作与分歧:务实需求将克服泛安全化的“政治钟摆”
  • 消息人士称俄方反对美国代表参加俄乌直接会谈
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用