Appearance
Responsive Blueprint layouts
InterfaceForge keeps Unreal's DPI curve and applies one user UIScale through the settings subsystem. TextScale changes semantic type independently. These settings cannot repair an unconstrained Designer tree: choose sensible bounds, wrapping and scrolling for each screen. The root uses Unreal SafeZone around the HUD/Menu/Modal layers.
Current expanded-text revision retains full FText in bounded reading regions. The RTS custom prompt now gives its caption an editable Size Box/InterfaceForge Scroll Box limit instead of allowing a long label to consume the whole resource pane. The RPG context entry accepts an independent longer-title model through Initialize Entry. Tests use expanded Latin text; they do not establish full localization, RTL/shaping/font coverage or touch-device acceptance. See prompt recipe and Evidence/EXPANDED_TEXT_RUNTIME.md. No global text shrink/truncation policy is imposed by the core.
The original main/pause samples use ordinary UMG widgets: a full-stretch Canvas slot with 24 units of margin contains Scale Box, Stretch = Scale To Fit, Stretch Direction = Down Only. Its Size Box supplies preferred bounds of500×480 for Main and460×420 for Pause. The Scale Box's child slot aligns Main to the right and Pause to the center. The InterfaceForge Surface has24-unit padding around MenuColumn. This fit policy can reduce the card below requested user scale when space is insufficient; it is a sample choice, not a global accessibility guarantee. Replace it in Blueprint if your product requires reflow instead.
The publisher (IFText Base Size10) stays outside scrolling. MenuTitleBounds is100 units tall on Main,64 on Pause; its inner Scale Box is Down Only and aligns the unwrapped identity left/center. Title Base Size is28/22; explicit line breaks are retained. This bounded decorative identity prevents a large title from pushing actions off-screen. For long localized game titles, consider a different line break, more title space or a separate arrangement, and verify the result instead of relying on automatic shrinking.
Main's introduction uses IFText Base Size12 with Auto Wrap Text, in a64-unit MenuDetailBounds and independently clipped MenuReading Scroll Box. MenuActions occupies the remaining vertical Fill space and contains the original public buttons, with8-unit gaps and no trailing gap. Set Scroll When Focus Changes = Instant Scroll, Navigation Destination = Center and Clip To Bounds Always. Restored/navigated focus then reveals an action if customization makes scrolling necessary. Do not put identity, prose and all actions in one scroll region: the previous tree hid most actions and clipped the publisher at maximum scale. The current recorded English strings fit completely at1280×720/defaults and800×600/150% UI and text; arbitrary translations and minimum touch targets still require verification. Actual interaction and visual evidence.
The journal uses the same fitting wrapper, but keeps a bounded List View in its vertical Fill slot. Avoid wrapping a virtualized list in an unconstrained outer Scroll Box. It can defeat virtualization and grow the entire collection.
Settings/Controls use a stretch surface, a vertical column with fixed header, a Fill-sized Scroll Box body, status and a Wrap Box footer. Set Inner Slot Padding = (12,8) and disable Explicit Wrap Size to follow the actual allotted width. Apply/Cancel/Restore Defaults wrap into additional rows when necessary. The body gives up space before these exit actions. Do not put a fixed horizontal button row on a narrow page: the live 800×600/150% scale test exposed clipped defaults before this repair.
Themes and IFText/IFButton change fonts/colors without copying these trees. Set Auto Wrap Text on prose and verify long localized labels. Use the containing screen's input-presentation event to choose alternate arrangements when appropriate; retain the same commands, focus and model contracts. Slate keyboard navigation still traverses the actual controls.
The RTS HUD uses an original viewport-relative dock, rather than two independently anchored fixed-width cards. Its header Canvas slot stretches from (0,0) to (1,0.28), with margins (24,24,24,0). The bottom dock stretches from (0,0.46) to (1,1), with margins (24,0,24,24). Inside a Horizontal Box the resource and command cards use Fill weights 0.55/0.45 and a 16-unit gap. Clear their old Width Overrides. Their existing readouts/buttons remain intact; wrap each card's column in a bounded Scroll Box with Instant Scroll on focus change. The header pairs a 110-unit preferred-height objective card with a top-aligned Pause button. These are standard Designer controls, not a private example layout class.
At normal 800×600 scale all four orders, production and prompt fit. At maximum UI/text scale, controls and longer status messages scroll in separate panels; keyboard focus reveals orders. Navigation Destination = Center leaves space around a focused command when its context gains a line. If your data can change by more than this allowance, use Scroll Widget Into View after the update or choose a stable context region. Do not assume a focus-change setting covers every later data mutation.
Responsive visual checks are recorded in Evidence/RESPONSIVE_CARDS.md. Live 800×600 review passed settings footer visibility/Apply at 150% UI scale plus 150% text and mouse scrolling to all Main actions. Clean restart retained the enlarged preferences; keyboard Down revealed Settings automatically and Enter opened it. Restore Defaults remained operable. Other resolutions, HUD reflow at extremes, dialog long text, minimum touch targets and safe areas on actual devices remain acceptance gates. Engine-safe-area support alone is not a tested mobile claim.
The RPG's two header cards use a different ordinary UMG arrangement: Canvas → Overlay (PartyHeaderFit / QuestHeaderFit) → InterfaceForge Surface → clipped Scroll Box → Vertical Box → existing entries. Keep the former surface's Canvas anchors and offsets on the Overlay (.36 bottom anchor); set the Surface's Overlay slot to Horizontal Fill, Vertical Top, and padding14. The enclosing dock provides a maximum available region while a short surface follows its content. Avoid a Fill vertical surface here: it reserves the entire region even when there are only two vitality lines or one objective. No new widget subclass or per-frame geometry calculation is needed.
At actual1280×720/defaults, party and quest surfaces measure113 and91 layout units high inside235.2-unit docks. At actual800×600/150% UI and text, they measure130.6 and137.4 inside148.8-unit docks. These are root layout units, not physical pixels. Source and fresh cooked checks verify complete initial English titles, quest detail and party bars within the surfaces and viewport. Header evidence includes rendered captures and interaction scope. Longer or later-state objectives can still require the retained scrolling; this check does not guarantee every translation or certify the rest of the HUD's layout.
The original RPG bottom action dock uses Canvas → ActionDockFit (Overlay) → ActionDockColumn (Vertical Box). Keep anchors(0,.54)→(.65,1) and margins(24,0,12,24) on the Overlay. Set the column's Overlay slot Fill/Bottom. Pin StatusReadout in an Auto first slot, put the existing clipped Scroll Box in a Fill second slot, and keep its ActionColumn/Wrap Box/cards. A short dock follows its content; longer wrapped cards remain bounded. Cards are160wide/Min Desired Height168/no fixed height. This releases unused scene area without shrinking the original80×80 icon or changing actions.
Enable the shared readout's Inline Detail only for the short status instance, and set its two IFText Base Size values to12 followed by Refresh Appearance. Readout recipe documents the ordinary Stack Box/Pre Construct/slot/wrapping graph and default stacked behavior. An inline title has no automatic wrapping; use stacked mode for longer prose. Enlarged recovering Ward now fits its whole icon/tint/countdown, reason and pinned status. Approach's longer reason still grows a217.2-unit card and reveals through scrolling; no promise that every part of a tall card remains visible simultaneously. Current action evidence records strict source/cooked bounds and saved directional-navigation checks. Tooltip overlap and general scene/HUD polish remain separate work.
The latest HUD composition reserves a content-fitted navigation description within a .18-height scene lane. Both genres share the same IFEntry body and public screen host registration; pointer uses the normal popup. Result messages have reading priority. Blueprint hint hosts describes the ordinary Fill/Center Overlay/Surface arrangement and current width/text limits.
The RTS passive card follows its content at the bottom of the original .55-weight dock: Horizontal Box → RTSPassiveFit (Overlay) → Size Box → Surface → RTSOverviewColumn. The column gives its resource/notice Scroll Box a Fill slot, then pins QueueReadout and IFActionPrompt in Auto slots. Keep14-unit Surface padding, Queue Base Size12 and ordinary Refresh Appearance. Commands use6-unit gaps and no trailing gap. Default-size labels fit; enlarged controls/prose still scroll. Production and the resolved action prompt remain visible. These modifications preserve data/action graphs and add no gameplay system.