Tags
Creators
Details
4.0.0+26.2
Compatibility
Required content
Changes
4.0.0: Vanilla draws every slot. MenuKit no longer runs a slot pass of its own on container screens. A created slot's panel writes the position into vanilla's Slot.x and Slot.y before the slot pass, and vanilla draws the item, count, hover and ghost icon for created and vanilla slots alike. The practical result: a mod that decorates slots through an extractSlot mixin now marks created slots too, without depending on MenuKit. A panel still hides exactly what it covers, like paint: flow panels are composited between the vanilla slots and the created slots inside vanilla's own slot pass, so a panel over part of a vanilla slot hides that part and no more, and a created slot's item still draws over the chrome of the panel that hosts it.
Frame composition order on container screens is declared in one class, ContainerScreenLayers. Flow panels sit below the slot pass; overlay panels and the modal dim sit above it. Panels on recipe-book screens no longer render twice per frame, and the recipe-book render mixin is gone.
Breaking: CreatedSlotResolver now returns the in-menu Slot rather than a position. SlotRendering keeps only the frame helper. Update any code that called either.
3.1.0: Button and Toggle accept a secondary-click handler (onSecondaryClick) that receives a Click with the button and modifier state (right, middle, shift+right); clicks with no handler still fall through to vanilla. Both also take a per-frame tint supplier (tint) for consumer-driven state such as a pinned mode. No breaks.
3.0.0: the Java package is now com.trevlar.menukit (was com.trevorschoeny.menukit); update imports. MenuKit and MenuKit: Containers now share one repository and one set of docs at github.com/trevorschoeny/menukit. No class or method names changed.
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:OoIhZU0o"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:3vGajyPr:OoIhZU0o"
}

