Bento GUI
No reviews yet
The expressive GUI library from Bento Box
Provides a framework or library for other mods to use.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Bento GUI
Bento GUI is an expressive GUI library that makes building dynamic screens fast and easy. It is a replacement for Minecraft’s UI widgets that is inspired by HTML and CSS.
Features:
- Many UI elements provided out of the box
- Build elements using the builder pattern
- Robust layout engine with min/max and auto-computed dimensions
- Customizable element rendering
Bento GUI is documented in-code with JavaDocs and on my wiki.
@Environment(EnvType.CLIENT)
public class MyScreen extends Screen {
public MyScreen() {
super(Text.literal("My Screen"));
}
@Override
protected void init() {
Window window = client.getWindow();
int width = window.getScaledWidth();
int height = window.getScaledHeight();
// The root panel that will contain everything
Panel root = Panel.builder()
.dimensions(width, height)
.spacing(1)
.build();
// Add elements to root
Label title = Label.builder()
.text(Text.literal("My Screen"))
.dimensions(true, 32)
.build();
ScrollPanel body = ScrollPanel.ofMenu()
.dimensions(true, true)
.alignCenter()
.padding(10, 0)
.spacing(10)
.build();
Panel footer = Panel.builder()
.dimensions(true, 32)
.alignCenter()
.alignMiddle()
.padding(20, 0)
.spacing(8)
.flowAxis(FlowAxis.HORIZONTAL)
.build();
root.addChild(title);
root.addChild(body);
root.addChild(footer);
// Add elements to footer
TextField<String> searchField = TextField.ofString()
.palceholder(Text.literal("Search..."))
.width(true)
.maxWidth(200)
.build();
Button doneButton = Button.builder()
.text(Text.literal("Done"))
.onPress(self -> close())
.build();
footer.addChild(searchField);
footer.addChild(doneButton);
// Add root as drawable child
addDrawableChild(root);
}
}
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers