Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
257 changes: 0 additions & 257 deletions apps/web/src/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -1820,182 +1820,6 @@ tr.insights-row-clickable:hover {
color: var(--muted-foreground);
}

/* A workbench transcript above, composer below. */
.chat-thread-messages {
display: flex;
flex-direction: column;
gap: 1rem;
padding-bottom: 1rem;
}
.chat-thread-message {
display: flex;
gap: 0.75rem;
align-items: flex-start;
}
.chat-thread-body {
min-width: 0;
/* 16px minimum: keeps the transcript readable and matches the composer
below, and avoids mobile Safari's zoom-on-focus threshold. */
font-size: max(var(--text-base), 16px);
font-weight: var(--font-weight-medium);
line-height: 1.55;
}
.chat-thread-message[data-author="me"] {
justify-content: flex-end;
}
.chat-thread-message[data-author="me"] .chat-thread-body {
display: flex;
flex-direction: column;
align-items: flex-end;
max-width: min(76ch, 78%);
}
.chat-thread-own-bubble {
background: var(--surface-sunk);
box-shadow: inset 0 0 0 1px var(--border);
padding: 0.625rem 0.875rem;
border-radius: 1rem 1rem 0.25rem 1rem;
overflow-wrap: anywhere;
}
.chat-thread-head {
display: flex;
align-items: baseline;
gap: 0.5rem;
margin-bottom: 0.125rem;
}
.chat-thread-head b {
font-size: 0.875rem;
font-weight: 800;
}
.chat-thread-head time {
font-size: 0.75rem;
color: var(--muted-foreground);
font-variant-numeric: tabular-nums;
}
.chat-system-line {
margin: 0 0 0.5rem 2.75rem;
font-size: 0.8125rem;
line-height: 1.5;
color: var(--muted-foreground);
}
.chat-system-line b {
font-weight: 700;
}
.chat-thread-error {
margin: 0.5rem 0;
font-size: 0.82rem;
color: var(--destructive);
}

/* Shared composer: one lean full-width row (+, text, voice, send). */
.chat-composer-box {
display: flex;
align-items: flex-end;
gap: 4px;
padding: 6px;
background: var(--surface);
border-radius: 22px;
box-shadow: var(--floating);
transition: box-shadow 150ms ease-out;
}
.chat-composer-box:focus-within {
box-shadow:
0 0 0 1px var(--line-strong),
0 6px 20px -6px rgb(0 0 0 / 18%);
}
.chat-composer-input {
flex: 1;
min-width: 0;
min-height: 32px;
max-height: 180px;
display: block;
resize: none;
border: 0;
background: transparent;
padding: 5px 4px;
font: inherit;
font-size: 15px;
line-height: 1.5;
color: var(--ink);
}
.chat-composer-input:focus {
outline: none;
}
.chat-composer-input::placeholder {
color: var(--ink-3);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.chat-composer-input:disabled {
cursor: not-allowed;
opacity: 0.6;
}
.chat-composer-btn,
.chat-composer-send {
display: grid;
place-items: center;
flex: 0 0 32px;
width: 32px;
height: 32px;
padding: 0;
border: 0;
border-radius: 50%;
cursor: pointer;
}
.chat-composer-btn {
background: transparent;
color: var(--ink-2);
}
.chat-composer-voice {
background: var(--hover);
color: var(--ink);
}
.chat-composer-btn:hover:not(:disabled) {
background: var(--press);
}
.chat-composer-btn:disabled {
cursor: not-allowed;
opacity: 0.4;
}
.chat-composer-send {
background: var(--ink);
color: var(--action);
transition:
transform 160ms var(--ease-out),
opacity 150ms ease;
}
.chat-composer-send:disabled {
cursor: default;
opacity: 0.2;
}
.chat-composer-send:not(:disabled):active {
transform: scale(0.92);
}
.chat-composer-send-spinner {
animation: chat-composer-spin 0.8s linear infinite;
}
@keyframes chat-composer-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@media (prefers-reduced-motion: reduce) {
.chat-composer-send-spinner {
animation-duration: 1e-6ms;
}
}

/* A workbench workbench: a left info column (activity, artifacts, approvals,
participants), the running chat in the main column, and an optional
sub-thread panel on the right. */
.workbench-layout {
display: flex;
min-height: 0;
flex: 1;
}
.wb {
display: grid;
grid-template-columns: minmax(0, 1fr) 0px;
Expand All @@ -2011,46 +1835,6 @@ tr.insights-row-clickable:hover {
position: relative;
min-width: 0;
}
.bench-pill {
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
z-index: 20;
display: inline-flex;
align-items: center;
gap: 8px;
height: 36px;
max-width: min(440px, calc(100% - 120px));
padding: 0 10px 0 6px;
border: 0;
border-radius: var(--r-full);
background: color-mix(in srgb, var(--surface) 88%, transparent);
backdrop-filter: blur(12px);
box-shadow: var(--floating);
font-size: 13.5px;
color: var(--ink);
cursor: pointer;
transition:
box-shadow 150ms ease-out,
transform 160ms var(--ease-out);
}
.bench-pill:hover {
box-shadow: var(--overlay);
}
.bench-pill:active {
transform: translateX(-50%) scale(0.97);
}
.bench-pill b {
font-weight: 800;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.bench-pill-status {
color: var(--ink-3);
white-space: nowrap;
}
.drawer-cell {
min-width: 0;
overflow: hidden;
Expand Down Expand Up @@ -2266,34 +2050,12 @@ a.drawer-li:hover,
pointer-events: auto;
}
}
@media (max-width: 640px) {
.bench-pill-status {
display: none;
}
}
@media (prefers-reduced-motion: reduce) {
.wb,
.drawer {
transition: opacity 150ms ease-out;
}
}
.workbench-main {
display: flex;
flex-direction: column;
flex: 1;
min-width: 0;
min-height: 0;
}
.workbench-main-scroll {
flex: 1;
min-height: 0;
overflow-y: auto;
padding-top: 72px;
}
.workbench-main-composer {
flex-shrink: 0;
padding: 0.75rem 1rem;
}
.workbench-participants {
display: flex;
flex-wrap: wrap;
Expand All @@ -2309,25 +2071,6 @@ a.drawer-li:hover,
align-items: center;
gap: 0.35rem;
}
.workbench-replies-link {
display: block;
margin-top: 0.35rem;
padding: 0;
border: 0;
background: none;
font-size: 0.78rem;
color: var(--muted-foreground);
cursor: pointer;
opacity: 0;
transition: opacity 120ms ease-out;
}
.chat-thread-message:hover .workbench-replies-link,
.workbench-replies-link:focus-visible {
opacity: 1;
}
.workbench-replies-link:hover {
color: var(--foreground);
}
.workbench-subthread {
display: flex;
flex-direction: column;
Expand Down
87 changes: 87 additions & 0 deletions apps/web/src/bench/bench-pill.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
.bench-pill {
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
z-index: 20;
display: inline-flex;
align-items: center;
gap: 8px;
height: 36px;
max-width: min(440px, calc(100% - 120px));
padding: 0 10px 0 6px;
border: 0;
border-radius: var(--r-full);
background: color-mix(in srgb, var(--surface) 88%, transparent);
backdrop-filter: blur(12px);
box-shadow: var(--floating);
font-size: 13.5px;
color: var(--ink);
cursor: pointer;
transition:
box-shadow 150ms ease-out,
transform 160ms var(--ease-out);
}
.bench-pill:hover {
box-shadow: var(--overlay);
}
.bench-pill:active {
transform: translateX(-50%) scale(0.97);
}
.bench-pill b {
font-weight: 800;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.bench-pill-status {
color: var(--ink-3);
white-space: nowrap;
}
@media (max-width: 640px) {
.bench-pill-status {
display: none;
}
}

.bench-pill .pulse {
position: relative;
flex: 0 0 8px;
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--action);
}
.bench-pill .pulse::after {
content: "";
position: absolute;
inset: -3px;
border-radius: 50%;
border: 1.5px solid var(--action);
opacity: 0;
animation: bench-pill-pulse 1.8s var(--ease-out) infinite;
}
@keyframes bench-pill-pulse {
from {
transform: scale(0.6);
opacity: 0.8;
}
to {
transform: scale(1.4);
opacity: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.bench-pill .pulse::after {
animation: none;
}
}

.bench-pill-worker {
font-size: 12.5px;
color: var(--ink-3);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
}
Loading
Loading