lvgl /lvgl

LVGL is a free, full-featured embedded UI library for devices from small MCUs to 3D-capable MPUs, enhanced by LVGL Pro, a professional editor and tooling.

★ 25,144⑂ 4,446👁 319⑃ 6,454● 4,498▤ 72◈ 0
CMITCreated 2016-06-08lvgl.io
25,144
stars
4,446
forks
319
watchers
6,454
prs
4,498
issues
72
releases
0
discussions

README

Docs •
  Forum •
  Blog •
  Services
  
  EN •
  中文 •
  日本語 •
  한국어 •
  PT •
  עברית



  
  Light and Versatile Graphics Library






  
   
  







  Overview •
  Features •
  LVGL Pro •
  Examples •
  Integration •
  Contributing •
  License


 Overview

LVGL is a free and open-source UI library that enables you to create graphical user interfaces
for any MCUs and MPUs from any vendor on any platform.

Requirements: LVGL has no external dependencies, which makes it easy to compile for any modern target,
from small MCUs to multi-core Linux-based MPUs with 3D support. For a typical UI, you need only ~100kB RAM,
~200–300kB flash, and a buffer size of 1/10 of the screen for rendering.

Wide adoption: Chip vendors (like NXP, Espressif, Renesas, and so on), RTOS projects (Zephyr, NuttX, etc.),
and board manufacturers (Riverdi, Seeed Studio, VIEWE, Elecrow, etc.) have all integrated LVGL already. If a development board has a display, it's very likely
the vendor offers LVGL support too.

Professional tools: Instead of writing C code, you can hugely speed up and simplify UI development by using LVGL Pro, a complete toolkit with Editor, Figma integration, Online Viewer, and CLI. It exports pure LVGL C code from XML, with no extra runtime or hidden magic. It's free for non-commercial use and evaluation.

To get started, browse the Examples, spin up a Simulator project, explore the Online Viewer of LVGL Pro, compile and run a UI in a window in LVGL Pro with one click, or dive into our AI-ready Docs. Just click Ask AI
and ask anything!

 Features

Free, Portable, and Scalable
  - A fully portable C (C++ compatible) library with no external dependencies.
  - Can be compiled for any MCU or MPU, with any (RT)OS. Make, CMake, and simple globbing are all supported.
  - Supports monochrome, ePaper, OLED, or TFT displays, or even monitors. Displays
  - Distributed under the MIT license, so you can easily use it in commercial projects too.
  - At a bare minimum needs only 32kB RAM and 128kB Flash, a frame buffer, and at least a 1/10 screen-sized buffer for rendering.
  - OS, external memory, and GPU are supported but not required.

Widgets, Styles, Layouts, and More
  - 30+ built-in Widgets: Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table, and many more.
  - Flexible Style system with 100+ style properties to customize any part of the widgets in any state.
  - Flexbox and Grid-like layout engines to automatically size and position the widgets responsively.
  - Data bindings to easily connect the UI with the application.
  - Supports Mouse, Touchpad, Keypad, Keyboard, External buttons, Encoder Input devices.
  - Multiple display support.

Rendering
  - Built-in 2D rendering engine supporting basic shapes, gradients, anti-aliasing, opacity, smooth scrolling, box and drop shadows, image transformation, etc.
  - Powerful 3D rendering engine to show glTF models with OpenGL.
  - Vector graphics, SVG, and Lottie support.
  - Text is rendered with UTF-8 

Top issues

Latest release

Release v9.6.0 v9.6.0 2026-09-16
See the CHANGELOG

Snapshot: 2026-11-11T15:31:17Z · Data license Apache-2.0 · JSON