Links
Tags
Creators
Details
1.0.0
Compatibility
Required content
Changes
MenuKit 1.0.0
First stable release. Marks the split of the original MenuKit into two focused artifacts:
- MenuKit (this mod): client-only UI library. HUD panels, widgets, layouts, modal overlays on vanilla menus, region anchoring.
- MenuKit: Containers: slot extension, depends on MenuKit. Custom container menus, per-slot state, slot-group regions.
Upgrading from 0.1.x
If your mod uses MenuKit 0.1.x and you depend on:
- HUD panels, widgets, layouts, modal overlays, region anchoring: MenuKit 1.0.0 alone is enough.
- Custom container menus, per-slot state, slot-handler-side machinery: also depend on MenuKit: Containers 1.0.0 (it transitively pulls in MenuKit, so a single dependency is enough).
The two artifacts are partitioned by side: MenuKit is environment: "client"; MenuKit: Containers is universal (both client and server). The dependency direction is one-way and gradle-enforced.
Highlights since 0.1.x
- Two-artifact partition (above).
- Multi-key keybind combos (up to 3 keys) ambient on all
KeyMappings via theMKKeybindExtduck interface. - Universal cursor capture compensating for vanilla's window-center cursor teleport on screen transitions.
- Region anchoring system: eight edge regions plus CENTER, deterministic stacking across mods.
- Element library:
Button,Toggle,Checkbox,Radio,RadioGroup,Icon,Divider,ItemDisplay,ProgressBar,Slider,TextField,TextLabel,Tooltip,ScrollContainer,Dropdown. - HUD panels (
MKHudPanel.builder(...)) with dynamicSupplier-driven content. - Auto-wrap text labels and auto-scroll containers.
- Recipe-book-aware layout.
- Internal-API boundary marked with
@ApiStatus.Internal. The public consumer surface is everything not so marked.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:3vGajyPr:D5ikz1Hr"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:3vGajyPr:D5ikz1Hr"
}

