flutter_streaming_text_markdown 1.5.0 copy "flutter_streaming_text_markdown: ^1.5.0" to clipboard
flutter_streaming_text_markdown: ^1.5.0 copied to clipboard

A Flutter package for beautiful LLM text streaming with markdown support. Perfect for ChatGPT-like interfaces with typing animations, RTL support, and customizable effects.

Changelog #

1.5.0 #

✨ New Features #

Trailing-edge fade animation for markdown and RTL content

Previously, fadeInEnabled: true only worked with plain text (markdownEnabled: false). This release brings smooth streaming animations to all content types.

  • Markdown fade-in — When fadeInEnabled: true and markdownEnabled: true, a trailing-edge gradient fade animates at the bottom of the content as new text streams in, using the configured fadeInCurve and fadeInDuration
  • RTL/Arabic support — Fade animations now work correctly with Arabic and Hebrew text (previously disabled for RTL languages)
  • Block LaTeX protection — When streaming inside a $$...$$ block, uses a gentle opacity pulse instead of gradient mask to avoid visually cutting through equations
  • Revolutionary example page — Complete showcase redesign with all 17 package features: named constructors, 9 presets, full controller API, markdown, LaTeX, RTL, theme system, live customization playground, and GitHub Pages deployment
  • GitHub Pages live demohttps://hooshyar.github.io/flutter_streaming_text_markdown/

🔧 Improvements #

  • Example page rebuilt from scratch: 11 files, 1300+ lines, dark/light mode, responsive
  • All links in example are now clickable (pub.dev, GitHub, License)
  • Preset grid shows all 9 LLMAnimationPresets with live mini-previews
  • Controller section demonstrates full StreamingTextController API with progress bar, state display, speed multiplier
  • Added pub.dev badge count in hero section

✅ Compatibility #

Fully backward compatible — existing code unchanged. Fade-in for markdown only activates when both fadeInEnabled: true AND markdownEnabled: true are set.


1.4.0 #

✨ New Features #

This release adds a dedicated markdownStyleSheet property (typed as TextStyle) while maintaining 100% backward compatibility. Includes all v1.3.3 stability fixes.

  • Dedicated Markdown Style Property - Cleaner API for markdown styling (Fixes Issue #5)
    • NEW: StreamingTextTheme.markdownStyleSheet property accepts TextStyle
    • NEW: StreamingTextMarkdown.styleSheet now properly typed as TextStyle?
    • Uses gpt_markdown package for proper markdown rendering
    • Example:
      StreamingTextTheme(
        markdownStyleSheet: TextStyle(
          fontSize: 16,
          fontWeight: FontWeight.w400,
          color: Colors.black87,
        ),
      )
      

🔄 Backward Compatibility #

  • Zero Breaking Changes
    • StreamingTextTheme.markdownStyle still works (deprecated with migration path)
    • Old code using markdownStyle: TextStyle() continues to work perfectly
    • New code can use markdownStyleSheet for a clearer API
    • Migration timeline: v1.4.0 (add markdownStyleSheet) → v2.0.0 (remove markdownStyle)

📚 Documentation Alignment #

  • Fixed Documentation Mismatch - Code now matches README examples
    • README examples now accurately show TextStyle usage
    • API documentation updated to reflect actual types
    • Closes Issue #5 opened Oct 16, 2025

🔧 Migration Guide #

No migration required! Old code continues to work:

// Old way (still works, deprecated)
StreamingTextTheme(
  markdownStyle: TextStyle(fontSize: 16),
)

// New way (recommended)
StreamingTextTheme(
  markdownStyleSheet: TextStyle(
    fontSize: 16,
    fontWeight: FontWeight.w400,
    color: Colors.black87,
  ),
)

🛡️ Includes All v1.3.3 Stability Fixes #

  • Fixed setState race conditions (prevents navigation crashes)
  • Fixed timer memory leaks (better long-running app performance)
  • Fixed AnimationController disposal errors
  • Fixed stream double-wrapping issues
  • 500x faster RTL/Arabic text processing
  • Enhanced error handling and debugging

🎯 Upgrade Recommendation #

Recommended upgrade - Get both new features AND stability improvements:

dependencies:
  flutter_streaming_text_markdown: ^1.4.0

No code changes required, but you now have access to powerful markdown styling options!


1.3.3 #

🛡️ Stability & Reliability Improvements #

This release focuses on internal bug fixes and performance optimizations with ZERO breaking changes. Safe to upgrade from v1.3.2 with no code modifications required.

🐛 Critical Bug Fixes #

  • Fixed Race Condition Crashes - Eliminated rare crashes during navigation/disposal

    • Implemented safe setState wrapper to prevent crashes when widget is disposed during animation
    • Added comprehensive mounted checks throughout animation lifecycle
    • Fixes crash reports during fast navigation scenarios
    • All existing code continues to work identically
  • Fixed Timer Memory Leaks - Resolved memory leaks in long-running applications

    • Implemented internal timer tracking to prevent orphaned timers
    • Automatically cancels all timers on widget disposal
    • Prevents timer accumulation during rapid text updates
    • No API changes - improvement is completely transparent
  • Fixed AnimationController Disposal Errors - Enhanced controller cleanup safety

    • Added proper animation state checks before disposal
    • Prevents "dispose while animating" errors
    • Improved error handling with specific exception types
    • Maintains exact same external behavior
  • Fixed Stream Double-Wrapping - Corrected broadcast stream handling

    • Now checks if stream is already broadcast before wrapping
    • Prevents resource leaks with broadcast streams
    • Maintains backward compatibility with all stream types

⚡ Performance Optimizations #

  • Optimized RTL/Arabic Text Processing - Up to 500x faster for Arabic text

    • Pre-compiled regex patterns for word boundary detection
    • Eliminated string concatenation in hot paths
    • Reduced CPU usage during Arabic text animation
    • Zero visual changes - same beautiful animations
  • Reduced Memory Allocations - More efficient resource usage

    • Improved timer management reduces memory footprint
    • Better controller pooling prevents memory spikes
    • Optimized cache cleanup on disposal

🔧 Internal Improvements #

  • Enhanced Error Handling - Better debugging experience

    • Specific error catching for disposal vs other errors
    • Errors are now re-thrown for proper debugging
    • Improved stack traces for troubleshooting
  • Code Quality - Internal refactoring for maintainability

    • Added comprehensive inline documentation
    • Versioned internal changes (v1.3.3 markers)
    • Improved code organization

✅ Backward Compatibility #

  • Zero Breaking Changes
    • All public APIs remain identical
    • Default behavior preserved exactly
    • No migration required
    • All existing tests pass
    • Safe drop-in replacement for v1.3.2

📊 Testing #

  • Verified all existing tests pass (63% coverage maintained)
  • Added internal stress testing for memory leaks
  • Validated performance improvements with benchmarks
  • Confirmed zero regressions in behavior

🎯 Upgrade Recommendation #

Highly recommended upgrade - Improves stability and performance with zero risk:

dependencies:
  flutter_streaming_text_markdown: ^1.3.3

No code changes needed. Your app will immediately benefit from improved stability.


1.3.2 #

✨ New Features #

  • Animation Disable Option - Added animationsEnabled parameter to all constructors allowing complete animation disabling
    • All constructors now support animationsEnabled: false for instant text display
    • Useful for performance-critical scenarios or user accessibility preferences
    • Maintains full compatibility with existing code (defaults to true)

🔧 Code Quality Improvements #

  • Enhanced Static Analysis - Resolved all remaining static analysis warnings for perfect pub.dev scoring
  • Dependency Updates - Updated flutter_lints to 6.0.0 and other dependencies to latest versions
  • Performance Optimizations - Removed unused fields and optimized animation state management

🧪 Testing #

  • Comprehensive Test Coverage - Maintained 63% test coverage with 69 out of 70 tests passing
  • Animation Continuation Tests - Enhanced test suite to verify text append functionality works correctly

1.3.1 #

🐛 Critical Bug Fixes #

  • Fixed Issue #3: Markdown Animation Conflict - Resolved critical issue where animations would freeze when markdown was enabled
    • Implemented animation-aware caching system that only caches when animation is complete
    • Added progressive markdown rendering during animation to prevent UI blocking
    • All markdown + animation combinations now work correctly
  • Fixed Issue #1: Animation Restart Bug - Resolved streaming text restarting entire animation instead of continuing from new content
    • Added incremental animation tracking with proper state management
    • Streaming text now continues animation from where it left off instead of restarting
    • Improved performance for real-time streaming scenarios

🔧 Code Quality Improvements #

  • Static Analysis Cleanup - Removed unused variables and fields to achieve perfect static analysis score
  • Formatting - Applied consistent Dart formatting across all source files
  • Performance - Optimized animation state management for better memory efficiency

🧪 Testing Enhancements #

  • Comprehensive Test Coverage - Added extensive test suite covering all reported issues
  • Issue Reproduction Tests - Added specific tests that reproduce and verify fixes for GitHub issues
  • Streaming Behavior Tests - Added tests validating proper incremental streaming animation

1.3.0 #

🔢 LaTeX Support #

  • Mathematical Expressions - Added comprehensive LaTeX support for inline ($x^2$) and block ($$E=mc^2$$) mathematical expressions
  • Unicode Conversion - LaTeX expressions are converted to Unicode symbols for proper rendering
  • Atomic Animation - LaTeX expressions are treated as atomic units during streaming animation
  • Theme Integration - Extended StreamingTextTheme with latexStyle, latexScale, and latexFadeInEnabled properties
  • Performance Optimization - LaTeX expressions can disable fade-in animations for better performance

🔧 Package Architecture Improvements #

  • Dependency Migration - Migrated from multiple markdown packages to single gpt_markdown package
  • Word-by-Word Markdown - Fixed markdown rendering issues in word-by-word animation mode
  • Caching System - Added intelligent caching for LaTeX processing and markdown parsing
  • Performance Enhancements - Optimized text processing and animation performance

🛠️ Developer Experience #

  • LaTeX Configuration - Added latexEnabled, latexStyle, latexScale, and latexFadeInEnabled parameters
  • Enhanced Documentation - Comprehensive LaTeX usage examples and configuration guide
  • Test Coverage - Added extensive test suite for LaTeX functionality and integration
  • Example Updates - Updated example app with LaTeX demonstration and scientific content

🐛 Bug Fixes #

  • Unused Import Cleanup - Removed unused gpt_markdown import from streaming_text.dart
  • Animation Consistency - Fixed word-by-word animation with mixed markdown and LaTeX content
  • Memory Management - Improved disposal of LaTeX processing resources

1.2.1 #

🐛 Bug Fixes & Pub.dev Optimization #

  • Removed deprecated textScaleFactor - Removed deprecated parameter to fix static analysis warnings
  • Fixed pub.dev scoring - Removed non-existent issue tracker URL to improve pub.dev scoring
  • Code cleanup - Removed TODO comments and improved code documentation

1.2.0 #

🚀 Major Features #

  • StreamingTextController - Added programmatic control for pause/resume/skip/restart functionality
  • LLM Animation Presets - Added ChatGPT and Claude-style animation presets optimized for AI text streaming
  • Convenient Constructors - Added StreamingTextMarkdown.chatGPT(), .claude(), .typewriter(), .instant() constructors

🎯 LLM Integration Enhancements #

  • Enhanced package description and tags for better discoverability in LLM use cases
  • Added comprehensive example app showcasing ChatGPT-style, Claude-style, and controller demos
  • Optimized animation speeds and behaviors specifically for AI text streaming scenarios

🛠️ Developer Experience #

  • Added StreamingTextConfig class for reusable animation configurations
  • Added progress tracking and state management through controller callbacks
  • Added animation presets: chatGPT, claude, typewriter, gentle, bouncy, chunks, rtlOptimized, professional
  • Added animation speed enums: slow, medium, fast, ultraFast

🔧 Technical Improvements #

  • Updated deprecated API usage (withOpacitywithValues)
  • Fixed package structure (docs/doc/, added .pubignore)
  • Improved Flutter compatibility and dependency management
  • Enhanced error handling and controller lifecycle management

📱 Example App Overhaul #

  • Complete redesign with 4 tabs: ChatGPT Style, Claude Style, Controller Demo, Custom Settings
  • Real-time streaming simulation with Flutter development content
  • Interactive controller demo showing pause/resume/skip/restart functionality
  • Performance optimizations and modern UI design

🐛 Bug Fixes #

  • Fixed animation disposal and memory management
  • Improved RTL text handling and performance
  • Fixed deprecated API warnings and analysis issues

1.1.0 #

  • Added professional theme system with StreamingTextTheme
  • Added support for custom markdown styling through theme extension
  • Added proper theme inheritance and fallback system
  • Added documentation for theme customization
  • Improved style sheet handling in StreamingText widget
  • Made padding configuration more flexible
  • Maintained full backward compatibility

1.0.2 #

Improvements #

  • 📦 Updated dependencies to latest compatible versions
  • 🔧 Improved package structure and organization
  • 📚 Enhanced API documentation and examples
  • ⚡️ Performance optimizations for text rendering

1.0.1 #

Improvements #

  • 🔄 Updated text scaling implementation to use modern textScaler
  • 📚 Documentation improvements
  • 🐛 Minor bug fixes and performance optimizations

1.0.0 #

Initial stable release 🎉

Features #

  • ✨ Markdown rendering with support for headers, bold, italic, and lists
  • ⌨️ Character-by-character and word-by-word typing animations
  • 🎭 Customizable fade-in animations
  • 🌐 RTL (Right-to-Left) language support
  • 📱 Responsive and customizable design
  • 🎯 Interactive tap-to-complete feature
  • 🔄 Real-time text streaming support
  • 🎨 Customizable styling options

Improvements #

  • 📚 Comprehensive documentation
  • ✅ Full test coverage
  • 🔧 Modern text scaling implementation
  • 🧹 Code cleanup and optimization
40
likes
160
points
2.56k
downloads

Publisher

verified publisherdilacode.com

Weekly Downloads

A Flutter package for beautiful LLM text streaming with markdown support. Perfect for ChatGPT-like interfaces with typing animations, RTL support, and customizable effects.

Repository (GitHub)
View/report issues

Topics

#llm #streaming #markdown #animation #ai

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

characters, flutter, gpt_markdown

More

Packages that depend on flutter_streaming_text_markdown