Components
Built-in JSX components for layout, text, and interactivity.
Components
<Panel>— basic container with optional background and flexbox layout.<Text>— display text with Minecraft formatting codes, font, and scale.<Button>— interactive button with anonPresscallback.<Image>— display a texture from your resource pack.<Background>— full-screen texture drawn behind all form content.<Scroll>— independent scroll regions (columns, rows, horizontal strips).<Fragment>— group multiple children without a wrapper node (<>...</>).
Form
Atomic modal form. <Form> renders one native ModalFormData — every field is shown at once, and every value arrives together, keyed by name, on submit.
<Form>— the root component; wraps the whole modal.<Form.Toggle>— boolean on/off field.<Form.Slider>— numeric field within a range.<Form.Dropdown>— select one option from a popup.<Form.InlineSelect>— same selection model asForm.Dropdown, rendered inline with no popup.<Form.Option>— one selectable entry forForm.Dropdown/Form.InlineSelect.<Form.Input>— single-line text field.<Form.Button>— the form's submit/exit action buttons.
Form Fields (Legacy)
Input, Dropdown, and Slider below are the legacy one-modal-per-field pattern — for new screens use <Form> instead. They're kept for existing screens.
Modal-backed input components. Native ActionFormData can't take typed input, so each renders as a Button that opens a single-control ModalFormData on press. They share Modal Field Props.
<Input>— single-line text field.<Dropdown>— select one option from a fixed list.<Slider>— pick a number within a range.
Experimental Components
These components are experimental and may change or be removed. They have known limitations in multi-addon worlds — read each component's page before use.
<ItemRenderer>— render an item icon. Requires a manualItemAuxContextwrapping the tree.
Control Props
All components support Control Props for layout and visibility, including flexbox props and manual x/y positioning.