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

# Wireframing with placeholder content

> Add placeholder items to wireframe your dashboard layout before the actual content exists.

export const DashboardPlaceholderIcon = ({label}) => {
  return <span>
      <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" style={{
    display: "inline",
    verticalAlign: "middle"
  }}><path d="M4 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"></path><path d="M14 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"></path><path d="M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"></path><path d="M14 17h6m-3 -3v6"></path></svg>
      {label && ` ${label}`}
    </span>;
};

export const DashboardCatalogIcon = ({label}) => {
  return <span>
      <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" style={{
    display: "inline",
    verticalAlign: "middle"
  }}><path d="M10 19h-6a1 1 0 0 1 -1 -1v-14a1 1 0 0 1 1 -1h6a2 2 0 0 1 2 2a2 2 0 0 1 2 -2h6a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-6a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2z"></path><path d="M12 5v16"></path><path d="M7 7h1"></path><path d="M7 11h1"></path><path d="M16 7h1"></path><path d="M16 11h1"></path><path d="M16 15h1"></path></svg>
      {label && ` ${label}`}
    </span>;
};

export const DashboardAddItemIcon = ({label}) => {
  return <span>
      <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" style={{
    display: "inline",
    verticalAlign: "middle"
  }}><path d="M4 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"></path><path d="M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"></path><path d="M14 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"></path><path d="M14 7l6 0"></path><path d="M17 4l0 6"></path></svg>
      {label && ` ${label}`}
    </span>;
};

<Note>
  **Using a classic dashboard?** [Upgrade it](/visualize-present/dashboards/create#classic-dashboards) to use the features in this guide.
</Note>

Placeholders let you design and wireframe your dashboard layout before the real content exists, helping you visualize structure and spacing during the design phase.

Placeholders appear in both edit mode and published views, making them useful for sharing work-in-progress dashboards or communicating layout plans to dashboard viewers.

<Frame caption="Example of a generic placeholder item with a label and description">
  <img src="https://mintcdn.com/omni-e7402367/QFeulV1Cw1Ri-fOV/visualize-present/images/placeholder-example.png?fit=max&auto=format&n=QFeulV1Cw1Ri-fOV&q=85&s=d5943fd1316f6b433f3990311d1f935a" alt="Example of a generic placeholder item with a label and description" width="620" height="424" data-path="visualize-present/images/placeholder-example.png" />
</Frame>

## Requirements

Modifying dashboard layouts requires **Editor**, **Manager**, or **Owner** permissions on the document.

## Adding placeholders

In the toolbar, click <DashboardAddItemIcon /> **Add >** <DashboardCatalogIcon /> **Layout >** <DashboardPlaceholderIcon /> **Placeholder**. New placeholders are inserted as untyped (**Generic**).

<h2 id="placeholder-type">
  Configuring placeholder type
</h2>

Placeholders can be configured to mock specific content types, which will filter the replacement options in the **Insert** menu:

* **Query** — Limits replacement to workbook queries and charts
* **Filter & control** — Limits replacement to filters and controls from your workbook
* **Text** — Offers an option to insert a new text block

The **Generic** option will populate the replacement options with **Query** and **Filter & control** items.

To set a placeholder's type:

* Use the <Icon icon="angle-down" /> option in the placeholder
* Click the placeholder and use the **Settings > Type** option in the properties panel
* Right-click a placeholder and select **Type** from the context menu

## Customizing labels and descriptions

Placeholders display a label and optional description to help communicate their purpose.

* **Labels** - Defaults to `Placeholder <placeholder-type>`, where `<placeholder-type>` is `query`, `filter / control`, or `text`. Use the **Label** field in the properties panel to change the label text.
* **Description** - This optional field allow you to add wireframe instructions or notes. Use the **Description** field in the properties panel to edit the description.

<h2 id="insert-content">
  Replacing with real content
</h2>

To replace a placeholder with real content, click the **Insert** button in the placeholder tile or the properties panel. The options in the replacement menu are dependent on the placeholder's [current type](#placeholder-type).

For **Text** placeholder types, clicking the **Insert text** button will convert the placeholder into a [Markdown text tile](/visualize-present/dashboards/text-markdown).

## Limitations

Creating brand-new queries, controls, or filters directly from a placeholder is not currently supported. Use the **Select…** button to choose from existing workbook items only. Text is the exception—you can insert a fresh text block.
