|
28 | 28 | transition: height 0.18s ease; |
29 | 29 | } |
30 | 30 |
|
31 | | -.activity-feed.fold-full { height: 420px; } |
32 | | -.activity-feed.fold-compact { height: 120px; } |
| 31 | +.activity-feed.fold-full { height: 390px; } |
| 32 | +.activity-feed.fold-compact { height: 150px; } |
33 | 33 | .activity-feed.fold-closed { height: 32px; } |
34 | 34 |
|
35 | 35 | /* === Header === */ |
|
80 | 80 |
|
81 | 81 | .feed-spacer { flex: 1; } |
82 | 82 |
|
83 | | -.feed-tabs { |
84 | | - display: flex; |
85 | | - gap: 2px; |
86 | | - background: rgba(0, 0, 0, 0.25); |
87 | | - border-radius: 4px; |
88 | | - padding: 2px; |
89 | | -} |
90 | | -.feed-tab { |
91 | | - padding: 3px 10px; |
92 | | - font-size: 12px; |
93 | | - color: var(--feed-pergamena); |
94 | | - opacity: 0.6; |
95 | | - border: none; |
96 | | - background: transparent; |
97 | | - border-radius: 3px; |
98 | | - cursor: pointer; |
99 | | - font-family: inherit; |
100 | | -} |
101 | | -.feed-tab.active { |
102 | | - background: rgba(196, 163, 90, 0.3); |
103 | | - color: #fff; |
104 | | - opacity: 1; |
105 | | - font-weight: bold; |
106 | | -} |
107 | | - |
108 | 83 | .feed-fold-buttons { display: flex; gap: 4px; } |
109 | 84 | .feed-fold-btn { |
110 | 85 | width: 26px; height: 24px; |
|
313 | 288 | .feed-detail.is-path:hover { text-decoration: underline; color: #fff; } |
314 | 289 | .feed-detail.is-path-unresolved { color: var(--feed-path); opacity: 0.7; } |
315 | 290 | .feed-detail.is-message { |
316 | | - white-space: pre-wrap; |
| 291 | + white-space: normal; |
317 | 292 | overflow: visible; |
318 | 293 | text-overflow: clip; |
319 | 294 | line-height: 1.45; |
|
328 | 303 | .feed-detail.is-message::-webkit-scrollbar-thumb { background: rgba(196, 163, 90, 0.4); border-radius: 2px; } |
329 | 304 | .feed-detail.is-message.is-reply { color: var(--feed-pergamena); } |
330 | 305 | .feed-detail.is-message.is-prompt { color: #d8e3f2; font-style: italic; } |
| 306 | +/* Markdown rendering inside message cells: keep everything inline so the |
| 307 | + detail flows as a single line group. `p` is already stripped via a |
| 308 | + fragment renderer in ActivityRow, but guard the rest so lists/code |
| 309 | + blocks don't blow up the row height. */ |
| 310 | +.feed-detail.is-message code { |
| 311 | + background: rgba(255, 255, 255, 0.08); |
| 312 | + padding: 0 4px; |
| 313 | + border-radius: 3px; |
| 314 | + font-family: 'Fira Code', ui-monospace, monospace; |
| 315 | + font-size: 0.92em; |
| 316 | +} |
| 317 | +.feed-detail.is-message pre { |
| 318 | + margin: 4px 0; |
| 319 | + padding: 6px 8px; |
| 320 | + background: rgba(0, 0, 0, 0.3); |
| 321 | + border-radius: 3px; |
| 322 | + overflow-x: auto; |
| 323 | + white-space: pre; |
| 324 | +} |
| 325 | +.feed-detail.is-message pre code { |
| 326 | + background: transparent; |
| 327 | + padding: 0; |
| 328 | +} |
| 329 | +.feed-detail.is-message ul, |
| 330 | +.feed-detail.is-message ol { |
| 331 | + margin: 2px 0; |
| 332 | + padding-left: 1.2em; |
| 333 | +} |
| 334 | +.feed-detail.is-message a { |
| 335 | + color: var(--feed-path); |
| 336 | + text-decoration: underline; |
| 337 | +} |
| 338 | +.feed-detail.is-message strong { color: #fff; } |
| 339 | +.feed-detail.is-message em { color: #d8d0b8; } |
331 | 340 |
|
332 | 341 | /* === Group (By Agent) === */ |
333 | 342 | .feed-group { |
|
462 | 471 | .feed-entry.is-highlighted.hl-agent { border-left-color: #7ac49a; background: rgba(122, 196, 154, 0.08); } |
463 | 472 | .feed-entry.is-highlighted.hl-other { border-left-color: #888; background: rgba(136, 136, 136, 0.06); } |
464 | 473 |
|
465 | | -.feed-entry.is-selected { |
466 | | - background: rgba(91, 163, 245, 0.1); |
467 | | - animation: feed-select-pulse 1.5s ease-in-out infinite; |
468 | | -} |
469 | | -.feed-entry.is-selected.is-highlighted { |
470 | | - background: rgba(91, 163, 245, 0.14); |
471 | | -} |
472 | | -.feed-entry.is-selected .feed-agent-name { |
473 | | - color: #FFFFFF !important; |
474 | | - text-shadow: 0 0 6px rgba(91, 163, 245, 0.9); |
475 | | -} |
476 | | - |
477 | | -@keyframes feed-select-pulse { |
478 | | - 0%, 100% { box-shadow: inset 4px 0 0 #5BA3F5, 0 0 6px rgba(91, 163, 245, 0.3); } |
479 | | - 50% { box-shadow: inset 4px 0 0 #5BA3F5, 0 0 14px rgba(91, 163, 245, 0.7); } |
480 | | -} |
481 | | -@media (prefers-reduced-motion: reduce) { |
482 | | - .feed-entry.is-selected { |
483 | | - animation: none; |
484 | | - box-shadow: inset 4px 0 0 #5BA3F5, 0 0 10px rgba(91, 163, 245, 0.5); |
485 | | - } |
486 | | -} |
| 474 | +/* Selection feedback on the feed cell is intentionally absent — the hero |
| 475 | + halo in Phaser and the PartyBar row already convey which agent is |
| 476 | + selected, and the click target here only needs to react visually while |
| 477 | + pressed (handled natively). */ |
487 | 478 |
|
488 | 479 | /* Category pill styling for agent/other/reads/messages (errors/edits/bash reuse existing) */ |
489 | 480 | .feed-pill.messages { background: rgba(224, 138, 63, 0.15); color: #f0c99a; border-color: rgba(224, 138, 63, 0.4); } |
|
0 commit comments