Bento GUI
An expressive GUI library inspired by HTML that I built from scratch using the builder pattern. No more will you have to suffer dealing with Minecraft's UI widgets. Simply build your elements, add them as children to panels, and the system will automatically lay them out according to their constraints like min/max dimensions and alignments.
Label title = Label.builder()
.text(Text.translatable("config." + config.getModId() + ".title"))
.dimensions(true, 32) // Fixed height of 32, width expands to fill
.build();
Panel body = Panel.ofMenu()
.dimensions(true, true) // Width and height expand to fill
.alignCenter()
.padding(10, 0) // Padding of 10 on the X axis
.spacing(10) // Spacing of 10 between children
.displayAxis(Panel.DisplayAxis.HORIZONTAL)
.build();
Panel footer = Panel.builder()
.dimensions(true, 32) // Fixed height of 32, width expands to fill
.alignCenter()
.alignMiddle()
.padding(20, 0) // Padding of 20 on the X axis
.spacing(8) // Spacing of 8 between children
.displayAxis(Panel.DisplayAxis.HORIZONTAL)
.build();
External resources
Project members

Chai
Member
Technical information
License
LGPL-3.0-only
Client side
required
Server side
unsupported
Project ID
