feat(theme): R10 S1 — semantic status colors (danger/warn/success)

Add theme-scoped --danger/--warn/--success (+ -fg) tokens wired into the v4
@theme inline, replacing ~110 raw red/amber/emerald/green palette refs across
34 files. Fixes light-theme contrast failures (fixed Tailwind shades fell to
~1.7-3:1 on white). Status colors are scheme-independent — recognised by hue,
shifting only by theme to hold contrast (bright on dark bg, darkened on light).
Solid fills use the paired -fg text; @source inline guarantees the full -fg set
exists. IMDb rating gold kept as a deliberate decorative non-status exception.
This commit is contained in:
2026-08-09 01:03:53 +02:00
parent 9ca0c61ea9
commit d794524adf
35 changed files with 123 additions and 85 deletions
+3 -3
View File
@@ -253,10 +253,10 @@ export default function SetupWizard() {
</div>
)}
{testState === "ok" && (
<p className="text-xs text-emerald-500">{t("setup.smtp.testOk")}</p>
<p className="text-xs text-success">{t("setup.smtp.testOk")}</p>
)}
{testState === "fail" && (
<p className="text-xs text-red-400">{t("setup.smtp.testFail")}</p>
<p className="text-xs text-danger">{t("setup.smtp.testFail")}</p>
)}
<p className="text-xs text-muted">{t("setup.smtp.skipHint")}</p>
</Section>
@@ -266,7 +266,7 @@ export default function SetupWizard() {
<Section title={t("setup.finish.title")} desc={t("setup.finish.body")} />
)}
{error && <p className="text-sm text-red-400 mt-3">{error}</p>}
{error && <p className="text-sm text-danger mt-3">{error}</p>}
<div className="flex items-center justify-between mt-6">
<button