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

Stylus 浏览器扩展开发-Cursor AI辅助

项目起源

作为一个经常需要长时间盯着屏幕的开发者,我一直在寻找一个简单的方法来保护眼睛。最初的想法很简单:将网页背景色替换成护眼的豆沙绿。虽然市面上已经有类似的扩展,但我想要一个更加轻量且可定制的解决方案。

这个简单的需求逐渐演变成了一个完整的浏览器扩展项目 —— Stylus。不仅实现了最初的护眼模式,还扩展出了更多实用的功能。
在这里插入图片描述

技术选型

在开发初期,我面临着技术栈选择的问题。传统的浏览器扩展开发往往需要处理很多底层细节,特别是在 Manifest V3 规范下。在调研过程中,我发现了 WXT (Web Extension Tools) 这个强大的工具。

选择 WXT 的原因:

  • 提供了现代化的开发体验
  • 内置了 TypeScript 支持
  • 简化了扩展开发的复杂度
  • 支持 React 等现代前端框架
  • 完全兼容 Manifest V3 规范

技术栈概览:

  • WXT 作为核心开发框架
  • React 18 构建用户界面
  • TypeScript 5 确保代码类型安全
  • Stylus 处理样式
  • Chrome Extension Manifest V3 规范
    在这里插入图片描述

AI 辅助开发

在开发过程中,我大量使用了 Cursor AI 作为开发助手。这极大地提升了开发效率:

  1. 代码生成

    • 快速生成样式模板
    • 编写常用的注入函数
    • 处理复杂的正则匹配规则
  2. 问题解决

    • 快速定位和修复 bug
    • 优化性能问题
    • 提供最佳实践建议
  3. 文档编写

    • 生成注释和文档
    • 完善 README
    • 编写用户指南

核心功能实现

护眼模式

最初的核心功能 —— 护眼模式的实现:

body {background-color: #c7edcc !important;color: #333333 !important;
}/* 调整文本颜色和背景 */
p, div, span, li, td, th, caption, label, input, textarea {background-color: #c7edcc !important;color: #333333 !important;
}/* 调整图片亮度 */
img {filter: brightness(0.95) !important;
}

样式注入系统

为了使扩展更加通用,我设计了一个灵活的样式注入系统:

  • 支持多样式表管理
  • 实时预览功能
  • URL 匹配规则
  • 样式优先级控制

国际化支持

考虑到不同用户的需求,添加了多语言支持:

  • 简体中文
  • 繁体中文
  • 日语
  • 韩语
  • 英语

未来计划

  1. 性能优化

    • 减少样式注入的性能开销
    • 优化规则匹配算法
    • 添加样式缓存机制
  2. 功能扩展

    • 支持更多预设模板
    • 添加样式分享功能
    • 实现云端同步
  3. 社区建设

    • 开源代码
    • 建立用户反馈系统
    • 完善文档和示例

总结

从一个简单的护眼需求,到一个功能完整的浏览器扩展,Stylus 的开发过程让我深入理解了浏览器扩展的开发模式。通过使用现代化的开发工具和 AI 辅助,大大提升了开发效率。希望这个项目能帮助到更多需要定制网页样式的用户。

欢迎访问 项目主页 了解更多详情,也欢迎提交 Issue 和 PR 来帮助改进项目。


📌 开发者必备工具: 在 Tool.tushuoit.com 发现免费在线工具集!推荐 App Store 截图生成器、应用图标生成器 和 [小红书引导图生成器]

http://www.lryc.cn/news/498922.html

相关文章:

  • DAY35|动态规划Part03|LeetCode:01背包问题 二维、01背包问题 一维、416. 分割等和子集
  • 创建空向量:std::vector<int> v,刚创建时大小为0
  • VBA基础2
  • 计算机网络-GRE基础实验二
  • JSON 使用
  • Leetcode—1539. 第 k 个缺失的正整数【简单】
  • 深入浅出:PHP 控制结构与循环语句
  • 深入解析 Loss 减少方式:mean和sum的区别及其在大语言模型中的应用 (中英双语)
  • c++ auto
  • python中的列表、元组、字典的介绍与使用
  • 深入浅出:PHP中的表单处理全解析
  • 双绞线直连两台电脑的方法及遇到的问题
  • 2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序
  • Qt 设置QLineEdit控件placeholderText颜色
  • 麒麟 V10 系统(arm64/aarch64)离线安装 docker 和 docker-compose
  • Windows基线自动化检查脚本
  • 离谱的梯形滤波器——增加过渡点
  • tauri下的两个常用rust web框架:Leptos和Trunk
  • pubmed关键词搜索技能1:待更新
  • 【技巧】Mac上如何显示键盘和鼠标操作
  • ISO26262-(Timing Monitoring)在多核MCU的TPU上功能安全ASILB与ASILD有什么区别
  • 图像处理插件:让小程序焕发视觉新生的秘密武器
  • 项目代码第2讲:从0实现LoginController.cs,UsersController.cs、User相关的后端接口对应的前端界面
  • 【linux 查看网卡设备信息命令记录】
  • springboot事务手动回滚报错
  • SQL 算术运算符:加法、减法、乘法、除法和取模的用法
  • C#是Unity 3D的默认语言,Unity 3D是一种领先的游戏引擎
  • [创业之路-173]:《BLM战略规划》- 战略洞察 (战略能力中最最核心的能力) - 市场洞察 -3- 看竞争对手-要比你的竞争对手跟了解他们自己
  • Spark实训
  • Linux之信号集基础