Use hex values & add theme_color in manifest.json

It looks like support for hsl color values within the manifest
is limited so we have to convert the colors to hex
This commit is contained in:
Svilen Markov
2025-04-23 13:03:18 +01:00
parent efd39e1f80
commit ceebf34874
6 changed files with 70 additions and 6 deletions
+56
View File
@@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"html/template"
"math"
"net/http"
"net/url"
"os"
@@ -182,3 +183,58 @@ func ternary[T any](condition bool, a, b T) T {
// Having compile time errors about unused variables is cool and all, but I don't want to
// have to constantly comment out my code while I'm working on it and testing things out
func ItsUsedTrustMeBro(...any) {}
func hslToHex(h, s, l float64) string {
s /= 100.0
l /= 100.0
var r, g, b float64
if s == 0 {
r, g, b = l, l, l
} else {
hueToRgb := func(p, q, t float64) float64 {
if t < 0 {
t += 1
}
if t > 1 {
t -= 1
}
if t < 1.0/6.0 {
return p + (q-p)*6.0*t
}
if t < 1.0/2.0 {
return q
}
if t < 2.0/3.0 {
return p + (q-p)*(2.0/3.0-t)*6.0
}
return p
}
q := 0.0
if l < 0.5 {
q = l * (1 + s)
} else {
q = l + s - l*s
}
p := 2*l - q
h /= 360.0
r = hueToRgb(p, q, h+1.0/3.0)
g = hueToRgb(p, q, h)
b = hueToRgb(p, q, h-1.0/3.0)
}
ir := int(math.Round(r * 255.0))
ig := int(math.Round(g * 255.0))
ib := int(math.Round(b * 255.0))
ir = int(math.Max(0, math.Min(255, float64(ir))))
ig = int(math.Max(0, math.Min(255, float64(ig))))
ib = int(math.Max(0, math.Min(255, float64(ib))))
return fmt.Sprintf("#%02x%02x%02x", ir, ig, ib)
}