> ## Documentation Index
> Fetch the complete documentation index at: https://rive.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Drawable

A drawable that carries custom properties, handed to the visitor of
`artboard:draw(renderer, visitor)`. It is only valid inside that visitor
call.

## Methods

### `number`

<div class="signature">
  ```lua theme={null}
  number(key: PropertyKey) -> number?
  ```
</div>

The custom number property of this key, nil when there is none.

### `boolean`

<div class="signature">
  ```lua theme={null}
  boolean(key: PropertyKey) -> boolean?
  ```
</div>

The custom boolean property of this key, nil when there is none.

### `color`

<div class="signature">
  ```lua theme={null}
  color(key: PropertyKey) -> Color?
  ```
</div>

The custom color property of this key, nil when there is none.

### `string`

<div class="signature">
  ```lua theme={null}
  string(key: PropertyKey) -> string?
  ```
</div>

The custom string property of this key, nil when there is none.

### `properties`

<div class="signature">
  ```lua theme={null}
  properties() -> {{name: string, kind: DrawablePropertyKind}}
  ```
</div>

Every custom property on the drawable. For tooling and debugging:
the editor and rive-cli have it, a shipping runtime does not, so do
not call it from a script you ship.

### `draw`

<div class="signature">
  ```lua theme={null}
  draw(renderer: Renderer) -> ()
  ```
</div>

Draws the drawable under the renderer's current state.
