@lokiyou/pi-nano-footer 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.ts +12 -5
- package/package.json +1 -1
package/index.ts
CHANGED
|
@@ -81,12 +81,19 @@ Editor.prototype.render = function (width: number): string[] {
|
|
|
81
81
|
const rgb = extractRGB(saved);
|
|
82
82
|
if (rgb) {
|
|
83
83
|
const [r, g, b] = rgb;
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
// 荧光呼吸:
|
|
85
|
+
// - 暗处降到 12% 亮度(像灯熄了)
|
|
86
|
+
// - 亮处叠加白色辉光(像荧光灯通电)
|
|
87
|
+
// - t² 曲线让过渡更锐利,停留暗/亮两端更久
|
|
88
|
+
// 周期 ~1s 一次完整呼吸
|
|
89
|
+
const t = 0.5 + 0.5 * Math.sin(performance.now() / 350);
|
|
90
|
+
const base = 0.12 + 0.88 * t; // 12%~100% 明暗
|
|
91
|
+
const glow = Math.min(1, t * 1.4); // 0~1 白色 blending,峰值更亮
|
|
92
|
+
const nr = Math.round(Math.min(255, r * base + (255 - r) * glow * 0.35));
|
|
93
|
+
const ng = Math.round(Math.min(255, g * base + (255 - g) * glow * 0.35));
|
|
94
|
+
const nb = Math.round(Math.min(255, b * base + (255 - b) * glow * 0.35));
|
|
88
95
|
this.borderColor = (str: string) =>
|
|
89
|
-
`\x1b[38;2;${
|
|
96
|
+
`\x1b[38;2;${nr};${ng};${nb}m${str}\x1b[0m`;
|
|
90
97
|
}
|
|
91
98
|
try {
|
|
92
99
|
return origRender.call(this, width);
|