• CMSnpm version

    • Overview
    • ContentBuilder
    • InviteUserForm
    • LoginForm
    • RenewPasswordForm
    • WysiwygInput
  • UInpm version

    • Overview
    • Accordion
    • AlertBubble
    • AnnouncementBar
    • Avatar
    • AvatarFileInput
    • Badge
    • Button
    • ButtonGroup
    • ButtonList
    • Calendar
    • Checkbox
    • CheckboxButton
    • CheckboxInput
    • CheckboxList
    • Chip
    • ColorRadio
    • ColorRadioGroup
    • Combobox
    • DatePicker
    • DatePickerInput
    • DateRangePicker
    • DateRangePickerInput
    • DatetimePicker
    • DatetimePickerInput
    • Dialog
    • Dropdown
    • Dropzone
    • ErrorMessage
    • FileInput
    • FlashMessages
    • FormComponent
    • Icon
    • IconButton
    • ImageGallery
    • InfoBox
    • Input
    • Label
    • Layout
    • Lightbox
    • ListItem
    • Loader
    • Lozenge
    • Menu
    • Message
    • Modal
    • ✅ ModalDialog
    • ✅ ModalHeader
    • MultiCombobox
    • MultiSelect
    • Pagination
    • Paper
    • Popover
    • Radio
    • RadioGroup
    • RasterImage
    • Select
    • Switch
    • ✅ Tabs
    • TextInput
    • TextLink
    • Textarea
    • TimePicker
    • TimePickerInput
    • Toggle
    • Tooltip
    • Typography
  • Formnpm version

    • Overview
    • AvatarFileInput
    • CheckboxButton
    • CheckboxInput
    • CheckboxList
    • ColorRadioGroup
    • Combobox
    • DatePickerInput
    • DateRangePickerInput
    • DatetimePickerInput
    • Dropzone
    • FileInput
    • Form
    • FormRenderer
    • GpsInput
    • MoneyInput
    • MultiCombobox
    • MultiSelect
    • NumberInput
    • PasswordInput
    • RadioGroup
    • Select
    • TextInput
    • Textarea
    • TimePickerInput
    • Toggle
  • DataGridnpm version

    • Overview
    • DataGrid
    • DataGridCustomExample
    • ExportButton
    • FilterList
    • Filters
    • FiltersButton
    • FulltextInput
    • HiddenColumns
    • HiddenColumnsButton
    • Pagination
    • RowCounts
    • RowsPerPageSelect
    • SelectedRowsToolbar
    • TableV2
    • ToolbarControl
    • ToolbarCustoms
    • ToolbarTabs
  • Wysiwygnpm version

    • Overview
  • Resizernpm version

    • Overview
  • Routernpm version

    • Overview
  • Corenpm version

    • Overview
  • Core-Reactnpm version

    • Overview
  • DnDnpm version

    • Overview
  • Stylesnpm version

    • Overview
  • Localizenpm version

    • Overview
  • Analyticsnpm version

    • Overview
  • Datepickernpm version

    • Overview
  • Icons-generatornpm version

    • Overview
  • Smart-addressnpm version

    • Overview
  • E2Enpm version

    • Overview
  • E2E-Playwrightnpm version

    • Overview
View source on GitLab

ImageGallery (deprecated)

Deprecated. Use Lightbox (@uxf/ui/lightbox) instead. This component is kept only for existing usages.

Full-screen image viewer. Wraps a group of trigger images and, when one is clicked, opens them in a modal overlay with keyboard/swipe navigation, prev/next buttons and dot indicators.

When to use

Do not use for new code — reach for Lightbox. ImageGallery remains documented so existing integrations can be maintained and migrated.

There is no @uxf/form twin.

Usage

import { ImageGallery } from "@uxf/ui/image-gallery";

const images = [
    { src: "image1.jpg", title: "Image 1" },
    { src: "image2.jpg", title: "Image 2" },
];

<ImageGallery>
    <div className="flex gap-2">
        {images.map((image) => (
            <ImageGallery.Image key={image.src} src={image.src} title={image.title} />
        ))}
    </div>
</ImageGallery>;

ImageGallery.Image renders a clickable <img> that registers itself with the surrounding ImageGallery and opens the overlay on activation.

Props

ImageGallery

PropTypeDefaultDescription
childrenReactNode—Required. Trigger content, typically ImageGallery.Image elements.
closeButtonTitlestringtranslated "Close"Screen-reader label for the close button.
disableBackdropClosebooleanfalsePrevents closing when the backdrop is clicked.
prevButtonElementReactElementbuilt-in iconCustom content for the previous button.
nextButtonElementReactElementbuilt-in iconCustom content for the next button.
closeButtonElementReactElementbuilt-in iconCustom content for the close button.

ImageGallery.Image (ImageGalleryImageProps)

PropTypeDefaultDescription
srcImageSource—Required. Image source (resizer URL string, ImageResponse, or StaticImageData).
altstring—Alt text for the thumbnail <img>.
titlestring—Native title attribute.
classNamestring—Class on the thumbnail <img>.
customContentReactNode—Content overlaid on the image in the overlay.

Exported hook

ExportSignatureDescription
useImage(props: ImageGalleryImageProps) => () => voidRegisters an image on mount, unregisters on unmount, returns a callback that opens the overlay on that image. Used internally by ImageGallery.Image; export it to build custom triggers.

Variants & states

  • Prev/next buttons and dot indicators render only when more than one image is registered.
  • ArrowLeft/ArrowRight navigate, Escape closes, and horizontal swipe navigates on touch. The index wraps around at both ends.
  • Body scroll is locked while the overlay is open.

Requirements

Import the component stylesheet once in your global CSS. The default buttons render an Icon, so its stylesheet is required too:

@import url("@uxf/ui/css/icon.css");
@import url("@uxf/ui/css/image-gallery.css");
Default
Open in new tab