• CMSnpm version

    • Overview
    • ContentBuilder
    • InviteUserForm
    • LoginForm
    • RenewPasswordForm
  • 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
    • ✅ 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
  • 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

Prop Type Default Description
children ReactNode — Required. Trigger content, typically ImageGallery.Image elements.
closeButtonTitle string translated "Close" Screen-reader label for the close button.
disableBackdropClose boolean false Prevents closing when the backdrop is clicked.
prevButtonElement ReactElement built-in icon Custom content for the previous button.
nextButtonElement ReactElement built-in icon Custom content for the next button.
closeButtonElement ReactElement built-in icon Custom content for the close button.

ImageGallery.Image (ImageGalleryImageProps)

Prop Type Default Description
src ImageSource — Required. Image source (resizer URL string, ImageResponse, or StaticImageData).
alt string — Alt text for the thumbnail <img>.
title string — Native title attribute.
className string — Class on the thumbnail <img>.
customContent ReactNode — Content overlaid on the image in the overlay.

Exported hook

Export Signature Description
useImage (props: ImageGalleryImageProps) => () => void Registers 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