Title: Visual Edit Lite – Visual Editor for Block Themes
Author: Filip Dvoran
Published: <strong>September 25, 2026</strong>
Last modified: September 30, 2026

---

Search plugins

![](https://ps.w.org/visual-edit-lite/assets/banner-772x250.png?rev=3712958)

![](https://ps.w.org/visual-edit-lite/assets/icon-256x256.gif?rev=3721389)

# Visual Edit Lite – Visual Editor for Block Themes

 By [Filip Dvoran](https://profiles.wordpress.org/webtalkbot/)

[Download](https://downloads.wordpress.org/plugin/visual-edit-lite.1.31.5.zip)

 * [Details](https://vec.wordpress.org/plugins/visual-edit-lite/#description)
 * [Reviews](https://vec.wordpress.org/plugins/visual-edit-lite/#reviews)
 *  [Installation](https://vec.wordpress.org/plugins/visual-edit-lite/#installation)
 * [Development](https://vec.wordpress.org/plugins/visual-edit-lite/#developers)

 [Support](https://wordpress.org/support/plugin/visual-edit-lite/)

## Description

Click any text, image or link on the live page and change it there. Visual Edit 
Lite is a front-end editor for WordPress that keeps every save as a restore point,
so you can always go back to the page as it was.

It works in two places. On a block theme such as Twenty Twenty-Five, it hosts WordPress’s
own editor and adds a floating inspector for typography, colour, spacing and Google
Fonts. The native block, pattern, template and Global Styles controls stay available.

On a site converted from static HTML to WordPress, it makes the original pages editable
by clicking. That can be a hand-written site, or one exported from Lovable, Bolt,
v0.dev, aidesigner.ai or a Claude design. The markup stays byte for byte as it was.

Nothing is locked, timed or waiting for a key. Everything the plugin contains works
on every install, offline included.

#### What you get

 * Edit text, links, images and video on the live page, where they are shown. Every
   save goes into that page’s history.
 * Go back to any saved version. The ten most recent saves plus the Original are
   kept for every page, all listed and any of them restorable. The Original is never
   dropped.
 * With a block theme, WordPress’s editor opens inside a Visual Edit toolbar. You
   get a floating inspector, up to five Google Fonts, new sections from your theme’s
   patterns, and duplicate or trash for the open page or post.
 * Repeating content works as a list. You reorder, edit, add and remove FAQ entries,
   service cards, team members or portfolio tiles together.
 * Connect a designed HTML form by clicking, without rebuilding it. Submissions 
   are stored in wp-admin and emailed through your server, SMTP, or Brevo, SendGrid,
   Postmark or Mailgun. A honeypot, a minimum fill time, a per-IP rate limit and,
   if you have it, Akismet hold off spam.
 * You can also hand a form to Contact Form 7 or Fluent Forms. The design stays,
   and that plugin validates, checks spam, verifies its captcha, notifies and records.
 * Mailing list signup comes with double opt-in, Brevo integration and a subscriber
   list in wp-admin.
 * Blog listings repeat the design’s own card markup for real WordPress posts, with
   a “load more” button for the next page.
 * Menus keep the design’s own navigation markup and are managed from Appearance
   Menus.
 * Each page gets its own SEO titles, descriptions, Open Graph, canonicals, robots
   and redirects, carried over from the original site. They work with Yoast SEO 
   and Rank Math when present, and stand on their own when not.
 * For AI search, the plugin adds schema.org structured data including FAQ and an`
   llms.txt` file. It also adds AI-crawler rules in robots.txt and a read-only audit
   of what the site tells search engines and AI assistants. This is about being 
   readable by AI search. The plugin has no AI writing or image tools and sends 
   nothing to any AI provider.
 * Import brings in a converted theme’s content bundle (pages, menus, media, forms
   and SEO records), and you review it before anything is written.

Home page and documentation: [html2wp.dev/visualedit](https://html2wp.dev/visualedit/).

Source, build script and translation template: [github.com/iOSDevSK/visual-edit-lite](https://github.com/iOSDevSK/visual-edit-lite).
The PHP, CSS and JavaScript in this package are the source, unminified.

#### What this plugin needs

A block theme, or a theme whose pages are raw HTML and which declares its contract
through the `clara_ve_theme_contract` filter. The contract for converted themes 
is documented on GitHub: https://github.com/iOSDevSK/visual-edit-lite/blob/main/
docs/developer/theme-requirements.md

Forms, email delivery, mailing lists, SEO, redirects and llms.txt do not depend 
on the theme and work on any site.

#### Important notes

 * Raw-HTML editing requires the `unfiltered_html` capability, because markup round-
   trips through that editor. On a block theme the plugin uses WordPress’s normal
   permissions for the page, template or other entity being edited.
 * Deactivating the plugin keeps all data and reverts the front page to the theme’s
   shipped design until reactivation. Other pages keep their edited content.
 * Deleting the plugin always removes stored secrets (SMTP password, provider API
   keys) and its own transients. Everything else (submissions, subscribers, edit
   history, page sources) is kept unless “also delete all stored data” is enabled
   under Visual Edit Lite  Form Settings  Uninstall. That option removes the plugin’s
   options, its two database tables and the form submissions. It leaves your pages
   and their content in place. A few marker fields the plugin wrote on them also
   stay, and so do any files it imported into the Media Library or the uploads folder.

### External services

This plugin does not contact any external service on its own. Every service below
is reached only after you switch it on, or connect a form plugin that uses it, and
only for the purpose described.

#### Google Fonts

Used only if you open the Google fonts picker in the editor. Opening it makes your
server request the public font catalogue from `fonts.google.com` (cached for a week),
and your own browser loads a preview stylesheet from `fonts.googleapis.com`, and
its font files from `fonts.gstatic.com`, for each family you scroll past. A page
that uses a font you kept loads that font’s stylesheet and files from the same two
hosts, which means visitors’ browsers connect to Google and Google receives their
IP address and user agent. A site where no Google font was kept requests nothing
from Google on the front end.

 * Terms: https://policies.google.com/terms
 * Privacy: https://policies.google.com/privacy
 * Google Fonts privacy FAQ: https://developers.google.com/fonts/faq/privacy

#### Akismet

Used only if the separate Akismet plugin is installed and configured and you enable
Akismet filtering under Form Settings. Each form submission is then sent to Akismet
for a spam verdict: its field values, the email address found among them, the sender’s
IP address, user agent and referrer, and your site’s address.

 * Terms: https://akismet.com/tos/
 * Privacy: https://automattic.com/privacy/

#### Email delivery providers

Used only if you select one as the mailer and enter its API key. From then on every
email WordPress sends from this site, not only form notifications, goes through 
the provider you chose: recipient, sender name and address, reply-to, subject and
body.

 * Brevo terms: https://www.brevo.com/legal/termsofuse/
 * Brevo privacy: https://www.brevo.com/legal/privacypolicy/
 * SendGrid terms: https://www.twilio.com/en-us/legal/tos
 * SendGrid privacy: https://www.twilio.com/en-us/legal/privacy
 * Postmark terms: https://postmarkapp.com/terms-of-service
 * Postmark privacy: https://postmarkapp.com/privacy-policy
 * Mailgun terms: https://www.mailgun.com/legal/terms/
 * Mailgun privacy: https://www.mailgun.com/legal/privacy-policy/

#### Brevo (mailing lists)

Used only if you connect Brevo as your mailing-list provider. Opening a form’s list
picker in the editor asks Brevo for the names of your lists. When a visitor subscribes(
after confirming, if double opt-in is on) Brevo receives their email address, the
list you chose, the other fields they filled in on that form as contact attributes,
and, if you use Brevo’s own double opt-in, the template id and redirect address 
you set. Same terms and privacy links as above.

#### Your own SMTP server

Used only if you select SMTP as the mailer. The message is sent to the host you 
configured.

#### Contact Form 7 and Fluent Forms

Used only if you hand a designed form to one of those plugins in the editor. The
submission is then processed by that plugin on your own server: its validation, 
spam checks, notifications and records apply, under its own settings. Nothing leaves
the site through this plugin for that.

#### Google reCAPTCHA

Used only if a form you handed to Contact Form 7 or Fluent Forms has reCAPTCHA configured
in that plugin. The page then loads the reCAPTCHA script from `www.google.com` in
the visitor’s browser, which sends Google their IP address, user agent and how they
interact with the page, and Google may set cookies. The token it returns is verified
by Contact Form 7 or Fluent Forms with the secret key you entered there; this plugin
holds no key.

 * Terms: https://policies.google.com/terms
 * Privacy: https://policies.google.com/privacy

#### hCaptcha

Used only if a form you handed to Fluent Forms uses hCaptcha. The page then loads
the hCaptcha script from `js.hcaptcha.com` in the visitor’s browser, which receives
their IP address, user agent and how they interact with the page. The token is verified
by Fluent Forms with your hCaptcha secret; this plugin holds no key.

 * Terms: https://www.hcaptcha.com/terms
 * Privacy: https://www.hcaptcha.com/privacy

#### Importing a remote image

When you click “Import image into this site” on a picture hosted elsewhere, the 
plugin downloads that one URL, which you chose, and stores the file in your Media
Library.

#### Gravatar

Used only if a listing template you designed includes the `{author_image}` placeholder.
It resolves through WordPress’s own `get_avatar_url()`, so unless another plugin
serves avatars locally the portrait is fetched by visitors’ browsers from `gravatar.
com`, which then receives their IP address and user agent. A template without that
placeholder requests nothing.

 * Terms: https://automattic.com/terms/
 * Privacy: https://automattic.com/privacy/

### Privacy

The plugin stores form submissions and mailing-list subscribers in your own database.
It sets no cookies of its own, runs no analytics, and sends nothing anywhere about
you or your site. Secrets you enter (SMTP password, provider API keys) are encrypted
at rest with your site’s own salt and are always removed when the plugin is deleted.

### Credits

The click-to-edit layer (`assets/bridge.js`, `assets/editor.js`, `assets/bridge.
css` and `assets/editor.css`) is derived in part from Open Design (https://github.
com/nexu-io/open-design), Copyright 2026 Open Design contributors, licensed under
the Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0). Those
files were ported from TypeScript and modified for WordPress, and each carries this
notice. The Apache License 2.0 is compatible with version 3 of the GPL, which this
plugin’s “GPLv2 or later” licence allows.

## Screenshots

[⌊The front-end editor on a live page: click a heading and its panel opens beside
it, with text, links and images on the Content tab and spacing, colour and typography
on Style.⌉⌊The front-end editor on a live page: click a heading and its panel opens
beside it, with text, links and images on the Content tab and spacing, colour and
typography on Style.⌉[

The front-end editor on a live page: click a heading and its panel opens beside 
it, with text, links and images on the Content tab and spacing, colour and typography
on Style.

[⌊Save history with restore: every save is a restore point, listed newest first 
with the Original at the bottom, and any of them can be restored.⌉⌊Save history 
with restore: every save is a restore point, listed newest first with the Original
at the bottom, and any of them can be restored.⌉[

Save history with restore: every save is a restore point, listed newest first with
the Original at the bottom, and any of them can be restored.

[⌊A designed contact form connected by clicking, never rebuilt. The panel shows 
that the field is part of a form and links to its settings.⌉⌊A designed contact 
form connected by clicking, never rebuilt. The panel shows that the field is part
of a form and links to its settings.⌉[

A designed contact form connected by clicking, never rebuilt. The panel shows that
the field is part of a form and links to its settings.

[⌊SEO & AI Readiness: a read-only report of what the site tells search engines and
AI assistants, page by page, with llms.txt and structured data.⌉⌊SEO & AI Readiness:
a read-only report of what the site tells search engines and AI assistants, page
by page, with llms.txt and structured data.⌉[

SEO & AI Readiness: a read-only report of what the site tells search engines and
AI assistants, page by page, with llms.txt and structured data.

[⌊SEO & Sharing: the site-wide facts behind structured data, sharing images, profiles
and llms.txt.⌉⌊SEO & Sharing: the site-wide facts behind structured data, sharing
images, profiles and llms.txt.⌉[

SEO & Sharing: the site-wide facts behind structured data, sharing images, profiles
and llms.txt.

[⌊Form Settings: where submissions go, anti-spam, email delivery through your server,
SMTP or a provider API, and the mailing list.⌉⌊Form Settings: where submissions 
go, anti-spam, email delivery through your server, SMTP or a provider API, and the
mailing list.⌉[

Form Settings: where submissions go, anti-spam, email delivery through your server,
SMTP or a provider API, and the mailing list.

[⌊Import Content: bring in a converted theme's bundled pages, posts, media and forms,
or a content ZIP, reviewed before anything is written.⌉⌊Import Content: bring in
a converted theme's bundled pages, posts, media and forms, or a content ZIP, reviewed
before anything is written.⌉[

Import Content: bring in a converted theme’s bundled pages, posts, media and forms,
or a content ZIP, reviewed before anything is written.

## Blocks

This plugin provides 7 blocks.

 *   Form
 *   Clara Ve Field
 *   Clara Ve Textarea
 *   Clara Ve Select
 *   Clara Ve Checkbox
 *   Form row
 *   Form send button

## Installation

#### From your dashboard

 1. Go to Plugins  Add Plugin and search for “Visual Edit Lite”.
 2. Click Install Now, then Activate.

#### Manual

 1. Download the ZIP from this page.
 2. Go to Plugins  Add Plugin  Upload Plugin, choose the ZIP and click Install Now.
 3. Activate the plugin.

#### After activation

On a block theme, open Visual Edit Lite in the admin menu and pick a page. Nothing
else is needed.

On a theme converted from static HTML, activate that theme first, then follow its
setup screen to import the site’s content. Every page is then editable from the 
Visual Edit Lite menu.

## FAQ

### Does this front-end editor work with my theme?

Yes, if it is a block theme: Twenty Twenty-Five and other themes built on templates
and patterns work out of the box. With a classic PHP theme the visual editor does
not apply, but forms, email delivery, mailing lists, SEO, redirects and llms.txt
still work. A theme converted from static HTML works when it declares the `clara_ve_theme_contract`
filter, which every html2wp conversion does.

### How do I edit my WordPress site with it?

Open Visual Edit Lite in the admin menu and pick a page. Then click the text, image
or link you want to change, and its panel opens beside it. Each save becomes a restore
point in the page’s history. On a theme converted from static HTML, import the site’s
content first, as described under Installation.

### Can I undo a change after I saved it?

Yes. Every save is a restore point. The History panel lists the ten most recent 
saves of the page plus the Original, and restoring any of them writes it back as
the live page. The Original, the design exactly as the theme shipped it, is never
dropped.

### Is anything disabled until I pay?

No. Visual Edit Lite has no licence key, no trial period and no locked buttons. 
The features it does not have are not part of it, so there is nothing in the plugin
waiting to be switched on.

### Does it send my content anywhere?

No. Editing happens on your own server. The only outside connections are the ones
you switch on yourself, such as Google Fonts if you pick one, an email provider 
if you select one, or Akismet if you enable it. Each one is described in the External
services section of the description.

### What happens to my pages if I deactivate or delete the plugin?

Deactivating keeps everything: your pages keep their edited content, and the front
page shows the theme’s shipped design until you reactivate. Deleting removes stored
secrets and, only if you enable that option first, the plugin’s own tables and submissions.
Your pages stay.

### Can I keep using Contact Form 7 or Fluent Forms with a designed form?

Yes. Click the form, choose the plugin and one of its forms, and check which of 
its fields each designed field fills. The design stays as it is; that plugin validates,
checks spam, verifies its captcha, sends and records the submission.

### Can I use it on a theme I built myself?

Yes, if the theme’s pages are raw HTML and it declares the `clara_ve_theme_contract`
filter. The requirements are documented on GitHub: https://github.com/iOSDevSK/visual-
edit-lite/tree/main/docs

### Does the front end work without JavaScript?

Forms submit and work without JavaScript. The editor itself is a wp-admin screen
and needs JavaScript, like the block editor does.

### Where do I report a bug?

In the support forum here, or on GitHub: https://github.com/iOSDevSK/visual-edit-
lite/issues

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Visual Edit Lite – Visual Editor for Block Themes” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ Filip Dvoran ](https://profiles.wordpress.org/webtalkbot/)

[Translate “Visual Edit Lite – Visual Editor for Block Themes” into your language.](https://translate.wordpress.org/projects/wp-plugins/visual-edit-lite)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/visual-edit-lite/),
check out the [SVN repository](https://plugins.svn.wordpress.org/visual-edit-lite/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/visual-edit-lite/)
by [RSS](https://plugins.trac.wordpress.org/log/visual-edit-lite/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.31.5

 * Fix: A Page List block in a navigation menu no longer offers move, remove or 
   add controls whose changes could not be saved. Its pages are listed as they appear,
   in the order set on each page and then by title.
 * New: “Convert to links” turns a Page List in a navigation menu into separate 
   links you can reorder, the same way WordPress’s own Edit Page List dialog does.

#### 1.31.4

 * New: A designed form can be handed to Contact Form 7 or Fluent Forms. Pick the
   form in the FORM panel and check which of its fields each designed field fills;
   that plugin then validates, checks for spam, verifies its captcha, sends and 
   records the submission, while the design stays as it is. Without JavaScript the
   page comes back with the errors under the fields.
 * New: On a block theme, the ⋯ menu of the Visual Edit Lite workspace can duplicate
   the page or post that is open, and move it to the trash. The copy is a draft 
   and brings its content, categories and tags, featured image, search-appearance
   record and small-screen rules; its canonical address is not copied. The front
   page and the posts page cannot be removed from here.
 * Changed: Duplicating works for posts as well as pages, and asks for the right
   to create whichever of the two is being copied.
 * Fixed: A backslash in page content survives a save. Every write of page content
   now goes through wp_slash(), which WordPress expects.
 * Changed: The readme no longer describes the paid edition, and documents the captcha
   providers a connected form plugin may load.

#### 1.31.3

 * Changed: The readme carries captions for the seven screenshots on the plugin’s
   directory page.
 * Changed: The plugin’s homepage link points at html2wp.dev; the source stays on
   GitHub.

#### 1.31.2

 * Fixed: The SMTP password is stored exactly as it is typed. It was trimmed before
   being encrypted, so a password that begins or ends with a space saved without
   complaint and then failed to authenticate. Secrets are never put through a text
   sanitizer: they are encrypted, and never printed back. A pasted API key still
   loses the stray space or newline a paste leaves on it.

#### 1.31.1

 * Security: Each editor route asks for the right to do what it does, on top of 
   the right to edit the page: copying a page asks for the right to create pages,
   removing one for the right to delete it, importing an image for the right to 
   upload files, and a save, a restore or a search-appearance change addressed to
   one page asks about that page.
 * Security: The form block’s output is filtered through an allowlist of what a 
   form may consist of at the moment it is returned, so nothing else can come out
   of it. The honeypot field is hidden by a stylesheet rule as well as its own inline
   one.
 * Changed: Navigation class names supplied by a theme are escaped as attribute 
   values when they are written into a menu.

#### 1.31.0

 * Changed: Edit history keeps the ten most recent saves of each page plus the Original.
   Every save the plugin holds is listed and can be restored. A page with a longer
   log is trimmed to that the next time its history is opened or the page is saved.
 * Changed: Every stylesheet and script the plugin adds now goes through the WordPress
   enqueue API — the decorative and article styling layers, per-block styles, and
   the Form Settings and SEO & Sharing screens, whose behaviour moved into assets/
   admin-settings.js. Structured data is printed with WordPress’s own inline script
   tag function.
 * Changed: The paid plugin is mentioned in one place: a single plain item, Visual
   Edit Pro, at the end of the Visual Edit Lite menu, opening one screen of text
   with one link. The two Pro-marked items are gone, and nothing is added to any
   other admin screen.
 * Removed: The part of the content exporter that could package a theme. Lite exports
   content bundles only; theme export is not in this plugin.
 * Security: The public “load more” route answers only for a published page without
   a password, and gives one answer for every refusal. A listing no longer includes
   password-protected posts.
 * Security: A form field whose name starts with an underscore is ignored, so a 
   visitor cannot write one of the submission’s internal meta keys.
 * Security: The legacy static import copies only files of a type WordPress accepts
   as an upload, from inside the extracted folder. A double opt-in link stops working
   after fourteen days, and exporting parked content, which can include submissions
   and subscribers, requires an administrator.
 * Added: A Credits section, and a notice in the four editor files that derive from
   Open Design (Apache License 2.0).

#### 1.30.3

 * Changed: The package ships the plugin only — the developer documentation lives
   on GitHub and is linked from this readme.

#### 1.30.2

 * Changed: Contributors names the wordpress.org account that owns the plugin, and
   the 1.27.0 upgrade notice fits the directory’s 300-character limit.

#### 1.30.1

 * Changed: The Get Pro item opened the pricing page in a new browser tab. Replaced
   in 1.31.0.

#### 1.30.0

 * New: A screen in the Visual Edit Lite menu that lists what the separate paid 
   plugin adds. Nothing is loaded from outside the site and nothing is sent anywhere.
   Reduced to a single menu item in 1.31.0.
 * Changed: The plugin is listed as “Visual Edit Lite – Visual Editor for Block 
   Themes”. The menu, the admin bar and every screen are unchanged.

#### 1.29.1

 * Fixed: The ＋ Section browser labels its two groups — Theme sections and Your
   sections.

#### 1.29.0

 * Save a section and use it on any other page. **Save as a section…** on the Section
   tab of a section’s popup stores it as one of your site’s own sections, listed
   under ＋ Section as Your sections everywhere. Each copy you place is ordinary
   blocks you can edit one by one, independent of the page it came from. Saving 
   happens at once rather than as an unsaved change, and a saved section is removed
   again under Patterns in the WordPress admin. A section holding a synced pattern,
   a template part or content bound to that one page cannot be saved, and the form
   says which it was.
 * `ClaraVE.apply()` can treat a run of neighbouring blocks as one, with three operations:`
   group` wraps them in a single Group, `ungroup` takes a Group apart again in its
   place, and `move-to` moves a run of blocks elsewhere on the page, including inside
   another container. Each is one change the editor undoes in one step. Blocks that
   are not next to each other, or that WordPress will not let move, are refused 
   with the reason instead of quietly doing nothing.
 * `ClaraVE.saveSection()` and a `save-section` event for the same, and GET /block-
   patterns now says which source each section came from.

#### 1.28.0

 * A theme section shipped as one Custom HTML block — an FAQ of details, a list,
   a row of buttons — goes onto the page as native blocks when it is added with 
   ＋ Section: a Details block per question, headings, lists and buttons, each editable
   in the popup, in one undo step. Markup with no native block (an embed, an icon
   drawn in SVG, inline styles) stays Custom HTML exactly as it was. A Details block’s
   popup edits its question.
 * Forms from other plugins — Kadence Form, Contact Form 7, WPForms, Gravity Forms
   and others — are marked green in the block workspace like Visual Edit’s own, 
   and a Kadence Form can be sent by Visual Edit: choose Form Settings and a contact
   address or a mailing list in its popup. Kadence’s own sending is switched off
   while connected, so nothing arrives twice.
 * Form button styles reach a Kadence form in the editor, where Kadence draws the
   button as an editable box rather than a button.
 * The HTML editor’s popup has a pin: pinned, every element opens it in the same
   place, and dragging it moves the pin.
 * History and other side panels no longer open over each other.
 * On a phone the workspace toolbar keeps Save on screen.
 * The block gate refuses a static core block written as a self-closing block comment(`
   wp:separator /`), which the editor flags as invalid and the site shows as nothing.
 * For developers: the `clara_ve.toolbar.extras` and `clara_ve.popup.top` filters,
   the `clara-ve-dock-opened` event, the `convert-to-video` operation, Kadence images
   in `set-image`, and `POST /native/convert-blocks`.

#### 1.27.0

 * Icons from a theme’s or a plugin’s own controls are no longer invisible in the
   dark editing popup. A whole family of icon sets is drawn with strokes rather 
   than fills, and the contrast repair only ever looked at fills — so an icon picker
   full of line icons kept its author’s dark grey on a ground the editor had just
   painted dark. They are repaired on the property they are actually drawn with,
   and never by filling them in.
 * A form whose fields cover it completely — a one-row signup is an input and a 
   button, edge to edge — could not be connected at all: there was no pixel of the
   form left to click, and what a form does when someone submits it is only offered
   on the form itself. A field now says **Part of a form** and offers the way up,
   opening the form on the tab that holds those settings.
 * **A theme converted from HTML no longer white-screens its visitors.** Such a 
   theme carries its own form runtime that asks this plugin about Cloudflare Turnstile
   as soon as it is loaded; this edition has no Turnstile and had no answer, so 
   every page holding a form died with a critical error — the public page, not only
   the editor. It now answers “off”, which is the truth.
 * On a theme converted from HTML, form submissions were being accepted and silently
   thrown away: the theme and the plugin signed the anti-spam timestamp in two different
   shapes, and the visitor saw a thank-you either way. They are delivered again,
   and stored.
 * Where a form sends is signed into the page and checked on the way back, for every
   form — including one a converted theme renders and hands over. Until that theme
   signs the value itself, a per-form **Send to** on such a site falls back to the
   address in Form Settings rather than being taken from the request.
 * A media bundle can no longer place a file in the uploads folder that you could
   not upload by hand: the extension has to be one this site allows.
 * **Send to** and **List** on a form block are honoured only on a page whose author
   administers the site. Anyone who can publish could otherwise point a form at 
   their own address, or at your mailing list. A form in a template part is unchanged.
 * Forms are marked in green — the whole form, its fields and a _Form_ label, in
   both editors and without clicking anything first. Everything else stays blue,
   so it is clear at a glance which part of a page collects answers.
 * Block themes are now edited the way converted themes are: the page, one dark 
   toolbar and one popup. WordPress’s block toolbar, sidebar and breadcrumb bar 
   no longer compete with it; **⋯  Show WordPress controls** brings them back. The
   WordPress admin bar and side menu stay available.
 * A sidebar WordPress remembered from an earlier session no longer opens over the
   workspace. The Search appearance dialog says when the theme or the site-wide 
   SEO settings keep Visual Edit from printing titles and descriptions on the public
   site.
 * Clicking the block that is already selected reopens its popup after Apply or 
   Cancel. Undo reverts one popup session at a time, and Reset styles is its own
   undo step. A responsive value can be set again after it was cleared and saved.
   Number fields ignore text that is not a number.
 * Clicking a photo that sits under a theme’s overlay or tint (a hero image behind
   its heading layer) selects the image, as in the HTML editor, so it can be replaced.
   Empty decorative groups no longer show WordPress’s “Select a layout” placeholder
   over the design.
 * WordPress’s own editor UI shown inside Visual Edit (the Advanced tab, sidebars
   opened from ⋯, dropdowns, colour pickers and native dialogs) follows the popup
   design: the same type, rounded dark fields, grey labels, uppercase section titles,
   buttons, tabs and menus. Colours are measured after every change, so native controls
   stay readable while swatches and style previews keep their real colours. Menus,
   selects and scrollbars in the dark UI no longer show dark text, white tracks 
   or double borders.
 * Clicking a block outlines and labels it and opens the popup beside it, at the
   height of the click, without covering it. The popup stays put while you scroll,
   can be pinned, and is a bottom sheet on phones.
 * The popup is organised into Content, Style, Section and Advanced tabs, with a
   path to parent blocks, Duplicate / Move / Delete, bold, italic and link for text
   selected on the page, an items list for containers, and “Add a section after 
   this one”.
 * Style has a Desktop / Tablet / Mobile switch that edits the same fields per screen
   and switches the preview. The separate Responsive section is gone.
 * Sections locked by WordPress (theme patterns, template parts) offer **Unlock 
   design** — WordPress’s own “Enable editing all patterns” setting, per session.
 * **＋ Section** adds one of the theme’s own sections with previews.
 * History docks beside the page and says when a restored version still needs Save.
 * The toolbar is reduced to page, device, undo/redo, History, Section, status, 
   preview, More and Save.
 * The converted-theme popup gains the same Content / Style / Section tabs, opens
   beside the clicked element, calls its button Apply, and offers RADIUS on every
   element rather than only boxes that hold a field.
 * New `window.ClaraVE` editor API shared by both editors, with operations, events,`
   clara_ve.popup.groups` / `clara_ve.popup.footer` / `clara_ve.toolbar.more` filters,
   and the `clara_ve_workspace_config`, `clara_ve_workspace_enqueue` and `clara_ve_native_entity_saved`
   PHP hooks.
 * The front-end block editor writes small-screen values into a block’s `claraVe`
   attribute when the block already uses it, and shows those values.
 * The Gutenberg sidebar integration is no longer loaded inside the workspace, where
   its panel appeared a second time inside the popup’s native settings.
 * Linking selected text from the popup: Enter applies the link, Esc closes the 
   address field, an address without a scheme gets https://, an empty address says
   so instead of doing nothing, and the link still lands on the words picked first
   when the page selection changes while typing. Links inside running text get a
   dotted underline in the editor only, since many themes style them exactly like
   the text around them.
 * A link inside the workspace that leads to any other screen (the dashboard, a 
   list, the site) opens in the whole window instead of showing a second admin bar
   and menu inside the workspace.
 * Document ▾ lists only content that can be opened (Global Styles and menu items
   no longer appear and fail to load), hides Previous/Next when there is one page
   of results, shows load errors readably in the dark menu, and WordPress’s own 
   site management opens as a labelled link in the whole window instead of replacing
   the workspace inside its frame.
 * Native colour palettes inside the workspace show their real colours again (the
   dark skin had recoloured every swatch to the text colour), with room around the
   palette and a faint ring so dark theme colours stay visible.
 * The block inserter shows separate rounded tiles with readable icons; block icons
   were painted near-black on the dark panel.
 * Style any form from the popup: Form labels, Form fields and Form button groups(
   colours, fonts, sizes, case, letter spacing, field border shape and colour, border
   while typing, placeholder colour, button hover, corners). They work on what every
   form is made of, so a theme’s shortcode form, Contact Form 7, WPForms or a hand-
   written HTML form all take the same settings, and they are saved on the block
   like other Visual Edit styling.
 * Shortcode blocks show what the shortcode puts on the page on the workspace canvas
   instead of WordPress’s text box; the shortcode itself is edited in the popup’s
   Content tab.
 * More › Site styles opens WordPress’s Styles panel again on WordPress 7, which
   shows it only while a template is on screen: the page is shown inside its template
   while the panel is open and returns to the page alone after.
 * Notices in Visual Edit’s dark dialogs and menus are coloured by kind (error, 
   success, warning), and Esc still closes Search appearance after saving (focus
   used to fall back to the page).
 * Editable forms. A new Form block with field, text area, choice list, checkbox,
   row and send-button blocks: labels, notes, placeholders, choices, required fields,
   field names and the button text are edited in the popup (or WordPress’s sidebar),
   fields are added from the form’s popup and reordered or removed under Items. 
   Submissions go to Form Submissions and are emailed to the Form Settings address—
   a recipient posted with the form is ignored — with the spam checks of connected
   forms; “Go to page” and “Message” set what happens after sending. The form is
   saved as plain HTML, so it stays visible (without sending) if the plugin is switched
   off.
 * “Make this form editable” on a shortcode or HTML block holding a form turns it
   into form blocks, keeping its class names and so its look, its redirect and its
   thank-you sentence; its form styling carries over. One Undo step.
 * A form says what it is for — “Contact form” or “Mailing list”, the same two words
   in both editors — with the list picked by name and an optional address for that
   one form. A signup now reaches the mailing list and the Subscribers screen instead
   of arriving as an enquiry. What the form was set to is signed into the page, 
   so a visitor cannot retype it into somewhere else; that now covers connected `[
   wp-form]` forms as well as form blocks, and an unsigned or altered one falls 
   back to the address in Form Settings rather than being refused.
 * Each form field keeps its own name in submissions: a second Email, a pasted or
   a duplicated field is numbered (email-2) instead of overwriting the first one’s
   value, and renaming a label later does not move its column.

#### 1.26.1

 * Fixed repeated dropdown arrows and light disabled fields in the dark VE popup
   caused by WordPress admin select styles.
 * Content-only editing now exposes permitted text/media controls instead of disabling
   the whole panel. Design controls remain restricted by WordPress.
 * Recheck block editing mode and bindings when asynchronous media choices return.
 * Added Gutenberg save history, per-document staged restores and native Undo/Redo.
 * Fixed Google Fonts preview stylesheet duplication and removal.

#### 1.26.0

 * Gutenberg block themes now open WordPress’s complete native Site and Post Editors
   from Visual Edit Lite. This covers every registered block, nested editing, Query
   Loops, navigation, patterns, templates, template parts and Global Styles through
   their native WordPress controls.
 * Added a Visual Edit Lite Gutenberg sidebar with per-page search appearance, Media
   Library selection for sharing images and shortcuts to site tools.
 * Added selected-block movement and responsive controls to Gutenberg. Page responsive
   values share Gutenberg’s save state and undo/redo stack, render in the editor
   preview, and are included in VE history.
 * Native Gutenberg saves now feed the existing VE page history while core keeps
   revisions for templates, parts and Global Styles. Autosaves are not recorded 
   as explicit saves.

#### Earlier versions

The entries for 1.25.12 and earlier are kept on GitHub: https://github.com/iOSDevSK/
visual-edit-lite/blob/main/docs/changelog-archive.md

## Meta

 *  Version **1.31.5**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/visual-edit-lite/)
 * Tags
 * [block-theme](https://vec.wordpress.org/plugins/tags/block-theme/)[front-end editor](https://vec.wordpress.org/plugins/tags/front-end-editor/)
   [frontend editing](https://vec.wordpress.org/plugins/tags/frontend-editing/)[inline editor](https://vec.wordpress.org/plugins/tags/inline-editor/)
   [visual editor](https://vec.wordpress.org/plugins/tags/visual-editor/)
 *  [Advanced View](https://vec.wordpress.org/plugins/visual-edit-lite/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/visual-edit-lite/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/visual-edit-lite/reviews/)

## Contributors

 *   [ Filip Dvoran ](https://profiles.wordpress.org/webtalkbot/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/visual-edit-lite/)