目录

FocusGuard

防拖延浏览器插件 — 让专注不再冰冷

FocusGuard 是一款 Chrome 浏览器扩展,支持专注 / 娱乐双模式切换。专注模式下自动拦截分心网站,并通过角色化动画 + 对话进行有温度的提醒,实时统计专注时长与分心次数。


项目背景

学生在浏览器中学习时,频繁被视频网站、社交媒体诱惑,注意力碎片化。现有工具大多只计时不干预,对自控力弱的人几乎无效。


核心功能

功能 说明
专注模式 一键进入,自动拦截黑名单网站
娱乐模式 自由浏览,无任何拦截
黑名单管理 自定义分心网站,即时生效
白名单管理 按站点精准计时,只统计工作网站
角色化拦截 GIF 动画 + 对话框随机台词,眼睛跟踪鼠标
实时统计 专注时长、分心次数,Popup 面板展示
快捷键 Ctrl + Shift + F 切换模式 + Toast 提示
图标角标 工具栏图标实时显示当前模式

技术栈

  • 平台:Chrome Extension Manifest V3
  • 前端:原生 HTML / CSS / JavaScript(零框架、零依赖)
  • 存储:Chrome Storage API
  • CI/CD:ESLint + Jest + Gitea Actions
  • 设计语言:GitHub Dark 色板

项目结构

FocusGuard/ ├── manifest.json # Chrome 扩展配置 ├── background.js # Service Worker(快捷键、角标、Toast) ├── content.js # 内容脚本(全屏拦截遮罩、白名单计时) ├── newtab.html # 新标签页选择界面 ├── newtab.js # 新标签页逻辑(眼睛跟踪、模式切换) ├── popup.html # 弹出控制面板 ├── popup.js # 弹出面板逻辑(统计、黑白名单管理) └── images/ ├── body.png # 角色身体 ├── leftEye.png # 左眼(独立层,跟踪鼠标) ├── rightEye.png # 右眼(独立层,跟踪鼠标) ├── pointing.gif # 默认动画(指向) ├── crying.gif # 哭泣动画(”回到工作”悬停) ├── drinking.gif # 饮水动画(”休息”悬停) └── dialogBoxx.png # 对话框气泡


快速开始

安装扩展

  1. 打开 Chrome,地址栏输入 chrome://extensions/
  2. 右上角开启开发者模式
  3. 点击加载已解压的扩展程序
  4. 选择 FocusGuard/ 文件夹
  5. 完成,工具栏出现 🧠 图标

使用方式

  1. 打开新标签页 → 选择 🎯 专注 或 🎮 娱乐
  2. 专注模式下访问 bilibili / YouTube 等 → 被拦截,角色出现
  3. 鼠标悬停按钮 → 角色表情和台词切换
  4. 点击工具栏图标 → 查看统计、管理黑白名单
  5. 按 Ctrl+Shift+F → 快速切换模式

Live Demo 流程

新标签页选择 → 专注模式 → 访问拦截网站 → 角色出现 + 对话框台词 → 悬停按钮切换表情/台词 → 点击”回到工作”跳转 Google → Popup 查看统计 → Ctrl+Shift+F 切换模式


配色方案

FocusGuard 采用 GitHub Dark 色板,蓝 / 橙 / 绿三色语义体系:

色值 语义 用途
#0D1117 主背景 body / popup
#161B22 卡片底面 按钮、输入框
#30363D 边框 所有 border、分隔线
#C9D1D9 主文字 标题、正文
#8B949E 次要文字 描述、提示
#58A6FF 专注蓝 专注模式标识
#F0883E 娱乐橙 娱乐模式标识
#238636 主按钮绿 CTA 按钮

版本迭代

版本 内容
V1.0 模式切换、硬编码黑名单拦截、基础计时、纯文字遮罩
V1.1 可编辑黑名单,storage 持久化,实时生效
V1.2 工作网站白名单,按站点精准计时
V1.3 角色化拦截:GIF 动画 + 对话框 + 随机台词
V1.4 新标签页选择页,眼睛跟随鼠标
V1.5 全局快捷键 + Toast + 图标角标
V1.6 白名单计时器跨标签页竞态修复

SDD 工程管理

proposal.md → design.md → tasks.md → Issues (功能提案) (架构设计) (任务拆解) (迭代追踪)

本项目采用 SDD 驱动 Vibecoding 的混合实践:大功能走正规 SDD 提 proposal → apply,小功能和 Bug 通过 Vibecoding 灵活快修。

共 11 个 Phase,全部完成。配套 23 个 Jest 单元测试 + ESLint + Gitea Actions CI/CD。


团队

成员 角色 职责
唐嘉豪 项目架构 · 核心逻辑 架构设计、拦截核心、后台服务、CI/CD、Manifest
林尤扬 UI 开发 · 动画设计 popup、newtab、角色动画、GIF 交互、遮罩视觉
张浩 测试 · 文档 · 素材 单元测试、SDD 文档、Issue 追踪、台词系统、答辩材料

未来扩展

  • 深度专注:番茄钟 + 锁定模式
  • 数据激励:趋势图表 + 连续打卡
  • 角色养成:多套皮肤 + 情绪反馈
  • 社交机制:学习小组 + 排行榜

License

MIT

关于
5.9 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号