Add CLI scroll, stream, and marquee animation#1
Merged
Conversation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… by letter, remove scroll mode Replace raw ANSI cursor-rewind rendering with ratatui Viewport::Inline for all CLI animation modes. This eliminates manual cursor management and lets ratatui handle diffing and clipping automatically. Change --animate to build bricks letter by letter using per-character ScrollBuildState instead of releasing all bricks in one global sequence. Remove --scroll, --scroll-speed, and --loop flags (scroll mode removed). Stream mode retains internal scrolling with a hardcoded speed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Prepare for publishing to crates.io and GitHub Releases: - Add MIT + Apache-2.0 dual license files - Add package metadata to Cargo.toml (description, license, repository, keywords) - Add .gitignore for /target/ - Add CI workflow (clippy + test on push/PR) - Add release workflow (cross-compiled binaries on tag push) - Update README with installation instructions and license section - Commit Cargo.lock for reproducible binary builds Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add --watch flag to read lines from stdin and animate each one - Make animation the default behavior (use --instant to skip) - Change default color from rainbow to random - Refactor animation loop into reusable animate_text function - Update demo.sh to reflect new defaults and add watch mode example Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Resolve 53 clippy warnings across the codebase: - Replace manual clamp patterns with .clamp() - Simplify range comparisons (int_plus_one) - Use iterator-based loops instead of index-based (needless_range_loop) - Use struct initialization syntax instead of field reassignment - Replace write!() with writeln!() where appropriate - Merge duplicate match arms and collapse nested ifs - Use matches! macro where applicable Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…t mode When text exceeds the terminal width, the animation now loops from the beginning after the last character finishes instead of stopping. Instant mode (--instant) switches from static rendering to a character-by-character reveal without brick-drop physics, with the same loop/stop behavior. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Refactor fit_scales to explicitly use SCALE_X/SCALE_Y when the terminal is tall enough, and only reduce when too short. This ensures CLI output matches TUI at the default scale. Add test for very tall terminals. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Instead of clearing and restarting from an empty screen, long text now scrolls continuously with characters wrapping in from the right. Two blank character slots separate the end from the restart for visual clarity. Also adds local install instructions to README. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--instantmode for character-by-character reveal without brick-drop physicsTest plan
cargo test— all 88 tests passcargo clippy -- -D warnings— no warningscargo run --release -- "HELLO WORLD" --speed 80— on a narrow terminal, text marquees continuously without clearingcargo run --release -- "HELLO WORLD" --instant— instant mode also marqueescargo run --release -- "HI"— short text stops after one pass🤖 Generated with Claude Code