The GUI recolour that survives every bevel: brightness, not flat fill
Painting a flat colour over Minecraft's inventory kills every shadow and highlight. The GUI Colorizer keeps them by driving the gradient from brightness instead.
Every hand-edited GUI pack fails the same way: someone opens the inventory texture, floods the grey background with a flat colour, and the result looks like a sticker. The slots lose their inset shadow, the hotbar selection loses its rim, and the XP bar turns into a solid stripe. The GUI Colorizer avoids that by recolouring through brightness rather than replacing pixels.
Why a flat fill destroys the GUI
Minecraft's interface textures are not flat colour plus outlines. Each slot, button and panel is a small greyscale image where the value of each pixel encodes depth. Slots are sunken — darker along the top-left edge, lighter along the bottom-right — while panels and buttons are raised, lit at the top-left and shadowed at the bottom-right, with a mid-tone body. An 18x18 slot sprite is 324 pixels, and most of them differ from their neighbours by only a few steps.
Replace all 324 with one RGB value and you have thrown away the only channel carrying the bevel. What you want is to keep the luminance relationships and swap the hue underneath them.
Brightness as the gradient driver
The tool reads each pixel's brightness, maps that brightness onto a gradient you choose, and writes the result back. A dark pixel at the top of a slot stays dark — it just becomes dark blue instead of dark grey. A highlight stays a highlight.
That is why a short gradient is enough — the tool uses three stops for panels and two for the selector and the XP bar:
| Brightness band | What it is in the source texture | What it becomes |
|---|---|---|
| Low | Bevel shadow, slot inset | Darkest stop |
| Mid | Panel body, button face | Midpoint of the ramp |
| High | Highlight, hover rim | Lightest stop |
Pick stops that run from dark to light and the bevels survive. Pick stops that are close in luminance and every shade of the original lands on nearly the same colour — which brings back the flat-sticker problem from the other direction.
What you can and cannot recolour this way
Covered by the tool: the inventory screen, chest and furnace containers, the hotbar, and the XP bar. These are the surfaces players stare at constantly, which is exactly why a bad recolour is so visible.
Not covered, and worth knowing before you promise anything: world textures. A redstone resource pack, an armour texture pack or an elytra texture pack is a different job — those are block and entity atlases with their own layout rules, and no brightness ramp will fix a misaligned armour trim.
Java and Bedrock diverge here
Both editions ship GUI textures inside a resource pack, but the pack layout is not interchangeable. A Java pack uses assets/minecraft/textures/gui/ with a pack.mcmeta declaring its format range (min_format/max_format on 26.x); Bedrock uses a different folder root and its own manifest JSON. A pack built for one will not load in the other, so decide the target edition before you start tuning the gradient.
Practical order of operations
- Choose the gradient, not the final colour: a dark stop, a light stop, and your hue between them.
- Apply, download the pack, drop it in the resource packs folder.
- Check the inventory, a chest, a furnace and the hotbar in one session — a ramp that looks right on the inventory can wash out the furnace's fuel arrow.
- Only then narrow the spread if the bevels read too harsh, or widen it if they read too flat.
Build the gradient once and let brightness do the shading in the GUI Colorizer.