8.2
Introduction
Key features
Requirements
License
Repository layout
Release policy
Release cycle
Branches
Changelog
Version support
FAQ
Where can I ask questions?
Is my MCU/hardware supported?
Is my display supported?
LVGL doesn't start, randomly crashes or nothing is drawn on the display. What can be the problem?
My display driver is not called. What have I missed?
Why is the display driver called only once? Only the upper part of the display is refreshed.
Why do I see only garbage on the screen?
Why do I see nonsense colors on the screen?
How to speed up my UI?
How to reduce flash/ROM usage?
How to reduce the RAM usage
How to work with an operating system?
Examples
Get started
A button with a label and react on click event
Create styles from scratch for buttons
Create a slider and write its value on a label
Styles
Size styles
Background styles
Border styles
Outline styles
Shadow styles
Image styles
Text styles
Line styles
Transition
Using multiple styles
Local styles
Add styles to parts and states
Extending the current theme
Animations
Start animation on an event
Playback animation
Animation timeline
Events
Button click event
Handle multiple events
Event bubbling
Layouts
Flex
A simple row and a column layout with flexbox
Arrange items in rows with wrap and even spacing
Demonstrate flex grow
Demonstrate flex grow.
Demonstrate column and row gap style properties
RTL base direction changes order of the items
Grid
A simple grid
Demonstrate cell placement and span
Demonstrate grid's "free unit"
Demonstrate track placement
Demonstrate column and row gap
Demonstrate RTL direction on grid
Scrolling
Nested scrolling
Snapping
Floating button
Styling the scrollbars
Right to left scrolling
Translate on scroll
Widgets
Base object
Base objects with custom styles
Make an object draggable
Arc
Simple Arc
Loader with Arc
Bar
Simple Bar
Styling a bar
Temperature meter
Stripe pattern and range value
Bar with LTR and RTL base direction
Custom drawer to show the current value
Button
Simple Buttons
Styling buttons
Gummy button
Button matrix
Simple Button matrix
Custom buttons
Pagination
Calendar
Calendar with header
Canvas
Drawing on the Canvas and rotate
Transparent Canvas with chroma keying
Chart
Line Chart
Faded area line chart with custom division lines
Axis ticks and labels with scrolling
Show the value of the pressed points
Display 1000 data points with zooming and scrolling
Show cursor on the clicked point
Scatter chart
Stacked area chart
Checkbox
Simple Checkboxes
Checkboxes as radio buttons
Colorwheel
Simple Colorwheel
Dropdown
Simple Drop down list
Drop down in four directions
Menu
Image
Image from variable and symbol
Image recoloring
Rotate and zoom
Image offset and styling
Image button
Simple Image button
Keyboard
Keyboard with text area
Label
Line wrap, recoloring and scrolling
Text shadow
Show LTR, RTL and Chinese texts
Draw label with gradient color
LED
LED with custom style
Line
Simple Line
List
Simple List
Sorting a List using up and down buttons
Menu
Simple Menu
Simple Menu with root btn
Simple Menu with custom header
Simple Menu with floating btn to add new menu page
Complex Menu
Meter
Simple meter
A meter with multiple arcs
A clock from a meter
Pie chart
Message box
Simple Message box
Roller
Simple Roller
Styling the roller
add fade mask to roller
Slider
Simple Slider
Slider with custom style
Slider with extended drawer
Span
Span with custom styles
Spinbox
Simple Spinbox
Spinner
Simple spinner
Switch
Simple Switch
Table
Simple table
Lightweighted list from table
Tabview
Simple Tabview
Tabs on the left, styling and no scrolling
Textarea
Simple Text area
Text area with password field
Text auto-formatting
Tabview
Tileview with content
Window
Simple window
Get started
Quick overview
Get started in a simulator
Add LVGL into your project
Learn the basics
Widgets
Events
Parts
States
Styles
Themes
Examples
A button with a label and react on click event
Create styles from scratch for buttons
Create a slider and write its value on a label
Micropython
Simulator on PC
Select an IDE
Set-up Eclipse CDT
Install Eclipse CDT
Install SDL 2
Pre-configured project
Add the pre-configured project to Eclipse CDT
Compile and Run
STM32
NXP
Creating new project with LVGL
Adding HW acceleration for NXP iMX RT platforms using PXP (PiXel Pipeline) engine for existing projects
Features supported:
Basic configuration:
Basic initialization:
Project setup:
Advanced configuration:
Espressif (ESP32 chip series)
LVGL demo project for ESP32
Using LVGL in your ESP-IDF project
Prerequisites
Obtaining LVGL
Configuration
Using lvgl_esp32_drivers in ESP-IDF project
Arduino
Get the LVGL Arduino library
Set up drivers
Configure LVGL
Initialize and run LVGL
Use the examples and demos
Debugging and logging
Micropython
What is Micropython?
Highlights of Micropython
Why Micropython + LVGL?
Here are some advantages of using LVGL in Micropython:
Micropython + LVGL could be used for:
So what does it look like?
A simple example
How can I use it?
Online Simulator
PC Simulator
Embedded platform
Where can I find more information?
Tasmota and berry
What is Tasmota?
What is Berry?
Highlights of Berry
Why LVGL + Tasmota + Berry?
Tasmota + Berry + LVGL could be used for:
So what does it look like?
A simple example
How can I use it?
Where can I find more information?
Tasmota Documentation
Berry Documentation
Tasmota LVGL Berry documentation
NuttX RTOS
What is NuttX?
Highlights of NuttX
Why NuttX + LVGL?
Here are some advantages of using LVGL in NuttX
NuttX + LVGL could be used for
How to get started with NuttX and LVGL?
First you need to install the pre-requisites on your system
Now let's create a workspace to save our files
Clone the NuttX and Apps repositories:
Configure NuttX to use the stm32f429i-disco board and the LVGL Demo
Flashing the firmware in the board using OpenOCD:
Where can I find more information?
RT-Thread RTOS
What is RT-Thread?
How to run LVGL on RT-Thread?
CMake
Espressif (ESP32)
MicroPython
Zephyr
Prerequisites
Make
Ninja
Building LVGL with CMake
Additional CMake options
Building LVGL examples with CMake
Building LVGL drivers and demos with CMake
Porting
Set up a project
Get the library
Add lvgl to your project
Automatically add files
Make and CMake
Other platforms and tools
Demos and Examples
Configuration file
Initialization
Display interface
Draw buffer
Buffering modes
One buffer
Two buffers
Full refresh
Direct mode
Display driver
Mandatory fields
Optional fields
Examples
Rotation
Further reading
API
Input device interface
Types of input devices
Touchpad, mouse or any pointer
Keypad or keyboard
Encoder
Button
Other features
Parameters
Feedback
Associating with a display
Buffered reading
Further reading
API
Tick interface
API
Task Handler
Sleep management
Operating system and interrupts
Tasks and threads
Interrupts
Logging
Log level
Printing logs
Logging with printf
Custom log function
Add logs
Add custom GPU
Draw context
Fields
Initialization
Software renderer
Blend callback
Extend the software renderer
New blend callback
New rectangle drawer
Fully custom draw engine
Overview
Objects
Attributes
Basic attributes
Specific attributes
Working mechanisms
Parent-child structure
Moving together
Visibility only on the parent
Create and delete objects
Screens
Create screens
Get the active screen
Load screens
Layers
Handling multiple displays
Parts
States
Snapshot
Positions, sizes, and layouts
Overview
Units
Boxing model
Important notes
Position
Simple way
Align
Size
Simple way
Using styles
Translation
Transformation
Min and Max size
Layout
Overview
Built-in layout
Flags
Adding new layouts
Examples
Styles
States
Cascading styles
Inheritance
Parts
Initialize styles and set/get properties
Add and remove styles to a widget
Add styles
Remove styles
Report style changes
Get a property's value on an object
Local styles
Properties
Typical background properties
Transitions
Color filter
Themes
Extending themes
Examples
Size styles
Background styles
Border styles
Outline styles
Shadow styles
Image styles
Arc styles
Text styles
Line styles
Transition
Using multiple styles
Local styles
Add styles to parts and states
Extending the current theme
API
Style properties
Size and position
width
min_width
max_width
height
min_height
max_height
x
y
align
transform_width
transform_height
translate_x
translate_y
transform_zoom
transform_angle
Padding
pad_top
pad_bottom
pad_left
pad_right
pad_row
pad_column
Background
bg_color
bg_opa
bg_grad_color
bg_grad_dir
bg_main_stop
bg_grad_stop
bg_grad
bg_dither_mode
bg_img_src
bg_img_opa
bg_img_recolor
bg_img_recolor_opa
bg_img_tiled
Border
border_color
border_opa
border_width
border_side
border_post
Outline
outline_width
outline_color
outline_opa
outline_pad
Shadow
shadow_width
shadow_ofs_x
shadow_ofs_y
shadow_spread
shadow_color
shadow_opa
Image
img_opa
img_recolor
img_recolor_opa
Line
line_width
line_dash_width
line_dash_gap
line_rounded
line_color
line_opa
Arc
arc_width
arc_rounded
arc_color
arc_opa
arc_img_src
Text
text_color
text_opa
text_font
text_letter_space
text_line_space
text_decor
text_align
Miscellaneous
radius
clip_corner
opa
color_filter_dsc
color_filter_opa
anim_time
anim_speed
transition
blend_mode
layout
base_dir
Scroll
Overview
Scrollbar
Events
Basic example
Features of scrolling
Scrollable
Scroll chain
Scroll momentum
Elastic scroll
Snapping
Scroll one
Scroll on focus
Scroll manually
Self size
Examples
Nested scrolling
Snapping
Floating button
Styling the scrollbars
Right to left scrolling
Translate on scroll
Layers
Order of creation
Bring to the foreground
Top and sys layers
Events
Add events to the object
Remove event(s) from an object
Event codes
Input device events
Drawing events
Other events
Special events
Custom events
Sending events
Refresh event
Fields of lv_event_t
Event bubbling
Examples
Button click event
Handle multiple events
Event bubbling
Input devices
Pointers
Cursor
Gestures
Keypad and encoder
Groups
Styling
API
Input device
Groups
Displays
Multiple display support
Using only one display
Mirror display
Split image
Screens
Transparent screens
Features of displays
Inactivity
Background
API
Colors
Creating colors
RGB
HSV
Palette
Modify and mix colors
Built-in colors
Opacity
Color types
Convert color
API
Fonts
Unicode support
Built-in fonts
Normal fonts
Special fonts
Special features
Bidirectional support
Arabic and Persian support
Subpixel rendering
Compressed fonts
Add a new font
Add new symbols
Load a font at run-time
Add a new font engine
Use font fallback
Images
Store images
Variables
Files
Color formats
Add and use images
Online converter
Manually create an image
Use images
Image decoder
Custom image formats
Register an image decoder
Manually use an image decoder
Image caching
Cache size
Value of images
Memory usage
Clean the cache
API
Image buffer
File system
Ready to use drivers
Adding a driver
Registering a driver
Implementing the callbacks
Other callbacks
Usage example
Use drives for images
API
Animations
Create an animation
Animation path
Speed vs time
Delete animations
Timeline
Examples
Start animation on an event
Playback animation
Animation timeline
API
Timers
Create a timer
Ready and Reset
Set parameters
Repeat count
Measure idle time
Asynchronous calls
API
Drawing
Mechanism of screen refreshing
Masking
Using masks
Hook drawing
Main drawing
Post drawing
Part drawing
Others
New widget
Widgets
Base object (lv_obj)
Overview
Coordinates
Parents and children
Display and Screens
Events
Styles
Flags
Groups
Extended click area
Events
Keys
Example
Base objects with custom styles
Make an object draggable
API
Core widgets
Arc (lv_arc)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Bar (lv_bar)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Button (lv_btn)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Button matrix (lv_btnmatrix)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Canvas (lv_canvas)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Checkbox (lv_checkbox)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Drop-down list (lv_dropdown)
Overview
Parts and Styles
Usage
Overview
Events
Keys
Example
API
Image (lv_img)
Overview
Parts and Styles
Usage
Transformations
Events
Keys
Example
API
Label (lv_label)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Line (lv_line)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Roller (lv_roller)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Slider (lv_slider)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Switch (lv_switch)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Table (lv_table)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Text area (lv_textarea)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Extra widgets
Animation Image (lv_animimg)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Calendar (lv_calendar)
Overview
Parts and Styles
Usage
Events
Keys
Headers
Example
API
Chart (lv_chart)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Color wheel (lv_colorwheel)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Image button (lv_imgbtn)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Keyboard (lv_keyboard)
Overview
Parts and Styles
Usage
Events
Keys
Examples
API
LED (lv_led)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
List (lv_list)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Menu (lv_menu)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Meter (lv_meter)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Message box (lv_msgbox)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Span (lv_span)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Spinbox (lv_spinbox)
Overview
Parts and Styles
Events
Keys
Example
API
Example
Spinner (lv_spinner)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Tabview (lv_tabview)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Tile view (lv_tileview)
Overview
Parts and Styles
Usage
Events
Keys
Example
API
Window (lv_win)
Overview
Parts and Styles
Usage
Get the parts
Events
Keys
Example
API
Layouts
Flex
Overview
Terms
Simple interface
Flex flow
Flex align
Flex grow
Style interface
Internal padding
Other features
RTL
New track
Example
A simple row and a column layout with flexbox
Arrange items in rows with wrap and even spacing
Demonstrate flex grow
Demonstrate flex grow.
Demonstrate column and row gap style properties
RTL base direction changes order of the items
API
Grid
Overview
Terms
Simple interface
Grid descriptors
Grid items
Grid align
Style interface
Internal padding
Other features
RTL
Example
A simple grid
Demonstrate cell placement and span
Demonstrate grid's "free unit"
Demonstrate track placement
Demonstrate column and row gap
Demonstrate RTL direction on grid
API
3rd party libraries
File System Interfaces
Usage
BMP decoder
Limitations
Example
Open a BMP image from file
API
JPG decoder
Overview
Usage
Converter
Converting JPG to C array
Converting JPG to SJPG
Example
Load an SJPG image
API
PNG decoder
Example
Open a PNG image from file and variable
API
GIF decoder
Convert GIF files to C array
Use GIF images from file
Memory requirements
Example
Open a GIF image from file and variable
API
FreeType support
Install FreeType
Add FreeType to your project
Usage
Example
Open a front with FreeType
Learn more
API
QR code
Get started
Notes
Example
Create a QR Code
API
Lottie player
Build Rlottie
Usage
Use Rlottie from file
Use Rlottie from raw string data
Getting animations
Controlling animations
Example
Load a Lottie animation from raw data
Load a Lottie animation from a file
API
FFmpeg support
Install FFmpeg
Add FFmpeg to your project
Usage
Example
Decode image
Decode video
API
Others
Snapshot
Usage
Free the Image
Use Existing Buffer
Example
Simple snapshot example
API
Monkey
Usage
Example
Touchpad monkey example
Encoder monkey example
Button monkey example
API
Grid navigation
Usage
Focusable objects
Example
Basic grid navigation
Grid navigation on a list
Nested grid navigations
API
Contributing
Introduction
Pull request
From GitHub
From command line
Commit message format
Developer Certification of Origin (DCO)
Overview
Accepted licenses and copyright notices
Your own work
Use code from online source
Use MIT licensed code
Use GPL licensed code
Ways to contribute
Give LVGL a Star
Tell what you have achieved
Write examples
Improve the docs
Report bugs
Send fixes
Join the conversations in the Forum
Add features
Become a maintainer
Move your project repository under LVGL organization
Changelog
v8.2.0 31 January 2022
Overview
Breaking Changes
Architectural
New Features
Performance
Fixes
Examples
Docs
CI and tests
v8.1.0 10 November 2021
Overview
Breaking Changes
Architectural
New Features
Performance
Fixes
Examples
Docs
CI and tests
Others
v8.0.2 (16.07.2021)
v8.0.1 (14.06.2021)
v8.0.0 (01.06.2021)
Directory structure
Widget changes
New scrolling
New layouts
Styles
Events
Driver changes
Other changes
New release policy
Migrating from v7 to v8
v7.11.0 (16.03.2021)
New features
Bugfixes
v7.10.1 (16.02.2021)
Bugfixes
v7.10.0 (02.02.2021)
New features
Bugfixes
v7.9.1 (19.01.2021)
Bugfixes
v7.9.0 (05.01.2021)
New features
Bugfixes
v7.8.1 (15.12.2020)
Bugfixes
v7.8.0 (01.12.2020)
New features
Bugfixes
v7.7.2 (17.11.2020)
Bugfixes
v7.7.1 (03.11.2020)
Bugfixes
v7.7.0 (20.10.2020)
New features
Bugfixes
v7.6.1 (06.10.2020)
Bugfixes
v7.6.0 (22.09.2020)
New features
Bugfixes
v7.5.0 (15.09.2020)
New features
Bugfixes
v7.4.0 (01.09.2020)
New features
Bugfixes
v7.3.1 (18.08.2020)
Bugfixes
v7.3.0 (04.08.2020)
New features
Bugfixes
v7.2.0 (21.07.2020)
New features
Bugfixes
v7.1.0 (07.07.2020)
New features
Bugfixes
v7.0.2 (16.06.2020)
Bugfixes
v7.0.1 (01.06.2020)
Bugfixes
v7.0.0 (18.05.2020)
Documentation
Legal changes
New drawing system
New style system
GPU integration
Renames
Reworked and improved object
New object types
Others
Demos
New release policy
Migrating from v6 to v7
Roadmap
v8.2
Ideas
LVGL
»
Widgets
Edit on GitHub
Widgets
ΒΆ
Base object (lv_obj)
Core widgets
Extra widgets