FabMenu
BetaExpandable floating action menu with multiple contextual actions.
Installation
npm install @xaui/native
Import
import { FabMenu, FabMenuItem } from '@xaui/native/fab-menu'
Basic Usage
Minimal example showing the component with its default configuration.
import { FabMenu } from '@xaui/native/fab-menu'export function Example() {return <FabMenu />}
Basic Menu
Uncontrolled menu with three actions.
import { FabMenu, FabMenuItem } from '@xaui/native/fab-menu'import { AddIcon } from '@xaui/icons/add'import { CloseIcon } from '@xaui/icons/close'import { CameraIcon } from '@xaui/icons/camera'import { ImageIcon } from '@xaui/icons/image'import { ShareIcon } from '@xaui/icons/share'export function BasicFabMenuExample() {return (<FabMenuicon={<AddIcon size={24} />}expandedIcon={<CloseIcon size={24} />}themeColor="primary"showOverlay><FabMenuItem icon={<CameraIcon size={20} />} label="Take photo" /><FabMenuItem icon={<ImageIcon size={20} />} label="Gallery" /><FabMenuItem icon={<ShareIcon size={20} />} label="Share" /></FabMenu>)}
Controlled State
Control open/close state with isExpanded and onToggle.
import { useState } from 'react'import { FabMenu, FabMenuItem } from '@xaui/native/fab-menu'import { AddIcon } from '@xaui/icons/add'import { CloseIcon } from '@xaui/icons/close'import { PencilIcon } from '@xaui/icons/pencil'import { StarIcon } from '@xaui/icons/star'export function ControlledFabMenuExample() {const [expanded, setExpanded] = useState(false)return (<FabMenuicon={<AddIcon size={24} />}expandedIcon={<CloseIcon size={24} />}isExpanded={expanded}onToggle={setExpanded}label="Actions"themeColor="secondary"radius="full"><FabMenuItem icon={<PencilIcon size={20} />} label="Edit" /><FabMenuItem icon={<StarIcon size={20} />} label="Favorite" /></FabMenu>)}
Custom Appearance
Tune overlay, list spacing, and toggle container styles.
import { FabMenu, FabMenuItem } from '@xaui/native/fab-menu'import { AddIcon } from '@xaui/icons/add'import { CameraIcon } from '@xaui/icons/camera'import { ImageIcon } from '@xaui/icons/image'export function CustomAppearanceFabMenuExample() {return (<FabMenuicon={<AddIcon size={24} />}themeColor="tertiary"customAppearance={{overlay: { backgroundColor: 'rgba(15, 23, 42, 0.45)' },menuContainer: { gap: 10 },menuItem: { marginBottom: 2 },fab: { borderWidth: 1, borderColor: '#00000022' },}}><FabMenuItem icon={<CameraIcon size={20} />} label="Camera" /><FabMenuItem icon={<ImageIcon size={20} />} label="Library" isDisabled /></FabMenu>)}