# AssistantModal URL: /docs/primitives/assistant-modal A floating chat popover with a fixed-position trigger button that opens a chat panel. The AssistantModal primitive is a floating chat popover built on [Radix Popover](https://www.radix-ui.com/primitives/docs/components/popover). A trigger button opens a chat panel, which is a common floating assistant launcher pattern. You control the trigger, content, positioning, and animations. ```tsx import { AssistantModalPrimitive } from "@assistant-ui/react"; function MinimalAssistantModal() { return ( Open Chat {/* Your Thread goes here */} ); } ``` Quick Start \[#quick-start] Minimal example: ```tsx import { AssistantModalPrimitive } from "@assistant-ui/react"; Open ``` `Root` is a Radix Popover provider (no DOM), `Trigger` renders a ` )); ``` Custom Portal Container \[#custom-portal-container] Render the content inside a specific container instead of `document.body`: ```tsx ``` Relationship to Components \[#relationship-to-components] The shadcn [AssistantModal](/docs/ui/assistant-modal) component wraps these primitives with slide/fade animations, icon transitions between open and closed states, and responsive sizing. Start there for a prebuilt floating chat widget. API Reference \[#api-reference] For full prop details on every part, see the [AssistantModalPrimitive API Reference](/docs/api-reference/primitives/assistant-modal). Related: * [ThreadPrimitive](/docs/primitives/thread) * [ComposerPrimitive](/docs/primitives/composer)