Frostart 是鸢做的一款可高度自定义的本地毛玻璃浏览器首页插件~
设计语言继承自我自己维护的 PhasWer 小站。这其实是我第一次写这种工具性的项目,所以肯定有各种问题,慢慢改吧。
写在这里主要是备忘,可能会有更新不及时的地方,欢迎指正。
- 浅色 / 深色 / 跟随系统
- 自定义主题色(accent)
- 四种壁纸模式:渐变 / 纯色 / 图片上传 / 必应每日壁纸
- 自定义渐变颜色、角度
- 派生光斑(根据背景色算的,低饱和背景也能有光斑)
- 壁纸颜色变化用
@property类型化变量做成了可插值过渡
- 12/24 小时制
- 显示秒、星期、农历
- 时钟字体可以和正文字体分开设置
- 右键时钟:复制时间 / 切时制 / 切显示秒
- 17 个内置引擎
- 自定义引擎(URL 里用
%s当关键词占位) - 搜索框左侧的引擎图标可以点开快捷切换列表
/聚焦搜索框
- 拖拽排序(FLIP 动画)
- 图标支持上传图片 / SVG / 自动抓 favicon(DuckDuckGo 接口)
- 图标编辑器:缩放、平移、独立背景色
- 右键菜单:编辑 / 新标签打开 / 删除
- 六个分区:外观 / 时钟 / 文本 / 壁纸 / 搜索 / 图标 / 数据与关于
- 设置项搜索(抽屉打开时按
/) - 所有改动实时生效
- 配置导出 / 导入 / 恢复默认
- 自动检查更新(读 GitHub 上 manifest.json 的版本号)
- 角落 Kaomoji:藏在右下角的颜文字,随你的点击节奏分三阶段切换表情(开心 → 无奈 → 崩溃),空闲时还会做点小动作。这个是从 PhasWer 主站移植过来的。
- Clone 或下载本项目的GitHub仓库。
- 打开
chrome://extensions/。 - 右上角开 开发者模式。
- 点 加载已解压的扩展程序,选仓库根目录。
- 开个新标签页就能看到了。
Edge / Brave / Vivaldi / Arc 这些 Chromium 系的浏览器应该也都能用,没全部测过。
打开 在线网页版(部署后填实际地址)→ 「数据与关于」→「下载安装包」,会自动把项目所有文件打包成 zip,解压后按方式一的步骤 2–5 加载。
由于这个插件是以已解压的扩展程序加载的,Chrome 不会自动更新,需要手动操作:
- 插件会在打开新标签页时自动检查 GitHub Releases 是否有新版本(每 6 小时一次)。如果有,版本号旁边会显示一个醒目的徽章。
- 也可以在 设置 → 数据与关于 → 关于此项目 里点「检查更新」手动检查。
- 发现新版本后,点击徽章会跳转到对应版本的 Release 页面,下载带版本号的安装包。
- 解压并用新文件替换旧的扩展目录(或放一个新的目录)。
配置保存在浏览器的
chrome.storage.local里,更新代码不会丢失设置。
Frostart/
├── manifest.json # MV3 清单
├── newtab.html # 主新标签页
├── converter.html # iTab ⇄ Frostart 转换工具(独立网页,不属于扩展页面)
├── changelog.html # 更新日志
├── index.html # 落地页(非必需)
├── css/
│ ├── tokens.css # 设计令牌(@property / 主题变量)
│ ├── base.css # 重置 / 壁纸系统 / 玻璃效果
│ ├── components.css # 组件层
│ └── pages.css # 页面专属
├── js/
│ ├── settings.js # 配置管理(防抖保存、迁移、备份)
│ ├── wp-cache.js # 首屏壁纸缓存
│ ├── page-theme.js # 子页面主题同步
│ ├── changelog.js # 更新日志渲染
│ ├── core.js # 应用骨架
│ ├── sliders.js # 滑块系统
│ ├── panels.js # 设置面板
│ ├── widgets.js # 右键菜单 / 拖拽 / 图标编辑器
│ └── kaomoji.js # 角落颜文字
├── icons/
└── LICENSE # GPL-3.0
使用的包括原生 JS,CSS Custom Properties + @property + backdrop-filter,Canvas 压图和 FLIP 动画。
之所以不上框架,一是插件就这么大没必要,二是想保持代码可直接阅读,这样想抄哪段直接拿走就行(只要遵守 GPL-3.0协议都欢迎)。
基于 Manifest V3,只支持 Chromium 内核浏览器,最低版本要求 Chrome 88+:
| 浏览器 | 状态 | 说明 |
|---|---|---|
| Chrome | ✅ 主要测试环境 | 88+ |
| Edge | ✅ 已测 | Chromium 内核,88+ |
| Brave | 🟢 应该可用 | 未深度测试 |
| Vivaldi | 🟢 应该可用 | 未深度测试 |
| Arc | 🟢 应该可用 | 未深度测试 |
| Firefox | ❌ 不支持 | 无 MV3 支持 |
| Safari | ❌ 不支持 | 需另写 Safari App Extension |
权限相关的说明(为什么需要
storage和*.bing.com)写在 PRIVACY.md 里
首屏用了三层防线消除壁纸闪烁(内联缓存 → DOMContentLoaded → 首帧应用),动画遵守 prefers-reduced-motion。滑块支持点数值直接输入,还支持中文特殊词(跟随 / 隐藏 / 胶囊)。
此插件不收集任何数据。 详见 PRIVACY.md。
欢迎反馈 bug、提建议或直接贡献代码!
- 报告 Bug / 提建议:到 Issues 新建 Issue,选对应模板填写即可。
- 贡献代码:先 Fork 本仓库 → 从
main拉新分支 → 改完后发起 PR。详细流程见 CONTRIBUTING.md。
| 改动类型 | 例子 | 流程 |
|---|---|---|
| 小型 / 低风险 | 修 bug、抽离重复函数、改样式 | 直接提 PR |
| 中型 / 需同步 | 新增功能、调整组件逻辑 | 先在 Issue 说明思路 |
| 大型 / 架构级 | IIFE 隔离、循环依赖重构 | 必须先在 Issue 讨论达成共识 |
项目目前正在逐步模块化,如果贡献者想参与架构改动,请务必先在 Issue 里对齐方向。
- 也可以直接 B 站私信 找我。
GPL-3.0 © 灰鸢 Gledery
© 灰鸢 Gledery 闲的没事用肝创建 (。・ω・。)
你滑到底了哇,去喝杯水吧~