# Screen styles

install4j BeanInfo catalog. Each entry below documents a bean class that can appear inside a `<serializedBean>` element in an install4j project file.

## Contents

- [Control button](#control-button) — `com.install4j.runtime.beans.styles.StandardControlButtonComponent`
- [Form style](#form-style) — `com.install4j.runtime.beans.styles.FormStyle`
- [Nested screen style](#nested-screen-style) — `com.install4j.runtime.beans.styles.NestedStyleComponent`
- [Screen content](#screen-content) — `com.install4j.runtime.beans.styles.ContentComponent`
- [Screen Title](#screen-title) — `com.install4j.runtime.beans.styles.ScreenTitleComponent`

---

### Control button
- **Class:** `com.install4j.runtime.beans.styles.StandardControlButtonComponent`
- **Multiple instances:** yes

A control button that handles the user actions with respect to the screen flow. This includes activating the next screen, activating the previous screen and cancelling the wizard.The keyboard shortcuts for control buttons are Previous: Alt + Left Arrow / ⌃⌥← on macOSNext: Alt + Right Arrow / ⌃⌥→ on macOSCancel: Escape

| Property | Type | Category | Visible when | Description |
|---|---|---|---|---|
| `controlButtonType` — Control button type | [ControlButtonType](enums.md#controlbuttontype) | Button | — | Depending on the selected control button type, the appropriate action will be performed when the user activates the button. |
| `buttonText` — Button text | String | Button | — | The text that is displayed on the button. Can be empty if the button icon is set. |
| `buttonIconFile` — Button icon | ExternalFile suffixes=[png, gif] | Button | — | The icon displayed on the button. Can be empty if the button text is set.To add a high-resolution image, create a file with double the resolution and an additional @2x after the name (e.g. image.png and image@2x.png) next to the selected image. To use different images in dark mode, add files with an additional _dark suffix (e.g. image_dark.png and image@2x_dark.png) The install4j runtime JAR file i4jruntime.jar contains a number of image files that you can reference here by prefixing the icon file name with "icon:". For example, icon:lock_open_32.png loads a 32x32 icon showing an open lock. |
| `widgetStyleId` — Button style | String [context=widgetStyleIdOrCustom] | Button | — | If no explicit widget style is set, the widget style from the active screen style is used.You can also set an explicit custom style for this widget. |
| `widgetStyle` — widgetStyle | ButtonWidgetStyle | Button | `widgetStyleId` (custom condition) | widgetStyle |

### Form style
- **Class:** `com.install4j.runtime.beans.styles.FormStyle`
- **Multiple instances:** yes

A freely configurable screen style that uses form components to set up a layout around the screen content

| Property | Type | Category | Visible when | Description |
|---|---|---|---|---|
| `standalone` — Standalone style | boolean | Configuration | — | If selected, the screen style can be selected for installer applications, screen groups and screens. If a screen style is not standalone, it can only be used in other screen styles. |
| `fillHorizontal` — Fill horizontal space | boolean | Configuration | — | If selected, all available horizontal space is filled by this style. This setting is also used when it is nested in another screen style by a "Nested screen style" form component. |
| `horizontalAnchor` — Horizontal anchor | [Anchor](enums.md#anchor) [context=horizontal] | Configuration | `fillHorizontal`=true | If "Fill horizontal space" is not selected, the screen style can be placed at different locations in the available space. |
| `fillVertical` — Fill vertical space | boolean | Configuration | — | If selected, all available vertical space is filled by this style. This setting is also used when it is nested in another screen style by a "Nested screen style" form component. |
| `verticalAnchor` — Vertical anchor | [Anchor](enums.md#anchor) [context=vertical] | Configuration | `fillVertical`=true | If "Fill vertical space" is not selected, the screen style can be placed at different locations in the available space. |

### Nested screen style
- **Class:** `com.install4j.runtime.beans.styles.NestedStyleComponent`
- **Multiple instances:** yes

Insert another screen style that is defined in this project. Both top-level screen styles and non-top-level screen styles can be nested.

| Property | Type | Category | Visible when | Description |
|---|---|---|---|---|
| `styleId` — Screen Style | String [context=style] | Configuration | — | The screen style that should be nested. |

### Screen content
- **Class:** `com.install4j.runtime.beans.styles.ContentComponent`
- **Multiple instances:** no

Contains the actual content of the screen

### Screen Title
- **Class:** `com.install4j.runtime.beans.styles.ScreenTitleComponent`
- **Multiple instances:** yes

Display a screen title, either the main title or the subtitle.

| Property | Type | Category | Visible when | Description |
|---|---|---|---|---|
| `titleType` — Title type | [TitleType](enums.md#titletype) | Configuration | — | The type of the title that should be displayed. |
| `labelWidgetStyleId` — Label widget style | String [context=widgetStyleIdOrCustom] |  Label | — | If no explicit widget style is set, the widget style from the active screen style is used.You can also set an explicit custom style for this widget. |
| `labelWidgetStyle` — labelWidgetStyle | LabelWidgetStyle |  Label | `labelWidgetStyleId` (custom condition) | labelWidgetStyle |

