minuit

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:

moss.json
{"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:

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

accents/moss.json
{"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

Java
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 mod

Register 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.