NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1833 most downloaded on pub.dev
HTML rich text editor for Android, iOS, and Web, using the Summernote library. Enhanced with highly customizable widget-based controls, bug fixes, callbacks, dark mode, and more.
Last release 1 years ago
12 Jul 2025
Release timing varies
gaps range from 2 weeks to 1.3 years
Most releases are documented
notes for 25 of 29 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
29 releases · first in 2021
* Update dependencies
Fix deprecations in latest Flutter versions
One column per quarter.
updates for flutter v3.22.0 by @SteveShaw9899 in #510
Full Changelog: v2.5.1...v2.6.0
Updated pubs and replaced deprecated codes. by @altotunchitoo in #330
Full Changelog: v2.5.0...v2.5.1
Support Flutter 3.0 (remove warnings) ( @Cteq3132 )
foreColorSelected and backColorSelected when using a custom dialog for font coloring
updateStatus function for the font coloring, that function is now defined as updateStatus(Color)disabled parameter to automatically disable editor on initial loaduseHybridComposition parameter in case devs want to disable this behavior (improves animations of app)initialText is null (@dab246)Full Changelog: v2.4.0...v2.5.0
Nothing published for this version
Upgrade flutter_colorpicker by @eliudio in #141
controller.getSelectedTextWeb())callbacks was nullPotentially fixed bad state error for stream.first
stream.firstonNavigationRequestMobile callbackSystemChannel call on web to prevent exceptioncontroller.characterCountNOTE: If you are on Flutter Beta+, you must use dependency_overrides in pubspec.yaml!!
dependency_overrides:
flutter_colorpicker: ^0.5.0
Nothing published for this version
Fixed null safety warnings due to latest file_picker version
file_picker versionfilePath is used on AndroidonChangeSelection callback that passes the editor settings whenever the user changes
their current selection (e.g. tap on a different word, create a new node, select text, etc)ToolbarType.nativeExpandable which allows the user to switch between the
scrollview or gridview toolbar on the flyinputmode for the editor, which changes the virtual keyboard display on mobile devices (e.g. number pad, email keyboard, etc)onChange callback to onChangeContentFixed bottom overflow error on AlertDialogs if the screen size is small
AlertDialogs if the screen size is smallStyleButtons(style: false) would not remove the style dropdownpostMessage data is not null)Hotfix for copyWith not defined for ScrollBehavior in v2.1.0
copyWith not defined for ScrollBehavior in v2.1.0Fixed setState and Stream.first error on page dispose
setState and Stream.first error on page disposegetText on WebToolbarPosition.belowEditor by opening upwards and making it scrollable after a certain heightAdded support for setting custom UserScripts on the webview (mobile only)
UserScripts on the webview (mobile only)LongPressGestureRecognizer to the webview to allow users to select text via a long press (mobile only)
HtmlEditorOptions > mobileLongPressDurationHtmlToolbarOptions > toolbarPosition: ToolbarPosition.customUserScript and the context menu customization have external documentation via flutter_inappwebview - the docs are linked in the README.Transitioned to fully native controls! These are extremely customizable and have much better UX than the previous controls.
execCommand to controller to help you create custom toolbar buttonsNothing published for this version
Add support for getSuggestionsMobile (Summernote @ Mentions Plugin) - allows you to programatically return the list of mentions.
getSuggestionsMobile (Summernote @ Mentions Plugin) - allows you to programatically return the list of mentions.
mentions to mentionsWeb as a result of this changeonBeforeCommandonChangeCodeviewonDialogShownonImageUploadErroronMouseDownonMouseUponScrollshowBottomToolbar: falseFixed bug where initial text would not be inserted and default toolbar would be shown regardless of editor options
" and ' would not be properly escaped on HTML insertion
processNewLineAsBr - this will replace any \n in the input string to <br/> rather than the default ""setHint() and insertHtml() functionsonImageUpload and onFileUpload
MultipartFile.fromBytes() to upload to server - exampleonFileUploadError and onFileLinkInsert (Summernote File plugin)maximumFileSize (Summernote File plugin)Fixed type 'double' is not a subtype of type 'int?' in type cast on iOS
type 'double' is not a subtype of type 'int?' in type cast on iOS
adjustHeightForKeyboard not working on iOSBad state: Cannot add new events after calling close exception when disposing the page containing the editorSorry for all the breaking changes lately - I think I've finally figured out how I want to do the API design so there should be far less in future rel…
height, autoAdjustHeight, decoration, showBottomToolbar, and darkMode into new HtmlEditorOptions class - see README for how to migrateonImageUpload callback that fires when an image is inserted via <input type="file">onImageLinkInsert callback that fires when an image is inserted via URLshouldEnsureVisible that scrolls the editor into view when it is focused or text is typed, kind of like TextFieldsadjustHeightForKeyboard (default true) that adjusts the editor's height when the keyboard is active to ensure no content is cut off by the keyboardfilePath which allows you to provide a completely custom HTML file to load[BREAKING] removed dispose() method on controller
dispose() method on controller
Stream to get text and therefore nothing needs to be disposedonInit callback that fires once the editor is ready to function and accept JSautoAdjustHeight - for HtmlEditor: default true, automatically adjusts the height of the editor to make sure scrolling is not necessaryprocessInputHtml - for HtmlEditorController: processes input HTML (e.g. new lines become <br/>)processOutputHtml - for HtmlEditorController: processes output HTML (e.g. <p><br/><p> becomes "")ui.PlatformViewRegistry not found errorFixed getText() returning null on mobile for any device
Added Flutter's Hybrid Composition to the HTML Editor. This significantly improves the keyboard experience on Android.
[BREAKING] removed HtmlParser for calling methods, instead you now must pass an HtmlEditorController to the plugin (like a TextField). All methods are
HtmlParser for calling methods, instead you now must pass an HtmlEditorController to the plugin (like a TextField). All methods are accessible from that controller. See the usage section in the README for an example.
Add official support for Flutter Web
imageWidth and useBottomSheet params due to the above changeAdd support for accessing InAppWebViewController via a getter
InAppWebViewController via a getterNothing published for this version
Minor update to add documentation to code and completely refactor/reorganize code
Fix deprecations and update dependencies
flutter_inappwebviewStatelessWidget
GlobalKey for the HtmlEditorState. All of the methods are static and can be called like so:HtmlEditor.setEmpty();
Your coding agent can read these notes before it upgrades. Set up the MCP server →