Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

229 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Website | Docs | Try Online | Download | Forum | Licensing


LVGL

The Complete Workflow for
Professional LVGL UI Development

Design, develop, test, debug, and ship production-ready embedded UIs with an LVGL-native editor, Figma integration, online collaboration, and CLI tools. LVGL Pro exports plain LVGL code, so no additional runtime is needed.

Try it in your browser  •  Download the Editor

Free for evaluation, personal use, and open-source projects.


Building an embedded UI in LVGL Pro with instant preview

Open vs ProWhat You GetWhat's in the BoxWhat You OwnLicensingWhy XMLGet Started


LVGL Open vs LVGL Pro

The open-source LVGL library is the foundation for creating scalable and vendor independent UIs in C. LVGL Pro adds the complete workflow around it, saving 50-80% of the development time.

LVGL Open LVGL Pro
Seeing a change 1 minute to compile and run/flash Instant, as you type
Inspecting layouts Manual, trial and error See bounding boxes, paddings, margins, and more, live
Building a screen Write and wire up the C by hand Compose it in XML, or import it from Figma
Adding a second display size Fork, copy, or #ifdef magic In the same project, preview with 1 click
Reimplementing designs Days to weeks to write the C code 1 click
Handover to a designer Screenshots and meetings Send a link they open in a browser
Reliability Manual testing, or tests in C with a custom pipeline Craft tests in seconds and run them in CI
Asset memory Trial and error Estimate and plan as you go, for each memory region
Translations Custom string table in C, compile to test Clean format, edit and test it live
Data bindings Wire up in C, test on hardware or simulator Test live as you build the UI
Work with AI Agents generate C code, you compile and report what's wrong Full workflow: generate, validate, screenshot, fine tune

Both produce the same thing in the end: plain LVGL C code that you compile into your application.

Use LVGL Open directly when the UI is relatively small, a code-first workflow works well, and one or two developers can comfortably maintain it.

Add LVGL Pro when the UI workflow becomes critical, such as when a designer joins, product variants multiply, the screen count grows, or rapid iteration becomes critical.

What You Get

1 second iterations instead of 2 minutes

Every UI change on a normal embedded workflow means compile, run/flash, navigate to the screen, and look. Ten seconds of thinking, two minutes of waiting. You do it hundreds of times a day.

In LVGL Pro the preview updates as you type. When something looks wrong, the Inspector shows you the layout, spacing, sizing, click areas, and object hierarchy at runtime, so you stop guessing at why a widget is four pixels off. The editor itself is a familiar VS Code-like environment with file navigation, search, Git integration, extensions, and a terminal, and you can debug the generated and your own C code without leaving it.

Big UIs stay maintainable

Screens are built from components you define yourself, with custom properties and a clear public API. Change the component, every screen using it follows immediately.

Styling is defined once and shared, or kept local. Custom component properties can be defined and calculated from constants or from other properties. Properties can bind directly to application data through LVGL Subjects, animations are organized into reusable timelines, and localized strings are managed in the project and previewed per language while you work.

One project, many products

A single UI project can carry several targets: different products, resolutions, hardware configurations, or architectures. Images and fonts live alongside the UI, and you can estimate asset memory usage, assign memory regions, and review the expected access costs before committing to a design.

Designers and developers work on the same UI

Make the Figma components LVGL aware, then export screens, layouts, styles, data bindings, and navigation straight into the project. No more reimplementing someone else's work in code.

When showing your work to the designer, any GitHub-hosted LVGL Pro project opens in the browser, so teammates, managers, and customers can click through the real UI without installing anything.

The repetitive parts run themselves

The CLI validates projects, exports C code, runs UI tests, compiles previews, and generates screenshots, locally or in CI. Tests are repeatable interactions checked against screenshots, so a UI regression fails the build instead of reaching a customer.

The same CLI is what makes AI agents useful here. An agent writes XML, validates it, renders it, and looks at the screenshot, instead of guessing from text. An LVGL-aware MCP server gives it grounded access to the documentation, and lvgl_widgets_xml lists every built-in widget with all of its properties, styles, and enums.

What's in the Box

  1. Editor - A VS Code-like desktop environment for building screens and components visually in XML, managing assets and translations, creating tests, debugging C code, and previewing every change. Learn more about the XML syntax.

  2. Online Viewer - Open GitHub hosted LVGL Pro projects in a browser to share a working UI with teammates, designers, managers, or customers without requiring an installation. Check out the examples online.

  3. LVGL Flow for Figma - Make the Figma components LVGL aware, then export screens, layouts, styles, data bindings, and navigation into an LVGL Pro project. Read the Figma Flow docs.

  4. CLI - Validate projects, export C code, run UI tests, compile previews, and generate screenshots locally or in CI/CD. See the full CLI documentation.

What You Own

Buying a tool that generates your source code raises a fair question: what happens to the product if you stop using it? So, to be explicit:

  • The output is plain LVGL C. It compiles and integrates exactly like handwritten code.
  • There is no extra runtime. Nothing from LVGL Pro has to ship on your device.
  • There are no royalties and no per-device fees.
  • The project is text. XML files, in your repository, readable and diffable without our tools.
  • It works on your existing codebase. Application behavior and hardware-specific logic stay in C. XML only describes the UI.
  • If you walk away, you keep the code. The C you have exported is yours to maintain like any other source file.

Licensing

LVGL Pro comes with flexible licensing for both makers and professionals.

  • Community: Free for makers, personal use, and open-source projects.
  • Evaluation: Free access for testing LVGL Pro with your own designs, code, and development workflow.
  • Growth: Custom offer for small and growing companies.
  • Product: One per-product license covering the complete product development team.
  • Platform: Organization-wide access for companies standardizing UI development on LVGL across multiple products.

See the current plans at lvgl.io/pro#pricing.

Why XML?

LVGL Pro stores the UI in readable, declarative XML rather than in a proprietary binary project format. That keeps the project reviewable in a pull request, mergeable in Git, and open to any script, CI job, or AI tool you point at it. Devices can also load the XML at runtime when changing the UI without recompiling is useful.

If you are already familiar with the C API of LVGL, XML will be familiar too, because it exposes the same properties under the same names:

A dashboard screen with a title, a slider bound to a subject, and a button
<screen>
	<view>
		<column gap="#space_lg" pad="#space_lg">
			<lv_label text="Device Dashboard" style_text_font="font_h3" />

			<row vertical_align="center" gap="12" pad="4">
				<lv_slider width="240" bind_value="subject_brightness" />
				<lv_label bind_text="subject_brightness" />
			</row>

			<lv_button>
				<lv_label text="Apply Setting" />
				<event_cb callback="my_callback" trigger="clicked" />
			</lv_button>
		</column>
	</view>
</screen>

Here <row> and <column> are custom components, and #space_lg is a constant.

See the XML syntax documentation for the full reference.

Get Started

Try it in your browser

Open the LVGL Pro Online Viewer and select an example or tutorial. No installation is required.

Install the Editor

  1. Download LVGL Pro for Windows, Linux, or macOS from the GitHub Releases page or the LVGL Pro website.
  2. Launch the editor and select the free Community or Evaluation license.
  3. Click the Learn more button, open a screen, change a property, and see the preview update immediately.
  4. Explore the generated C code and run the project on your target.

Examples in the Docs

The examples in the documentation of LVGL Open and LVGL Pro contain both the XML and the C code.

Feedback

LVGL Pro is developed together with the LVGL community and the teams using it in real products.

Please open an issue to report a bug, suggest an improvement, or request a feature.

You can also reach us through the LVGL Forum or at lvgl@lvgl.io.

Thank you! ❤️

About

Complete workflow for professional LVGL UI development. Import from Figma, build in XML with instant preview, test in CI, and export plain LVGL C. No extra runtime needed.

Topics

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages