# Morph Popover URL: /docs/web/components/morph-popover Morph Popover component with multiple variants and sizes. **Demo:** ```tsx 'use client'; // @custom-demo import { Sparkles } from 'lucide-react'; import { MorphPopover } from '@docyrus/ui/components/morph-popover'; export function MorphPopoverDemo() { return (
); } ``` ## Installation ```bash pnpm dlx @docyrus/cli add @docyrus/ui-morph-popover ``` **Dependencies:** - [gsap](https://www.npmjs.com/package/gsap) ## Usage ```tsx import { MorphPopover } from "@docyrus/ui/components/morph-popover"; {}} side="top" sideOffset={DEFAULT_SIDE_OFFSET} contentWidth={DEFAULT_CONTENT_WIDTH} speed={DEFAULT_SPEED} bgClassName="..." contentClassName="..." /> ``` ## API Reference | Prop | Type | Default | |------|------|---------| | `trigger` | `ReactNode` | — | | `triggerSize` | `number` | `DEFAULT_TRIGGER_SIZE` | | `triggerWidth` | `number` | — | | `triggerHeight` | `number` | — | | `triggerRadius` | `number` | — | | `triggerClassName` | `string` | — | | `disabled` | `boolean` | `false` | | `isOpen` | `boolean` | — | | `onOpenChange` | `(open: boolean) => void` | — | | `side` | `'top' \| 'bottom'` | `'top'` | | `sideOffset` | `number` | `DEFAULT_SIDE_OFFSET` | | `contentWidth` | `number` | `DEFAULT_CONTENT_WIDTH` | | `speed` | `number` | `DEFAULT_SPEED` | | `bgClassName` | `string` | — | | `contentClassName` | `string` | — | | `className` | `string` | — |