# MenuTransform > Immutable positioning data for menu and component elements. `gg.lode.lecternapi.api.menu.MenuTransform` --- ## Signature ```java public record MenuTransform(float x, float y, int layer, float alpha, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment) ``` --- ## Overview MenuTransform is an immutable record that defines the position, layer, opacity, and alignment of an element. All builder methods return a new instance, allowing fluent chaining. --- ## Usage ```java // Basic position (top-left, full opacity, layer 0) MenuTransform.at(10, 20) // With layer and alpha MenuTransform.at(10, 20).layer(5).alpha(0.8f) // With alignment MenuTransform.at(0, 0).align(HorizontalAlignment.CENTER, VerticalAlignment.TOP) // Centered shorthand MenuTransform.at(0, 0).centered() ``` --- ## Fields | Field | Type | Description | |---|---|---| | `x` | `float` | Horizontal position. | | `y` | `float` | Vertical position. | | `layer` | `int` | Render layer (z-index). Higher values render on top. | | `alpha` | `float` | Opacity (0.0 to 1.0). | | `horizontalAlignment` | `HorizontalAlignment` | Horizontal alignment: `LEFT`, `CENTER`, or `RIGHT`. | | `verticalAlignment` | `VerticalAlignment` | Vertical alignment: `TOP`, `CENTER`, or `BOTTOM`. | --- ## Constants ### DEFAULT ```java public static final MenuTransform DEFAULT ``` A transform at `(0, 0)` with layer `0`, full opacity, and top-left alignment. --- ## Static Methods ### at ```java public static MenuTransform at(float x, float y) ``` Creates a transform at the given position with default layer (`0`), full opacity (`1.0`), and top-left alignment. | Parameter | Type | Description | |---|---|---| | `x` | `float` | Horizontal position. | | `y` | `float` | Vertical position. | --- ## Fluent Methods ### layer ```java public MenuTransform layer(int layer) ``` Returns a new transform with the specified render layer. --- ### alpha ```java public MenuTransform alpha(float alpha) ``` Returns a new transform with the specified opacity. --- ### align ```java public MenuTransform align(HorizontalAlignment h, VerticalAlignment v) ``` Returns a new transform with the specified alignment. --- ### centered ```java public MenuTransform centered() ``` Returns a new transform centered on both axes. Shortcut for `align(CENTER, CENTER)`. --- ## Related Pages - [[PacketComponent]] — Uses MenuTransform for element positioning - [[PacketMenu]] — Uses MenuTransform for element positioning