Skip to content

Releases: lvgl/lvgl_editor

v1.1.0

10 Feb 03:06
6fe055a

Choose a tag to compare

We have two new features worthy of mention, both in beta.

  1. Drag and Drop: Open a screen and toggle using the buttons on the top of the Preview. This offers a visual experience for building screens. Please enjoy, but also please note any part is subject to change in the future and there are some bugs.
  2. Preliminary Component Library Support: It is now possible to utilize components, screens, fonts, images, styles, etc. from a subproject in a parent project. Use the "Add Starter Library" button on the home screen to add our pre-made component library to your project, or create a lib folder and create a new project in that. Please note: this experience is also in beta and validation and autocomplete are not fully supported (when editing files in the subproject, it will allow referencing items from the parent project).

Important Change about CMakeLists.txt

Previously, it was possible to add user modifications to CMakeLists.txt. That is no longer supported as the file will be regenerated every code export (this change was made to cleanly support component libraries). If CMake customizations are required for your project, you need to put them in a separate file.

Added

  • Commit and push to GitHub file changes in batch to keep track of any saved files in the Online Preview.
  • Click on constant reference leads to definition; Autocomplete suggestions after # reference symbol.
  • Button to add starter component library to an open project.
  • Create, rename and delete file or folder in Online Preview with a context menu.
  • CLI generate flags to skip expensive resource conversions (--ignore-fonts, --ignore-images) (#255).

Changed

  • Optimise and refactor test runs using web worker to avoid unnecessary argument passing.
  • Updated VS Code Extension icon to match the LVGL Pro icon.
  • Lazy-load the heaviest UI pieces for better bundle size in VS Code Extension.
  • Refactor code generation to be able to support browser-friendly environment.
  • Prevent the Monaco inline textarea editor from rewriting numeric XML entities (e.g., ) into literal glyphs when the field is opened or edited.
  • Add entity-aware encode/decode helpers so the UI can show readable text while preserving user-typed entity literals.
  • Restrict component-level Preview dimensions to be only type integer. (#303)

Fixed

  • Multiline <api><prop ...></prop></api> values are now detected when collecting document API props.
  • API/subject $ references now validate against global API props as well (#271).
  • Figma sync no longer hardcodes width/height for text nodes set to hug contents (#175).
  • lv_font_conv now respects font compress/colorinfo options in globals.xml (#286)
  • Respect subject min_value/max_value in the "In this file" Subjects view.
  • VS Code Extension files are opened always left from the LVGL preview.
  • Cutting a file/folder and pasting in the same location bug on Windows (#733)
  • Avoid showing the generic error toast for component names starting with error_
  • Multiple issue fixes in Designer Mode's navigator and properties panel.
  • Manual animation trigger fixed with the web worker implementation.
  • Watch for non-XML open file system changes to react on refreshing tabs.
  • (autocomplete): global props not appearing for defaults (#734)
  • (autocomplete): duplicating existing values for multi-value enums (#734)
  • Windows production build CI NPM cache issue fix
  • Use "slowdown" setting during test wait steps. This will prolong the wait, or shorten it all together, according to the slowdown option.
  • Occasional runtime crashes / reloads while running tests. There are still some random cashes being investigated, but the frequency is much reduced.
  • Preview blanking when switching file or Design / Code mode.

v1.0.2

12 Dec 23:09

Choose a tag to compare

This is our biggest bugfix/quality release by far! The Editor Team has been hard at work for weeks to resolve reported issues and issues discovered internally. We want to bring you a bulletproof editing experience! 🛡️

And also a huge thank you to everyone testing, reporting issues and aiding in troubleshooting! 🙏🏻

But first, we have to mention a few known issues (these will be fixed soon):

  • 🕵🏻‍♂️ The Inspector feature in the Preview may leave visual artifacts onscreen, especially after screen transitions. The workaround is switching to another screen and back.
  • 🎲 Running a single test randomly fails on occasion. (This is an issue in the Editor, but not the CLI.)
  • 🥶 The preview will occasionally freeze (and automatically reload) while running a test.

(Please note: this release does not include an updated VS Code extension. We will update that and release it with all the features/fixes below early in the new year.)

Added

  • 🏃🏻‍♂️ Run all tests feature (open project.xml file and then the Tests tab) (#108)
    • 🧪 Please note: this feature is experimental and a little unstable (it may get stuck or reload the runtime). We will harden it shortly.
  • A test slowdown option (see the dropdown next to the test run button)
  • Container pull progress indicator (shown in a toast)
  • Validation to prevent global name duplication (constants, enums, styles, fonts, images, components, widgets, etc.)
  • 🏡 "home" button next to file tabs
  • Update Console with better layout and scrollbar styling (#240)
  • Copy console, pause console scroll, reduce logs, file navigator auto scrolling and opening directories (#238)
  • Clear console on switching projects and remove offline error popups (#191)

Fixed

  • 🚀 💪 Prevent Preview crashes from crashing or freezing the Editor. The Preview now runs in a separate thread, which is automatically restarted as needed. This work also resolves the "WASM out of memory" error which would occur when editing for mid to long periods of time.
  • Unclickable buttons on code editor finder popup
  • Gracefully handle opening a folder that is not an LVGL project (#190)
  • Code editor tabs sometimes not closing on MacOS external display (#227)
  • Broken keyboard shortcuts
  • Buttons on popup for invalid session
  • Update wrapped translation entries
  • Dependency security updates
  • Solve project on separate volume and cleanup dialogs for cancelled operations (#189)
  • Renaming open file did not rename its open tab in the code editor
  • Deleting project root on windows
  • Extra separator lines from menus
  • Screenshot compare file extension for .png must exist
  • (code export): certain errors were swallowed and not shown
  • (code export): incorrect widget element property setters
  • (code export): Add [WIDGET_NAME]_USER_DATA macro to widgets, to allow for custom user data (set the macro in [widget_name].h if you wish to use it
  • (code export): Timeline early apply is added too late (#237)
  • (code export): Crash due to global styles initialized before global fonts and images (#241)
  • (code export): Fix cross-platform #include order inconsistencies
    • The order of includes in code generated on Windows would not match the order on Linux/Mac. That would create conflicts in version control.

v1.0.1

14 Nov 02:58

Choose a tag to compare

Release Notes

Payment and licences

Trial licenses are, of course, still available. Our purchasing system for licenses is now live at pro.lvgl.io! (click "Sign In" to purchase)

v1.0.1 of the Editor and VS Code support seamlessly handing off your license seat between different machines you use.

Desktop Editor

Fixed:

  • On Windows, issue not being able to restart the Editor until the OS was rebooted. Now you can re-open the Editor as many times as you like. :)
  • Allow saving files during code export and compilation.

VS Code plugin

We have put a lot of effort to improve the VS Code plugin. Please note, it is not currently supported to use the desktop Editor application and the VS Code extension simultaneously with the same email address. Improvements:

  • Preview now starts properly after login.
  • Like the desktop app, there is now a "purple bar with warning" if there is an error in the XML
  • Added a "Console" panel like in the desktop Editor
  • Dragging items in the preview is now properly supported
  • During code export and build, the progress indicator shows all progress, like in the desktop Editor
  • Selecting an item in the preview (Ctrl+Click) does highlight the related line in the XML editor

Some known issues:

  • A spinner for licence loading may keep spinning in the middle of the preview

CLI

Fixed:

  • Tests were hanging after running
  • Tests not running with the proper resolution. Now, tests will run with a default screen resolution of 320x240 or the first target defined in project.xml

All

Many and various fixes and improvements to XML validation and the overall user experience.

v1.0.0

22 Oct 19:30

Choose a tag to compare

News

In v1.0.0, we have fixed several bugs found in RC2. Although there are still some known issues, this version is ready for production.

Known issues and limitations

Payment and licences

Using the trial licence works well; however, purchasing licences is not available yet.

VSCode plugin

Note that the VSCode extension still has a few initial bugs. Please consider it a preview for now. We are treating these issues with high priority:

  • You can't use both the desktop application Editor and the VSCode extension with the same email address
  • Preview doesn't start after login. Workaround: after logging in, close the extension and open it again
  • A spinner for licence loading keeps spinning in the middle of the preview
  • Unlike the desktop app, there is no "purple bar with warning" if there is an error in the XML
  • A "Console" panel needs to be added instead of using the "Output" of VSCode
  • Dragging is not working. It creates a new file like "x=30 y=-40"
  • During code export and build, the progress indicator toast message shows only the final state
  • Selecting an item in the preview (Ctrl+Click) doesn't highlight the related line in the XML editor

Tests

Running tests (in the Test panel) doesn't show the Pixel diff and Overlay.

Nightly

16 Nov 04:49

Choose a tag to compare

Nightly releases. Last updated: Fri Feb 27 04:13:58 UTC 2026.

v1.0.0-rc2

01 Oct 21:07

Choose a tag to compare

Release candidate for v1.0.0. All planned major features are supported.

Release v0.3.0

17 Jul 20:27

Choose a tag to compare

Major updates:

  • New syntax, see below
  • Docker doesn't need to be installed any more. See the README.
  • The online preview use the Editor and allows editing the XMLs. It doesn't support recompiling and tests yet. See here: https://lvgl.github.io/lvgl_editor/
  • Screen load and create event support. See the docs.
  • Subject set and increment events. See the docs.
  • Subject panel to see and edit the values of the subjects. See next to the "Console".
  • Built-in testing, see the testing panel next to the Console and the docs.
  • Translation support. See this example and the docs.
  • Generate CMake files too
  • Fixing many bugs

Migration guide

Styles

Old

<lv_obj styles="style1 style2:pressed" style3:pressed:scrollbar/>

New

<lv_obj>
    <style name="style1"/>
    <lv_obj-style name="style2" selector="pressed"/>
    <lv_obj-style name="style3" selector="pressed|scrollbar"/>
</lv_obj>

Events

Old

<lv_obj>
    <lv_event-call_function trigger="clicked" callback="my_cb" user_data="abc"/>
</lv_obj>

New

<lv_obj>
    <event_cb trigger="clicked" callback="my_cb" user_data="abc"/>
    <!-- or -->    
    <lv_obj-event_cb trigger="clicked" callback="my_cb" user_data="abc"/>
</lv_obj>

Bind

Same for all other bind_..._if_... properties

Old

<lv_obj bind_flag_if_eq="subject1 hidden 10"/>

New

<lv_obj>
    <bind_flag_if_eg subject="subject1" flag="hidden" ref_value="10"/>
    <!-- or -->
    <lv_obj-bind_flag_if_eg subject="subject1" flag="hidden" ref_value="10"/>
</lv_obj>

Release v0.3-rc2

09 Jul 21:04

Choose a tag to compare

Release v0.3-rc2 Pre-release
Pre-release
  • Fix podman path on Mac. Now the Editor should work without installing podman manually
  • Ask the user to manually install podman on Linux
  • Many small validation fixes

Release v0.3-rc

04 Jul 15:38

Choose a tag to compare

Release v0.3-rc Pre-release
Pre-release

This is the release candidate version of v0.3 which contains major updates and even breaking changes.

Major updates:

  • New syntax, see below
  • Docker doesn't need to be installed any more.
  • The online preview use the Editor and allows editing the XMLs. It doesn't support recompiling. See here: https://lvgl.github.io/lvgl_editor/
  • Screen load and create event support. See the docs.
  • Subject set and increment events. See the docs.
  • Subject panel to see and edit the values of the subjects. See next to the "Console".
  • Built-in testing, see the testing panel next to the Console and the docs.
  • Translation support. See this example and the docs.
  • Fixing many bugs

Migration guide

Styles

Old

<lv_obj styles="style1 style2:pressed" style3:pressed:scrollbar/>

New

<lv_obj>
    <style name="style1"/>
    <lv_obj-style name="style2" selector="pressed"/>
    <lv_obj-style name="style3" selector="pressed|scrollbar"/>
</lv_obj>

Events

Old

<lv_obj>
    <lv_event-call_function trigger="clicked" callback="my_cb" user_data="abc"/>
</lv_obj>

New

<lv_obj>
    <event_cb trigger="clicked" callback="my_cb" user_data="abc"/>
    <!-- or -->    
    <lv_obj-event_cb trigger="clicked" callback="my_cb" user_data="abc"/>
</lv_obj>

Bind

Same for all other bind_..._if_... properties

Old

<lv_obj bind_flag_if_eq="subject1 hidden 10"/>

New

<lv_obj>
    <bind_flag_if_eg subject="subject1" flag="hidden" ref_value="10"/>
    <!-- or -->
    <lv_obj-bind_flag_if_eg subject="subject1" flag="hidden" ref_value="10"/>
</lv_obj>

Release v0.2.3

27 May 19:58
2780cf7

Choose a tag to compare

Two new features are added

  1. Zoom and pan the preview
  2. Download Figma style properties and images form Figma.

See this announcement for more details.