promotional bannermobile promotional banner

OpenUI MC

A reusable, declarative, and reactive UI framework for Minecraft mods.
Back to Files

OpenUI MC 0.0.12 - Fabric 1.20.1

File nameopenui-mc-fabric-1.20.1-0.0.12.jar
Uploader
NsTutNsTut
Uploaded
Sep 28, 2026
Downloads
72
Size
1.2 MB
Mod Loaders
Fabric
File ID
9000409
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:openui-mc-1661978:9000409"

Learn more about Curse Maven

What's new

OpenUI MC 0.0.12

Overflow safety

  • Give Card, Panel, and StyledBox one protected child-content rectangle shared by layout, painting, and descendant hit-testing so clipped-away pixels are never interactive.
  • Make rounded surfaces use a radius-safe rectangular content region, preventing low-padding descendants from painting over rounded border arcs or transparent corner pixels; safe geometry now clamps oversized/pill radii exactly like the renderer instead of over-reserving content space. Auto-sized Card/Panel/StyledBox intrinsic measurement now converges against that same renderer-clamped geometry instead of inflating from the raw configured radius.
  • Make StyledBox render its configured multi-pixel borderWidth and reserve the renderer-clamped effective border width in child layout/clipping.
  • Keep Card's one-pixel focus/selection outline gutter stable across transient state changes so focusing or selecting a zero-padding card never reflows its child content.
  • Keep VStack, HStack, and Stack non-clipping/non-scrollable by default; scrolling remains explicit through Ui.scroll(...).
  • Preserve elevated shadows outside the child clip and preserve dropdowns, popovers, tooltips, dialogs, toasts, and drag feedback as independent overlay roots.
  • Prevent vanilla Screen.mouseClicked fallback from dispatching directly to OpenUI-owned native EditBox widgets after clip-aware runtime hit-testing rejects the click; unrelated vanilla screen children still retain fallback handling.
  • Make focus traversal/programmatic focus and keyboard routing reject descendants whose entire laid-out rectangle is removed by an ancestor child clip; preserve zero-size pre-layout focus setup and make focus validation re-entrant-safe for focus-aware StyledBox styles.
  • Propagate hover through ancestor child clips so fully clipped overflow descendants cannot enter/retain hover state, fire hover events, or trigger hover-driven state/layout changes.
  • Make all legacy childrenMouse* forwarding helpers honor an opted-in child clip for click, scroll, drag, and release, closing the remaining Panel overflow-input bypass.
  • Track whether component bounds have actually been established so pre-layout focus setup remains valid while real 0?N / N?0 laid-out controls are excluded from focus and keyboard routing.
  • Treat ScrollView as a keyboard-focus viewport rather than invalid overflow: off-screen descendants remain traversable/focusable, newly focused descendants auto-scroll into view, and manually scrolling an already-focused descendant off-screen no longer clears keyboard focus.
  • Resolve ScrollView focus reveals during layout instead of from focus-time coordinates, so pre-layout initial focus is revealed after overflow is known and nested ScrollViews reveal inner-to-outer from fresh geometry without overshoot.
  • Limit the ScrollView focus exemption to vertical overflow: horizontally clipped descendants must still intersect the viewport because ScrollView has no horizontal reveal path.

Diagnostics

  • Add inspector/JVM-property development warnings for bounded non-scroll overflow without adding production measurement cost when diagnostics are disabled.
  • Suppress overflow advice for constraint-managed/flex subtrees and fillHeight() sentinel measurements so the documented column(header, scroll(body).flex()) pattern does not produce false warnings.
  • Publish LayoutDiagnostics as an explicit @PublicApi development/tooling surface introduced in 0.0.12.

Compatibility and verification

  • Advance the primary released JVM ABI baseline from 0.0.9 to 0.0.11 while retaining the 0.0.7 legacy baseline; teach the checker to exclude classes/members explicitly marked @Internal so implementation hooks do not become accidental compatibility commitments.
  • Add render-path regressions across 1.20.1, 1.21.1, and 26.1.2 for real scissor push/pop, nested intersection/restoration, protected content clips, explicit scrolling, and overlay escape behavior.
  • Add regressions proving flexed explicit-scroll and direct fillHeight() layouts do not emit false overflow diagnostics.
  • Refresh dependency, release, clipping, and custom-surface documentation for the current GitHub Packages/release workflow.

This mod has no additional files