> For the complete documentation index, see [llms.txt](https://docs.incari.com/incari-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.incari.com/incari-studio/objects-and-types/scene2d-objects/gui/button.md).

# Button

The **Button** **GUI** **Object** is a simple icon to attach **Logic** to. It can be configured so that something occurs when it is clicked in tandem with using the [**Mouse Nodes**](/incari-studio/toolbox/events/mouse.md). A **Button's** text, placement, and size can be altered using the [**Attributes**](#attributes).

![Button.](/files/PwDJy0JsPAZttE95stAl)

![Button with Text.](/files/OcUaDZnrvl8YTCSJmQXb)

## Attributes

The **Object's** **Attributes** can be used to fully customize the **Object**. Explained below, they are:

* [**Transformation**](#transformation)
* [**Text**](#text)
* [**Font**](#font)
* [**Style**](#code)
* [**Tag**](#tag)

### Transformation

![Transformation Attributes.](/files/sJNRtCw5ij9Q2F1XfXFD)

The `Transformation` **Attributes** deal with placement, rotation, and size in *XY* space. More information can be found [here](/incari-studio/objects-and-types/attributes/common-attributes/transformation.md).

### Text

The `Text` **Attributes** customize the textual elements of a **Button**.

There are two ways the `Text` Attribute can be incorporated in the **Object**. That is either as `Static Text` or `Translation`. This can be switched using the text or translation icons to the right, in that order.

![Static Text and Translation.](/files/rlHM6TOVaqi568k8xIln)

#### Static Text

![Static Text Attributes.](/files/ousf7ooIqNwS4hIFoRAS)

When `Static Text` is selected, the **Attributes** are:

* `Text` is the text itself which will be displayed on the **Button**. Please note that only text which fits within the confines of the **Button** will be displayed. Size the **Button** accordingly.
* `Color` decides the color of the **Button's** text.
* `Transform` can easily change certain text aesthetics without requiring the user to change the `Text` **Attribute** itself. `Capitalize` makes the first letter capital, `uppercase` makes all letters capital, and `lowercase` makes all letters lowercase.

#### Translation

![Translation Attributes.](/files/1tDWxpXtJdTv947ObU7E)

When `Translation` is selected, the **Attributes** are:

* `Translation` lets the user choose the key of the current language (which is established in the [**Project Settings**](/incari-studio/modules/project-settings/localization.md)). In the image above, the selected key is `phrase`.
* `Color` decides the color of the **Button's** translation.
* `Transform` can easily change certain text aesthetics without requiring the user to change the `Translation` **Attribute** itself. `Capitalize` makes the first letter capital, `uppercase` makes all letters capital, and `lowercase` makes all letters lowercase.

### Font

![Font Attributes.](/files/AtVN2mdG0kCE1wEb4rrG)

The `Font` **Attributes** focus on the details of the **Button's** text. Please note that while **Buttons** are capable of handling [*variable fonts*](/incari-studio/modules/project-settings/fonts.md#variable-fonts), only the default style will be used, as the configurable **Attributes** are not available for this **Object**.

* `Family` offers two different font types: `Manrope` and `Source Code Pro`. More fonts can be added by the user in [**Project Settings**](/incari-studio/modules/project-settings/fonts.md).
* `Size` determines the size of the font in pixels.

### Style

![Style Attributes.](/files/36tjot7hA59qszeNozbw)

The `Style` **Attributes** allow for more customizability. This can override any stylesheet provided in the [**Project Settings**](/incari-studio/modules/project-settings/style.md) or a [**Scene2D**](/incari-studio/objects-and-types/project-objects/scene2d.md).

To address these in the **Logic**, please refer to the [**Object 2D Nodes**](/incari-studio/toolbox/incari/object2d.md).

* `Background Color` determines the color of the **Button** itself. In the example image above, it is green.
* `Border Radius (px)` decides to what extent the corners and edges of the **Button** are rounded.
* `CSS Classes` contain the *CSS* class names of the **Object**.
* `Stylesheet` contains the *CSS* stylesheet of the **Object**.

### Tag

![Tag Attributes.](/files/ly2k7Co6xC9D4aL93xjs)

This **Attribute** manages the *tags* for the **Button**. See more on *tags* [here.](/incari-studio/objects-and-types/attributes/common-attributes/tag.md)
