PineappleUI
On this page
UI transpiler experiment
PineappleUI is my experiment in describing desktop interfaces with HTML/CSS-like layouts and generating native Java Swing code. It connects an interface vocabulary familiar from web development with a desktop UI target.
The current documented target is Swing. The source describes support for common components, containers, layout, styling and event integration. The useful question is not whether a web page can simply become any application, but which parts of an interface description can be mapped clearly to the supported target.
What the project does
- Describe an interface in a .pineui file.
- Generate Java Swing code from the supported interface description.
- Use the documented compile/run command to explore the generated result.
- Keep target-specific behavior visible rather than assuming every HTML or CSS feature is portable.
Environment and requirements
Python for the transpiler and a suitable Java environment for compiling or running generated Swing code. Check the repository for its current setup requirements.
Getting started
The README’s starting command is python main.py myui.pineui --compile --run. Begin with a small layout and inspect the generated Java before expanding it. This is a development workflow, not a Minecraft mod installation: the input file belongs to the transpiler, not a mods or plugins directory.
Scope, limitations and attribution
JavaFX, Android XML and other UI frameworks are listed as future targets, not working features claimed here. Treat this as an experimental tool, verify the supported syntax in the repository and test generated code before relying on it in an application.
Project sources
Reviewed repository documentation · reviewed on . Follow the linked source for the project’s current scope.
Related work

Published on Modrinth
HomeGUI
A Fabric mod that turns a server’s home commands into a searchable client-side interface.
JavaBrowser-based projection tool
BTE Distorsion Calculator
A web interface for exploring the relationship between geographic distances and local scale in a BTE projection.
JavaScriptPaper tutorial plugin
TraceBTE
An interactive server-side tutorial connecting geographic coordinates, building footprints and WorldEdit.
Java