Skip to content

v2.0.0

Choose a tag to compare

@Anthony-De Anthony-De released this 06 Jul 18:04
· 32 commits to master since this release
e769ec0

Overview

This is a major update and brings the editor to you with no time limit. No feature restrictions. No credit card.

If you're building something personal, open-source, or just evaluating, the full editor is yours. Every feature, no expiry.

Alongside a long list of new features, we rebuilt the Editor's foundation to make it faster, more stable, with a familiar VSCode like interface, built in accessories, fully ready for the way teams work. v2.0.0 marks the point where the Editor grows to meet the demands the community and our customers have made.

Licensing built for you v2.0.0 moves to a product based model instead of a recurring subscription. Personal, open-source, and evaluation use stays free forever, commercial teams license per product with five years of updates, startups get a special price, and companies going all in on LVGL move up to Platform with floating and on-premise licensing options.

AI ready, out of the box v2.0.0 ships with an MCP server for LVGL XML. AI assistants can read, understand, and help write your UI definitions. Building embedded UIs with the help of tools like Claude and Gemini is now a first class part of the workflow.
LVGL Flow for Figma. Our new Figma plugin brings your full designs straight into the Editor, reducing the figma to screen conversion time to mere seconds.

Expression evaluation Instead you assigning values to properties you use expressions like width="{large ? 200 : 100}" or hidden="{subtitle == '' ? true : false}"

Memory usage analysis We know that on embedded, every byte counts. A new panel showing exactly where your flash and RAM go.

Design Mode, leveled up Edit component slots, wire up events and screen loads.
Multiple targets. Shipping a line of products with different display sizes and UIs? Define multiple UIs of a product line from a single source and switch between them live in the Preview.

Smoother Onboarding We’ve built a Learn by Examples flow that drops you into real, working projects built from bundled templates instead of a blank canvas so you can get started in seconds.

Added

  • Pointer subjects for image bindings, including <pointer> support in globals.xml, typed bind_src validation and autocomplete, preview/runtime updates, and lv_image bind_src code generation. (#247)
  • Design Mode Events section in the Properties panel for adding, editing, and removing event elements, such as event_cb and screen load events, on the selected component.
  • Standard API getters for accessing slots.
  • Design Mode support for editing component slots, including adding, duplicating, drag-and-drop reordering, and copy/paste operations in slot layers.
  • Memory usage summary feature with a UI panel, graphs, and code export support.
  • Proper support for repeat_count and repeat_delay in animation timelines.
  • CLI screenshot command for capturing a screen as a PNG.
    • Example: node lved-cli.js screenshot ./testing/test_project screens/main_screen --out main.png --delay 300
  • Default ZIP repository loading for Theia browser GitHub projects, with the existing GitHub Tree/raw-file flow kept as the automatic fallback.
  • Preview inspection for access="add" and access="get" typed elements, such as lv_tabview-tab and lv_dropdown-list, and their contents.
  • Expression evaluation, like width="{large ? 200 : 100}"
  • Launch screen Learn by Examples flow for creating Tutorials or Examples projects from bundled templates.
  • Image convert support for creating multiple versions of the same source image.
  • Project theme support with <project theme="default"> and <project theme="simple">.
  • Support for the precise_points type, including lv_line support in code export and XML validation.
  • Support for content, 1fr, and validation in grid_row_dsc_array and grid_column_dsc_array.
  • Responsive target support: targets defined in project.xml can now be referenced in fonts, images, views, styles, and other project resources to create multiple versions of the UI. Preview supports dynamically switching between targets.
  • Figma Flow plugin integration.
  • Proper support for px|% and px|%|content types in widget properties.
  • Validation and autocomplete for animation targets and timelines.
  • Full support for array types: type[], type[N] / type[count], and string[NULL]. (#370)

Changed

  • Launch screen now opens on every app launch when signed in with a valid license, including when a project was restored from the previous session.
  • Simplified unit selector for Design Mode number inputs, such as position and size fields.
  • Project opening now enforces Product, Platform, Community, and Evaluation license rules using product_id and git_url project metadata.
  • Preview now reloads when any .xml file in the open project changes, improving support for external tools.

Removed

  • figma-sync CLI command. Figma integration is now handled through the Figma Flow plugin.
  • copy-resources CLI command.
  • --toolchain-mode option from the generate, compile, run-test, run-all-tests, and screenshot CLI commands. The toolchain now always uses local-emsdk.

Fixed

  • Design Mode subject pickers no longer keep removed globals.xml subjects as valid choices.
  • Design Mode copy, cut, paste, and Preview zoom shortcuts now work through Theia keybindings.
  • Deleted project folders now clear stale workspace and file navigator state, and close project-scoped bottom panels.
  • File > Open Project now uses the in-place Project Launcher flow instead of triggering a full Theia reload.
  • Removed obsolete Design Mode XML-comment warnings when opening screens.
  • Clean/build project operations now validate before deleting generated files.
  • Improved backdrop contrast for the light-theme toolchain installation modal.
  • Validation and build output remains available after switching projects so errors can still be inspected.
  • Subject validation now keeps root globals.xml subjects when parsing library globals.xml files.
  • Validation failure toasts now show local relative paths and wrap long file names.
  • Asset Memory can sort memory regions and assets by bandwidth as well as size.
  • Project commands now save unsaved editor tabs before running.
  • Design panel shortcuts now work when the Design panel or Preview is active outside full Design mode.
  • Pasted and duplicated Design elements now get unique names without renaming the source element.
  • File > Open Project Launcher now uses the launcher, while File > Open File and Ctrl/Cmd+O are disabled in Theia.
  • Theia project command shortcuts now save dirty editor tabs before running.
  • Recent projects are now timestamped, sorted by last opened, refreshed when the launcher opens, and show a clear error for moved or deleted paths.
  • Code export improvements for slot support.
  • Improved UX when the user's login has expired. (#371)
  • Added a guided flow to install emsdk, pypng, and lz4 locally when compiling with the local toolchain.
  • Setters on widget elements with access="add" now correctly operate on the generated child element.
  • User-defined event callbacks are now called correctly.
  • Memory usage monitoring now counts file-backed TinyTTF fonts and file images once per source file.
  • Translation strings starting with $ or # are no longer treated as API or const references during validation and code export.
  • Preview compatibility on Linux and macOS has been improved.
  • CLI compile command now correctly defaults the compilation target to cli.