Updating & File Ownership
Re-export as often as you like: the service regenerates its own files while leaving anything you've taken over untouched, so your hand edits are always safe.
You'll export more than once. A design changes, you tweak a screen, you re-run the export, and the service writes over the project again. This page explains exactly what gets rewritten, what gets left alone, and how you keep a file for yourself once you've started hand-tuning it.
Regenerate, not diff
Every export regenerates the files it owns from the current Figma design. The service doesn't compare old output against new and merge the difference. It rebuilds the owned files from scratch each time.
- Input changed → owned files are rewritten. Whatever the design says now is what lands on disk.
- No output diffing. There's no three-way merge, no conflict markers, no partial patch. A regenerated file fully replaces its previous contents.
- Scope decides reach. Each export action only touches what it's responsible for:
- All Globals rewrites
globals.xml. - All Components rewrites every component under
components/(and re-emits tokens soglobals.xmlstays consistent). - Selected Screens rewrites just the screens you selected plus the components those
screens reference, and adds the tokens they use to
globals.xml.
- All Globals rewrites
The ownership gate
This is the core rule. Every file the service writes starts with a two-line header comment. The first line marks the file as generated, the second tells you how to claim it:
<!-- Generated by LVGL Figma Flow | This file is OWNED_BY=FIGMA -->
<!-- Change to OWNED_BY=USER to take ownership and prevent regeneration -->
<component>
<!-- ...generated content... -->
</component>While the header reads OWNED_BY=FIGMA, the service owns the file and will rewrite it
on the next export that covers its scope. That word is the switch: it's what tells the
writer "this file is mine to regenerate." (The comments are plain XML that LVGL ignores,
so they never affect how your UI compiles.)
Taking over a file
When you want to hand-tune a generated file and keep your edits, you take it over by
switching its header from OWNED_BY=FIGMA to OWNED_BY=USER.
Flip the marker. In the file's header comment, change OWNED_BY=FIGMA to
OWNED_BY=USER. (The second header line spells out this exact step, right in the file.)
Edit freely. The file is now yours. Restructure it, add widgets, hand-write styles, whatever you need.
Re-export whenever you want. On every future export, the service sees OWNED_BY=USER
and skips the file entirely. Your edits stay exactly as you left them.
This is the "don't clobber developer edits" guarantee: ownership is opt-out per file, and
it stays opted out until you decide to hand the file back: switch the marker back to
OWNED_BY=FIGMA, or delete the file and the next export re-creates it fresh.
Skipped means skipped. Once you flip the marker to OWNED_BY=USER, the service stops
regenerating that file, so later design changes to that screen or component won't
flow into it anymore. Take over only the files you truly need to own by hand.
Stable names across exports
Re-exports don't churn names. The service claims component, screen, and widget names
(plus the image references it has used) cumulatively, and persists those claims in the
project's internal .lvgl-flow/ state.
Where to next
Last updated on
Output Structure
A map of everything the service writes to disk when you export: which files are yours, which are generated, and where fonts and images land.
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.