@lokiyou/pi-nano-footer 0.6.0 → 0.7.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 +9 -11
- package/package.json +1 -1
package/index.ts
CHANGED
|
@@ -81,17 +81,15 @@ 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
|
-
|
|
88
|
-
//
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
const
|
|
92
|
-
const
|
|
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));
|
|
84
|
+
// 呼吸发光:纯 sin 曲线,无 clamping,像自然呼吸
|
|
85
|
+
// - 暗处 ~18% 亮度,亮处 100% + 白色辉光
|
|
86
|
+
// 周期 ~900ms(接近自然呼吸节奏)
|
|
87
|
+
const t = 0.5 + 0.5 * Math.sin(performance.now() / 450);
|
|
88
|
+
const bright = 0.18 + 0.82 * t; // 18%~100%
|
|
89
|
+
const glow = t * 0.4; // 0~0.4 白色 blend,无 clamping
|
|
90
|
+
const nr = Math.round(Math.min(255, r * bright + (255 - r) * glow));
|
|
91
|
+
const ng = Math.round(Math.min(255, g * bright + (255 - g) * glow));
|
|
92
|
+
const nb = Math.round(Math.min(255, b * bright + (255 - b) * glow));
|
|
95
93
|
this.borderColor = (str: string) =>
|
|
96
94
|
`\x1b[38;2;${nr};${ng};${nb}m${str}\x1b[0m`;
|
|
97
95
|
}
|