> For the complete documentation index, see [llms.txt](https://scenegroup.gitbook.io/cavalry/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scenegroup.gitbook.io/cavalry/nodes/shapes/common-attributes.md).

# Common Attributes (Shapes)

Each Shape element in Cavalry includes the following common attributes.

{% tabs %}
{% tab title="Shape" %}
**Position** - set the Shape's position. 0,0 is in the centre of your comp.

**Rotation** - set the Shape's rotation. (in degrees).

**Scale** - set the Shape's scale.

**Skew** -&#x20;

**Pivot** - define the pivot point for the shape. This is useful when animating rotation and scale.

**Opacity** - set the Shape's opacity.

**Blend Mode** - set the [blend mode](/cavalry/user-interface/general/blend-modes.md).

**Deformers** - a list of connected Deformers.&#x20;

**Filters** - a list of connected [Filters](/cavalry/nodes/effects.md).

**Motion Blur** - enable motion blur.
{% endtab %}

{% tab title="Fill" %}
**Fill** - enable/disable the fill.

**Color** - set your color using hex or rgb values (note - only rgb values can be animated).

**Shaders** - a list of connected [Shaders](/cavalry/nodes/effects.md).

**Alpha** - a master control for the opacity/ alpha of your entire shader network.&#x20;
{% endtab %}

{% tab title="Stroke" %}
**Stroke** - enable/disable the stroke.

**Color** - set your color using hex or rgb values (note - only rgb values can be animated).

**Shaders** - a list of connected [Shaders](/cavalry/nodes/effects.md).

**Alpha** - a master control for the opacity/ alpha of your entire shader network.&#x20;

**Width** - set the width of the stroke.

**Cap Style** - set the appearance of caps (each end of the stroke) on open paths.

* **Flat** - a flat end that terminates at the end point.
* **Round** - a hemispherical end with the end point at its centre.
* **Projecting** - a flat end that projects half the Width beyond the end point.

**Join Style** - set the appearance of joints.

* **Miter** - sharp corners.
* **Round** - rounded corners.
* **Bevel** - beveled/ chamfered corners.

**Miter Limit** - sets the limit at which a sharp corner is drawn beveled.

**Dash Pattern** - enter a number sequence separated by commas.&#x20;

{% hint style="success" %}
Entering 2 will autocomplete to 2, 2 for Dash = 2, Gap = 2. Entering 2, 3, 4 will create a pattern of Dash = 2, Gap = 3, Dash = 4, Gap = 2, Dash = 3, Gap = 4...
{% endhint %}

**Dash Offset** - offset the **Dash Pattern** along the path.

**Align** - align the stroke along the path.

* **Center** - align the stroke along the center of the path.
* **Inner** - align the stroke along the inside of the path.
* **Outer** - align the stroke along the outside of the path.

{% hint style="warning" %}
Open paths only support **Center** alignment. Where multiple contours appear in a single Path, any open contours will be set to **Center** regardless of the Align setting.
{% endhint %}

{% hint style="info" %}
If you have **Align** set to **Inner** or **Outer** and **Trim** enabled, **closed paths** will be given a **Cap Style** of **Flat** regardless over their setting. Where multiple contours exist in one Shape, any open paths will respect the **Cap Style** setting.
{% endhint %}

**Trim** - when enabled the controls below are available.

**Start** - set the percentage along the Shape the Stroke will start.

**End** - set the percentage along the Shape the Stroke will end.

**Travel** - move the Stroke around the Shape.

**Reverse Path** - reverse the direction of the Stroke.
{% endtab %}

{% tab title="Masks" %}
**Masks** - connect Shapes as clipping masks.

#### List UI options.

* **Visibility** - enable/disable the Mask.
* **Boolean options**:
  * **Union** - combines the shape.
  * **Subtract** - clips the shape.
  * **Intersect** - clips everything outside the shape.

**Clipping Mode** - set the anti-aliasing quality for the clipping shapes.

* **Best** - high quality anti-aliasing.
* **Normal** (default) - anti-aliasing.
* **Fast** - no anti-aliasing.

{% hint style="info" %}
When you connect a Shape as a mask it will be automatically switched to 'wireframe' mode. To turn this off, right click on a Shape in either the [Project Window](/cavalry/user-interface/menus/window-menu/scene-window.md) or the [Attribute Editor](/cavalry/user-interface/menus/window-menu/attribute-editor.md) and uncheck **Wireframe**.
{% endhint %}

{% hint style="info" %}
When using a [Composition](/cavalry/nodes/shapes/comp-node.md) as a Mask ensure that the Composition's [Background Alpha](/cavalry/user-interface/menus/window-menu/scene-window/project-tree/composition-settings.md) is set to **0** if you do **not** want the Composition bounds to be included in the Mask.
{% endhint %}

{% endtab %}

{% tab title="Advanced" %}
**Lottie Export:**

* **Export if Visible** - export a shape if its visibility is set to on.
* **Always Export** - export a shape regardless of wether its visibility is set to on or off.
* **Never Export** - do not export the shape regardless of wether its visibility is set to on or off.

**Lottie Baking:**

* **Automatic** - automatically calculate if a shape needs baking based on the connections in your scene.
* **Animated Mesh** - bake the shape information out for each frame. Materials will be static and changing point counts are not supported.
* **Animated Mesh & Materials** - bake each shape and any materials for every frame.
* **Nuclear** - this is the 'nuclear bake' option designed to work around shortcomings in Lottie.
* **Still** - the shape will export as a still containing no animation.

**Wireframe** - display the shape as a wireframe in the [Viewport](/cavalry/user-interface/menus/window-menu/viewport.md). This option can also be set by right clicking on a Shape in the [Scene Tree](/cavalry/user-interface/menus/window-menu/scene-window/project-tree.md).
{% endtab %}
{% endtabs %}
