Description
Modern GUI is a reusable client-side GUI framework for Minecraft mods, built to make complex interfaces easier to create, scale, theme, and maintain.
It provides a retained layout system with automatic measuring, clipping, scrolling, focus handling, keyboard navigation, popovers, tooltips, responsive scaling, reusable widgets, and polished default chart components. The goal is to let mod developers build modern dashboard-style screens without manually fighting coordinates, GUI scale, text overflow, or layout bugs.
Main features include:
- responsive layout containers for rows, columns, grids, cards, scroll areas, and tabs
- automatic GUI scaling through an independent virtual UI space
- built-in themes, density modes, spacing tokens, borders, and semantic colors
- default-ready widgets such as buttons, text fields, search fields, dropdowns, sliders, toggles, checkboxes, tables, and lists
- interactive chart components including line, bar, pie, donut, multi-series, and dual-axis charts
- default hover states, tooltips, legends, focus behavior, keyboard navigation, and scroll handling
- developer validation screens and inspector tools for testing layout, input, and component behavior
To use it, create a Modern GUI screen, compose widgets using the provided layout containers, apply a theme or density profile, and let the framework handle measurement, rendering, scaling, clipping, input, focus, and interaction defaults.
Advanced behavior can still be customized through component options, chart options, theme tokens, and layout constraints when a screen needs explicit control.
Screens are built as component trees. A Modern screen owns a root container, the root container owns layout containers, and layout containers own widgets.
Example structure:
ModernScreen
└── RootContainer
├── Header / Toolbar
├── TabBar
└── ScrollContainer
└── ContentContainer
├── Card
│ ├── Text
│ ├── Button
│ └── Chart
├── Table
└── Form Inputs
Instead of placing every widget with fixed coordinates, you compose layouts using rows, columns, grids, cards, tabs, scroll areas, and popovers. The framework measures components, assigns bounds, clips rendering, routes input, manages focus, handles scrolling, and applies theme/density defaults automatically.






