Arjo.UmbracoVisualEditor
18.0.0
dotnet add package Arjo.UmbracoVisualEditor --version 18.0.0
NuGet\Install-Package Arjo.UmbracoVisualEditor -Version 18.0.0
<PackageReference Include="Arjo.UmbracoVisualEditor" Version="18.0.0" />
<PackageVersion Include="Arjo.UmbracoVisualEditor" Version="18.0.0" />
<PackageReference Include="Arjo.UmbracoVisualEditor" />
paket add Arjo.UmbracoVisualEditor --version 18.0.0
#r "nuget: Arjo.UmbracoVisualEditor, 18.0.0"
#:package Arjo.UmbracoVisualEditor@18.0.0
#addin nuget:?package=Arjo.UmbracoVisualEditor&version=18.0.0
#tool nuget:?package=Arjo.UmbracoVisualEditor&version=18.0.0
Umbraco Visual Editor
The Visual editor lets editors change Umbraco content on the page itself. It adds a Visual editor tab to documents that shows your real front end, including changes that aren't saved yet. Editors can:
- edit text and rich text in place on the page;
- select, move, add, duplicate, copy and delete blocks (Block List and Block Grid);
- edit anything else with Umbraco's own property editors, in a side panel beside the page.
Saving and publishing work as they do in the Content tab. Nothing about your document types or templates has to change.
Which version
Install the package version that matches your Umbraco version's major:
| Umbraco | UmbracoVisualEditor |
|---|---|
| 18.x | 18.x |
| 17.x | 17.x |
Install
dotnet add package Arjo.UmbracoVisualEditor
Run the site and open a document that has a template: it gets a Visual editor tab next to Content.
Configure (optional)
By default the Visual editor is offered for every document type with a template. To limit it, add a VisualEditor section to appsettings.json:
{
"VisualEditor": {
"Enabled": true,
"AllowedDocumentTypes": ["contentPage", "home"],
"ExcludedDocumentTypes": ["errorPage"],
"EnablePropertyLevelEditing": true
}
}
EnablePropertyLevelEditing: false turns off editing text and rich text on the page itself: they open in the side panel instead. This feature can sometimes go a little odd on setups - please raise an issue if you have trouble with this feature.
Templates
The Visual editor reads your templates as they are: models, partials, view components, block views and cached partials. Blocks are recognised by the view that renders them, whether it gets the block or its element. For markup a loop writes itself, with no view per block, there's a helper:
@using UmbracoVisualEditor
@foreach (var block in Model.Cards)
{
var card = (Card)block.Content;
using (Html.VisualEditorBlock(block))
{
<article class="card"><h3>@card.Heading</h3></article>
}
}
Outside the Visual editor, the helper writes nothing.
Render CSS and JS injection
Because of the way we load the content into the viewer there can be issues displaying the content after change; for example if you have an animate on scroll effect in place. We inject a single CSS and JS file into the rendered view (back office only) so you can write your own corrections/workarounds for this.
If the file doesn't exist, then it just won't get loaded in. The CSS lives at /wwwroot/App_Plugins/ArjoVisualEditor/backoffice-render.css and the JS lives at /wwwroot/App_Plugins/ArjoVisualEditor/backoffice-render.js.
As well as just loading in these scripts we also fire events on the document when a render occurs.
visual-editor:before-render happens just before we render the new content.
visual-editor:rendered happens just after.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.AspNetCore.OpenApi (>= 10.0.11)
- Umbraco.Cms.Api.Common (>= 18.2.0 && < 19.0.0)
- Umbraco.Cms.Api.Management (>= 18.2.0 && < 19.0.0)
- Umbraco.Cms.Web.Common (>= 18.2.0 && < 19.0.0)
- Umbraco.Cms.Web.Website (>= 18.2.0 && < 19.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 18.0.0 | 92 | 10/5/2026 |
| 18.0.0-beta.2 | 70 | 9/28/2026 |
| 17.0.0 | 109 | 10/5/2026 |
| 17.0.0-beta.2 | 71 | 9/28/2026 |