logoAnt Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
6.0.0-alpha.1
  • Components Overview
  • 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
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
    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-
    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;
    }

    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
    Preview
    Preview
    Preview
    Preview
    Preview
    Preview
    Preview
    scaleStep:

    Preview
    Preview
    Preview
    Preview
    Preview
    • root
      Root element
    • image
      Image element
    • cover
      Image hover display prompt element
    • popup.root
      Preview root element
    • popup.mask
      Preview mask element
    • popup.body
      Preview body element
    • popup.footer
      Preview footer element
    • popup.actions
      Preview actions group element