---
type: doc
title: Popover
description: Native Liquid popover with readable CSS and shared data-slot parts.
---

> Native Liquid and CSS. Install from `https://ui.full.dev/r/liquid/{name}.json`; see [layout setup](/liquid/docs/installation.md). No Tailwind or consuming build.

```liquid title="liquid/examples/popover.liquid"
<div data-slot='popover'>
  <button type='button' data-slot='popover-trigger' data-button data-variant='outline'>Popover</button>
  <div data-slot='popover-portal'>
    <div data-slot='popover-positioner'>
      <div data-slot='popover-content' role='dialog' aria-labelledby='ui-reference-popover-title' hidden>
        <div data-slot='popover-header'>
          <p id='ui-reference-popover-title' data-slot='popover-title'>Popover</p>
          <p data-slot='popover-description'>A popover holds short, nonessential content and links.</p>
        </div>
        <a href='{{ routes.search_url }}' data-slot='button' data-variant='outline' data-size='sm'>Search</a>
      </div>
    </div>
  </div>
</div>
```

## Installation

```bash
npx shadcn@latest add https://ui.full.dev/r/liquid/popover.json https://ui.full.dev/r/liquid/button.json
```

Follow the [one-time layout setup](/liquid/docs/installation/). A full `components` install already includes this item.

## Usage

After this install, render these once in the layout head before theme overrides and other modules. The full `ui` hook already includes them. The command also installs the parts used in this example.

```liquid
{% render 'ui-init' %}
{% render 'ui-popup' %}
{% render 'ui-triggers' %}
{% render 'ui-runtime' %}
{% render 'ui-popover' %}
{% render 'ui-button' %}
```

The preview and its Usage tab render the same native Liquid source. Use `data-slot` for parts, `data-variant` for variants and `data-size` for sizes. Keep your store's labels, translations and Shopify data in your theme.

[Component source](https://github.com/fulldotdev/ui/tree/main/liquid/components/popover.liquid) · [Theming](/liquid/docs/theming/)

## Install what this page shows

```bash
npx shadcn@latest add https://ui.full.dev/r/liquid/popover.json https://ui.full.dev/r/liquid/button.json
```
