Themes
Add a colour set, a family or an accent as a data file, and give your mod its own look.
What a theme is
A family gives the shapes: frames, bevels, buttons. A chroma gives the colours. The variant is light, dark or auto. Any chroma dresses any family.
Both are data files under assets/<namespace>/minuit/, in a mod jar or a resource pack. F3+T reloads them. The kit ships bedrock, slate, glass, bubbly and soft.
Add a chroma
Copy the kit's lilac.json to assets/mypack/minuit/chromas/moss.json and change the values:
{"order": 0,
"variants": {
"light": {"surface": "#FFEBE3F7", "text": "#FF271D3B", "primary": "#FF6236C4", "...": "..."},
"dark": {"surface": "#FF1E1830", "text": "#FFF1EBFF", "primary": "#FFA98BFF", "...": "..."}}}Each variant lists every Palette role, as #RRGGBB or #AARRGGBB. One variant is enough.
Add a family
assets/mypack/minuit/themes/moss/family.json:
{"style": "slate", "order": 80, "chromas": ["moss", "teal"],
"override": {"light": {"surface": "#99"}}}style names a drawing style from FrameStyles; a new shape needs Java. The first of chromas is the default. override changes roles in every chroma the family draws; "#AA" sets only the alpha.
Add an accent
{"order": 70, "light": "#FF4D7C0F", "dark": "#FF84CC16"}Put it at assets/mypack/minuit/accents/moss.json. The picker shows it after the built-ins. Names come from lang keys, listed on Words.
Give your mod its look
Themes.register(Themes.defaultTheme().as("mymod")); // the kit's default
Themes.register(Themes.LEATHER.withIcon(Icon.CLOSE, myArt).as("mymod")); // a preset with your icon
new ThemeScreen(parentScreen, "mymod"); // the theme page for your modRegister at client init. The registered theme holds until the player picks one. A family.json with "private": true in your namespace shows only on your theme page.