# Embedded Payload CMS frame

The Content area embeds the Payload CMS admin in a frame under the admin's own header. States for loaded, loading, error, empty and not wired.

- **Group:** Navigation and shell · **family:** `app-shell` · **shadcn:** composed
- **Build:** `<iframe>` in a Card.
- **In apps/admin today:** ContentEmbedPage exists in apps/admin.
- **Client component:** yes. 

## Content rules

- Name Payload explicitly.

## Do

- Offer Open in new tab.

## Don't

- Nest the admin shell inside Payload.

## Accessibility

- **Keyboard:** Iframe is one tab stop; Open in new tab before it.
- **ARIA:** `<iframe title="Payload CMS">`.
- **Focus:** —

## Tokens

`--font-voice` `--font-stretch-title` `--border` `--r-card` `--background` `--s-2` `--s-3` `--muted` `--text-card` `--w-semibold` `--s-1` `--muted-foreground` `--s-6` `--text-body` `--foreground` `--r-pill` `--destructive` `--warning` `--focus-ring` `--ring`

## Files

`payload-frame.html` live specimen · `payload-frame.css` kit rules · `payload-frame.d.ts` props · full page: `docs/components/payload-frame/` (phone: `m/`).
