Skip to content

Commit 82ebe88

Browse files
committed
style: refine agent pane headers
1 parent 76a035c commit 82ebe88

3 files changed

Lines changed: 63 additions & 15 deletions

File tree

apps/web/src/features/agents/AgentWorkspaceFeature.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,15 @@ export const AgentWorkspaceFeature = ({
107107
<div className={`surface-progress ${tone}`} aria-hidden="true">
108108
<span className="surface-progress-bar" style={{ width: `${progress}%` }} />
109109
</div>
110-
<div className="agent-pane-header">
110+
<div className="agent-pane-header" data-density="compact" data-active={isPaneActive ? "true" : "false"}>
111111
<div className="agent-pane-header-copy">
112112
<span className={`session-top-dot ${statusTone} ${statusTone === "active" ? "pulse" : ""}`} />
113113
<span className="agent-pane-title">{displaySessionTitle(session.title)}</span>
114114
</div>
115115
<div className="agent-pane-meta">
116-
<span className={`agent-pane-state-tag ${headerTag.tone}`}>{headerTag.label}</span>
116+
<span className={`agent-pane-state-tag ${headerTag.tone}`} data-tone={headerTag.tone}>
117+
{headerTag.label}
118+
</span>
117119
<div className="agent-pane-actions">
118120
<button
119121
type="button"
@@ -233,13 +235,15 @@ export const AgentWorkspaceFeature = ({
233235
data-session-id={viewedSession.id}
234236
data-session-status={viewedSession.status}
235237
>
236-
<div className="agent-pane-header">
238+
<div className="agent-pane-header" data-density="compact" data-active="true">
237239
<div className="agent-pane-header-copy">
238240
<span className={`session-top-dot ${sessionTone(viewedSession.status)} ${sessionTone(viewedSession.status) === "active" ? "pulse" : ""}`} />
239241
<span className="agent-pane-title">{displaySessionTitle(viewedSession.title)}</span>
240242
</div>
241243
<div className="agent-pane-meta">
242-
<span className={`agent-pane-state-tag ${viewedHeaderTag.tone}`}>{viewedHeaderTag.label}</span>
244+
<span className={`agent-pane-state-tag ${viewedHeaderTag.tone}`} data-tone={viewedHeaderTag.tone}>
245+
{viewedHeaderTag.label}
246+
</span>
243247
</div>
244248
</div>
245249
<div className="agent-pane-body">

apps/web/src/styles/app.css

Lines changed: 53 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9223,51 +9223,68 @@ pre.diff,
92239223

92249224
.agent-pane-header {
92259225
align-items: center;
9226-
gap: 8px;
9227-
padding: 6px 8px;
9226+
gap: 6px;
9227+
min-height: 28px;
9228+
padding: 5px 7px;
92289229
}
92299230

92309231
.agent-pane-header-copy {
92319232
min-width: 0;
9232-
gap: 6px;
9233+
gap: 5px;
9234+
}
9235+
9236+
.agent-pane-header[data-active="true"] {
9237+
box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--accent) 14%, var(--border-muted));
9238+
}
9239+
9240+
.agent-pane-title {
9241+
font-size: 12px;
9242+
line-height: 1.2;
9243+
font-weight: 500;
9244+
letter-spacing: 0.01em;
9245+
text-transform: none;
92339246
}
92349247

92359248
.agent-pane-meta {
92369249
display: flex;
92379250
align-items: center;
9238-
gap: 6px;
9251+
gap: 4px;
92399252
margin-left: auto;
92409253
flex-shrink: 0;
92419254
}
92429255

92439256
.agent-pane-state-tag {
92449257
display: inline-flex;
92459258
align-items: center;
9246-
min-height: 20px;
9247-
padding: 0 7px;
9259+
justify-content: center;
9260+
min-height: 18px;
9261+
padding: 0 6px;
92489262
border: 1px solid var(--border-subtle);
9249-
border-radius: 999px;
9263+
border-radius: 5px;
92509264
background: var(--surface-chip);
92519265
font-size: 10px;
92529266
font-weight: 600;
9253-
letter-spacing: 0.04em;
9267+
letter-spacing: 0.02em;
92549268
text-transform: uppercase;
92559269
color: var(--text-secondary);
92569270
}
92579271

92589272
.agent-pane-state-tag.active {
92599273
color: var(--accent-2);
92609274
border-color: color-mix(in srgb, var(--accent-2) 28%, var(--border-subtle));
9275+
background: color-mix(in srgb, var(--accent-2) 10%, var(--surface-chip));
92619276
}
92629277

92639278
.agent-pane-state-tag.info {
92649279
color: var(--accent);
92659280
border-color: color-mix(in srgb, var(--accent) 28%, var(--border-subtle));
9281+
background: color-mix(in srgb, var(--accent) 10%, var(--surface-chip));
92669282
}
92679283

92689284
.agent-pane-state-tag.queue {
92699285
color: var(--accent-3);
92709286
border-color: color-mix(in srgb, var(--accent-3) 28%, var(--border-subtle));
9287+
background: color-mix(in srgb, var(--accent-3) 10%, var(--surface-chip));
92719288
}
92729289

92739290
.agent-pane-state-tag.idle {
@@ -9279,15 +9296,40 @@ pre.diff,
92799296
}
92809297

92819298
.agent-pane-actions {
9299+
display: inline-flex;
9300+
align-items: center;
92829301
gap: 2px;
9302+
padding: 1px;
9303+
border: 1px solid color-mix(in srgb, var(--border-subtle) 88%, transparent);
9304+
border-radius: 5px;
9305+
background: color-mix(in srgb, var(--surface) 82%, var(--bg) 18%);
9306+
opacity: 0.82;
92839307
}
92849308

92859309
.pane-action {
9286-
width: 24px;
9287-
height: 24px;
9310+
width: 20px;
9311+
height: 20px;
92889312
border-radius: 4px;
9313+
color: var(--text-tertiary);
9314+
background: transparent;
9315+
}
9316+
9317+
.agent-pane-card.active .agent-pane-actions,
9318+
.agent-pane-card:hover .agent-pane-actions {
9319+
opacity: 1;
92899320
}
92909321

92919322
.pane-action:hover {
9292-
background: var(--bg-hover);
9323+
background: color-mix(in srgb, var(--accent) 10%, transparent);
9324+
color: var(--text);
9325+
}
9326+
9327+
.pane-action svg {
9328+
width: 12px;
9329+
height: 12px;
9330+
}
9331+
9332+
.pane-action.close:hover {
9333+
color: var(--danger);
9334+
background: color-mix(in srgb, var(--danger) 10%, transparent);
92939335
}

tests/e2e/e2e.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,9 @@ test('flat matte UI exposes compact shell and supporting screen markers', async
494494
await expect(page.getByTestId('workspace-status-strip')).toContainText('Runtime');
495495
await expect(page.getByTestId('workspace-status-strip')).toContainText('Changes');
496496
await expect(page.getByTestId('workspace-status-strip')).toContainText('Queue');
497+
await expect(page.locator('.agent-pane-header').first()).toHaveAttribute('data-density', 'compact');
497498
await expect(page.locator('.agent-pane-state-tag').first()).toBeVisible();
499+
await expect(page.locator('.agent-pane-state-tag').first()).toHaveAttribute('data-tone', /active|info|queue|idle|muted/);
498500
await expect(page.locator('.agent-pane-state-tag').first()).toHaveText(/Ready|Queued|Suspended|Running|Background/);
499501

500502
await page.getByRole('button', { name: 'Actions' }).click();

0 commit comments

Comments
 (0)