Commit 52d592b
committed
feat(app): travelling harmonic dot + bottom-up card entry animation
The harmonic dot now tracks the LAST prose-fragment card within a running
text-part row rather than staying pinned to the first text line. As new
paragraph cards settle during streaming, the dot slides smoothly down the
rail (CSS transition, 150ms ease-out), keeping the loading indicator
visible near the newest content.
Changes:
- measureDotCentre targets last [data-prose-fragment] instead of first text
node when fragments are present (works for both running and done states)
- ThoughtRail accepts a settled prop; dot gets .thought-rail-dot--settled
class after first measurement to gate the transition (prevents slide on
initial mount)
- Rail line gets matching height transition so spine extends in sync
- Prose-fragment cards get a dedicated entry animation: 150ms ease-out,
translateY(10px) + opacity fade, no blur (snappier than the general
timeline-enter)
- All transitions/animations honour prefers-reduced-motion: reduce
- Sanity ceiling (80px) removed for fragment-targeting measurements since
the dot can travel far down a long response
Closes #2651 parent e0913dd commit 52d592b
5 files changed
Lines changed: 112 additions & 7 deletions
File tree
- packages/app/src
- pages/session/timeline
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
212 | 229 | | |
213 | 230 | | |
214 | 231 | | |
| |||
262 | 279 | | |
263 | 280 | | |
264 | 281 | | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
265 | 285 | | |
266 | 286 | | |
267 | 287 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
382 | 382 | | |
383 | 383 | | |
384 | 384 | | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
385 | 397 | | |
386 | 398 | | |
387 | 399 | | |
| |||
400 | 412 | | |
401 | 413 | | |
402 | 414 | | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
403 | 421 | | |
Lines changed: 16 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1465 | 1465 | | |
1466 | 1466 | | |
1467 | 1467 | | |
| 1468 | + | |
1468 | 1469 | | |
1469 | 1470 | | |
1470 | 1471 | | |
1471 | | - | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
1472 | 1480 | | |
1473 | 1481 | | |
1474 | 1482 | | |
| |||
1477 | 1485 | | |
1478 | 1486 | | |
1479 | 1487 | | |
1480 | | - | |
1481 | | - | |
1482 | | - | |
1483 | | - | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
1484 | 1494 | | |
1485 | 1495 | | |
1486 | 1496 | | |
| |||
1512 | 1522 | | |
1513 | 1523 | | |
1514 | 1524 | | |
1515 | | - | |
| 1525 | + | |
1516 | 1526 | | |
1517 | 1527 | | |
1518 | 1528 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
131 | 134 | | |
132 | 135 | | |
133 | 136 | | |
| |||
172 | 175 | | |
173 | 176 | | |
174 | 177 | | |
| 178 | + | |
| 179 | + | |
175 | 180 | | |
176 | | - | |
| 181 | + | |
177 | 182 | | |
178 | 183 | | |
179 | 184 | | |
| |||
Lines changed: 52 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
0 commit comments