Standalone repository for ui_designer.
This repository tracks the EmbeddedGUI SDK as a pinned submodule at sdk/EmbeddedGUI.
The default SDK resolution order is:
--sdk-rootEMBEDDEDGUI_SDK_ROOTsdk/EmbeddedGUI- sibling
../EmbeddedGUI
Release packaging bundles the resolved SDK into the app and writes source-path plus git revision metadata to sdk/EmbeddedGUI/.designer_sdk_bundle.json inside the packaged output. The packaged UI also shows the bundled SDK revision so users can see which SDK commit a verified executable was built against.
- Initialize or update the SDK submodule:
git submodule update --init --recursive - Install Python dependencies:
python -m pip install -r ui_designer/requirements-desktop.txt
If you do not want to use the submodule checkout locally, EMBEDDEDGUI_SDK_ROOT or a sibling ../EmbeddedGUI checkout still works.
- Run tests:
python scripts/ui_designer/run_pytest.py - Run preview smoke:
python scripts/ui_designer_preview_smoke.py --sdk-root sdk/EmbeddedGUI - Build package:
python scripts/package_ui_designer.py --sdk-root sdk/EmbeddedGUI - Inspect local repo health:
python scripts/ui_designer/repo_doctor.pypython scripts/ui_designer/repo_doctor.py --strictpython scripts/ui_designer/repo_doctor.py --critical-onlypython scripts/ui_designer/repo_doctor.py --blocked-onlypython scripts/ui_designer/repo_doctor.py --summary
Detailed Chinese usage guide with real UI screenshots:
doc/README.mddoc/source/ui_designer/README.md
Repository distribution releases are handled outside the Designer UI through GitHub Actions.
Push a version tag such as v0.1.0, and the Designer Release workflow will:
- build the Windows package on
windows-latest - run package preflight checks and build
dist/EmbeddedGUI-Designer/EmbeddedGUI-Designer.exe - archive the full runtime folder as
EmbeddedGUI-Designer-windows-x64-<tag>.zip - create or reuse the matching GitHub Release and upload the zip,
designer-package-metadata.json,repo-health.json, andSHA256SUMS.txt
The published asset is a zip package that contains the runnable EmbeddedGUI-Designer.exe together with its required runtime files and bundled SDK.
- Inspect a packaged app or bundled SDK directory:
python scripts/ui_designer/inspect_release.py dist/EmbeddedGUI-Designer --json
Packaged Designer builds also include:
.designer_build_info.jsonin the app root.sdk/EmbeddedGUI/.designer_sdk_bundle.jsonwhen SDK bundling is enabled.- CI package builds also upload
dist/designer-package-metadata.jsonfor quick SDK/version inspection. - CI jobs also upload
build/repo-health.jsonso submodule and workspace health are inspectable from artifacts.
This repository is now the maintenance home for the design-conversion toolchain. Run these commands from the repository root:
- HTML or JSX layout analysis:
python scripts/html2egui_helper.py extract-layout --input design.html - Create a Designer project:
python scripts/html2egui_helper.py scaffold --app MyApp --width 320 --height 480 - Generate code and resources:
python scripts/html2egui_helper.py generate-code --app MyApppython scripts/html2egui_helper.py gen-resource --app MyApp - End-to-end Figma Make pipeline:
python figmamake/figmamake2egui.py --project-dir figma_make_project --app MyApp
The SDK is resolved from --sdk-root, EMBEDDEDGUI_SDK_ROOT, the bundled sdk/EmbeddedGUI submodule, or a sibling ../EmbeddedGUI checkout.
The resource panel now includes Fonts -> Generate Charset... for creating project-local font text resources without hand-maintaining .txt files.
- Built-in presets include printable ASCII,
GB2312symbol/level-1/level-2 sets, fullGB2312, and fullGBK. - Generated files are written to
.eguiproject/resources/*.txt, then flow through the existing resource sync andapp_resource_config.jsongeneration path. Save and Bind Current Widgetalso assigns the generated text file to the selected widget'sfont_text_file.
More detail: docs/FONT_CHARSET_GENERATOR.md
The Build -> Resource Generator... entry opens a standalone editor for app_resource_config.json.
- It can be used without opening an
.eguiproject first. - It supports
New,Open,Save,Save As, merged preview, and direct resource generation. - It now provides
SimpleandProfessionalmodes so quick asset setup and detailed config editing can coexist in the same window. - Known sections currently have structured editors for
img,font, andmp4. Simplemode groups actions intoImport & Setup,Batch Fixes,Preview & Open,Image Tools, andSelectionpanels for a more guided workflow.Simplemode adds quick helpers for importing individual images/fonts/videos, scanning an asset folder, packing external assets intoSource Dir, organizing linked assets into standard source folders, auto-generating sample font text files from current resource names, renaming asset names from filenames, auto-creating missing font text files, refreshing font text links and video metadata from files, generating batch thumbnails, generating placeholder PNGs for missing image assets, adding simple image borders, background fills, rounded corners, and opacity variants, normalizing images into PNG copies, compressing images into lighter PNG copies, pre-rendering font previews into PNG samples, cleaning default helper output folders, sorting, deduplicating, and cleaning missing assets, auto-filling missing names and metadata, generating font text files, and opening or creating linked font text resources.Simplemode also previews the selected asset, opens or exports a preview board for all imported assets, renders font samples directly in the window, auto-detects video fps and size, and can open asset folders plus duplicate, remove, open, resize, rotate, flip, or crop images for quick touch-up.- Generation uses an explicit path model:
Config,Source Dir,Workspace, andBin Output. - When
resource/src/.designer/app_resource_config_designer.jsonexists next to the config, the window shows the merged effective view without modifying the designer-owned overlay. - The standalone generator may stage a temporary merged config under the active workspace
src/.designer/.app_resource_config_merged.jsonwhile building resources, then removes it after generation finishes.
More detail: docs/RESOURCE_GENERATOR.md
- Move the submodule to the SDK revision you want to verify:
git submodule update --remote sdk/EmbeddedGUI - Re-run Designer verification against that SDK revision.
- Commit both
.gitmodulesand the updatedsdk/EmbeddedGUIgitlink.