Modern UI

Modern UI

Modern desktop graphics application framework and low-level 3D graphics engine

11.3M downloads
Created Apr 9, 2026
by BloCamLimb

About

logo

Modern UI by Icyllis Milica

 

Description:

Modern UI (by Icyllis Milica) is a desktop application framework designed for standalone 2D and 3D rendering software development. It makes use of modern 3D graphical APIs and technologies to provide real-time rendering with high performance. For good measure, Modern UI improves and optimizes a set of features used by Google Android and its own set of internationalization supporting text engine.

Modern UI for Minecraft, is a Minecraft Mod that is based on Modern UI Core Framework and Modern UI Core Extensions. It provides Modern UI bootstrap program in Minecraft environment and Modding API based on Forge/Fabric, to make powerful Graphical User Interface in Minecraft.

For client, press Ctrl+K or ⌘+K (by default) to open Action Center screen to configure Modern UI. (Note that you can swipe the Preferences screen to configure fonts)

This Mod also includes a powerful text layout engine and text rendering system designed for Minecraft. This engine provides appropriate methods for processing Unicode text and gives you more readable text in any scale, in 2D/3D. In details:

  • Real-time preview and reload TrueType/OpenType fonts
  • A better font fallback implementation
  • Anti-aliasing text and FreeType font hinting
  • Use improved SDF text rendering in 2D/3D (also use batch rendering)
  • Compute exact font size in device space for native glyph rendering
  • Use Google Noto Color Emoji and support all the Unicode 15.1 Emoji (September 12, 2023)
  • Configurable bidirectional text heuristic algorithm
  • Configurable text shadow and raw font size
  • Unicode line breaking and CSS line-break & word-break
  • Fast, exact and asynchronous Unicode text layout computation
  • Faster and more memory efficient rectangle packing algorithm for glyphs
  • Use real grayscale texture (1 byte-per-pixel, whereas Minecraft is 4 bpp)
  • Compatible with OptiFine, Sodium (Rubidium), Iris (Oculus) and many mods
  • Compatible with Minecraft's JSON font definition (bitmap fonts, TTF fonts)

Additionally, this Mod provides many utilities which improve game performance and gaming experience. Currently, we have:

  • Changing screen background color
  • Gaussian blur to screen backdrop image
  • Fade-in animation to screen background
  • More window modes: Fullscreen (borderless), Maximized (borderless)
  • Framerate limit and master volume fading on window inactive (out of focus) and minimized
  • Pausing single-player game when Inventory is open
  • Changing GUI scale option to Slider and providing hint text
  • Playing a "Ding" sound when Minecraft loads and reaches the Main Menu
  • Enabling smooth scrolling in Vanilla's Selection List and Forge's Scroll Panel
  • Pressing "C" to Zoom that is the same as OptiFine
  • Undo/Redo (Ctrl+Z/Ctrl+Y) and Unicode grapheme/word iterator for all text fields
  • Playing local music, allowing to seek and view spectrum
  • Support Discord/Slack/GitHub/IamCal/JoyPixels emoji shortcodes in Chatting
  • A fancy tooltip style
    • Choose rounded border or normal border (with shadow effect)
    • Add title break and control title line spacing
    • Auto line wrapping and auto vertical scrolling when out of screen
    • Center the title line, support RTL layout direction
    • Exactly position the tooltip to pixel grid (smooth movement)
    • Change background color and border color (with gradient and animation)  

Core Features:

  • 2D Graphics Library of Multiple Graphics APIs
  • Intermediate Representation and ASTs of Shading Languages
  • Symbolic distance function and vector graphics rendering
  • Image post-processing effects
  • Fast matrix and vector calculation
  • Image format conversion
  • Animation and transition framework
  • Event loop and multi-threading framework
  • Text shaping and complex text layout engine
  • MVVM and lifecycle handling
  • Automatic RTL (right-to-left) UI layout
  • Markdown (CommonMark) rendering support  

Modern Text Engine for Minecraft:

  • Support color Emoji, use Google Noto Color Emoji 15.1, based on Unicode 15.1 Emoji list;
  • Support Emoji shortcodes in chat, for example :rofl: to rolling on the floor laughing, support Discord and Slack shortcodes;
  • You can use TTF or OTF fonts, configure the font base size, set the baseline shift, and set whether to drop text shadow;
  • Scalable vector graphics, automatic switching resolution level (up to 96px), native (non-synthetic) Bold and Italic rendering;
  • Supports distance field text rendering in 3D world, but sharpens font atlas in 2D GUI; This enhances a former feature:   *Render all characters smoothly on any scale (like when you're away from a sign, or a very small text in GUI)
  • Support multilayer text, layout multiple paragraphs together, streaming layout algorithm, and introduce fast layout cache;
  • Support fast digit replacement, high-precision layout and alignment, and smoothly draw fast changing digits (fixed width);
  • Support mip-mapping, anti-aliasing, linear sampling and supersampling anti-aliasing (SSAA);
  • Better and more efficient layout of BiDi text paragraphs (e.g. Arabic, Yiddish); Use sharpen font atlases;
  • Configurable BiDi text heuristic algorithm to control text direction more accurately; Support to fix invalid surrogate pairs;
  • Use HarfBuzz text shaping, support combining characters rendering, like Thai, Devanagari, Bengali and Tamil;
  • Support grapheme cluster break, support Unicode line breaking algorithm;
  • Support context-aware and locale-based word break and line break;
  • Support pixelated font rendering, support fixed resolution level, support pixel alignment;
  • Support bitmap replacement, rendering smoothly for fast changing numbers, support emoji rendering;
  • Optimize the layout algorithm, increase your FPS by about 10% when drawing texts in GUI
  • Use grayscale pixels to store texture, reduce GPU memory usage
  • Reduce unnecessary RAM usage and greatly reduce object creation

Customize Fonts

Press Ctrl+K or ⌘+K (by default) to open Action Center, go to Preferences, swipe the screen to the second page, and you will see Font settings.

  • Preferred font family is your most wanted one. It can be either an OS font or a TrueType/OpenType font (collection) file.
  • Fallback font families are used when the preferred font family is unavailable.

Modern Text Engine:
Modern UI follows Minecraft's JSON font definition, only glyph provider type 'legacy_unicode' and 'unihex' are ignored. Modern UI font families mentioned above will serve as fallback font families for Minecraft fonts. Default Font Behavior (in Preferences > Text Layout) gives you an option to remove some glyph providers from the Minecraft default font (minecraft:default). To avoid using vanilla ASCII fonts, just set it to Keep Other. Note this option is only valid if you have not turned on Force Unicode Font. If you want to use vanilla Unicode font, just download the OTF version of GNU Unifont.

Additional Features for Minecraft:

  • Support setting window mode, such as fullscreen borderless, windowed borderless;
  • GUI screen background fade-in animation and 2-pass gaussian convolution blur effect, configurable background gradient color;
  • Smooth rounded tooltip style, support RTL layout, configurable background and border color;
  • Play a "ding" sound effect when the game is loaded;
  • Support pausing the game when your inventory is opened;
  • New GUI scale algorithm and slider GUI scale widget (not limited to even numbers, compatible with OptiFine);
  • Add smooth scrolling for vanilla and forge scrolling panels;
  • Async network handler; Server auto-shutdown;
  • All features are configurable in configs or Action Center screen (default shortkey Ctrl+K)

Modern UI for Fabric removed some features (compared to the Forge version):

  • OptiFine-like zoom, hide crosshairs in GUI
  • Dump more debugging information, crash report extension  

Comparison with Caxton text rendering techniques

Caxton mod is known for its MSDF text rendering, you can choose between Caxton and Modern Text Engine.

Similarities:

  • Both use HarfBuzz text shaping
  • Both support Unicode text processing
  • Both support Unicode line breaking and grapheme cluster break
  • Both compatible with Iris in raster rendering mode
  • Both have an efficient rectangle packing algorithm, further better than Mojang's

Differences:

  • Caxton uses a newer HarfBuzz whereas we use a older one (bundled with JDK 17, it's updated in JDK 21)
  • Caxton uses multi-channel SDF and renders sharper scaling-up texts, whereas we render over-rounded
  • We are compatible with OptiFine, whereas Caxton isn't
  • We support color emoji, whereas Caxton doesn't
  • We support FreeType font hinting whereas Caxton never support it, font hinting helps on low-res monitor
  • We support perfect sampling of native glyph image in screen-space, this is ideal for 2D rendering
  • We support single-channel SDF text rendering without additional GPU resources, we always use 1bpp textures
  • We have smart SDF sampling method for scaling-down texts, whereas Caxton hasn't
  • No need to wait for MSDF texture generation, you can switch fonts in-game with just one click
  • We support various text direction heuristics and line break strategies
  • We don't use additional native libraries, so Modern UI works on macOS
  • We have a slightly higher layout performance than Caxton, and use less RAM

Mod Integration & Compatibility:

Compatible (you should pay attention to):

OptiFine, Sodium, Iris, Create, AoA3
If Shaders are active, Use Modern Text Shaders in 3D is auto disabled, it will cause the outline of glowing text to become invisible.

Mods with similar functions are replaced:

  • Blur (ver 1.15 ~ 1.21.8; reason: full functional coverage, better optimization)
    • Blur mod claims to use Gaussian blur, but I found it actually uses 2-pass box blur. Whereas Modern UI gives you the true 1-pass Gaussian Blur, which

Versions

v3.12.0.4Latest
1.21.6, 1.21.7, 1.21.8fabricSep 23, 2025

### Modern UI 3.12.0.4 (3.12.0.3, 3.12.0.2, 3.12.0.1) Changes from * 3.11.1.11 → 3.12.0.4 for Minecraft 1.21.6-1.21.8 * 3.11.1.11 → 3.12.0.3 for Minecraft 1.21.4 * 3.11.1.9 → 3.12.0.2 for Minecraft 1.21-1.21.1 * 3.11.1.6 → 3.12.0.1 for Minecraft 1.20-1.20.1 #### NeoForge Extension 1.21.8 (1.21.4, 1.21.1) * (1.21.8 only) Fully port to 1.21.8 and adapt to the technical changes in vanilla * (1.21.8, NeoForge only) On Windows/Linux, you have to manually set `config/fml.toml > earlyWindowControl` to false; otherwise, your game will crash on the first launch — though you can simply restart it to resolve the issue; this will finally be resolved in MC 1.21.9+ * (1.21.8 only) Enable blur effect by default even when OptiFine is installed * (1.21.8 only) Delay applying the configuration until just before the game finishes loading * (1.21.8 only) Deprecate method for drawing rounded rectangles in `ExtendedGuiGraphics`, replaced by gradient rectangles * (1.21.8 only) `MinecraftSurfaceView.Renderer` no longer clips to the bounds of draw by default * (1.21.8 only) Modern rounded tooltip is applied at most once per frame; subsequent tooltips in the same frame are non-rounded * (1.21.1 only) Disable blur effect by default when OptiFine is installed * (1.21.1 only) Fix coordinates in layer blitting * Add complete version of Still Alive, the Portal ending song * Add bootstrap option `modernui_mc_skipGLPromotion` to skip GL promotion * Always skip GL promotion on macOS * Add modified version of Inter font "Inter Frozen Medium" and its native italic font as default * Add in-game changelogs to Home UI * Add bootstrap options: - `arc3d_context_useStagingBuffers` to enable staging buffers in OpenGL, default is false, previously true - `arc3d_context_allowGLSPIRV` to use SPIR-V in OpenGL, compiled by Arc3D shader compiler, default is false * (Forge/NeoForge only) Initialize UI manager and UI thread earlier * Add a separate option "Additional Blur Effect" to blur vanilla screens, def

Download

Download

Download v3.12.0.4

Minecraft: 1.21.6, 1.21.7, 1.21.8

Loaders: fabric

Tags

fabricforgeneoforgequilt1.21.31.21.41.21.61.21.71.21.8