diff --git a/IDEAS.md b/IDEAS.md index 34397a1..d2dfba8 100644 --- a/IDEAS.md +++ b/IDEAS.md @@ -288,21 +288,26 @@ Zwei Auswege: → Ersteres ist das Richtige, sobald die HoneyBar mehr kann als heute (Widgets, Systemmenü). Vorher lohnt der Umbau nicht. -### Die HoneyBar ohne `unsafe-inline` +### Die HoneyBar ohne `unsafe-inline` — ✅ gebaut (11.09.2026) -Fremde Apps bekommen die HoneyBar über den Reverse Proxy (siehe README). Dabei -muss deren CSP heute `style-src 'unsafe-inline'` erlauben, weil die HoneyBar ihre -Stile im Shadow DOM mitbringt — ohne das erscheint sie schwarz auf schwarz. -Gemessen am 28.08.2026 an einer nachgebauten fremden App. +Fremde Apps mussten für die HoneyBar `style-src 'unsafe-inline'` erlauben, weil +sie ihre Stile im Shadow DOM als ` + `; + root.innerHTML = `
@@ -277,6 +305,8 @@
`; + stileAnlegen(root, STIL); + /* ── Aussehen ───────────────────────────────────────────────────────────── * Dieselben drei Röhren wie in style.css. Sie hier zu wiederholen ist die * bewusste Entscheidung: die HoneyBar soll ohne zweite Datei auskommen, damit @@ -520,17 +550,19 @@ // auch wenn in HoneyOS Grün eingestellt war. Er gehört zur HoneyBar, also // trägt er dieselbe Röhre. const t = ROEHREN[(settings && settings.phosphor) || "amber"] || ROEHREN.amber; - r.innerHTML = ` - -
`; + // Auch hier ueber die CSSOM statt als style-Element: Der Strich hat seinen + // eigenen Shadow-Root und waere sonst das einzige Stueck geblieben, das + // unter einer strengen CSP unsichtbar bleibt. + r.innerHTML = `
`; + stileAnlegen(r, ` + .strich { + height: 3px; + background: linear-gradient(90deg, ${t.dim}, ${t.p} 50%, ${t.dim}); + opacity: .55; + transition: opacity .15s, height .15s; + } + :host(:hover) .strich { opacity: 1; height: 3px; } + `); nub.addEventListener("click", () => { forget(); diff --git a/wetter_test.go b/wetter_test.go index d4dcf1f..3215003 100644 --- a/wetter_test.go +++ b/wetter_test.go @@ -204,3 +204,24 @@ func TestWappenIstUeberallDasselbe(t *testing.T) { } } } + +// Die HoneyBar darf ihre Stile nicht als