# Frame

A **Frame** is an **Object** in **Incari** that acts as a 'container' to its *children* and has rigid boundaries which exist within a **Scene2D**. It is one of the two **Objects** in **Scene2Ds** which can be *parents*.

## Create

When a **Frame** is created, it is not expressed as an explicitly visual component to be displayed in the **Scene2D**. It must first be populated with other **Objects**. The dimensions of the **Frame** are provided in its **Attributes**.

Without any **Objects** as *children*, a **Frame** doesn't look like much:

![Frame Object Before.](https://4267723012-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOEts3pBau6LMamSYhGZp%2Fuploads%2Fgit-blob-7cfa71d7fd786abd06023a0904169b2f16f0262f%2Fframeonstart.png?alt=media)

An **Ellipse** and **Rectangle** are now added as *children*, but it's still difficult to tell the boundaries of the **Frame** visually. Notice the `Postion` and `Size` describe these boundaries numerically. The top-left corner starts at `0,0` and it extends 1000 units in both the X and Y-axes. **Objects**, however, still appear in full outside the boundaries of the **Frame**.

![Frame with Objects.](https://4267723012-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOEts3pBau6LMamSYhGZp%2Fuploads%2Fgit-blob-20fc22828c5c444787d9b248b486b88bd704e8a6%2Fframewithobjectsadded.png?alt=media)

## Layout

The `Layout` of the **Frame** can be adjusted to display its *children* horizontally or vertically. Please note that changing the `Layout` causes **Objects** to be placed at their default positions in the **Frame**. Here the gap between the **Ellipse** and **Rectangle** disappears when it is first changed to vertical.

![Frame Layout.](https://4267723012-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOEts3pBau6LMamSYhGZp%2Fuploads%2Fgit-blob-e45af7aa5d1d815be95cc5e14ae87a24265895ed%2Fframelayout.gif?alt=media)
