# Shelf animation evidence

Draft [#25412](https://git.cafe/pingdotgg/t3code/pulls/25412). After [f4bbe57480](https://git.cafe/pingdotgg/t3code/commit/f4bbe57480e4498d279fce1dcf99b1aece1100b5); baseline [1316d48b0c](https://git.cafe/pingdotgg/t3code/commit/1316d48b0c68151afd8b47eb0c11a114cf0b4daa). Only Sidebar.tsx was replaced for BEFORE, as requested; the rest of the checkout remained HEAD. No commits, forge changes, delegates, checkouts, merge, or watch.

Linux Chromium in T3 Browser panel, separate tab (parent tab untouched). DPR 2. CSS viewports 1440×900 and 390×900. Whole-surface desktop snapshots are downsampled by the preview tool to 1280×800; portrait snapshots are 780×1800. Named theme AND explicit appearance mode set; dark verified as rendered dark. Frozen Date.now/new Date: 2026-10-26 08:30 UTC; performance timers and real browser animations continue normally. New design primary, classic once at 1440-light.

Fixture: synthetic sanitized titles, 2 Working, 2 Snoozed, 3 Settled. Removed inherited public PR badge while server stopped; added second Snoozed row. Temporary isThreadWorking title.startsWith("Working") predicate used identically in both sides, then restored. Movements use real app buttons and snooze presets, not live DB edits. The fixture is projection data, so this is frontend motion evidence, not backend correctness proof.

## Matrix

| Row | Scope | Evidence | Result |
|---|---|---|---|
| 1 | All 3 shelves, reverse order, expand/collapse and 45 ms rapid reversals; all four primary cells | 1440-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b8b50af896297d5b/before-1440-light-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e15440085c307d8d/after-1440-light-captioned.mp4); 1440-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0dd8f26327ff02a6/before-1440-dark-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a11d992745d85b10/after-1440-dark-captioned.mp4); 390-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73849c17c7c45ad6/before-390-light-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e2d3f565072bb0f/after-390-light-captioned.mp4); 390-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/669f4341ab57f6f2/before-390-dark-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f22e5a6e891fc2c/after-390-dark-captioned.mp4) | Captured before/after |
| 2 | Routed selected row in each shelf, collapse then expand; all four primary cells | 1440-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b8b50af896297d5b/before-1440-light-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e15440085c307d8d/after-1440-light-captioned.mp4); 1440-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0dd8f26327ff02a6/before-1440-dark-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a11d992745d85b10/after-1440-dark-captioned.mp4); 390-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73849c17c7c45ad6/before-390-light-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e2d3f565072bb0f/after-390-light-captioned.mp4); 390-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/669f4341ab57f6f2/before-390-dark-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f22e5a6e891fc2c/after-390-dark-captioned.mp4) | Captured before/after |
| 3 | Unsettle/settle and wake/snooze, interrupted by shelf toggle/reversal, then movement again; 1440-light and 390-dark | 1440-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89595200f1cfd7fc/before-1440-light-regressions-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0dd773d969c2c94f/after-1440-light-regressions-captioned.mp4); 390-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ab1bb06763daa08d/before-390-dark-regressions-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6cfec7a8c9446080/after-390-dark-regressions-captioned.mp4) | Captured before/after |
| 4 | Working disabled → Snoozed/Settled toggles → wake last Snoozed anchor → Settled toggle → Working enabled; 1440-light and 390-dark | 1440-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89595200f1cfd7fc/before-1440-light-regressions-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0dd773d969c2c94f/after-1440-light-regressions-captioned.mp4); 390-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ab1bb06763daa08d/before-390-dark-regressions-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6cfec7a8c9446080/after-390-dark-regressions-captioned.mp4) | Captured before/after |
| 5 | Native keyboard Enter then Space on each shelf; 1440-light and 390-dark | 1440-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dfd1a491c84f7d4e/before-1440-light-keyboard-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f3a491e83c20b36e/after-1440-light-keyboard-captioned.mp4); 390-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/db61de265a8560c7/before-390-dark-keyboard-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/162f06fc7303cd23/after-390-dark-keyboard-captioned.mp4) | Captured before/after |
| 6 | Reduced-motion preference: toggles, routed retained rows, unsettle/settle; 1440-light and 390-dark | 1440-light: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9a814d933e83f42/before-1440-light-reduced-js-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/606db836cb5d4841/after-1440-light-reduced-js-captioned.mp4); 390-dark: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba18cebf221eb7c0/before-390-dark-reduced-js-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/72a465a31fffd789/after-390-dark-reduced-js-captioned.mp4) | **Partial: JS preference emulation only; native CSS reduced-motion unverified** |

Classic 1440-light rows 1–2: [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1d83b1d0c1259597/before-1440-light-classic-captioned.mp4) / [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c567e1b29c4280b4/after-1440-light-classic-captioned.mp4)
