package com.craigvg.lichun_android.utils import androidx.compose.animation.core.* /** * Shared animation specs for consistent motion throughout the app. */ object AppAnimations { /** Standard transition for most UI changes */ val standard: FiniteAnimationSpec = spring( dampingRatio = Spring.DampingRatioMediumBouncy, stiffness = Spring.StiffnessMedium ) /** Quick snappy transition for small elements */ val snappy: FiniteAnimationSpec = spring( dampingRatio = Spring.DampingRatioNoBouncy, stiffness = Spring.StiffnessHigh ) /** Gentle spring for larger elements */ val gentle: FiniteAnimationSpec = spring( dampingRatio = Spring.DampingRatioLowBouncy, stiffness = Spring.StiffnessLow ) /** Smooth tween for opacity/alpha changes */ val fade: FiniteAnimationSpec = tween( durationMillis = 300, easing = EaseInOut ) /** Modal entrance animation */ val modalEnter: FiniteAnimationSpec = spring( dampingRatio = Spring.DampingRatioMediumBouncy, stiffness = Spring.StiffnessMediumLow ) /** Card press animation */ val cardPress: FiniteAnimationSpec = spring( dampingRatio = Spring.DampingRatioMediumBouncy, stiffness = Spring.StiffnessHigh ) } /** Standard durations in millis */ object AnimationDuration { const val fast = 150 const val standard = 300 const val slow = 500 const val modal = 400 }