Widget Support

See which Figma patterns convert into which LVGL widgets today, and which ones are on the way, so you know what to expect before you export.

Not every layer needs to become something special. Most come across as plain containers and text. But when a layer is really a control (a slider, a switch, a checkbox), you tell the plugin so in Annotate mode, and the converter turns it into the matching LVGL widget.

This page is the reference for that mapping: what converts today, what each widget is meant for, and what's still coming.

The widget picker showing grouped widget types
You choose a widget in the picker in Annotate mode. Items that convert are selectable; ones still in progress appear dimmed.

What converts today

The picker groups widgets into four families (Basic, Controls, Display, and Entry), the same grouping you see in Annotate mode. Everything in the tables below is built into the converter and produces real LVGL output now.

Basic

The everyday building blocks: containers, text, and images.

Pick thisBecomesWhat it's forYou'd usually draw it in Figma as
Objectlv_objA plain container or panel that groups other layersAny frame or rectangle you use to box things together
Labellv_labelOn-screen textA text layer
Buttonlv_buttonA tappable controlA frame or rectangle with a label, often with variants for its states
Imagelv_imageA picture or photoA layer with an image fill
Image (Icon)lv_imageA line or monochrome iconA vector layer: the plugin uses the vector inside as the icon's source

Controls

Interactive widgets the user drives, the ones you'll most often point at live data.

Pick thisBecomesWhat it's forYou'd usually draw it in Figma as
Sliderlv_sliderDrag to set a value in a rangeA track with a handle
Switchlv_switchAn on/off toggleA pill-shaped toggle, often two variants
Checkboxlv_checkboxA checked / unchecked boxA small box next to a label
Dropdownlv_dropdownPick one option from a listA field that opens a list of choices

Display

Widgets that show a value or status but aren't dragged by the user.

Pick thisBecomesWhat it's forYou'd usually draw it in Figma as
Barlv_barA progress or level indicator (read-only)A track with a filled portion
QR Codelv_qrcodeA scannable codeA placeholder square

Entry

Widgets for typing or entering values.

Pick thisBecomesWhat it's forYou'd usually draw it in Figma as
Text Arealv_textareaAn editable text fieldAn input field with placeholder or entered text

Pointing widgets at live data

Many of these widgets can watch a value that changes while the UI runs, instead of showing whatever you typed in Figma: a label's text, a slider's value, a switch's on/off. You set that up on the summary card under Subject Binding; Subjects & data binding covers which widget binds to what and how the value is formatted.

On the way

A handful of widgets appear in the picker but show up dimmed. You can see them, but you can't pick them yet. They're planned and we will be rolling these out soon.

When a layer isn't a widget

Most of your file is exactly this case, and that's fine. Any layer you don't annotate (a background, a divider, a decorative shape) still converts. It just comes across as a plain Object (lv_obj) or a Label, carrying its size, position, and style. You only reach for the picker when a layer is genuinely a control and you want it to behave like one.

Last updated on

On this page