Strata UI
Building a mod menu usually means wrestling with vanilla screen classes, hand-placed widgets, and a lot of trial and error just to see whether your layout looks right. Strata UI takes a different route. It is a declarative UI library for Minecraft Fabric mods, written in Kotlin, that lets you describe screens as composable trees instead of imperative drawing code. The result is UI that is easier to read, easier to reuse, and testable without ever opening the game.
What Strata UI Actually Does
At its core, Strata UI separates your screen definition from the runtime that renders it. You compile ordinary mod source against the API only, then install a runtime that matches the active Minecraft version. That split is what makes headless testing possible: the same screen definition can run in a unit test or inside the Minecraft client, and it behaves the same way in both.
The library ships with a component catalog covering text, inputs, scrolling lists, images, and Minecraft inventory bindings. Layouts measure and place their children automatically, so you rarely need to compute coordinates by hand. Sizing, appearance, focus, and input behavior are applied through composable modifiers, which keeps screen code compact and predictable.
Components and Modifiers
- Layout containers such as columns and rows that handle measurement and placement.
- Interactive elements including buttons, text fields, and scrollable lists.
- Minecraft-specific bindings for inventory slots and item rendering.
- Modifiers for padding, size, menu backgrounds, and activation callbacks.
- Public Element and Node contracts you can extend for retained behavior.
Because everything is composable, you can build your own higher-level components on top of the primitives, or drop down to the lower-level contracts when you need retained state. A confirmation dialog, for example, is just a screen definition containing a column with a text label and a button whose activation callback runs your logic.
Supported Minecraft Versions and Loader
Strata UI targets the Fabric loader and tracks Minecraft releases closely. Supported versions include 1.20 through 1.20.6, the full 1.21 line from 1.21 up to 1.21.11, and the newer 26.1 and 26.2 releases. You install exactly one Strata runtime matching your client version, alongside Fabric Language Kotlin, and declare strata as a required dependency in your mod's fabric.mod.json. The API itself is version-independent, so most of your screen code never needs to change when you update.
If you would rather skip manual dependency juggling, the foxygame.net launcher handles it for you: its add-on catalog installs Strata UI with a single click, keeps the runtime matched to your selected Minecraft version, and applies updates automatically so your screens keep rendering after every game patch.
How to Install Strata UI
Getting started is straightforward for anyone comfortable with a Fabric development environment.
- Add the Strata API as a compile-only dependency in your build script.
- Add the runtime artifact for your target Minecraft version as a mod runtime dependency.
- Include Fabric Language Kotlin at a compatible version.
- Register strata as a required dependency in fabric.mod.json.
- Write your screen definitions against the API and open them through the runtime.
When you download Strata UI, pay attention to the artifact names and Java requirements listed on the compatibility page. Mixing a runtime built for one Minecraft version with a different client is the most common cause of a screen that simply refuses to open.
Testing Without Launching Minecraft
One of the strongest arguments for Strata UI for Minecraft developers is the headless test path. Since screen definitions do not depend on the client, you can assert layout and behavior in a normal test run. That shortens the feedback loop dramatically compared to restarting the game for every tweak, and it makes UI regressions far easier to catch before release.
Who Should Use It
Strata UI is aimed at Fabric mod developers who want structured, maintainable interfaces rather than one-off screen classes. If your mod has grown a pile of custom menus and you are tired of duplicating layout math, the declarative approach pays off quickly. Documentation, a Dokka API reference, reader guides, a component catalog with verified images, and a public authoring skill are all available to smooth the learning curve.
The library is not a drop-in replacement for vanilla screens, and it does require Kotlin familiarity. But for teams building anything beyond a single settings page, the combination of reusable components, composable modifiers, and headless testing makes Strata UI a genuinely practical foundation for Minecraft interface work.