Web
Webflow website
Website Development
AI

React Smart Image Gets a Major Upgrade: More Performance, More Control, Better Developer Experience

Jaymin Patel
August 25, 2026
8 min read

Images are one of the most important parts of a modern web experienceβ€”but they can also become a major source of performance problems.

Large images can affect LCP, unexpected image dimensions can contribute to CLS, and handling responsive images, modern formats, loading states, zooming, transitions, and caching often requires a lot of custom code.

That’s why we built React Smart Image to make image handling simpler while keeping performance and flexibility in mind.

Following our previous release, the latest version introduces a much broader set of features designed for real-world React applicationsβ€”from optimized hero images and responsive galleries to product images and high-resolution previews.

Table of Contents

Use AI to summarize this article

What’s New?

The latest release adds several powerful capabilities:

  • Priority image loading for better LCP
  • Aspect ratio support for CLS prevention
  • AVIF and WebP format detection
  • Click-to-zoom and fullscreen viewing
  • Inline magnification and cursor-following magnifier
  • Image prefetching
  • Responsive image prefetching
  • Configurable loading transitions
  • Application-wide defaults with SmartImageProvider
  • Reusable image presets
  • Object-fit and object-position support
  • Image download progress tracking
  • Viewport visibility tracking
  • Improved cache-aware load information

Let’s look at the major additions.

1. Priority Loading for Better LCP

Hero images are often among the most important elements on a page, especially when they appear above the fold.

The new priority prop allows you to tell React Smart Image that an image should be loaded immediately.

<SmartImage

Β Β src="/images/hero.jpg"

Β Β priority

Β Β alt="Hero image"

/>

‍

When priority is enabled, the component uses eager loading, high fetch priority, and image preloading where appropriate.

Responsive images can also use responsive preload information so the browser can start fetching the appropriate candidate earlier.

This is particularly useful for:

  • Hero banners
  • Main product images
  • Landing-page visuals
  • Featured content

The goal is simple: get important images onto the screen as early as possible.

2. Aspect Ratio to Prevent Layout Shifts

Images loading after the initial page render can cause content to jump around.

The new aspectRatio prop reserves the required space before the image finishes loading.

<SmartImage

Β Β src="/images/product.jpg"

Β Β aspectRatio={16 / 9}

Β Β alt="Product"

/>

‍

You can also provide a CSS value:

<SmartImage

Β Β src="/images/banner.jpg"

Β Β aspectRatio="16 / 9"

Β Β alt="Banner"

/>

‍

This helps create a more stable layout and can reduce Cumulative Layout Shift (CLS).

3. AVIF + WebP Support

Modern image formats can significantly reduce image size while maintaining visual quality.

React Smart Image now supports AVIF detection through the new avif prop.

You can also use:

<SmartImage

Β Β src="/images/photo.jpg"

Β Β format="auto"

Β Β alt="Photo"

/>

‍

With format="auto", the component checks formats in this order:

AVIF β†’ WebP β†’ Original

This gives developers an easy way to adopt modern image formats without manually implementing format detection.

4. Click-to-Zoom and Advanced Image Viewing

Images often need to be viewed at a larger sizeβ€”especially in product catalogs, galleries, portfolios, and documentation.

The new zoom system introduces multiple viewing modes.

<SmartImage

Β Β src="/images/product-thumb.jpg"

Β Β zoom

Β Β zoomSrc="/images/product-large.jpg"

Β Β alt="Product"

/>

‍

The available modes include:

  • lightbox β€” opens the image in a modal
  • fullscreen β€” opens the image with fullscreen support
  • inline β€” magnifies the image in place
  • magnifier β€” provides a cursor-following magnifying lens

You can also customize animations, toolbar actions, scale, captions, backdrop behavior, and close controls.

High-Resolution Zoom Images

One particularly useful feature is zoomSrc.

Your page can load a smaller image normally while opening a separate high-resolution image when the user zooms.

<SmartImage

Β Β src="/images/product-small.jpg"

Β Β zoom

Β Β zoomSrc="/images/product-large.jpg"

/>

‍

This helps avoid unnecessarily downloading large images before the user actually needs them.

5. Image Prefetching

Sometimes you know an image will probably be needed soon.

For example, when displaying a gallery, you can preload the next image before the user navigates to it.

<SmartImage

Β Β src="/images/next-product.jpg"

Β Β prefetch

Β Β alt="Next product"

/>

‍

There is also a standalone helper:

prefetchImage("/images/next-product.jpg");

‍

This can be useful for:

  • Galleries
  • Carousels
  • Product catalogs
  • Image sliders
  • Next/previous navigation

React Smart Image can also prefetch a separate zoomSrc when zoom functionality is enabled.

6. Configurable Image Transitions

Image loading doesn't have to be limited to a simple fade.

The new transition prop supports multiple animation styles:

  • none
  • fade
  • flip
  • rotate
  • grow
  • scale
  • slide-up
  • slide-left
  • reveal

For example:

<SmartImage

Β Β src="/images/photo.jpg"

Β Β transition="reveal"

Β Β transitionDuration={400}

Β Β alt="Photo"

/>

‍

You can also use the convenient fade shorthand:

<SmartImage

Β Β src="/images/photo.jpg"

Β Β fade

Β Β alt="Photo"

/>

‍

This gives developers more control over how images appear without having to build custom CSS animations for every implementation.

7. SmartImageProvider

When an application contains dozens or hundreds of images, repeating the same props everywhere can become difficult to maintain.

The new SmartImageProvider allows you to define shared defaults once.

<SmartImageProvider

Β Β defaults={{

Β Β Β Β responsive: true,

Β Β Β Β transition: "fade",

Β Β Β Β retry: 2,

Β Β Β Β placeholder: "blur"

Β Β }}

>

Β Β <App />

</SmartImageProvider>

‍

Now all SmartImage components inside the provider can inherit these settings.

Individual component props can still override the provider defaults.

This makes it easier to maintain consistent image behavior across an entire application.

8. Reusable Image Presets

Different images often need different configurations.

For example:

  • Hero images need priority loading
  • Product images need zoom
  • Avatars may need specific cropping
  • Gallery images may need prefetching

Instead of repeating configurations, you can create reusable presets.

const presets = createImagePresets({

Β Β hero: {

Β Β Β Β priority: true,

Β Β Β Β aspectRatio: "16 / 9"

Β Β },

Β Β product: {

Β Β Β Β zoom: true,

Β Β Β Β transition: "fade"

Β Β },

Β Β avatar: {

Β Β Β Β objectFit: "cover"

Β Β }

});

‍

Then use them directly:

<SmartImage

Β Β preset="product"

Β Β src="/images/product.jpg"

Β Β alt="Product"

/>

‍

The resolution order is:

Component props β†’ Preset config β†’ Provider defaults β†’ Library defaults

This makes large applications much easier to configure consistently.

9. Object Fit and Object Position

Images don't always need to display naturally inside their container.

The new objectFit and objectPosition props provide direct control over image cropping.

<SmartImage

Β Β src="/images/banner.jpg"

Β Β objectFit="cover"

Β Β objectPosition="top"

Β Β alt="Banner"

/>

‍

This is particularly useful for:

  • Profile images
  • Product cards
  • Hero sections
  • Blog thumbnails
  • Card layouts

10. Track Image Download Progress

Large images can take noticeable time to download.

The new onLoadProgress callback provides byte-level loading information:

<SmartImage

Β Β src="/images/large-image.jpg"

Β Β onLoadProgress={({ loaded, total, progress }) => {

Β Β Β Β console.log(progress);

Β Β }}

Β Β alt="Large image"

/>

‍

This makes it possible to build custom progress indicators for large assets.

The feature works when the browser supports fetch and ReadableStream, with the appropriate same-origin or CORS configuration.

11. Track When an Image Becomes Visible

The new onVisible callback fires the first time an image enters the viewport.

<SmartImage

Β Β src="/images/product.jpg"

Β Β onVisible={() => {

Β Β Β Β console.log("Image became visible");

Β Β }}

Β Β alt="Product"

/>

‍

Visibility is detected with a 100px pre-load margin and works independently from the lazy setting.

This can be useful for:

  • Impression analytics
  • Content visibility tracking
  • Custom metrics
  • Gallery behavior
  • Advertising measurements

‍

This gives analytics and performance monitoring systems more accurate information about image loadingβ€”even when the browser already has the image cached.

Built for Real React Applications

The goal of React Smart Image isn't to provide another simple <img> wrapper.

It's designed to bring commonly required image functionality into a single reusable component:

Performance β†’ Loading β†’ Responsive images β†’ Modern formats β†’ UX β†’ Zoom β†’ Prefetching β†’ Analytics

Instead of installing multiple libraries or creating custom image logic for every project, developers can configure these capabilities directly through React Smart Image.

Upgrade Your React Image Workflow

If your React application contains hero images, product galleries, dashboards, portfolios, blogs, or other image-heavy interfaces, the latest release gives you significantly more control over how images are loaded and displayed.

You can explore the complete documentation, examples, and latest features on the React Smart Image website.

Live Demo
https://react-smart-image.netlify.app/

GitHub Repository
https://github.com/concatstring-account/react-smart-image

npm Package
https://www.npmjs.com/package/@concatstring/react-smart-image

‍

The latest release is a step toward making image optimization not just fasterβ€”but also simpler, more configurable, and easier to maintain.

FAQs

What is React Smart Image?

React Smart Image is a reusable React component designed to simplify image handling, optimization, loading, responsive images, zooming, transitions, and image performance.

What’s new in the latest React Smart Image release?

The latest release adds priority loading, aspect ratio support, AVIF and WebP detection, zoom and fullscreen viewing, image prefetching, transitions, presets, progress tracking, visibility tracking, and application-wide defaults.

How does React Smart Image improve image performance?

It provides features such as priority loading, responsive image handling, modern image formats, prefetching, caching awareness, and lazy loading controls to help images load efficiently.

Can React Smart Image help improve LCP and CLS?

Yes. Priority loading can help important above-the-fold images load earlier, supporting better LCP. The aspectRatio prop reserves image space and can help reduce layout shifts that contribute to CLS.

Does React Smart Image support AVIF and WebP?

Yes. React Smart Image supports AVIF detection and can automatically select between AVIF, WebP, and the original image using format="auto".

Can users zoom and view high-resolution images?

Yes. React Smart Image supports lightbox, fullscreen, inline zoom, and cursor-following magnification. The zoomSrc option can load a separate high-resolution image only when users need it.

Can image loading be customized across an entire React application?

Yes. SmartImageProvider lets developers define shared defaults for SmartImage components throughout an application. Individual components can still override those defaults.

Can React Smart Image track image loading and visibility?

Yes. The onLoadProgress callback can provide download progress information when supported by the browser, while onVisible can detect when an image enters the viewport for analytics and performance tracking.

Jaymin Patel

Jaymin Patel

Full Stack Lead

More posts by this author

Full-stack engineering

Lorem ipsum dolor sit amet, consectetur adipiscing elit

You May Also Like

The Complete Business Website Development Process: From Planning to Launch

The Complete Business Website Development Process: From Planning to Launch

August 27, 2026
Web
Webflow website
Website Development
WordPress Security Best Practices: How to Protect Your Website from Hackers

WordPress Security Best Practices: How to Protect Your Website from Hackers

August 27, 2026
Webflow website
Website Development
Web
How to Increase Website Conversions with Better UX and Landing Page Design

How to Increase Website Conversions with Better UX and Landing Page Design

August 27, 2026
Web
Website Development
Webflow website

See it in action

Our team brings together strategy, design, and technology expertise to help brands solve complex problems and build digital experiences that scale with confidence.
Fill out the form below and our specialist will get back to you within 24 hours.
We appreciate your interest. Our experts will review your requirements and connect with you within 24 hours to discuss the next steps.
Oops! Something went wrong while submitting the form.