Rustfmt requires long chained method calls to be broken across
multiple lines when they exceed line length limits.
Changes:
- Break visual_width() iterator chains in renderer.rs
- Break visual_width() iterator chains in terminal.rs
- Fix comment alignment in ansi.rs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The motion effects were appearing with incorrect row offsets because
the text width calculation included ANSI color escape sequences in
the byte length, causing misaligned centering.
Changes:
- Added utils/ansi.rs module with strip_ansi() and visual_width()
- Updated renderer to use visual_width() for offset positioning
- Updated TerminalManager::print_centered() to use visual_width()
- All text positioning now correctly ignores ANSI escape sequences
This fixes the "shifted in the rows" issue where colored text was
not properly centered due to escape sequence byte counts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement complete animation system with 20+ motion effects
- Add 18+ easing functions (quad, cubic, elastic, back, bounce)
- Implement color system with palette and gradient support
- Add parser for durations, colors, and CSS gradients
- Create comprehensive test suite (14 tests passing)
- Add linting and formatting with clippy/rustfmt
- Support for figlet integration with custom fonts
- Terminal rendering with crossterm
- Fix all clippy warnings and lint issues
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>