Skip to content

feat: adopt the design prototype's chat animation language#454

Open
raulriera wants to merge 2 commits into
mainfrom
feat/chat-prototype-animations
Open

feat: adopt the design prototype's chat animation language#454
raulriera wants to merge 2 commits into
mainfrom
feat/chat-prototype-animations

Conversation

@raulriera

@raulriera raulriera commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Replaces the transcript's plain-fade updates with the design prototype's spring motion: bubbles scale in at their sender's edge, receipts pop in and cross-fade to Read, and corners morph when grouping changes. Also fixes a crash the springs exposed — animated work is now serialized behind a fence so transcript pushes and keyboard-inset changes wait for animations to settle instead of colliding with them, and entrance motion lives on the cells rather than layout attributes, whose frames the layout round-trips internally.

Test plan

  • Rapid sends with a hardware keyboard and multi-line drafts — no crash
  • Bubbles scale in, receipts reveal and flip to Read, corners morph on grouping changes
  • Keyboard show/hide keeps the newest message above the bar
  • FlipcashTests + FlipcashCoreTests pass

Base automatically changed from fix/chat-coalesce-staged-batch-updates to main July 3, 2026 16:56
raulriera added 2 commits July 3, 2026 13:12
…al-attributes crash

ChatLayout answers attribute queries with nil during restoreContentOffset; an inset
write or push overlapping a settling batch spring collided with UIKit's animated
bounds-change cross-fade and threw. All animated transactions now bracket a fence,
mutations defer and replay, insets apply via upstream's keyboard recipe, and entrance
motion moves off layout attributes onto cells. Includes the concurrent quality pass
(Reduce Motion tokens, spring parameterization, receipt-reveal fencing).
@raulriera raulriera force-pushed the feat/chat-prototype-animations branch from 7200fdf to ef051cd Compare July 3, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant