# Text

## Figma Text

The **Text** in **Incari** provides similar functionality as its equivalent in *Figma*.

![Text.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-544615791b9f52cc37ba67c367bc1a74737a40f9%2Ftext2dimage120232.png?alt=media)

There are several **Attributes** which allow the user heightened customizability and control.

* [**Transformation**](#transformation)
* [**Blending**](#blending)
* [**Fill**](#fill)
* [**Font**](#font)
* [**Stroke**](#stroke)
* [**Mask**](#mask)
* [**Text**](#text)
* [**Tag**](#tag)

## Attributes

### Transformation

![Transformation Attributes.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-2c61d9a83c0cb34306d8df159bfa7da93c0f0bd8%2Fbuttonattstransformation.png?alt=media)

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

### Blending

![Blending Attributes.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-92bbd8340c3ab7405f748d42bd01992a7c9ec2a4%2Ffigmablendingattribute.png?alt=media)

This **Attribute** lets the user set a `Blend Mode` as a base property of the **Text**. These are established on common formulas, examples of each can be accessed [here](http://www.simplefilter.de/en/basics/mixmods.html). An **Object's** `Blend Mode` can also be set with the [**Set Blend Mode Node**](https://docs.incari.com/incari-studio/2023.2/toolbox/incari/object2d/setblendmode).

### Fill

The `Fill` **Attributes** consist of different items called `Elements`. Each `Element` contains a `Type`. This can be either `Solid` or `Image` and changes some of the available **Attributes** under this category.

If there is more than one `Fill Element`, the most recent one will take precedent over the others (unless some `Blend Mode` is applied).

#### Solid

![Fill Attributes with Type Solid.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-50708bd3bff5b5fea6140772a60d9a86f8f3fd1a%2Fbooleanoperationfill20232.png?alt=media)

When `Solid` is selected, `Color` is visible.

* `Color` is a color selector that lets the user pick the `Fill's` color.
* Similar to the base property described previously, `Blend Mode` here affects the `Fill Elements` only. These are established on common formulas, examples of each can be accessed [here](http://www.simplefilter.de/en/basics/mixmods.html). It can also be set with the [**Set Blend Mode Node**](https://docs.incari.com/incari-studio/2023.2/toolbox/incari/object2d/setblendmode).
* `Opacity` refers to how opaque or transparent the `Fill` appears. This is represented by an integer between 0 and 1.

#### Image

![Fill Attributes with Type Image.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-740546c12bdb08d58c7df56323b76bab3260f679%2Ffigmafillimageatts.png?alt=media)

When `Image` is selected, `Image` and `Fit Mode` are visible.

* `Image` is the desired **Texture** file.
* `Fit Mode` determines how the **Texture** is displayed. These can be `Fill`, `Fit`, `Crop`, and `Tile`. `Tile` has the additional **Attribute** of `Scale Factor`, which augments the tesselation.
* Similar to the base property described previously, `Blend Mode` here affects the `Fill Elements` only. These are established on common formulas, examples of each can be accessed [here](http://www.simplefilter.de/en/basics/mixmods.html). It can also be set with the [**Set Blend Mode Node**](https://docs.incari.com/incari-studio/2023.2/toolbox/incari/object2d/setblendmode).
* `Opacity` refers to how opaque or transparent the `Fill` appears. This is represented by an integer between 0 and 1.

### Font

![Font Attributes.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-1fc5919e2420005a403a1fa0c83ad8920f410744%2Ffigmatextfontatts.png?alt=media)

The `Font` **Attributes** controls many properties of a **Text Object**, such as:

* `Family`, which offers three different font types: `monospace`, `sans-serif`, and `serif`. More fonts can be added by the user in [**Project Settings**](https://docs.incari.com/incari-studio/2023.2/modules/project-settings/fonts).
* `Size` controls how large or small the text is.
* `Line Height (%)` determines the spacing between lines of text.
* `Letter Spacing (px)` determines the spacing between each individual letter.
* `Paragrpah Spacing` determines the spacing between each paragraph.
* `Horizontal Alignment` decides the alignment of the text horizontally within the text space. It can be either `Left`, `Center`, or `Right`.
* `Vertical Alignment` decides the alignment of the text vertically within the text space. It can either be `Top`, `Center`, or `Bottom`.

### Stroke

The `Stroke` **Attributes** consist of different items called `Elements`. Each `Element` contains a `Type`. This can be either `Solid` or `Image` and changes some of the available **Attributes** under this category. There are also two fixed **Attributes** outside of the `Elements`. These are:

* `Width`, which is how wide (in pixels) each `Stroke` will appear. This applies to each `Stroke Element`.
* `Position`, which determines what part of the outline identifies the outside of the **Object**. For example, if `Inner` is selected, then the outside of the `Stroke` is the outside of the **Object**. If `Center` is selected, then the `Stroke's` center is the outside of the **Object**. If `Outer` is selected, then the inside of the `Stroke` is the outside of the **Object**.

#### Solid

![Stroke Attributes with Type Solid.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-07da3627c47128c9249c2895730d086764b4c07e%2Fbooleanoperationstroke20232.png?alt=media)

When `Solid` is selected, `Color` is visible.

* `Color` is a color selector that lets the user pick the `Stroke's` color.
* Similar to the base property described previously, `Blend Mode` here affects the `Stroke Elements` only. These are established on common formulas, examples of each can be accessed [here](http://www.simplefilter.de/en/basics/mixmods.html). It can also be set with the [**Set Blend Mode Node**](https://docs.incari.com/incari-studio/2023.2/toolbox/incari/object2d/setblendmode).
* `Opacity` refers to how opaque or transparent the `Stroke` appears. This is represented by an integer between 0 and 1.

#### Image

![Stroke Attributes with Type Image.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-be82531f390672f345f57298dc20515cc48acfea%2Ffigmastrokeimage.png?alt=media)

When `Image` is selected, `Image` and `Fit Mode` are visible.

* `Image` is the desired **Texture** file.
* `Fit Mode` determines how the **Texture** is displayed. These can be `Fill`, `Fit`, `Crop`, and `Tile`. `Tile` has the additional **Attribute** of `Scale Factor`, which augments the tesselation.
* Similar to the base property described previously, `Blend Mode` here affects the `Stroke Elements` only. These are established on common formulas, examples of each can be accessed [here](http://www.simplefilter.de/en/basics/mixmods.html). It can also be set with the [**Set Blend Mode Node**](https://docs.incari.com/incari-studio/2023.2/toolbox/incari/object2d/setblendmode).
* `Opacity` refers to how opaque or transparent the `Fill` appears. This is represented by an integer between 0 and 1.

### Mask

A **Mask** is an **Object** that shows a certain area of another **Object** while concealing the rest. Any **Object** (e.g., an **Ellipse**, **Rectangle**, **Frame**, **Group**, or **Text**) can be used as a **Mask**.

For easier visualization, think of the **Mask** as a cookie cutter while the masked **Object** is the dough: the cookie cutter shows only a part and discards the rest.

![Mask Attributes.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-3522d2bf131b5d03d6f9dff4d1c31b27f52c646f%2Ffigmamaskattsreal.png?alt=media)

The `Type` **Attribute** has three options:

* `None` - nothing is applied.
* `Alpha` - the **Mask** has an opacity level (alpha channel) determining with which level of opacity (or transparency) the masked **Object** is revealed: 0% opacity reveals nothing, 100% opacity is equivalent to a **Mask** with `Vector` type.
* `Vector` - only modifies the shape outline of the masked **Object**
* `Luminance` - allows the user to utilize brightness to determine the effect of the **Mask**; the brighter the area of a **Mask**, the more that is revealed and the darker the area, the less that is revealed.

`Object` allows the user to select what should be the masked **Object**.

`Apply Mask` is a toggle that applies the **Mask** when set to on, and disables the **Mask** when set to off.

### Text

![Text Attributes.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-34a3a7c64bea4b4aeeb21737078a530e89a305b5%2Ffigmatexttextatts.png?alt=media)

Here, the user can input the desired text of the **Text Object**.

### Tag

![Tag Attributes.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-dc4f375e34ce9bdd2bebc3e93ff34c8680ab55bb%2Fbuttonattstag.png?alt=media)

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