Image
The Image component is used to display images with support for fallback.
Installation
nextui add image
Import
Usage
Blurred
You can use the isBlurred prop to duplicate the image and blur it to create a blurred effect.
Zoomed
You can use the isZoomed prop make the image zoomed when hovered.
Animated Loading
Image component has a built-in skeleton animation to indicate the image is loading and an
opacity animation when the image loads.
Note: The
URLuseshttps://app.requestly.io/delayto simulate a slow network.
Image with fallback
You can use the fallbackSrc prop to display a fallback image when:
- The
fallbackSrcprop is provided. - The image provided in
srcis still loading. - The image provided in
srcfails to load. - The image provided in
srcis not found.
With Next.js Image
Next.js provides an optimized Image component,
you can use it with NextUI Image component as well.
Note: NextUI's
Imagecomponent isclient-side, using hooks likeuseStatefor loading states and animations. Use Next.jsImagealone if these features aren't required.
Slots
- img: Slot for the image element.
- wrapper: Image wrapper, it handles alignment, placement, and general appearance.
- zoomedWrapper: The wrapper slot for the zoomed image it avoids the image content to overflow the parent container.
- blurredImg: The wrapper slot for the duplicated blurred image.
API
Image Props
| Attribute | Type | Description | Default |
|---|---|---|---|
| src | string | The image source. | - |
| srcSet | string | The image srcSet. | - |
| sizes | string | The image sizes. | - |
| alt | string | The image alt. | - |
| width | number | The image width. | - |
| height | number | The image height. | - |
| radius | none | sm | md | lg | full | The image border radius. | xl |
| shadow | none | sm | md | lg | The image shadow. | none |
| loading | eager | lazy | A loading strategy to use for the image. | - |
| fallbackSrc | string | The fallback image source. | - |
| isBlurred | boolean | Whether the image should have a duplicated blurred image at the background. | false |
| isZoomed | boolean | Whether the image should be zoomed when hovered. | false |
| removeWrapper | boolean | Whether to remove the wrapper element. This will cause the image to be rendered as a direct child of the parent element. If you set this prop as true neither the skeleton nor the zoom effect will work. | false |
| disableSkeleton | boolean | Whether the image should disable the skeleton animation while loading. | false |
| classNames | Record<"img"| "wrapper"| "zoomedWrapper"| "blurredImg", string> | Allows to set custom class names for the image slots. | - |
Image Events
| Attribute | Type | Description |
|---|---|---|
| onLoad | ReactEventHandler<HTMLImageElement> | Handler that is called when the image load. |
| onError | () => void | Handler that is called when the image fails to load. |

