Skip to content

[Enhancement]: Smooth Material animations and transitions improvements #34

Description

@MRAKS05

Problem

The app's UI animations are minimal or non-existent in several areas, making transitions feel abrupt compared to standard Material You design patterns.

Current animation state from codebase

  • Onboarding (OnboardingScreen.kt, line 172-177): Uses AnimatedContent with slide transitions — good, but could be smoother
  • SettingsScreen: No animations on collapsible Security section or toggle transitions
  • DashboardScreen: Stats cards appear statically, no entry animations
  • LogsScreen: Log entries have no list item animations
  • Screen transitions: No shared element or fade transitions between bottom nav tabs
  • OverlayActivity: Countdown timer updates via plain text — no progress animation

Proposed Improvements

Follow Material Motion guidelines (M3) for smooth, responsive animations:

Specific targets

  • Bottom nav transitions: Fade/slide content transitions when switching between Dashboard, Exceptions, Logs, Settings
  • Collapsible sections: Animated visibility for the Security Settings expand/collapse in SettingsScreen.kt
  • List animations: AnimatedVisibility or animateItemPlacement() for LogsScreen entries and Exceptions list items
  • Dashboard stats: Count-up animations for "Scanned Today" and "Removed Today" numbers
  • Overlay countdown: Circular progress indicator instead of plain text countdown
  • Toggle feedback: Ensure Material 3 toggle components use proper motion curves
  • Content reveal: Staggered entry animation when screens load

Implementation approach

  • Use Compose animation APIs: AnimatedVisibility, animateContentSize, animateXxxAsState, AnimatedContent
  • Respect android:animateLayoutChanges equivalent in Compose
  • Add Motion easing specs to theme (Theme.kt)
  • Keep animations lightweight — avoid jank on lower-end devices
  • Respect system "Reduce motion" accessibility setting via LocalAccessibilityManager

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: uiScreens, navigation, composables, themingenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions