Motion polish: where the SwiftUI animation catalogue fits #4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Where the animation catalogue in
research/swiftui-animations-2026.mdearns its place. Ranked by payoff ÷ risk. Every item is gated by Reduce Motion (and Reduce Transparency where glass is involved); use existingMailMotiontokens.Do now (ties into work in flight)
GlassEffectContainer+glassEffectID(macOS 26). Active pill.glassEffect(.regular.interactive(), in: .capsule); promote-transient and close-tab liquid-morph via.glassEffectTransition(.matchedGeometry)instead of popping. Hover card stays non-glass (glass must not sample glass). Fallback: quaternary fill under Reduce Transparency. (briefed to the tab-bar slice already).contentTransition(.numericText(value:)). Counts roll like an odometer as sync lands mail. Cheapest visible "alive" signal.arrow.down.circle.dotted+.symbolEffect(.variableColor.iterative)arrow.triangle.2.circlepath+.symbolEffect(.rotate).breathe(calmer than.pulse)Needs a
FolderActivitykind surfaced from the sync engine (backfill walking vs. FTS/index work) so the sidebar can pick the glyph..symbolEffect(.replace.magic(fallback:))onflag ↔ flag.fill,envelope ↔ envelope.open; one-shot.bounceon Archive/Trash in the reader actions cluster when the action commits.Next
matchedGeometryEffecthero from the list row subject to the reader header when a tab opens;.blurReplacefor the body swap..scrollTransition+.visualEffectrow fade/scale at the top edge under the title (matches the pane-edge dissolve);.scrollEdgeEffectStyle(.soft)for the reader content under the tab strip..phaseAnimatorlift→settle for result-row insertion;.snappysprings for present/dismiss instead of plain opacity.keyframeAnimatoranticipation-then-slide for "Message was deleted" / "Couldn't move N messages".Skip
TextRenderertypewriter effects — gimmick for a mail client..drawOn/.drawOff— only for onboarding/empty states (maybe the "Add an account" illustration)..wiggle— only for rejected input (bad password in the account editor is fine).Notes
.hoverEffectand.navigationTransition(.zoom)are not available on macOS; use.onHover+pointerStyleandmatchedGeometryEffectrespectively.NSToolbaritems already get Liquid Glass from AppKit;.glassEffectonly applies to SwiftUI-drawn chrome (tab strip, search card, composer card).research/swiftui-animations-2026.md.