v0.1 public beta early access on GitHub

FabAndroid

Liquid-glass floating action button — glass disc or filled pill, extended label mode, auto-async loading swap, mount pop

$ npx lumioui add fab
import { Fab } from "@/components/ui/fab/fab";
Props11
icon React.ReactNode Icon rendered inside the button.
extended? boolean Extended pill variant: icon + label.
label? string Label shown when `extended` is true.
size? "sm" | "md" Footprint: "md" (56pt, the Material default) or "sm" (44pt mini for dense toolbars / secondary surfaces).
position? "bottom-right" | "bottom-left" | "none" Position helper. "bottom-right" (default) applies absolute placement above the home indicator; "none" leaves placement to you.
haptic? "light" | "medium" | "heavy" | false Haptic style on press. Default "medium"; false to disable.
loading? boolean Crossfade to a spinner and block presses while true.
glass? boolean iOS 26 liquid-glass surface — the button floats as a glass disc over content instead of a filled primary blob.
asyncTracking? boolean Auto-track async onPress — when onPress returns a Promise, the button automatically enters loading state until it resolves. Default true.
onPress? (e: GestureResponderEvent) => void | Promise<unknown> Called on press. May return a Promise — tracked by asyncTracking.
className? string
Fab — Extendedextended.tsx
fab/variants/extended.tsx open

Liquid-glass floating action button — glass disc or filled pill, extended label mode, auto-async loading swap, mount pop

Fab — Glass discglass.tsx
fab/variants/glass.tsx open

Liquid-glass floating action button — glass disc or filled pill, extended label mode, auto-async loading swap, mount pop

Fab — Quick Actionsquick-actions.tsx
fab/variants/quick-actions.tsx open

Liquid-glass floating action button — glass disc or filled pill, extended label mode, auto-async loading swap, mount pop