# Exposed States

This plugin enables you to build a robust graphics canvas on your Bubble web page.  There are hundreds of customizations, workflow events, workflow actions, and custom states you can apply to your own graphics canvas.  Here is a list of several of the key features:

**Exposed States**\
\&#xNAN;*You can access these states on the design or workflow tab, by referring to the Canvas-Main element's states.*

| State                           | Evaluates To                                                                                                                                                                                                                                                                                                                                      |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Element is Selected?            | **Yes/No** - Yes if an object/element is selected on the Canvas                                                                                                                                                                                                                                                                                   |
| Selected Element Type           | **"drawing", "shape", "text"** - if there is a selected Element on the Canvas, this publishes the Type of element                                                                                                                                                                                                                                 |
| Selected Shape - Type           | **"Rectangle", "Ellipse", "Triangle", "Line"** - If the selected Element is a Shape, this will publish the shape type                                                                                                                                                                                                                             |
| Selected Shape - Fill Color     | **Color** - if the selected Element is a Shape, this publishes the Fill Color of that Shape                                                                                                                                                                                                                                                       |
| Selected Shape - Outline Color  | **Color** - if the selected Element is a Shape, this publishes the Outline Color of that Shape                                                                                                                                                                                                                                                    |
| Selected Shape - Outline Width  | **Color** - if the selected Element is a Shape, this publishes the Outline Width of that Shape                                                                                                                                                                                                                                                    |
| Selected Drawing - Color        | **Color** - if the selected Element is a Drawing, this publishes the Color of that Drawing's stroke                                                                                                                                                                                                                                               |
| Selected Drawing - Stroke Width | **Color** - if the selected Element is a Drawing, this publishes the Width of that Drawing's stroke                                                                                                                                                                                                                                               |
| Selected Text - Font Family     | **Text** - if the selected Element is a Text, this publishes the Font Family of that Text                                                                                                                                                                                                                                                         |
| Selected Text - Font Color      | **Text** - if the selected Element is a Text, this publishes the Font Color of that Text                                                                                                                                                                                                                                                          |
| Selected Text - Font Size       | **Text** - if the selected Element is a Text, this publishes the Font Size of that Text                                                                                                                                                                                                                                                           |
| Selected Text - Text Value      | **Text** - if the selected Element is a Text, this publishes the Value of that Text                                                                                                                                                                                                                                                               |
| Selected Text - Text Value      | **Text** - If the selected Element is a Text, this will publish the text value (i.e. the value inside of the textbox)                                                                                                                                                                                                                             |
| Drawing's PNG URL               | **Text** - The URL of the Canvas's PNG ([details here)](/canvas-using-the-plugin/saving-the-canvas.md#save-as-png-to-url)                                                                                                                                                                                                                         |
| Serialized Canvas               | **Text** - The JSON of the Serialized Canvas ([details here](/canvas-using-the-plugin/saving-the-canvas.md#save-as-serialization))                                                                                                                                                                                                                |
| Selected Element IDs            | **Text** - The text value(s) of the selected Element's unique IDs                                                                                                                                                                                                                                                                                 |
| Number of Undos Available       | <p><strong>Number</strong> - The number of undo's available. When the Canvas is initially loaded, this will be 0. Each user action will increase this value by 1.  <br><br>Note: This setting is helpful if you want to create an undo button on your page and "grey it out" when the user has 0 undo's remaining.</p>                            |
| Number of Redos Available       | <p><strong>Number</strong> - The number of redo's available. When the Canvas is initially loaded, this will be 0. Each time the "<em>undo</em>" action is run will increase this value by 1.  <br><br>Note: This setting is helpful if you want to create an redo button on your page and "grey it out" when the user has 0 redo's remaining.</p> |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.techblocksco.com/feature-reference/exposed-states.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
