fix(a11y): WCAG AA contrast retune for the Otter Orange palette (#567)

Fixes #557. Vivid fill, ink label: brand #E07832 stays on fills while primary-foreground flips to #1A1814 (5.83:1); new theme-aware ink tokens carry orange, destructive, and success text roles; opacity-modified text purged; landing, demo, and the docs fund button retuned. Guarded by a CSS-parsing unit contrast test, rebuilt axe baselines with zero contrast entries, a new landing axe smoke, and fully regenerated darwin visual baselines.
This commit is contained in:
SnapOtter
2026-07-18 12:56:48 +08:00
committed by GitHub
parent 6241f8719f
commit 51022628dc
566 changed files with 856 additions and 707 deletions
+2 -2
View File
@@ -14,7 +14,7 @@ export function DemoBanner() {
href="https://docs.snapotter.com/guide/getting-started"
target="_blank"
rel="noopener noreferrer"
className="font-semibold underline underline-offset-2 hover:text-primary-subtle"
className="font-semibold underline underline-offset-2 hover:no-underline"
>
Self-host SnapOtter
</a>{" "}
@@ -23,7 +23,7 @@ export function DemoBanner() {
<button
type="button"
onClick={() => setDismissed(true)}
className="ms-2 shrink-0 rounded px-1.5 py-0.5 text-xs font-medium hover:bg-primary-dark"
className="ms-2 shrink-0 rounded px-1.5 py-0.5 text-xs font-medium hover:bg-primary-light"
aria-label="Dismiss banner"
>
Dismiss
+2 -2
View File
@@ -19,8 +19,8 @@ function patchDemoErrors(root: Element) {
if (!el.textContent?.includes(DEMO_MARKER)) return;
if (el.dataset.demoPatch) return;
el.dataset.demoPatch = "1";
el.classList.remove("text-red-500");
el.style.color = "var(--color-primary)";
el.classList.remove("text-red-500", "text-destructive-ink");
el.style.color = "var(--color-primary-ink)";
el.style.fontSize = "13px";
el.style.lineHeight = "1.5";