Lightbox
A popover/modal component for previewing content on hover or click, with zoom-out support for large layouts.
Basic Usage
Lightbox Variants
Hover and click triggers with normal and zoomed-out views.
Hover for image preview
Image loads in a popover
import { Lightbox } from 'fluxo-ui';
<Lightbox
trigger="hover"
content={<img src="https://picsum.photos/400/300" />}
>
<span>Hover me</span>
</Lightbox>
<Lightbox
trigger="click"
position="center"
zoomOut
zoomScale={0.4}
content={<LargeComponent />}
header="Zoomed Preview"
>
<Button>Click to preview</Button>
</Lightbox>Import
import { Lightbox } from 'fluxo-ui';
import type { LightboxProps } from 'fluxo-ui';Props
childrenreqReactNodeTrigger element that opens the lightbox.
childrenreqReactNodeTrigger element that opens the lightbox.
contentreqReactNodeContent to display inside the lightbox.
contentreqReactNodeContent to display inside the lightbox.
trigger'hover' | 'click'"'hover'"How the lightbox is triggered.
trigger'hover' | 'click'"'hover'"How the lightbox is triggered.
position'auto' | 'top' | 'bottom' | 'left' | 'right' | 'center'"'auto'"Position of the lightbox popover. Center shows as a modal.
position'auto' | 'top' | 'bottom' | 'left' | 'right' | 'center'"'auto'"Position of the lightbox popover. Center shows as a modal.
widthstring | number"400"Width of the lightbox panel.
widthstring | number"400"Width of the lightbox panel.
heightstring | numberHeight of the lightbox panel.
heightstring | numberHeight of the lightbox panel.
zoomOutboolean"false"Enable zoomed-out view mode. Content renders at full size but scaled down.
zoomOutboolean"false"Enable zoomed-out view mode. Content renders at full size but scaled down.
zoomScalenumber"0.5"Scale factor for zoomed-out view (0.1 to 1).
zoomScalenumber"0.5"Scale factor for zoomed-out view (0.1 to 1).
zoomWidthstring | number"'100vw'"Width of the content container in zoom-out mode.
zoomWidthstring | number"'100vw'"Width of the content container in zoom-out mode.
zoomHeightstring | number"'100vh'"Height of the content container in zoom-out mode.
zoomHeightstring | number"'100vh'"Height of the content container in zoom-out mode.
backdropboolean"true"Show backdrop overlay (center position only).
backdropboolean"true"Show backdrop overlay (center position only).
closeOnBackdropClickboolean"true"Close when clicking the backdrop.
closeOnBackdropClickboolean"true"Close when clicking the backdrop.
closeOnEscapeboolean"true"Close on Escape key press.
closeOnEscapeboolean"true"Close on Escape key press.
showCloseButtonboolean"true"Show close button in header.
showCloseButtonboolean"true"Show close button in header.
hoverDelaynumber"300"Delay before opening on hover (ms).
hoverDelaynumber"300"Delay before opening on hover (ms).
hoverCloseDelaynumber"200"Delay before closing after mouse leaves (ms).
hoverCloseDelaynumber"200"Delay before closing after mouse leaves (ms).
headerReactNodeHeader content.
headerReactNodeHeader content.
footerReactNodeFooter content.
footerReactNodeFooter content.
disabledboolean"false"Disable the lightbox trigger.
disabledboolean"false"Disable the lightbox trigger.
onOpen() => voidCalled when lightbox opens.
onOpen() => voidCalled when lightbox opens.
onClose() => voidCalled when lightbox closes.
onClose() => voidCalled when lightbox closes.
Features
Hover & Click
Trigger lightbox on hover for quick previews or click for persistent viewing.
Smart Positioning
Auto-positions based on available space. Supports top, bottom, left, right, and center.
Zoom-Out View
Render large components at full size but display them scaled down for bird-eye previews.
Accessible
Keyboard navigation, Escape to close, ARIA roles, and focus management.