Fix state pill: make state text legible in run detail
State badges had identical foreground and background colors, making
the text invisible. Dropped background-color from c-ok/c-bad/c-muted
and added a status dot before state text so color pairs with shape.

Assisted-by: GLM-5.1 via pi
change ktwyskoyoxulmsunvtmrxpoksywntlzq
commit 007c6e4a8e57ec18e92b67921e017f3245f0ee07
author Alpha Chen <alpha@kejadlen.dev>
date
parent kolzlqur
diff --git a/static/style.css b/static/style.css
index e155e8f..194d434 100644
--- a/static/style.css
+++ b/static/style.css
@@ -95,6 +95,13 @@ pre { white-space: pre-wrap; word-break: break-word; }
   width: 6px;
   height: 6px;
   border-radius: 3px;
+  background-color: currentColor;
+}
+
+.ci-state-label {
+  display: inline-flex;
+  align-items: center;
+  gap: 4px;
 }
 
 .ci-commit-link {
@@ -189,9 +196,9 @@ pre { white-space: pre-wrap; word-break: break-word; }
 
 /* Color tokens */
 
-.c-ok { color: var(--ok); background-color: var(--ok); }
-.c-bad { color: var(--bad); background-color: var(--bad); }
-.c-muted { color: var(--muted); background-color: var(--muted); }
+.c-ok { color: var(--ok); }
+.c-bad { color: var(--bad); }
+.c-muted { color: var(--muted); }
 .c-accent { color: var(--accent); }
 
 /* Dark palette — activates when the OS signals dark mode. */
diff --git a/templates/ci/run_detail.html b/templates/ci/run_detail.html
index 1e65b0a..9c5f16a 100644
--- a/templates/ci/run_detail.html
+++ b/templates/ci/run_detail.html
@@ -11,7 +11,7 @@
   <div class="ci-meta-primary">
     <span class="c-accent">{{ run.sha_short() }}</span>
     · {{ run.branch_short() }}
-    · <span class="{{ run.state_class() }}">{{ run.state }}</span>
+    · <span class="ci-state-label {{ run.state_class() }}"><span class="ci-status-dot {{ run.state_class() }}"></span> {{ run.state }}</span>
   </div>
   <div class="ci-meta-secondary">
     queued <time title="{{ run.queued_iso() }}">{{ run.queued_relative() }}</time>
@@ -25,7 +25,7 @@
 <div class="ci-job">
   <div class="ci-job-header">
     {{ job.job_id }} · {{ job.duration_display() }}{% if let Some(code) = job.exit_code_filter_nonzero() %} · exit {{ code }}{% endif %}
-    · <span class="{{ job.state_class() }}">{{ job.state }}</span>
+    · <span class="ci-state-label {{ job.state_class() }}"><span class="ci-status-dot {{ job.state_class() }}"></span> {{ job.state }}</span>
   </div>
   {% for sh in job.sh_events %}
   <div class="ci-sh">