Real two-way binding
@bind-Value works like on any input — including Required validation inside a MudForm.
MudExRichTextEditor wraps Quill 2 in a Blazor component that respects your MudBlazor theme, binds like any other input and ships with tables, mentions, image resizing, file attachments and speech-to-text. Works in WebAssembly and Server — and without MudBlazor too.
No wrapper gymnastics: parameters, two-way binding and form validation behave the way you expect from a Blazor input.
@bind-Value works like on any input — including Required validation inside a MudForm.
Toolbar and editor surface follow your palette: light, dark and custom colors included.
Click any image to get resize handles. Pasted and dropped images can be compressed automatically.
Full table editing via QuillTableBetterModule — insert, merge, style and delete cells.
Typed QuillMentionModule<T> with async suggestion lookup and click/hover callbacks.
A built-in microphone tool dictates straight into the document, using the component culture.
Drop in a file dialog with upload hooks — return your own URL or let the editor inline a data URL.
Add any Quill module by implementing IQuillModule: JS, CSS and config in one class.
dotnet add package MudExRichTextEditor
_Imports.razor@using MudExRichTextEditor
@page "/"
<MudExRichTextEdit @bind-Value="_html" Height="320" />
@code {
private string _html = "<p>Hello <b>MudBlazor</b>!</p>";
}
QuillPresets bundles a matching toolbar and module set. Minimal is plain text formatting, Standard adds lists, links and images with compression, Full turns on colors, alignment, video and tables.
Every script and stylesheet is served from _content/MudExRichTextEditor. Since 9.5.1 the table module is bundled too, so no request ever leaves your host — air-gapped and locked-down environments work out of the box.
@using MudExRichTextEditor.Types
<MudExRichTextEdit @bind-Value="_html"
Tools="@QuillPresets.Standard.Tools"
Modules="@QuillPresets.Standard.Modules"
Height="360"
Immediate="true" />
Click-to-resize handles for images and embeds.
Downscales pasted and dropped images before they hit your storage.
Tables with a context menu for rows, columns, merging and cell styling.
Async mention lookup over your own type, with several denotation chars.
@using MudExRichTextEditor.Extensibility
<MudExRichTextEdit @bind-Value="_html" Modules="@_modules" />
@code {
private IQuillModule[] _modules = [
new QuillBlotFormatterModule(), // resize images by clicking them
new QuillImageCompressorModule(), // shrink pasted/dropped images
new QuillTableBetterModule(), // tables (needs QuillTools.TableButton())
];
}
Install from NuGet, or open the live demo and poke at every toolbar button first.