chat_bubbles
Flutter chat bubble widgets, similar to Whatsapp and more shapes. Easy to use and implement chat bubbles.
1.10.1
17K downloads/mo
#2373 most downloaded on pub.dev
prahack/chat_bubbles
What this package is like to depend on
Last release 2 months ago
07 Jun 2026
Release timing varies
gaps range from 3 weeks to 13 months
Rarely documented
notes for 9 of 38 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
39 releases · first in 2020
9 releases in the last 12 months
see the full history below
Release timeline
39 releases · May 2020 to Jun 2026Releases
latest 39-
2.0.0-beta.107 Jun 2026 pre-releaseRelease notes
Open source →Pre-release
Try it by pinning the exact version:
dependencies: chat_bubbles: 2.0.0-beta.1
Stable consumers on
^1.10.xare unaffected — pub.dev does not auto-upgrade across this pre-release.What changed
Rewrote the five text bubbles (
BubbleNormal,BubbleSpecialOne/Two/Three,BubbleReply) to render the message + meta block (timestamp, "Edited", sent/delivered/seen tick) through a single customRenderBox. The meta is now anchored to the message's last-line baseline and rendered inline on the last line when it fits — the WhatsApp / iMessage layout — and drops to a right-aligned row below only when it doesn't.Resolves #26.
Breaking changes
SelectableTextremoved from the five text bubbles. Long-press text selection is no longer available out of the box. UseonLongPressto drive a copy menu (the platform convention) or wrap the bubble inSelectableRegionfor full selection.BubbleLinkPreviewis unchanged (its link-card sits between text and meta, so the inline layout doesn't apply).
Try it & report back
The new layout is sensitive to font metrics. If you see misalignment for a specific text style, please open an issue with a screenshot.
Plan
If feedback is positive,
v2.0.0will ship a few weeks after this beta. -
1.10.106 Jun 2026Release notes
Open source →Documentation
- Added
llms.txt(AI-agent entry point following the llmstxt.org standard) anddoc/recipes.md(8 copy-paste recipes for common scenarios) — both ship with the package so consumer-side AI tooling can discover the API - Expanded
CONTRIBUTING.mdwith development setup, test-suite instructions, and a PR checklist - Added
CLAUDE.md/AGENTS.md(symlink) covering common commands, layout, and gotchas for contributors
CI / tooling
- Added GitHub Actions workflow that runs
dart formatcheck,dart analyze --fatal-infos,flutter test, andflutter pub publish --dry-runon every push and PR tomaster/develop - Added 47 widget and unit tests covering every public widget plus
MessageGroupHelperandAlgo.dateChipText - Added
scripts/release.shto codify the publish flow into a single command - Reformatted
lib/to matchdart formatdefaults
- Added
-
1.10.031 May 2026Release notes
Open source →New Features
MessageBarStyle— new class that consolidatesMessageBarappearance and input config:enabledBorder,focusedBorder,keyboardType,textCapitalization,contentPadding,fillColor,minLines,maxLines(thanks @herrytco, #64)MessageBar.sendButton— optional widget parameter to replace the default send icon with any custom widget (thanks @herrytco, #64)
Fixes
- Exported
MessageBarStylefromchat_bubbles.dartso it is reachable by package consumers
-
1.9.318 May 2026Release notes
Open source →Breaking
- Minimum supported SDK bumped to Dart 3.6 / Flutter 3.27 (required for Color.withValues())
Fixes
- Replaced deprecated Color.withOpacity() with Color.withValues(alpha: ...) across all bubble widgets to clear pana static-analysis warnings
- Migrated constructors to super-parameters ({super.key}) and removed an unnecessary library directive — clears 21 additional analyzer infos
-
1.9.213 May 2026 -
1.9.113 May 2026 -
1.9.008 Mar 2026Release notes
Open source →New Features
Message Status Enhancements
- Added
timestampparameter to all bubble widgets for displaying message send time - Added
isEditedflag that shows an italic "Edited" label next to the status area - Added
isForwardedflag that shows a "Forwarded" banner at the top of the bubble - Added
messageIdparameter for programmatic message tracking - New internal
BubbleStatusRowhelper widget for consistent status row rendering - New internal
BubbleForwardedHeaderhelper widget for the forwarded banner
SwipeableBubble Widget
- Added
SwipeableBubblewrapper widget for swipe gesture support on any bubble - Swipe-right gesture (configurable icon + color) for reply actions
- Swipe-left gesture (configurable icon + color) for delete actions
- Configurable
swipeThreshold(default: 64 logical pixels) - Smooth spring-back animation when threshold is not met
- Optional haptic feedback via
enableHaptics - Circular action icon revealed behind the bubble during swipe
Message Groups / Clustering
- Added
BubbleGroupBuilderwidget for automatic consecutive-sender grouping - Added
MessageGroupHelper.compute()utility for deriving grouping info from a flat list - Added
GroupInfodata class withshowTail,showAvatar,isGroupStart,isGroupEnd,isAlone - Configurable
groupingThreshold(default: 1 minute) to split groups on time gaps - Configurable
itemSpacingandgroupSpacingfor fine-grained vertical rhythm
Voice Message Waveform
BubbleNormalAudionow acceptswaveformData(List<double>) for bar-chart waveform visualization- Interactive waveform scrubbing via tap or horizontal drag
waveformActiveColorandwaveformInactiveColorfor played/unplayed portions- Playback speed toggle button (1x / 1.5x / 2x) via
showPlaybackSpeed,playbackSpeed, andonPlaybackSpeedChanged - Falls back gracefully to the existing
SliderwhenwaveformDatais null
Improvements
- Updated example app with demo sections for all v1.9.0 features
- Updated
README.mdwith v1.9.0 usage examples and parameter tables - Updated exports in
chat_bubbles.dartforSwipeableBubble,BubbleGroupBuilder,MessageGroupHelper, andGroupInfo
- Added
-
1.8.017 Jan 2026Release notes
Open source →New Features
BubbleReply Widget
- Added
BubbleReplywidget for displaying quoted/replied messages - WhatsApp-style reply bubbles with original message preview
- Customizable reply indicator line color and background
- Support for sender name and message preview
- Tap callbacks for reply section interaction
TypingIndicator Widgets
- Added
TypingIndicatorwidget with animated dots - Added
TypingIndicatorWavewidget with wave animation style - Customizable animation duration and colors
- Toggle visibility with
showIndicatorparameter - Smooth animations optimized for performance
BubbleLinkPreview Widget
- Added
BubbleLinkPreviewwidget for URL previews - Display link metadata (title, description, image)
- Optional preview image with error handling
- Customizable preview card styling
- Support for messages with or without accompanying text
Reaction System
- Added
BubbleReactionwidget for emoji reactions - Added
Reactiondata model for reaction state - Added
ReactionPickerwidget for selecting reactions - Added
ReactionOverlaywidget for long-press reaction selection - Support for multiple reactions per message
- User reaction highlighting
- Customizable reaction chip styling
Improvements
- Updated example app to showcase all new v1.8.0 features
- Added comprehensive documentation for new widgets
- Improved widget organization with new directories (indicators/, reactions/)
- Added
-
1.7.117 Jan 2026Release notes
Open source →[1.7.1] - 17/01/2026
Breaking Changes
-
BREAKING: Renamed public constants to follow lowerCamelCase naming convention:
BUBBLE_RADIUS→defaultBubbleRadiusBUBBLE_RADIUS_IMAGE→defaultBubbleRadiusImageBUBBLE_RADIUS_AUDIO→defaultBubbleRadiusAudio
If you were using these constants directly in your code, you'll need to update the references.
Code Quality Improvements
- Added comprehensive documentation comments for all public members
- Removed unnecessary Container widgets in MessageBar
- Added
analysis_options.yamlwithpublic_member_api_docslint rule - Fixed all auto-fixable lint issues (removed unnecessary
new,this., etc.) - Improved code formatting and style consistency
-
-
1.7.005 Jan 2025Release notes
Open source →- support up-to-date dependencies
- update the example
- update the documentation
-
1.6.020 Jan 2024Nothing published for this version
-
1.5.011 Aug 2023Nothing published for this version
-
1.4.126 Jan 2023Nothing published for this version
-
1.4.029 Dec 2022Nothing published for this version
-
1.3.116 Aug 2022Nothing published for this version
-
1.3.003 Jul 2022Nothing published for this version
-
1.2.004 Feb 2022Nothing published for this version
-
1.1.027 Jun 2021Nothing published for this version
-
1.0.015 May 2021Nothing published for this version
-
1.0.0+115 May 2021Nothing published for this version
-
1.0.0+215 May 2021Nothing published for this version
-
1.0.0+316 May 2021Nothing published for this version
-
0.8.126 Apr 2021Nothing published for this version
-
0.8.015 Mar 2021Nothing published for this version
-
0.8.0+122 Mar 2021Nothing published for this version
-
0.7.9+310 Mar 2021Nothing published for this version
-
0.7.820 Jul 2020Nothing published for this version
-
0.7.8+120 Jul 2020Nothing published for this version
-
0.7.8+221 Oct 2020Nothing published for this version
-
0.7.521 Jun 2020Nothing published for this version
-
0.7.5+118 Jul 2020Nothing published for this version
-
0.7.109 May 2020Nothing published for this version
-
0.7.1+109 May 2020Nothing published for this version
-
0.7.1+209 May 2020Nothing published for this version
-
0.7.1+309 May 2020Nothing published for this version
-
0.7.1+410 May 2020Nothing published for this version
-
0.7.1+510 May 2020Nothing published for this version
-
0.7.1+617 May 2020Nothing published for this version
-
0.7.009 May 2020Nothing published for this version