logoAnt Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
6.0.0-alpha.2
  • Components Overview
  • Changelog
    v6.0.0-alpha.2
  • General
    • Button
    • FloatButton
      5.0.0
    • Icon
    • Typography
  • Layout
    • Divider
    • Flex
      5.10.0
    • Grid
    • Layout
    • Masonry
      6.0.0
    • Space
    • Splitter
      5.21.0
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
    • Tabs
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPicker
      5.5.0
    • DatePicker
    • Form
    • Input
    • InputNumber
    • Mentions
    • Radio
    • Rate
    • Select
    • Slider
    • Switch
    • TimePicker
    • Transfer
    • TreeSelect
    • Upload
  • Data Display
    • Avatar
    • Badge
    • Calendar
    • Card
    • Carousel
    • Collapse
    • Descriptions
    • Empty
    • Image
    • List
      DEPRECATED
    • Popover
    • QRCode
      5.1.0
    • Segmented
    • Statistic
    • Table
    • Tag
    • Timeline
    • Tooltip
    • Tour
      5.0.0
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
      5.1.0
  • Other
    • Affix
    • App
      5.1.0
    • ConfigProvider
    • Util
When To Use
Examples
Basic Usage
Fault tolerant
Progressive Loading
Multiple image preview
Preview from one image
Custom preview image
Controlled Preview
Custom toolbar render
Custom preview render
nested
API
Image
PreviewType
PreviewGroup
PreviewGroupType
Interface
TransformType
TransformAction
ToolbarRenderInfoType
ImgInfo
CoverConfig
Semantic DOM
Design Token

Image

Preview-able image.
Importimport { Image } from "antd";
Sourcecomponents/image
Docs
Edit this pageChangelog
contributors
  • EmptyList

    Resources

    Ant Design X
    Ant Design Charts
    Ant Design Pro
    Pro Components
    Ant Design Mobile
    Ant Design Mini
    Ant Design Web3
    Ant Design Landing-Landing Templates
    Scaffolds-Scaffold Market
    Umi-React Application Framework
    dumi-Component doc generator
    qiankun-Micro-Frontends Framework
    Ant Motion-Motion Solution
    China Mirror 🇨🇳

    Community

    Awesome Ant Design
    Medium
    X
    yuque logoAnt Design in YuQue
    Ant Design in Zhihu
    Experience Cloud Blog
    seeconf logoSEE Conf-Experience Tech Conference

    Help

    GitHub
    Change Log
    FAQ
    Bug Report
    Issues
    Discussions
    StackOverflow
    SegmentFault

    Ant XTech logoMore Products

    yuque logoYuQue-Document Collaboration Platform
    AntV logoAntV-Data Visualization
    Egg logoEgg-Enterprise Node.js Framework
    Kitchen logoKitchen-Sketch Toolkit
    Galacean logoGalacean-Interactive Graphics Solution
    WeaveFox logoWeaveFox-AI Development with WeaveFox 🦊
    xtech logoAnt Financial Experience Tech
    Theme Editor
    Made with ❤ by
    Ant Group and Ant Design Community
    loading

    When To Use

    • When you need to display pictures.
    • Display when loading a large image or fault tolerant handling when loading fail.

    Examples

    API

    Common props ref:Common props

    Image

    PropertyDescriptionTypeDefaultVersion
    altImage descriptionstring-
    classNamesCustom semantic structure class namesRecord<SemanticDOM, string>-
    fallbackFallback URL when load failsstring-
    heightImage heightstring | number-
    placeholderLoading placeholder; if true, uses default placeholderReactNode-
    previewPreview configuration; set to false to disableboolean | PreviewTypetrue
    srcImage URLstring-
    stylesCustom semantic structure stylesRecord<SemanticDOM, string>-
    widthImage widthstring | number-
    onErrorCallback when loading error occurs(event: Event) => void-

    Other Property ref <img>

    PreviewType

    PropertyDescriptionTypeDefaultVersion
    actionsRenderCustom toolbar render(originalNode: React.ReactElement, info: ToolbarRenderInfoType) => React.ReactNode-
    classNamesCustom semantic structure class namesRecord<SemanticDOM, string>-
    closeIconCustom close iconReact.ReactNode-
    coverCustom preview maskReact.ReactNode | CoverConfig-CoverConfig support after v6.0
    destroyOnCloseDestroy child elements on preview close (removed, no longer supported)booleanfalse
    forceRenderForce render preview image (removed, no longer supported)boolean-
    getContainerSpecify container for preview mounting; still full screen; false mounts at current locationstring | HTMLElement | (() => HTMLElement) | false-
    imageRenderCustom preview content(originalNode: React.ReactElement, info: { transform: TransformType, image: ImgInfo }) => React.ReactNode-
    maskThumbnail mask, please use 'cover' insteadReactNode-
    maskClassNameThumbnail mask class name; please use 'classNames.cover' insteadstring-
    maxScaleMaximum zoom scalenumber50
    minScaleMinimum zoom scalenumber1
    movableWhether it is movablebooleantrue
    openWhether to display previewboolean-
    rootClassNameRoot DOM class name for preview; applies to both image and preview wrapperstring-
    scaleStepEach step's zoom multiplier is 1 + scaleStepnumber0.5
    srcCustom preview srcstring-
    stylesCustom semantic structure stylesRecord<SemanticDOM, string>-
    toolbarRenderCustom toolbar; please use 'actionsRender' instead(originalNode: React.ReactElement, info: Omit<ToolbarRenderInfoType, 'current' | 'total'>) => React.ReactNode-
    visibleWhether to show; please use 'open' insteadboolean-
    onOpenChangeCallback when preview open state changes(visible: boolean) => void-
    onTransformCallback for preview transform changes{ transform: TransformType, action: TransformAction }-
    onVisibleChangeCallback when 'visible' changes; please use 'onOpenChange' instead(visible: boolean, prevVisible: boolean) => void-

    PreviewGroup

    PropertyDescriptionTypeDefaultVersion
    fallbackFallback URL for load errorstring-
    itemsArray of preview itemsstring[] | { src: string, crossOrigin: string, ... }[]-
    previewPreview configuration; disable by setting to falseboolean | PreviewGroupTypetrue

    PreviewGroupType

    PropertyDescriptionTypeDefaultVersion
    actionsRenderCustom toolbar render(originalNode: React.ReactElement, info: ToolbarRenderInfoType) => React.ReactNode-
    classNamesCustom preview class names objectRecord<SemanticDOM, string>-
    closeIconCustom close iconReact.ReactNode-
    countRenderCustom preview count render(current: number, total: number) => React.ReactNode-
    currentIndex of the current preview imagenumber-
    forceRenderForce render preview image (removed, no longer supported)boolean-
    getContainerSpecify container for preview mounting; still full screen; false mounts at current locationstring | HTMLElement | (() => HTMLElement) | false-
    imageRenderCustom preview content(originalNode: React.ReactElement, info: { transform: TransformType, image: ImgInfo, current: number }) => React.ReactNode-
    maskThumbnail mask, please use 'cover' insteadReactNode-
    maskClassNameThumbnail mask class name; please use 'classNames.cover' insteadstring-
    minScaleMinimum zoom scalenumber1
    maxScaleMaximum zoom scalenumber50
    movableWhether movablebooleantrue
    openWhether to display previewboolean-
    rootClassNameRoot DOM class name for preview; applies to both image and preview wrapper. Use 'classNames.root' insteadstring-
    stylesCustom semantic structure stylesRecord<SemanticDOM, string>-
    scaleStepEach step's zoom multiplier is 1 + scaleStepnumber0.5
    toolbarRenderCustom toolbar; please use 'actionsRender' instead(originalNode: React.ReactElement, info: ToolbarRenderInfoType) => React.ReactNode-
    visibleWhether to show; please use 'open' insteadboolean-
    onOpenChangeCallback when preview open state changes, includes current preview index(visible: boolean, info: { current: number }) => void-
    onChangeCallback when changing preview image(current: number, prevCurrent: number) => void-
    onTransformCallback for preview transform changes{ transform: TransformType, action: TransformAction }-
    onVisibleChangeCallback when 'visible' changes; please use 'onOpenChange' instead(visible: boolean, prevVisible: boolean, current: number) => void-

    Interface

    TransformType

    typescript
    {
    x: number;
    y: number;
    rotate: number;
    scale: number;
    flipX: boolean;
    flipY: boolean;
    }

    TransformAction

    typescript
    type TransformAction =
    | 'flipY'
    | 'flipX'
    | 'rotateLeft'
    | 'rotateRight'
    | 'zoomIn'
    | 'zoomOut'
    | 'close'
    | 'prev'
    | 'next'
    | 'wheel'
    | 'doubleClick'
    | 'move'
    | 'dragRebound';

    ToolbarRenderInfoType

    typescript
    {
    icons: {
    flipYIcon: React.ReactNode;
    flipXIcon: React.ReactNode;
    rotateLeftIcon: React.ReactNode;
    rotateRightIcon: React.ReactNode;
    zoomOutIcon: React.ReactNode;
    zoomInIcon: React.ReactNode;
    };
    actions: {
    onActive?: (index: number) => void; // support after 5.21.0
    onFlipY: () => void;
    onFlipX: () => void;
    onRotateLeft: () => void;
    onRotateRight: () => void;
    onZoomOut: () => void;
    onZoomIn: () => void;
    onReset: () => void; // support after 5.17.3
    onClose: () => void;
    };
    transform: TransformType,
    current: number;
    image: ImgInfo
    }

    ImgInfo

    typescript
    {
    url: string;
    alt: string;
    width: string | number;
    height: string | number;
    }

    CoverConfig

    typescript
    type CoverConfig = {
    coverNode?: React.ReactNode;// The custom node of preview mask
    placement?: 'top' | 'bottom' | 'center'; // Set the position of the preview mask display.
    }

    Semantic DOM

    Design Token

    Component TokenHow to use?
    Token NameDescriptionTypeDefault Value
    previewOperationColorColor of preview operation iconstringrgba(255,255,255,0.65)
    previewOperationColorDisabledDisabled color of preview operation iconstringrgba(255,255,255,0.25)
    previewOperationHoverColorColor of hovered preview operation iconstringrgba(255,255,255,0.85)
    previewOperationSizeSize of preview operation iconnumber18
    zIndexPopupz-index of preview popupnumber1080
    Global TokenHow to use?
    Basic Usage

    Click the image to zoom in.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Fault tolerant

    Load failed to display image placeholder.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Progressive Loading

    Progressive when large image loading.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Multiple image preview

    Click the left and right switch buttons to preview multiple images.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Preview from one image

    Preview a collection from one image.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Custom preview image

    You can set different preview image.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Controlled Preview

    You can make preview controlled.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Custom toolbar render

    You can customize the toolbar and add a button for downloading the original image or downloading the flipped and rotated image.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Custom preview render

    You can customize the preview content.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    nested

    Nested in the modal

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    basic
    basic image
    basic image
    placeholder image
    svg image
    svg image
    webp image
    basic image
    scaleStep:

    basic image
    image-0
    image-1
    basic image
    • root
      Root element, sets relative positioning and inline-block layout styles
    • image
      Image element, sets width, height and vertical alignment styles
    • cover
      Image hover display prompt element, sets absolute positioning, background color, opacity and transition animation styles
    • popup.root
      Preview root element, sets fixed positioning, z-index and background mask styles
    • popup.mask
      Preview mask element, sets absolute positioning and semi-transparent background styles
    • popup.body
      Preview body element, sets flex layout, center alignment and pointer event styles
    • popup.footer
      Preview footer element, sets absolute positioning, center layout and bottom operation area styles
    • popup.actions
      Preview actions group element, sets flex layout, background color, border radius and action button styles