- Accordion new
- ActionSheet new
- Alert new
- Alert Dialog new
- Angle Slider new
- Autocomplete new
- Avatar new
- Badge new
- Breadcrumb new
- Button new
- Button Group new
- Card new
- Carousel new
- Checkbox new
- Clipboard new
- Collapsible new
- Color Picker new
- Date Input new
- Date Picker new
- Dialog new
- DialogCaller new
- Drawer beta
- Editable new
- Empty new
- Field new
- Fieldset new
- File Upload new
- Filters new
- Floating Panel new
- Hover Card new
- Image new
- Image Cropper new
- Input new
- Input Group new
- Json Tree View new
- Kbd new
- Listbox new
- Marquee new
- Menu new
- Number Input new
- Pagination new
- Password Input new
- PhoneField new
- Pin Input new
- Popover new
- Progress Circular new
- Progress Linear new
- Qr Code new
- Radio Group new
- Rating Group new
- Scroll Area new
- ScrollSpy new
- Segment Group new
- Select new
- Separator new
- Sidebar new
- Signature Pad new
- Skeleton new
- Slider new
- Splitter new
- Steps new
- Switch new
- Table new
- Tabs new
- Tags Input new
- Textarea new
- Timeline new
- Timer new
- Toast new
- Toc new
- Toggle new
- Toggle Group new
- Tooltip new
- Tour new
- Tree View new
- Typography new
Floating Panel
Vue floating panel window that can be dragged, resized, and positioned over the main interface.
Installation
Install from the Vuzeno registry:
bunx --bun shadcn-vue@latest add https://vuzeno.com/r/floating-panel.json
npx shadcn-vue@latest add https://vuzeno.com/r/floating-panel.json
yarn dlx shadcn-vue@latest add https://vuzeno.com/r/floating-panel.json
pnpm dlx shadcn-vue@latest add https://vuzeno.com/r/floating-panel.json
Usage
<script setup lang="ts">
import { FloatingPanel } from "@/components/ui/floating-panel";
</script>
<template>
<FloatingPanel.Root>
<!-- … -->
</FloatingPanel.Root>
</template>
Composition
FloatingPanel.Root
├── FloatingPanel.Body
├── FloatingPanel.CloseTrigger
├── FloatingPanel.Content
├── FloatingPanel.Context
├── FloatingPanel.DragTrigger
├── FloatingPanel.Header
├── FloatingPanel.Positioner
├── FloatingPanel.ResizeTrigger
├── FloatingPanel.StageTrigger
├── FloatingPanel.RootProvider
├── FloatingPanel.Title
├── FloatingPanel.Trigger
├── FloatingPanel.Control
Examples
Controlled size
To control the size of the floating panel programmatically, you can pass the size onResize prop to the machine.
Controlled position
To control the position of the floating panel programmatically, you can pass the position and onPositionChange prop to the machine.
Anchor Position
Use the getAnchorPosition function to compute the initial position of the floating panel. This function is called when the panel is opened and receives the triggerRect and boundaryRect.
Open State
To control the open state of the floating panel programmatically, you can pass the open and onOpenChange prop to the machine.
Lazy Mount
To lazy mount the floating panel, you can pass the lazyMount prop to the machine.
Context
To access the context of the floating panel, you can use the useFloatingPanelContext hook or the FloatingPanel.Context component.
API
See Ark UI Floating Panel docs for full props and examples.