一个纯前端、零依赖的少女风 PWA 工作台,把每天要用的小工具收进同一个粉色界面:每日计划、英语学习、运动打卡、记账、经期记录、小树洞。数据全部存在浏览器本地,不依赖任何后端。
在线体验:https://pink-workbench.pages.dev
仓库地址:https://github.com/vaxicy/PinkWorkbench
| 模块 | 说明 |
|---|---|
| 📅 每日计划 | 待办清单 + 日程安排,支持分类(补品类 / 饮食 / 工作 / 学习 / 生活) |
| 📚 英语学习 | 每日单词 + 每日长句,可分别或统一设置每天推送数量(1–5) |
| 🏃 运动打卡 | 自定义运动项目、今日打卡、一周打卡统计 |
| 💰 记账 | 日常收支记录,支持按天查看 |
| 🌸 经期记录 | 月经周期日历与身体感受记录 |
| 🌳 小树洞 | 私密心情记录,支持文字 + 图片(自动压缩后本地保存) |
| 🌙 深色模式 | 顶部标题栏一键切换日间奶油粉 / 夜间黑粉主题 |
| 📱 移动端适配 | 底部导航 + iPhone 安全区适配,手机上也能舒适使用 |
| 🐱 个人头像 | 点击头像可切换 emoji 或用相机/上传自定义头像 |
| 🧳 宠物出游 | 6 个 GPT 生成场景,空房间倒计时、保留装扮、回家领取爱心与出游见闻 |
| 🎴 塔罗占卜 | 78 张 AI 手绘牌面,圆弧牌堆自己抽牌(1/3/5 张牌阵),抽完由 AI 流式解读 |
所有内容都保存在浏览器 localStorage,不会上传到任何服务器。
直接访问 https://pink-workbench.pages.dev 即可,无需注册登录。
⚠️ iOS 上只有 Safari 才能把网页添加到主屏幕,微信 / Chrome 内打开时请先点「在 Safari 中打开」。
- 打开 Safari,访问 https://pink-workbench.pages.dev。
- 点底部工具栏中间的 分享按钮(⬆️ 方块图标)。
- 在弹出的菜单中向上滑,找到并点 「添加到主屏幕 / Add to Home Screen」。
- 输入想显示在桌面上的名字(默认会同步你在应用里设置的应用名),然后点右上角 添加。
- 回到桌面,就能看到粉色工作台图标;点击打开即可像原生 App 一样使用,没有浏览器地址栏,离线也能照常使用。
- 用 Chrome 或 Edge 打开 https://pink-workbench.pages.dev。
- 点右上角菜单(⋮)→ 「添加到主屏幕 / 安装应用」。
- 按提示确认,桌面即生成图标。
地址栏右侧会出现「安装」图标(或菜单 → 投射/保存/安装),点击即可当作桌面应用使用。
💡 首次安装需要联网;安装完成后,应用内容会被 Service Worker 缓存到本地,之后没有网络也能打开和查看历史数据。
点击顶部标题栏右侧的 ☀️/🌙 按钮,可在「日间奶油粉」和「夜间黑粉」之间切换,刷新后仍保持你的选择。
- 顶部切换到「每日计划」,在输入框添加待办或日程。
- 用分类标签筛选不同类别的内容。
- 勾选左侧圆圈标记完成,完成的条目会置灰划线。
- 切换到「英语学习」,顶部两个标签分别查看 每日单词 和 每日长句。
- 内容按日期固定生成,每天自动换一批。
- 点标签行最右侧的 ⚙️ 设置数量:
- 统一设置:一个数量同时控制单词和长句(默认)。
- 单独设置:单词、长句分别设置不同数量。
- 添加你的运动项目(如「跳绳 1000 个」)。
- 完成当天项目后打卡,下方「运动统计」会展示本周打卡情况。
- 切换到「记账」,记录每天的收入 / 支出。
- 可按天查看历史记录。
- 在日历上标记周期起止,并记录当天的身体感受。
- 用于跟踪周期规律与身体状态。
- 写一句心情或日记,可附一张图片。
- 图片会自动压缩到合适大小后保存在本地,点击可放大查看。
- 这里是只属于你的私密空间。
- 点击左上角圆形头像,弹出菜单:
- 选择内置 emoji 头像;
- 或点相机图标用摄像头拍照 / 从相册上传自定义头像。
- 纯 HTML + CSS + 原生 JavaScript,无框架、无构建步骤。
- 通过 Service Worker 实现 PWA 离线缓存。
- 数据持久化使用浏览器
localStorage。 - 部署在 Cloudflare Pages。
在「我的宠物」点击「喂食」选择日常粮碗(3 爱心)、香香肉粒(5)、蔬菜饭团(5)、爪印饼干(4)、宠物布丁(7)或豪华便当(12)。选中卡片会显示饱腹与心情的实际恢复量,确认后一次扣费并更新状态。两项都满时暂停喂食;只有饱腹满时仍可补充心情;爱心不足、出游中和存储失败时均不会扣费。食物不增加亲密度或成长经验。
六张透明背景食物图由内置 image_gen 生成,保存为 generated-images/food-*-v1.png,完整提示词和路径见 tools/food-image-prompts.json。代码位于 pet-food-core.js、pet-food.js 和 pet-food.css。喂食后所选食物出现在宠物面前,播放吃东西动作和恢复量提示。
验证:node --test tools/test-pet-food.cjs;提供 Playwright 后运行 node tools/test-pet-food-browser.cjs。浏览器测试覆盖桌面、手机、深色模式、余额不足、满状态、重复提交、多窗口余额竞争、存储失败和出游拦截。截图保存于 screenshots/food/。
入口:治愈花园 → 我的宠物 → 出去玩。花园、咖啡馆、森林、健身房、商场、海边,以及新增的午后书店、糖果游乐园、星光营地、樱花温泉、蓝鲸水族馆和暖灯雪村,十二个地点全部免费开放。菜单可以滚动,支持城市、自然、度假分类。
每个地点固定时长与奖励,按时长递增排列:花园 15 分钟/10 爱心、咖啡馆 30 分钟/18、书店 1 小时/30、健身房 1.5 小时/40、商场 2 小时/50、森林 3 小时/70、水族馆 4 小时/90、海湾 5 小时/110、游乐园 6 小时/130、温泉 8 小时/170、营地 10 小时/210、雪村 12 小时/250。详情直接确认出发,显示预计回家时间。升级前已出发的原版与 v107 自选时长行程均保留原时长和奖励。
菜单使用 480 像素 WebP 缩略图,十二张合计约 350 KB,详情使用 1280 像素 WebP。图片加载时显示占位提示,失败后可点击重试。派生图片脚本为 tools/prepare-outing-images.py,新增六张 GPT 生图的完整提示词和文件路径见 tools/outing-expansion-image-prompts.json。
出发后宠物离开房间,家具、地毯和玩具留在家里;喂食、抚摸、陪玩与聊天暂停。点击「去看看」可查看场景中的宠物和进度。关闭页面不会暂停行程,到点后自动回家,点击背包或「打开出游收获」领取奖励。提前回家没有奖励,同一时间只允许一趟未结算行程。
行程使用本机时间和原有 pinkWorkbench_v4 本地存储,不需要账户或后台计时服务,不提供跨设备同步。到期状态由结束时间推导;领奖将行程与余额一次写入,支持 Web Locks 的浏览器会串行处理多窗口领取。保存失败时不改变余额或行程。
pet-outings-core.js:场景、时长、奖励与行程规则。pet-outings.js/pet-outings.css:场景选择、倒计时、查看与领奖界面。generated-images/outing-*-v1.png:十二张内置 image_gen 生成的背景原图;页面使用对应*-v2.webp与*-thumb-v2.webp。tools/outing-image-prompts.json:完整生图提示词与输出路径。node --test tools/test-pet-outings.cjs:核心规则测试。node tools/test-pet-outings-browser.cjs:浏览器流程测试;需在 Node 模块搜索路径中提供 Playwright,默认使用本机 Edge,也可设置PLAYWRIGHT_CHANNEL。screenshots/outings/:桌面、手机、深色模式和回家领奖验证截图。
入口:今日占卜 → 🎴 塔罗。四种牌阵:每日指引(1 张)、时间之流与感情三张(各 3 张)、五芒星(5 张)。选定牌阵可填写想问的问题,然后进入牌堆页——78 张牌背沿圆弧扇形排布,左右滑动浏览、点击自己感应到的那张牌抽取;抽满后逐一翻牌,翻完可由 AI 流式生成整体解读(也可只用内置牌义)。
78 张牌面为内置 image_gen 生成的新艺术风格插画,统一「纯插画、无文字」提示词(牌名由界面显示,不画进图里)。原图约 3 MB/张,构建脚本 tools/tarot-build.py 将其压缩为 512×768 WebP 存于 tarot/(共约 8 MB,大牌 major-00.webp,小牌 <suit>-<rank>.webp)。牌面底部有一层名牌遮罩,同时盖住生成器自带的右下角水印。
tarot/*.webp:78 张压缩牌面(大牌 22 + 小牌 56)。tools/tarot-build.py:把tarot-sample/的中文原图按牌映射为规范文件名并转 WebP(原图目录已在.gitignore中忽略)。tools/tarot-preview-codegen.html、tools/tarot-deck-check.html:牌面绘制方案对比与牌组映射校验页。- 开发态钩子:
index.html?tarotDemo=three|love|five|one直接进入抽牌页,附加&drawDemo=1/&revealDemo=1查看已抽/已翻状态。
直接用浏览器打开 index.html 即可(部分 PWA 功能需通过本地服务器,如 npx serve)。
仓库根目录即站点根,执行:
wrangler pages deploy . --project-name pink-workbench --branch main或修改 deploy.ps1 后运行:
powershell -ExecutionPolicy Bypass -File .\deploy.ps1修改了被缓存的文件(如
index.html)后,记得在sw.js里把CACHE_NAME版本号 +1,否则线上用户看到的是旧版本。
本应用完全在本地运行,所有计划、账目、日记、图片都只存在你自己的浏览器中,不会发送到任何第三方。清除浏览器数据即等同于删除全部内容。
本项目为个人学习 / 自用工具,界面与交互参考了多个公开作品,仅供交流与个人使用。