Back to Shark UI

Floating Panel

docs/components/floating-panel

latest9.1 KB
Original Source

Sections

Components

Utilities

Forms

Hooks

Floating Panel

Copy Markdown

Displays content in a floating window.

DocsAPI

PreviewCode

Open

Installation#

CLIManual

pnpmbunnpmyarn

pnpm dlx shadcn@latest add @shark/floating-panel

Anatomy#

FloatingPanel
├── FloatingPanelTrigger
└── FloatingPanelContent
    ├── FloatingPanelDragTrigger
    ├── FloatingPanelHeader
    │ ├── FloatingPanelControl
    │ │ ├── FloatingPanelMinimize
    │ │ ├── FloatingPanelMaximize
    │ │ └── FloatingPanelRestore
    │ ├── FloatingPanelTitle
    │ ├── FloatingPanelResizeTrigger
    │ ├── FloatingPanelStageTrigger
    │ └── FloatingPanelCloseTrigger
    ├── FloatingPanelBody
    └── FloatingPanelFooter

Usage#

import { 
  FloatingPanel,
  FloatingPanelTrigger,
  FloatingPanelContent,
  FloatingPanelHeader,
  FloatingPanelTitle,
  FloatingPanelBody,
} from "@/components/ui/floating-panel";
<FloatingPanel>
  <FloatingPanelTrigger />
  <FloatingPanelContent>
    <FloatingPanelHeader>
      <FloatingPanelTitle />
    </FloatingPanelHeader>
    <FloatingPanelBody />
  </FloatingPanelContent>
</FloatingPanel>

Examples#

Controlled Size#

Control the panel size programmatically using the size and onSizeChange props.

PreviewCode

Open

Controlled Position#

Control the panel position programmatically using the position and onPositionChange props.

PreviewCode

Open

Custom spacing#

Use [--space:--spacing("value")] on FloatingPanelContent to adjust internal padding.

Default spacing is --spacing(4).

PreviewCode

Open

You can use breakpoint utilities to change the internal spacing at different screen sizes.

md:[--space:--spacing(6)] lg:[--space:--spacing(8)]

API Reference#

FloatingPanel#

Root component. Manages panel position and drag state.

PropTypeDefault
openboolean-
defaultOpenbooleanfalse
onOpenChange(details: OpenChangeDetails) => void-
positionPoint-
defaultPositionPoint-
onPositionChange(details: PositionChangeDetails) => void-
sizeSize-
defaultSizeSize-
onSizeChange(details: SizeChangeDetails) => void-
lazyMountbooleantrue
unmountOnExitbooleantrue
closeOnEscapebooleantrue
draggablebooleantrue
resizablebooleantrue
classNamestring-

FloatingPanelTrigger#

Opens the floating panel on click.

PropTypeDefault
classNamestring-
asChildbooleanfalse

FloatingPanelContent#

Holds the panel content.

PropTypeDefault
resizablebooleantrue
classNamestring-
AttributeDefault
--space--spacing(4)

FloatingPanelHeader#

Header area. Acts as drag handle for repositioning.

PropTypeDefault
classNamestring-

FloatingPanelTitle#

Title for the panel.

PropTypeDefault
classNamestring-
asChildbooleanfalse

FloatingPanelBody#

Scrollable body content. Uses ScrollArea for overflow.

PropTypeDefault
scrollFadebooleanfalse
classNamestring-

FloatingPanelCloseTrigger#

Closes the panel on click.

PropTypeDefault
classNamestring-
asChildbooleanfalse

For a complete list of props, see the Ark UI documentation.

[

Previous page

Float ](/docs/components/float)[

Next page

Frame ](/docs/components/frame)

On This Page

InstallationAnatomyUsageExamplesControlled SizeControlled PositionCustom spacingAPI ReferenceFloatingPanelFloatingPanelTriggerFloatingPanelContentFloatingPanelHeaderFloatingPanelTitleFloatingPanelBodyFloatingPanelCloseTrigger