summaryrefslogtreecommitdiff
path: root/internal/client/ui/colors
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-02-09 19:08:40 +0200
committerKyren223 <Kyren223@proton.me>2025-02-09 19:08:40 +0200
commit83996ab9c3be89392d1914faa0c874d49bfd4c1c (patch)
tree40e6e36837f6707c9fc4d98283ffc94dae7b6fbb /internal/client/ui/colors
parentcb72418324abfe6b133f0607b7269f5c4ec1f274 (diff)
Added background darkening when opening popups (certain things currently
don't get darkened)
Diffstat (limited to 'internal/client/ui/colors')
-rw-r--r--internal/client/ui/colors/colors.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/client/ui/colors/colors.go b/internal/client/ui/colors/colors.go
index 6ab3590..2c11f72 100644
--- a/internal/client/ui/colors/colors.go
+++ b/internal/client/ui/colors/colors.go
@@ -250,3 +250,33 @@ func IsHex(color string) bool {
re := regexp.MustCompile(`^#[0-9A-Fa-f]{6}$`)
return re.MatchString(color)
}
+
+func ToHexRGB(r, g, b uint8) string {
+ return fmt.Sprintf("#%02X%02X%02X", r, g, b)
+}
+
+func Darken() {
+ Save()
+
+ colors := Get()
+ for i, color := range colors {
+ colors[i] = DarkenColor(color, 0.5)
+ }
+
+ Load(colors)
+}
+
+func DarkenColor(color lipgloss.Color, factor float64) lipgloss.Color {
+ r, g, b, _ := color.RGBA()
+
+ r8 := uint8(r >> 8)
+ g8 := uint8(g >> 8)
+ b8 := uint8(b >> 8)
+
+ // Apply darkening factor (clamping to avoid underflow)
+ darken := func(c uint8) uint8 {
+ return uint8(float64(c) * factor)
+ }
+
+ return lipgloss.Color(ToHexRGB(darken(r8), darken(g8), darken(b8)))
+}