Repository navigation
feat(ui): add motion and transitions across the shell and apps - #531
Conversation
Give navigation, selection, and content changes motion that follows what the person did, built on shared tokens that respect the Android "Remove animations" setting. - Shell: a gliding sidebar highlight, per-app accents, collapse animation, and an entrance for each destination. - Pages: routes slide with their direction; desktop detail panes slide in; phone Deck cards and sync details open in bottom sheets. - Lists: items fade in and glide into place; loading uses shaped placeholders; status states and notices ease in. - Shared elements: titles carry between lists and details in Talk, Files, Notes, Deck, Calendar, Settings, News, and dynamic apps, including details that load first and records opened into children. - Photos: the viewer opens over the screen it came from and zooms out of the tapped thumbnail, keeping the timeline's place. - App sidebars, tabs, toggles, chips, and selected rows animate. - Dynamic apps keep scroll position per location and hold writes while their contract is re-checked.
Obiente previewNC Native · Obiente updates this comment as the preview changes. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d551403bf3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The screen under the media viewer stays composed so it keeps its place. Tab could still move focus into it and Enter could act on controls the person cannot see. The covered screen is now a focus group that cancels entry while the viewer is open.
Signed-off-by: veryCrunchy <me@verycrunchy.dev>
# Conflicts: # tools/kotlin-file-size-baseline.txt # ui/src/commonMain/kotlin/dev/obiente/nextcloudnative/app/NextcloudNativeApp.kt # website/public/screenshots/capture-manifest.json
What changes for people
Navigation, selection, and content changes now move in a way that follows what the person did, instead of snapping. This is the first slice of motion work; app-specific and dynamic UI motion will continue as those surfaces are worked on.
Android follows the system "Remove animations" setting, which turns this motion off. Desktop has no reduced-motion source yet and keeps full motion.
Validation
:ui:desktopTest: 4195 tests passed, 70 skipped, 0 failed.:androidApp:testDebugUnitTestpassed, and:androidApp:assembleDebugbuilt.bash tools/check-kotlin-architecture.shpassed. File-size baselines were only lowered:NextcloudNativeApp.kt,FileOfflineCenterScreen.kt,NextcloudMediaViewer.kt, and others that shrank.bash tools/capture-marketing-screenshots.shregenerated the captures; all 242 were verified fresh against current inputs.bash tools/check-repository.shpassed.New deterministic tests cover these behaviors:
Risks and limitations
Follow-up
Motion for remaining app-specific and dynamic UI surfaces will be added as those surfaces are worked on.