Skip to content

Add Windows 11 Mica backdrop effect#84

Merged
PaintNinja merged 6 commits intoMinecraftForge:2.0from
PaintNinja:mica-bg-2
Mar 31, 2026
Merged

Add Windows 11 Mica backdrop effect#84
PaintNinja merged 6 commits intoMinecraftForge:2.0from
PaintNinja:mica-bg-2

Conversation

@PaintNinja
Copy link
Copy Markdown
Contributor

A fun side-project I've been working on explored how viable it is to get legacy Swing looking more modern on Windows using Java 22+'s new FFM and FFI APIs. It was more work than expected due to some of Swing's limitations and default behaviours getting in the way, but I got there in the end!

forge-installer-mica

See the code comments and javadocs for explainers on how it works and why certain things are done. Requires running the installer with Java 22 or newer on Windows 11 for the new UI to show - older Javas and other OSes should be unaffected. I could've used JNA to support older Java, but didn't want to inflate the jar's filesize and figured it was a good opportunity to learn the new FFM & FFI APIs anyway.

@LexManos
Copy link
Copy Markdown
Member

So I am an old man and pretty blind. Do I dont really notice much difference. And am not really a fan of the "modern" UI look.
But here is a side by side comparison:

Tho this does open up the discussion on if we want to rework how the installer UI looks.
Making it thinner by making the icon smaller or have less of a side padding.
Maybe dark mode.
Talking on discord it may be a lot of code, so not worth it.
But worth talking about.

@PaintNinja
Copy link
Copy Markdown
Contributor Author

The Discord convo for reference: https://discord.com/channels/1129059589325852724/1129095235889270844/1488278960914563334

Redesigning the UI more is tempting but more work, I think this is a good checkpoint, with components being resized and moved around in a separate PR. The Mica effect only applies when transparency is enabled, but with it disabled the titlebar at least blends with the background now.

Dark mode is doable, but in Swing it'll involve custom UI components emulating native WinUI ones for everything because it uses legacy Win32 components instead of WPF or WinUI... so didn't bother for now. Swing's default buttons and textboxes look a bit off in light mode Mica but close enough to native that we can get away with not needing lots of custom code.

@LexManos
Copy link
Copy Markdown
Member

LexManos commented Mar 30, 2026

Just to be clear, im a long standing pessimist. And a old man who doesnt like "modern" UIs. I dont fully see the benifit of this.

However, it works in my testing, and im not opposed to trying to make the installer look better. Im hoping this might be a jumping off point to make a better UI. The old swing one is "it works and i dont wanan spend time on it right now" thats lasted a decade.

So consider this aprooved.

@PaintNinja PaintNinja merged commit 8503384 into MinecraftForge:2.0 Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants