NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #3098 most downloaded on pub.dev
Configurable, composable, extensible text editor and document renderer for Flutter.
Last release 3 months ago
11 Jun 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 9 of 9 stable releases
2 versions withdrawn
withdrawn after publishing
5 years old
65 releases · first in 2021
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEATURE: Added BitmapImageNode, which holds in-memory images, supplementing ImageNode, which only handles URLs.
BitmapImageNode, which holds in-memory images, supplementing ImageNode, which only handles URLs.FIX: When restoring selection after re-gaining focus, correctly report the SelectionChangeType.
SelectionChangeType.FIX: When pasting structured content, the first pasted node was getting lost.
TableBlockNode.ADJUSTMENT: Make Android mobile handles use an eager gesture recognizer so that things like drawers don't beat the handle drag gestures.
SuperEditor - When the Android handles change the selection, SuperEditor now passes
the correct "selection change type". Previously it was always hard-coded to "push caret".SuperMessage - Re-render visual styles when the incoming styles property changes.FEATURE: Add mobile handle, magnifier, and toolbar to SuperMessage.
SuperMessage.DocumentKeyboardAction to SuperEditorKeyboardAction, also created a different definition
for DocumentKeyboardAction/test and /test_goldens directory into the /lib.FIX: ImeFocusPolicy wasn't unregistering its focus listener on disposal. This could result in a defunct ImeFocusPolicy responding to focus changes as
ImeFocusPolicy wasn't unregistering its focus listener on disposal. This could result in a
defunct ImeFocusPolicy responding to focus changes as if it still existed, interfering with a new,
visible SuperEditor.ADJUSTMENT: MarkdownTableComponents now let you specify a column width policy, and a fit policy.
MarkdownTableComponents now let you specify a column width policy, and a fit policy.GlobalScrollLock to prevent two-dimensional scrolling with trackpad and Magic Mouse
when the user expects only a single axis to scroll. E.g., scrolling a document vertically vs scrolling
a table component horizontally.
SingleAxisTrackpadAndWheelScroller to implement single-axis trackpad and scroll wheel scrolling.DeferToTrackpadsAndMouseWheelsScrollBehavior to
get them to defer to the GlobalScrollLock, too.BREAKING: Moved all super_editor_quill code into super_editor. Will now deprecate super_editor_quill in favor of just using super_editor.
SuperEditor IME connections. This change was made in an attempt to fix
some non-reproducible issues where the IME keyboard would lose connection to a SuperEditor.
SuperEditor widgets a unique inputRole.
The specific value of the inputRole doesn't matter, so long as different SuperEditors in your app
use different values.super_editor_quill code into super_editor. Will now
deprecate super_editor_quill in favor of just using super_editor.SuperMessage widget, which is an intrinsically sized document, like a
SuperReader with intrinsic sizing and no scrolling. Made for chat use-cases.BREAKING: Moved all super_editor_markdown code into super_editor. Will now deprecate super_editor_markdown in favor of just using super_editor.
super_editor_markdown code into super_editor. Will now
deprecate super_editor_markdown in favor of just using super_editor.FIX: MessagePageScaffold bottom sheet animation glitches fixed.
MessagePageScaffold bottom sheet animation glitches fixed.MessagePageScaffold now has an optional maximum intrinsic height when
not in "expanded" mode.Editable or listener responding to an Editable can now immediately
submit Editor requests without blowing up.MutableDocument or MutableDocumentComposer when calling
createDefaultEditor().OverlayController.show() calls to post frame callbacks.BREAKING, FIX: Rework SuperEditorPlugin lifecycle because we discovered that when one SuperEditor widget gets replaced by another, the new widget runs
SuperEditorPlugin lifecycle because we discovered that when
one SuperEditor widget gets replaced by another, the new widget runs initState()
before the old widget runs dispose(). This resulted in plugins ending up in a detached
state when they should have been attached. This release adds some reference counting
so that detachment only happens when it truly should.EditContext.remove() was
adjusted to prevent accidentally removing a resource that was just added. The API change
now expects you to pass the key to remove, and the value you want to remove for that key.
If the current value doesn't match what is provided, then the removal doesn't happen.ADJUSTMENT: Upgrade super_keyboard to v0.3.0.
super_keyboard to v0.3.0.follow_the_leader to v0.5.2.ADJUSTMENT: Change Android toolbar to look like latest Android OS version.
FIX: Detach plugins in SuperEditor dispose().
SuperEditor dispose().delegatedTransition.FIX: MessagePageScaffold fix its Element so that subtrees correctly activate and deactivate.
MessagePageScaffold fix its Element so that subtrees correctly activate and deactivate.KeyboardPanelScaffold under certain conditions retained toolbar space when toolbar wasn't visible.KeyboardScaffoldSafeArea handle possibility that the safe area content is below the bottom of the screen.OverlayController.show() are called were moved to post frame callbacks.ADJUSTMENT: Upgrade attributed_text dependency to v0.4.5.
attributed_text dependency to v0.4.5.FIX: HintTextComponent now uses its given inline widget builders.
HintTextComponent now uses its given inline widget builders.Created a table node that holds styled text (no internal blocks), and supports upstream/downstream selection.
Messed up release from wrong branch.
Messed up release from wrong branch.
FEATURE: Serialize Documents to HTML.
Documents to HTML.FIX: Inserting character (via IME) with a block node and text selected, now correctly deletes the selected content before inserting the new character.
Locked down the following versions to avoid unexpected Pub upgrades:
Locked down the following versions to avoid unexpected Pub upgrades:
follow_the_leader: v0.0.4.+8overlord: v0.0.3+5FEATURE: Custom underline configuration
SuperReader shortcuts now run on a down-event instead of up-eventFIX: Crash when connecting to IME (because Flutter broke everything with latest release).
FIX: Text is duplicated when typing with styles applied.
MediaQuery and user super_keyboard to monitor keyboard
height in a KeyboardPanelScaffold. This was added to work around a possible MediaQuery
glitch on Android due to an app mishandling the Android lifecycle/permission requirements.FIX: iOS native toolbar "select all" now selects all document content instead of just the paragraph.
enter to split list items works again.FIX: MessagePageScaffold - Prevent possible negative layout constraints on bottom sheet.
MessagePageScaffold - Prevent possible negative layout constraints on bottom sheet.FEATURE: Chat - Added a MessagePageScaffold to create chat pages with a bottom mounted editor.
MessagePageScaffold to create chat pages with a bottom mounted editor.FIX: Keyboard safe area rare layout exception due to dirty ancestor layout.
FIX: Immutability error in the spelling and grammar styler.
attributed_text v0.4.4 (with some fixes to inline placeholders).ADJUSTMENT: Upgrade to attributed_text v0.4.3 (with fixes to per-character lookup).
attributed_text v0.4.3 (with fixes to per-character lookup).FEATURE: Inline widgets for SuperTextField.
SuperTextField.SuperEditor: Selecting text with inline widgets and toggling styles deleted the inline widgets.SuperReader.FIX: KeyboardScaffoldSafeArea in rare circumstances was trying to use NaN for bottom insets.
KeyboardScaffoldSafeArea in rare circumstances was trying to use NaN for bottom insets.FEATURE: Spellcheck for mobile (when using the super_editor_spellcheck plugin).
super_editor_spellcheck plugin).attributed_text v0.4.2 (with some fixes to inline placeholders).FIX: KeyboardScaffoldSafeArea breaks and defers to MediaQuery when there's only one in the tree.
KeyboardScaffoldSafeArea breaks and defers to MediaQuery when there's only one in the tree.BREAKING: All DocumentNodes are now immutable. To change a node, it must be copied and replaced.
DocumentNodes are now immutable. To change a node, it must be copied and replaced.EditRequests, e.g., InsertNewlineRequest, InsertSoftNewlineRequest.EditRequest to EditCommand was adjusted.EditRequests no longer support const construction.KeyboardScaffoldSafeArea work when not positioned at bottom of screen.SuperTextField.attributed_text dependency to v0.4.1.FEATURE: Added support for inline widgets.
ClearDocumentRequest, which deletes all content and moves caret to the start.SuperTextField (iOS) - native content menu focal point was wrong.KeyboardPanelScaffold supports opening a panel before opening the software keyboard.getDocumentPositionAfterExpandedDeletion returns null for collapsed selections.TaskNode checkbox sets visual density based on ThemeData.visualDensity.FEATURE: Add an (optional) tap handler that automatically inserts empty paragraph when user taps at the end of the document.
KeyboardScaffoldSafeArea now initializes its insets in a way that works with
certain navigation use-cases that previously thought the keyboard was up when it's down.FEATURE: Created KeyboardPanelScaffold and KeyboardScaffoldSafeArea to aid with implementing mobile phone messaging and chat experiences.
KeyboardPanelScaffold and KeyboardScaffoldSafeArea to aid with
implementing mobile phone messaging and chat experiences.iOSSystemPopoverEditorToolbarWithFallbackBuilder
and IOSSystemContextMenu.ComponentBuilders.shrinkWrap as true no longer breaks SuperEditor.SuperEditor and SuperReader
and utilize Flutter's built-in behaviors.FEATURE: Indent for blockquotes.
ADJUSTMENT: Change mobile caret overlays to use Timers instead of Tickers to prevent frame churn.
Timers instead of Tickers
to prevent frame churn.ADJUSTMENT: Change super_text_layout dependency from v0.1.13 to v0.1.14.
super_text_layout dependency from v0.1.13 to v0.1.14.FIX: Don't cut off iOS drag handles in SuperEditor.
SuperEditor.SuperTextField.FEATURE: Add configurable underlines to TextWithHintComponent.
TextWithHintComponent.Package metadata update - no functional changes.
ADJUSTMENT: Deprecated document and composer properties of SuperEditor - they're not read directly from the Editor.
super_text_layout to v0.1.11.nodes list from Document API in preparation for immutable Documents.document and composer properties of SuperEditor - they're not read
directly from the Editor.Editor to access document and composer directly.SuperTextField now works.DEPENDENCY: Upgraded attributed_text to v0.3.2.
attributed_text to v0.3.2.SelectedTextColorStrategy.This release comes with numerous and significant breaking changes. As we get closer to stability for the next release, we'll add website guides to hel…
MAJOR UPDATE: First taste of the new editor pipeline.
This is a dev release so that you can begin to see the changes coming in the next major version. This release comes with numerous and significant breaking changes. As we get closer to stability for the next release, we'll add website guides to help update all of our users.
The primary features that we've been working on since last release include:
In addition to the major feature work, we've made hundreds of little adjustments, including bugfixes.
We expect a steady stream of dev releases from this point forward, until we reach v0.3.0.
This is a hotfix that adjusts v0.2.6 to compile against newer dependencies. Please migrate to the latest prelease in the v0.3.0-dev.X series as soon a
This is a hotfix that adjusts v0.2.6 to compile against newer dependencies. Please migrate
to the latest prelease in the v0.3.0-dev.X series as soon as possible.
Updated dependencies:
FEATURE: SuperReader now launches URLs when tapping a link
SuperReader now launches URLs when tapping a link (#1151)SuperEditor now correctly handles "\n" newlines reported by Android IME deltas (#1086)The same as v0.2.6+1, but compatible with Flutter master
masterAdd support for Dart 3 and Flutter 3.10
FEATURE: SuperEditor includes a built-in concept of a "task"
SuperEditor includes a built-in concept of a "task"SuperEditor links open on tap, when in "interaction mode"SuperEditor, SuperReader, SuperTextField all respect MediaQuery text scaleSuperEditor selection changes now include a "reason", to facilitate multi-user and server interactionsSuperEditor supports GBoard spacebar caret movement, and other software keyboard gesturesSuperEditor allows a selection even when the software keyboard is closed, and also lets apps open and close the keyboard at their discretionSuperEditor lets apps override what happens when the IME wants to a perform an action, like "done" or "newline"SuperEditor respects inherited MediaQuery GestureSettingsSuperTextField now exposes configuration for the caret styleSuperTextField now exposes configuration for keyboard appearanceSuperDesktopTextField now supports IME text entry, which adds support for compound charactersSuperEditor don't scroll while dragging over an imageSuperEditor partial improvements to iOS floating cursor displaySuperEditor fix text styles when backspacing a list item into a preceding paragraphSuperEditor rebuilds layers when document layout or component layout changes, e.g., rebuilds caret when a list item animates its sizeSuperTextField when selection changes, don't auto-scroll if the new selection position is already visibleSuperTextField popup toolbar on iOS shows the arrow pointing towards content, instead of pointing away from contentSuperTextField don't change selection when two fingers move on trackpadSuperTextField handle numpad ENTER same as regular ENTERSuperTextField when user taps to stop scroll momentum, don't change the selectionThe same as v0.2.4+1, but compatible with Flutter master
master### Nov, 2022: Pub.dev listing updates * No functional changes
FEATURE: SuperReader - Created a SuperReader for read-only documents
SuperReader for read-only documents (0424ff1c6695629d2dba8214a950d261a3002b02)maxLines is null (f31fe207538aea76ef78242810ff85850b4cda63)TextAffinity for selection (0c50b67f5ef4e0e8d4ee0fc9a7e625d84c5027db)Your coding agent can read these notes before it upgrades. Set up the MCP server →