minuit

minuit UI components for Minecraft mods.

Let your players pick their theme.

Settings panel with toggles, a slider and a dropdown
Confirm dialog with a destructive Delete button
Map vote reel with a Spin button
Tabs General, Display, Controls
Quantity stepper
Form with two text fields and Save
Colour picker
Draggable tool window
Toggle groups for view mode and sort order
Online players with skin heads and status dropdowns
Notification toggles
Radial quick menu
Two loading bars

Every card runs minuit itself (the same as in Minecraft).

Depend on it

Add minuit as a required dependency. The API stays the same through 1.x.

NeoForge

neoforge.mods.toml
[[dependencies.mymod]]
modId = "minuit"
type = "required"
versionRange = "[1.0,2.0)"
side = "CLIENT"

Fabric

fabric.mod.json
"depends": {
  "minuit": ">=1.0.0 <2.0.0"
}

A screen is a PanelComponent subclass. It holds no Minecraft class, so a test can draw it into an image without starting the game. In game, a MinuitScreen hosts it, and Themes.byId("mymod") returns the look the player chose for your mod.

SettingsPanel.java
public class SettingsPanel extends PanelComponent {
    public SettingsPanel(Theme theme, Words words, int left, int top) {
        super(theme, words, left, top);
        add(new ToggleComponent(at(new Box("coords", 10, 10, 160, 12)), "Show coordinates", true, on -> { }));
        add(new SliderComponent(at(new Box("render", 10, 28, 160, 12)), 2, 32, 12, v -> { }));
        add(new ButtonComponent(at(new Box("done", 10, 50, 80, 16)), "Done", this::done)
                .role(ButtonComponent.Role.PRIMARY));
    }

    @Override public int width() { return 180; }
    @Override public int height() { return 76; }
}

Components

The Java to copy, in every theme.

Use with an AI assistant

Prompt
Read https://minuit.dryaides.com/llms-full.txt and build my mod's screens with the minuit library (PanelComponent, MinuitScreen).

The short index is at llms.txt; each component page also exists as Markdown.