Popup

Use the toolbar popup for a focused action users can complete quickly without leaving the current page.

The Docs Demo popup rendered as a real native Chrome extension popup

Add a popup

In Settings → Surfaces, click Popup. ChromeShip creates src/app/popup/App.tsx and popup.html.

Edit the popup

Open src/app/popup/App.tsx. Build your popup with React, Tailwind, and shadcn:

import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";

export default function PopupApp() {
  return (
    <div className="w-80 p-4">
      <h1 className="text-lg font-semibold">My Extension</h1>
      <p className="mt-2 text-sm text-muted-foreground">
        Quick actions go here.
      </p>
      <Input className="mt-4" placeholder="Search..." />
      <Button className="mt-3 w-full">Run</Button>
    </div>
  );
}

Width

The browser controls popup dimensions. Design for 320–400px. Use w-80 or w-96 on your root element.

Live reload

Save the file and watch the build in the runtime logs. Because Chrome closes a popup when it loses focus, reopen it after a rebuild to see the latest version.

Authentication

When Supabase is enabled, the shared auth adapter keeps the popup session synchronized with the other extension surfaces.

Next

Pair the popup with an options page for settings, or switch to a side panel for a persistent interface. Need to talk to the background? Use the messaging helpers.