diff --git a/frontend/packages/agent/src/agent.css b/frontend/packages/agent/src/agent.css index 9b96b530..411ed31a 100644 --- a/frontend/packages/agent/src/agent.css +++ b/frontend/packages/agent/src/agent.css @@ -6,10 +6,6 @@ agent SUB-pages (stats, screen) the same back-link nav the dashboard's standalone pages use. The live terminal page keeps its own header. */ @import "@hive/shared/chrome.css"; -/* Shared pill/chip/badge shape (the "extract pill component" issue, - resolved as shared CSS rather than a JS component) — see pill.css - itself for the classnames it covers. */ -@import "@hive/shared/pill.css"; /* Themed dialog/toast component CSS (modal.js) now lives in each component's own shadow root (adoptedStyleSheets), not a global stylesheet — nothing to @import here any more. */ @@ -304,16 +300,16 @@ h2, h3 { background: color-mix(in srgb, var(--purple) 6%, transparent); } -/* Header pill — inbox / loose-ends triggers. Compact, count-prominent. - Markup carries `hive-pill` alongside `header-pill` (shared pill.css - supplies border/radius/padding/font-size/letter-spacing; `display` - is the one thing overridden here, to `inline-flex`, for the icon+ - label+count row layout — see pill.css's own note on that). */ +/* Header pill — inbox / loose-ends triggers. Compact, count-prominent. */ .header-pill { background: transparent; - border-color: var(--purple-dim); + border: 1px solid var(--purple-dim); color: var(--fg); font-family: inherit; + font-size: 0.85em; + letter-spacing: 0.04em; + border-radius: 999px; + padding: 0.25em 0.7em; display: inline-flex; align-items: center; gap: 0.4em; @@ -606,11 +602,14 @@ pre.diff { font-size: 0.8em; letter-spacing: 0.05em; } -/* Markup carries `hive-pill-sm` alongside each of these (shared - pill.css supplies the shape); rules below are colour only. */ .model-chip, .effort-chip { - border-color: var(--purple-dim); + display: inline-block; + padding: 0.1em 0.6em; + border: 1px solid var(--purple-dim); + border-radius: 999px; + font-size: 0.78em; + letter-spacing: 0.04em; } .model-chip { color: var(--cyan); } .effort-chip { color: var(--amber); } @@ -619,15 +618,28 @@ pre.diff { breakdown on hover. Sized/coloured like a peer of model-chip so the state row reads as one row of chrome. */ .ctx-badge { - border-color: var(--purple-dim); + display: inline-block; + padding: 0.1em 0.6em; + border: 1px solid var(--purple-dim); + border-radius: 999px; color: var(--green); + font-size: 0.78em; + letter-spacing: 0.04em; cursor: default; white-space: pre-line; } -/* Harness reachability badge. Markup carries `hive-pill` alongside - `status-badge` (shared pill.css supplies the shape); colour - communicates the actual reachability state. */ +/* Harness reachability badge. Same chip shape + sizing as + `.state-badge` / `.model-chip` so the state row stays visually + uniform; colour communicates the actual reachability state. */ +.status-badge { + display: inline-block; + padding: 0.25em 0.8em; + border: 1px solid; + border-radius: 999px; + font-size: 0.85em; + letter-spacing: 0.05em; +} .status-badge.status-loading { color: var(--muted); border-color: var(--purple-dim); } .status-badge.status-online { color: var(--green); border-color: var(--green); text-shadow: 0 0 6px color-mix(in srgb, var(--green) 55%, transparent); } @@ -659,10 +671,13 @@ pre.diff { the overflow menu (`.overflow-item-new-session` covers it; the `:disabled` opacity treatment lives on the shared `.overflow-item:disabled` rule). */ -/* Markup carries `hive-pill` alongside `state-badge` (shared pill.css - supplies the shape); this rule is only the transition + state- - specific colour below. */ .state-badge { + display: inline-block; + padding: 0.25em 0.8em; + border: 1px solid; + border-radius: 999px; + font-size: 0.85em; + letter-spacing: 0.05em; transition: color 280ms ease, border-color 280ms ease, box-shadow 280ms ease, background 280ms ease; } diff --git a/frontend/packages/agent/src/app.js b/frontend/packages/agent/src/app.js index c8471a1b..c80b7999 100644 --- a/frontend/packages/agent/src/app.js +++ b/frontend/packages/agent/src/app.js @@ -793,7 +793,7 @@ window.marked = marked; const def = STATE_LABELS[stateName] || STATE_LABELS.loading; const age = fmtAge(Date.now() - stateSince); badge.textContent = def.glyph + ' ' + def.text + ' · ' + age; - badge.className = 'hive-pill state-badge state-' + stateName; + badge.className = 'state-badge state-' + stateName; badge.title = (STATE_TOOLTIPS[stateName] || '') + '\nin this state for ' + age; const cancelBtn = $('cancel-btn'); if (cancelBtn) cancelBtn.hidden = stateName !== 'thinking'; @@ -1057,7 +1057,7 @@ window.marked = marked; if (!el_) return; const def = ALIVE_LABELS[status] || ALIVE_LABELS.loading; el_.textContent = def.glyph + ' ' + def.text; - el_.className = 'hive-pill status-badge ' + def.cls; + el_.className = 'status-badge ' + def.cls; } function renderModelChip(model) { diff --git a/frontend/packages/agent/src/index.html b/frontend/packages/agent/src/index.html index 3bb75ad3..86686717 100644 --- a/frontend/packages/agent/src/index.html +++ b/frontend/packages/agent/src/index.html @@ -35,12 +35,12 @@