Skip to content

feat(tui): add lightweight animation system with memory-safe design#302

Open
WqyJh wants to merge 1 commit into
mainfrom
mirror/pr-553
Open

feat(tui): add lightweight animation system with memory-safe design#302
WqyJh wants to merge 1 commit into
mainfrom
mirror/pr-553

Conversation

@WqyJh

@WqyJh WqyJh commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add animation utility library with easing functions, timers, and frame hooks
  • Add MessageAppear, SlideIn, PulseGlow transition components
  • Add TypingIndicator, ProgressBar UI components
  • Add RippleEffect, FloatingDots, BreathingBorder visual effects
  • Add EnhancedSpinner with 6 animation styles (dots, line, pulse, wave, orbit, bounce)
  • Add MatrixRain, ParticleSystem, ScanLine, GlitchEffect, NeonGlow, TypewriterText
  • Add animation config system with themes (minimal, subtle, balanced, vibrant, cyberpunk, nature)
  • Add AnimationPerformanceMonitor with FPS tracking and memory monitoring
  • Add /animations command for settings dialog and /animation-showcase for demo
  • All animations respect animations_enabled KV setting
  • Proper cleanup of setInterval/requestAnimationFrame in onCleanup
  • No memory leaks: all timers cancelled on component unmount

New Files

  • util/animation.ts - Animation utility library
  • component/message-appear.tsx - Message appear, slide-in, typing indicator, progress bar, pulse glow
  • component/ripple.tsx - Ripple effect, wave effect, breathing border, floating dots
  • component/enhanced-spinner.tsx - 6 spinner styles with fallback
  • component/effects.tsx - Matrix rain, particles, scan line, glitch, neon glow, typewriter
  • component/animation-config.tsx - Animation config system and settings UI
  • config/animation-themes.ts - 6 animation themes
  • component/dialog-animation-settings.tsx - Animation settings dialog
  • component/animation-showcase.tsx - Interactive animation demo
  • component/animation-performance.tsx - FPS monitor and performance graph

Modified Files

  • app.tsx - Added /animations and /animation-showcase commands
  • startup-loading.tsx - Uses PulseSpinner with SlideIn transition
  • routes/home.tsx - Added SlideIn/MessageAppear transitions

Mirrored from XiaomiMiMo/MiMo-Code#553 — original author @xjwm5685-ui.

- Add animation utility library with easing functions, timers, and frame hooks
- Add MessageAppear, SlideIn, PulseGlow transition components
- Add TypingIndicator, ProgressBar UI components
- Add RippleEffect, FloatingDots, BreathingBorder visual effects
- Add EnhancedSpinner with 6 animation styles (dots, line, pulse, wave, orbit, bounce)
- Add MatrixRain, ParticleSystem, ScanLine, GlitchEffect, NeonGlow, TypewriterText
- Add animation config system with themes (minimal, subtle, balanced, vibrant, cyberpunk, nature)
- Add AnimationPerformanceMonitor with FPS tracking and memory monitoring
- Add /animations command for settings dialog and /animation-showcase for demo
- All animations respect animations_enabled KV setting
- Proper cleanup of setInterval/requestAnimationFrame in onCleanup
- No memory leaks: all timers cancelled on component unmount
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant