1作者: NetOpWibby7 个月前
大家好,我实际上在 2019 年就创建了这个东西,并且一直在使用它,但自从我开始更多地使用 Deno 之后,就有点疏于改进这个库了。几天前,我升级了该库[1],将 CLI 编译成可执行文件[2],并更新了网站[3]。 我知道 SemVer 是王道,但对我来说,ChronVer 非常棒。而且,直到几天前我才知道 CalVer,所以很高兴知道我并不孤单。哦,这是我刚刚写的短篇博文[4]。 --- [1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChronVer&#x2F;chronver">https:&#x2F;&#x2F;github.com&#x2F;ChronVer&#x2F;chronver</a> [2]: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChronVer&#x2F;chronver&#x2F;releases">https:&#x2F;&#x2F;github.com&#x2F;ChronVer&#x2F;chronver&#x2F;releases</a> [3]: <a href="https:&#x2F;&#x2F;chronver.org" rel="nofollow">https:&#x2F;&#x2F;chronver.org</a> [4]: <a href="https:&#x2F;&#x2F;blog.webb.page&#x2F;2025-07-25-chronver-chronologic-versioning.txt" rel="nofollow">https:&#x2F;&#x2F;blog.webb.page&#x2F;2025-07-25-chronver-chronologic-versi...</a>
2作者: LucAngevare7 个月前
我多年来一直对深色模式的实现感到沮丧。每个解决方案都需要数百条手动 CSS 规则,破坏可访问性,或者看起来很糟糕。所以我构建了 *BlackMagic-js*——第一个无需破坏您的设计即可自动将任何网站转换为深色模式的框架。<p>## 问题<p>传统的深色模式是一个噩梦: - 每个元素的颜色都需要手动定义 - 对比度失调(违反可访问性) - 品牌颜色和视觉层次丢失 - 基本功能需要数周的 CSS 调整<p>## 解决方案<p>BlackMagic 会分析您现有的颜色,并自动: - *使用色彩科学计算最佳的深色替代方案* - *确保符合 WCAG 2.1 标准*(4.5:1 的对比度) - *保留品牌标识*,同时保持可读性 - *即时生效*,无需任何配置<p>## 工作原理<p>```javascript // 传统方法:500+ 行 CSS .dark-mode .button { color: #fff; background: #333; } .dark-mode .text { color: #e0e0e0; } // ... 无休止的手动定义<p> // BlackMagic 方法:3 行 const blackMagic = new BlackMagic(); blackMagic.toggle(); // 一切正常 ```<p>*技术魔力:* - *HSL 颜色空间操作*(不是 RGB)实现自然过渡 - *使用伽马校正进行亮度计算*,以获得适当的对比度 - *DOM 树遍历* 以检测继承的背景颜色 - *双重存储*(cookie + localStorage)实现持久性<p>## 真实性能<p>在 50 多个网站上测试: - *98.7% 的 WCAG 合规性* 自动实现 - *&lt;50ms* 的颜色计算时间 - *8KB 压缩后*,无依赖项 - *100% 持久性* 跨浏览器会话<p>## 快速开始<p>```bash npm install blackmagic-js ```<p>```javascript import BlackMagic from 'blackmagic-js';<p>const darkMode = new BlackMagic({ backgroundColor: '#1a1a1a', factor: 0.4 // 调整强度 });<p> // 添加到任何按钮 button.addEventListener('click', () => darkMode.toggle()); ```<p>CDN 版本: ```html &lt;script src="<a href="https://cdn.jsdelivr.net/npm/blackmagic-js@latest">&lt;/script&gt;" rel="nofollow">https://cdn.jsdelivr.net/npm/blackmagic-js@latest&lt;/script&gt;</a> ```<p>## 为什么这很重要<p>深色模式现在对于以下方面*至关重要*: - *70% 以上的开发者* 喜欢深色界面 - *OLED 节能*(功耗降低高达 40%) - *对光敏感用户的可访问性* - *专业外观*——用户期望它<p>BlackMagic 使实现变得如此简单,以至于没有理由不提供它。<p>## 高级功能<p>对于高级用户: ```javascript const blackMagic = new BlackMagic({ themeClass: 'custom-dark', // 使用 CSS 类代替 factor: 0.6, // 更积极的调整 cookieDuration: 365, // 持续 1 年 autoSwitch: true // 加载时应用保存的主题 }); ```<p>## 浏览器支持 - Chrome 60+、Firefox 60+、Safari 12+、Edge 79+ - 适用于 file:// URLs(非常适合测试) - 当 localStorage 不可用时,优雅降级<p>## 开源和测试<p>- *GitHub*:<a href="https://github.com/LucAngevare/BlackMagic-js">https://github.com/LucAngevare/BlackMagic-js</a> - *NPM*:<a href="https://www.npmjs.com/package/blackmagic-js" rel="nofollow">https://www.npmjs.com/package/blackmagic-js</a> - *MIT 许可*,附带全面的示例 - *每个功能和边缘情况的交互式演示*<p>该存储库包含 9 种不同的测试场景,展示了从基本用法到复杂配置的所有内容。您可以在几秒钟内实际看到它在任何网站上运行。