Light motion across the interface: dialogs, panel, views, state changes and press (final design §2)
Maintainers usually reply within 1 day
@Zamojski5 is already working on this.
Since Oct 17, 2026.
Assessment
This issue has not been assessed yet.
Description
Founder direction (Hubert, 2026-10-17). Flux feels static: panels, dialogs, sheets and screens appear and disappear instantly, so the application feels unfinished. Add light, quick motion where it helps me follow what changed: what opened, where it came from, and what moved. Keep the final design's rules (guide §2): pressing scales to 0.97 and springs back in about 250 ms, status changes morph, reduced motion shows the static frame, and nothing moves for its own sake.
#155 covers only the traveling project/tab highlight, new-message arrival and typing presence. That work stays there. This issue covers motion for the rest of the interface.
Inventory on main 51b6920f
Motion tokens exist (ui/tokens.css:90–100: --dur-1..4, --ease-out, --ease-sheet, --ease-spring, reduced-motion zeroing). They are used in only a few places: the message menu, the phone thread sheet, docking the thread, the selection checkboxes, auth/ask/note "rise", sketch nodes, and button :active press. No motion at all: route and view changes (Conversation ↔ Map ↔ Tasks ↔ Wiki ↔ Agents, Home, Inbox, Search, Settings sections), the desktop detail panel opening/closing and replacing its content (Spokój "‹ back"), centred dialogs and their scrim (Create task, hand-off, copy-to-task, ⌘K), toasts, the sidebar collapse, popovers and selects, task state changes (rows, chips, board cards except is-arrived), list rows being added or removed (Inbox decisions, tasks, people), and the hover toolbar is a bare fade. Press scale is on .ui-btn only, not on chips, rows, icon buttons or the composer send.
Acceptance criteria
- AC-1 — Enter and exit. Dialogs, ⌘K, popovers, menus, toasts and the desktop detail panel enter and leave with a short fade and transform (≤ 180 ms in, ≤ 140 ms out,
--ease-out/--ease-in). The scrim fades. Exit motion never delays focus return or the next action, and closing while opening settles on the latest state. - AC-2 — Panel content. Replacing the panel's content (task → thread → "‹ back") slides a short distance in the direction of travel, with a crossfade. The panel shell, header row and its controls do not move (Spokój rule 7).
- AC-3 — Views and routes. Switching project views and top-level places crossfades the content area only (≤ 160 ms; the View Transitions API where supported, otherwise CSS). Header, sidebar, composer and tab bar stay still. Back (#592) reverses the direction. The reading position is never animated.
- AC-4 — State changes morph. A task's state chip, a decision's outcome, and a row moving between groups morph or slide in place rather than jumping. Added rows grow in and removed rows collapse (height + opacity), without moving other content's focus or reading anchor.
- AC-5 — Press and hover. Every pressable control (chips, rows that open something, icon buttons, send, swipe actions) uses the same
--pressscale with--dur-pressspring. Hover and selection fills use--tr. The message toolbar fades and slides a few pixels in from its side. - AC-6 — Discipline. Only
opacityandtransformanimate (no layout-thrashing properties except the collapse in AC-4). No bounce loops or attention pulses, and nothing animates on first page load except Kreska's moments (#352).prefers-reduced-motion: reduceand Settings → Appearance → reduced motion give the static end state immediately. Animations pause when hidden. Measure frame times on the demo data at 1440 × 900 and on a 4× CPU-throttled 390 × 844 profile against the #151 budgets. - AC-7 — Evidence. Short before/after video or Playwright trace for each AC on Chromium and WebKit, light and dark, plus a reduced-motion run showing static frames. Get an independent visual and interaction review on the implementation head. Static screenshots cannot certify motion.
Scope and coordination
Shared tokens and components first (ui/tokens.css, ui/ui.css overlay/panel/toast/sheet primitives, one small motion helper if needed), then surfaces. One owner. Coordinate with #155 (navigation highlight, arrival), #352 (Kreska moments), #488 (panel), #591 (message toolbar) and #594 (selection mode).
Refs #500, #155, #336, #151
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- Avg merge
- 19h 9m
- Merged PRs (30d)
- 334
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ColdPhase/flux
-
Research and design full-content E2EE with OIDC, recovery and trusted devicesPossibly taken @PelikanFix16 claimed this 2 days ago. Openagent:planning enhancement
ColdPhase/flux#615 · 1 assignee ·
Maintainers usually reply within 1 day
-
Workspace AI lock: block every agent/assistant and hide all AI interactionPossibly taken @PelikanFix16 claimed this 2 days ago. Openagent:planning enhancement
ColdPhase/flux#614 · 1 assignee ·
Maintainers usually reply within 1 day
-
UI polish: fix project header more menu popover blowout, and reflect ChatGPT/Codex in Settings runtimePossibly taken @PelikanFix16 claimed this 2 days ago. Openagent:review bug enhancement
ColdPhase/flux#606 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Conversation: deduplicate 'Create task' in message menu with 'Add to map', and style cited quotesPossibly taken @PelikanFix16 claimed this 2 days ago. Openagent:review bug enhancement
ColdPhase/flux#605 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Spokój: calm, consistent polish of Prostota (founder direction 2026-10-15)Possibly taken A pull request linked to this issue is open or already merged. Openenhancement
Difficulty 5/5 Over a week Newbie friendliness 8/100
ColdPhase/flux#500 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
area: app type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ExpidetGames/code-reviewer#585 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 83/100
module-federation/core#5205 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
LanternOps/breeze#9392 · 1 comment ·
Maintainers usually reply within 1 day
-
engine-rs P3 review-deferral wasm
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
maniator/verticopolis#1154 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day