Appearance
Theme-aware reading panels
Use InterfaceForge Scroll Box in the Widget Blueprint palette for menus, settings and HUD reading regions. It inherits ordinary UMG ScrollBox: your children, slots, orientation, focus targets, wheel policy and scroll events remain normal Unreal workflows. Its scrollbar adopts the owning local player's theme automatically; it adds no input detector or per-frame polling.
Quick start
- Place InterfaceForge Scroll Box in a constrained panel, such as a Fill slot in a Vertical Box. Put your content inside it. Give the viewport finite space; content that expands its parent cannot overflow.
- Set Scroll When Focus Changes = Instant Scroll and an appropriate Navigation Destination, such as Center, for a list of focusable buttons. For prose, enable Is Focusable if players should focus the reading region. Preserve your own explicit navigation targets.
- Call Set Theme on IFLocalPlayerSubsystem. Existing InterfaceForge Scroll Boxes update along with the rest of the interface. No reconstruction or copied widget tree is needed.
The theme uses Muted Text for the normal thumb, Accent for hover/drag and a subdued Outline track. Scroll Bar Thickness defaults to6Slate units and clamps to4–32 at runtime. The viewport's DPI and UI scale apply once; text enlargement does not separately multiply this thickness. Raise it for your intended presentation/accessibility needs. The styled box removes the default edge shadows so enlarged prose stays clear; the scrollbar indicates overflow.
Local overrides and standard ScrollBoxes
Assign Theme Override on one InterfaceForge Scroll Box, then call Refresh Appearance after a runtime edit. That panel retains its local colors/thickness when the global theme changes. Clear the override and refresh to return to the current player theme. Retain a reference to any theme you create dynamically, as with other UObject assets.
An existing ordinary ScrollBox can instead call Apply Theme to Scroll Box with that box and your IFTheme. This is a one-shot visual operation; repeat it from your On Theme Changed binding for live updates. It does not change children, offsets, scrollbar visibility, orientation, wheel/touch policy or navigation. It changes bar colors/thickness and clears edge-shadow brushes. Use ordinary ScrollBox and edit its Designer Style / Bar Style properties when you want complete custom brushes/shadows; automatic InterfaceForge styling intentionally reapplies its tokens.
flowchart LR
A[Standard ScrollBox reference] --> S[Apply Theme to Scroll Box]
T[IFLocalPlayerSubsystem → Get Theme] --> S
E[Your On Theme Changed binding] --> S
Use Unreal's Scroll Widget Into View, Scroll to Start, Scroll to End, Set Scroll Offset and On User Scrolled as usual. For gamepad-focused prose, configure the inherited Analog Mouse Wheel Key according to your project's CommonUI policy. Touch behavior remains Unreal's ScrollBox behavior; target-device validation is still required. The style does not hide the mouse cursor or decide which input family is active.
ScrollBox is intended for bounded collections and does not virtualize; use the journal's ListView/IFEntry lifecycle for large collections. Epic's ScrollBox API documents its existing navigation, scrolling and style controls. Avoid constructing thousands of rows in a ScrollBox.
Examples and verification scope
The original main/pause/settings/controls/dialog and RTS/RPG HUD Blueprint trees use this public component. Their existing data/action graphs and children remain in place. The internal own-project conversion helper is not part of the normal developer workflow: use the palette or public styling node in your project. Reference projects are untouched.
Offscreen Win64 DX11 checks exercise actual HUD wheel scrolling, live global theme colors/thickness, local override across a theme broadcast, existing modal/device/remap flows and default/enlarged layout. A temporary long-prose fixture creates measurable overflow and is removed before returning to the menu; it is not saved into the playable UI. Physical controller/touch/thumb dragging and arbitrary localization/aspect ratios remain separate gates. The actual outcomes and archive revision are recorded in Evidence/SCROLL_THEME_RUNTIME.md.