Graphene

Graphene

Graphene is a client-side UI library for Minecraft (Fabric) that lets mod developers build interfaces with web technologies.

by
295 Downloads
fabriclibrarytechnologyutility
Rent Server with this Mod

Screenshots

Graphene Demo Screen

About this Mod

Graphene

Graphene is a client-side UI library for Minecraft 1.21.11 (Fabric) that lets mod developers build interfaces with web technologies.
It embeds Chromium through JCEF, so you can render HTML/CSS/JavaScript UIs in-game while keeping a clean Java API for mod integration.

demo

What is Graphene?

Graphene bridges Minecraft modding and modern web UI development.

Instead of writing every screen directly with Minecraft rendering primitives, you can:

  • build rich, responsive interfaces using browser capabilities;
  • connect those interfaces to your mod logic through Graphene's API;
  • iterate on UI faster with familiar web tooling and patterns;
  • keep the integration focused on Fabric + Minecraft 1.21.11.

In short: Graphene gives Fabric mods a practical way to use web-powered interfaces without reinventing a full UI stack inside the game.

Requirements

  • Java: 21
  • GPU: NVIDIA GeForce GT 720 or better
  • For macOS users: macOS 12 (Monterey) or later

Supported Platforms

  • macOS: arm64, amd64
  • Linux: arm64, amd64
  • Windows: amd64, arm64

Tested Platforms

  • Windows 11 with AZERTY and QWERTY keyboard layouts
  • Linux (Wayland) with AZERTY and QWERTY keyboard layouts
  • macOS 26 with QWERTY keyboard layout (thanks to @Thinkseal for testing on macOS)

Installation

Graphene is published on Maven Central and GitHub Packages.

We recommend using Maven Central for ease of use.

Check Maven Central for the latest version.

Maven coordinates

<dependency>
  <groupId>io.github.trethore</groupId>
  <artifactId>graphene-ui</artifactId>
  <version>&lt;version&gt;</version>
</dependency>

Add Graphene to a Fabric Gradle project

Primary model (recommended): keep Graphene as a separate mod dependency.

repositories {
    mavenCentral()
}

dependencies {
    modImplementation("io.github.trethore:graphene-ui:<version>")
}

In your fabric.mod.json, declare:

{
  "depends": {
    "graphene-ui": ">=<version>"
  }
}

At runtime, place both jars in mods/: your mod jar and graphene-ui-<version>.jar.

Jar-in-jar embedding is also possible, but it is not the preferred default. See the installation guide for trade-offs and setup details.

Initialize Graphene in your mod

Register your mod from onInitializeClient() with an anchor class. Graphene resolves the owning Fabric mod id from that class, and you can later resolve the scoped GrapheneHandle from the same anchor class:

import net.fabricmc.api.ClientModInitializer;
import tytoo.grapheneui.api.GrapheneCore;

public final class MyModClient implements ClientModInitializer {
    @Override
    public void onInitializeClient() {
        GrapheneCore.register(MyModClient.class);
    }
}

Optional runtime configuration

Graphene separates per-consumer container settings from shared runtime settings.
jcefDownloadPath(...) is a base directory, and Graphene installs JCEF under <jcef-mvn-version>/<platform>.

import java.nio.file.Path;
import net.fabricmc.api.ClientModInitializer;
import tytoo.grapheneui.api.GrapheneCore;
import tytoo.grapheneui.api.config.GrapheneConfig;
import tytoo.grapheneui.api.config.GrapheneContainerConfig;
import tytoo.grapheneui.api.config.GrapheneGlobalConfig;
import tytoo.grapheneui.api.config.GrapheneHttpConfig;
import tytoo.grapheneui.api.config.GrapheneRemoteDebugConfig;

public final class MyModClient implements ClientModInitializer {
    @Override
    public void onInitializeClient() {
        GrapheneCore.register(
                MyModClient.class,
                GrapheneConfig.builder()
                        .container(GrapheneContainerConfig.builder()
                                .http(GrapheneHttpConfig.builder()
                                        .bindHost("127.0.0.1")
                                        .randomPortInRange(20_000, 21_000)
                                        .fileRoot(Path.of("C:/dev/my-ui-dist"))
                                        .spaFallback("/assets/my-mod-id/web/index.html")
                                        .build())
                                .build())
                        .global(GrapheneGlobalConfig.builder()
                                .jcefDownloadPath(Path.of("./graphene-jcef"))
                                .extensionFolder(Path.of("./config/my-mod/extensions"))
                                .remoteDebugging(GrapheneRemoteDebugConfig.builder()
                                        .randomPort()
                                        .allowedOrigins("https://chrome-devtools-frontend.appspot.com")
                                        .build())
                                .build())
                        .build()
        );
    }
}

Use the handle for namespaced helpers:

import tytoo.grapheneui.api.GrapheneCore;
import tytoo.grapheneui.api.GrapheneHandle;

GrapheneHandle graphene = GrapheneCore.handle(MyModClient.class);

String appUrl = graphene.appAssets().asset("web/index.html");
String mountedHttpUrl = graphene.httpUrl("web/index.html");

Documentation

Start here.

Contributing

Contributions are welcome.

  • Report bugs or request features in Issues
  • Open changes through Pull Requests
  • Please test changes before submitting them

License

Licensed under the MIT License.

Available Versions

Graphene 1.7.2release
MC 1.21.11fabric
April 10, 2026
Graphene 1.7.0release
MC 1.21.11fabric
April 6, 2026
Graphene 1.6.3release
MC 1.21.11fabric
March 27, 2026
Graphene 1.6.2release
MC 1.21.11fabric
March 24, 2026
Graphene 1.6.1release
MC 1.21.11fabric
March 23, 2026

How to Install Graphene on Your Server

1

Order Server

Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).

2

Set fabric Loader

In the panel under "Egg", select the fabric loader and matching Minecraft version (1.21.11).

3

Install Mod

Open the mod browser in the dashboard and search for "Graphene". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

fabric

Minecraft Versions

1.21.11

Server-side

Unsupported

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Graphene server crashes on startup – what to do?

Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.11). You can switch loaders with one click in the panel.

Is Graphene compatible with fabric?

Graphene officially supports fabric for Minecraft 1.21.11. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Graphene – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Graphene consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install Graphene with just one click on your server.

Recommended RAM
4 GBab €8/mo
Min. 3 GB | +1 GB pro 8 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
MIT License
Server-side
Unsupported

Supported Versions

1.21.11