You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

minox-img-optimizer

Package Overview
Dependencies
Maintainers
0
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

minox-img-optimizer

Effortlessly render fully responsive images with advanced lazy loading, ensuring optimized performance across devices. Enhance the user experience with customizable placeholders and visually appealing skeleton loaders, providing smooth transitions and imp

1.0.3
latest
Source
npmnpm
Version published
Weekly downloads
2
Maintainers
0
Weekly downloads
 
Created
Source

Minox Image Optimizer React

A React component for lazy loading optimized responsive images with placeholder and effects support.

Installation

You can install the package using npm:

npm install minox-img-optimizer

Features

  • Lazy loading images using Intersection Observer API
  • Fallback to scroll event listening
  • Customizable placeholder
  • Built-in placeholder effects (blur, opacity)
  • Custom skeleton support
  • Offset configuration for pre-loading
  • Image optimization based on breakpoints
  • Responsive images with custom breakpoints

Usage

Here's a basic usage example of the LazyLoadImage component:

import React from "react";
import LazyLoadImage from "minox-img-optimizer";

function App() {
  return (
    <LazyLoadImage
      src="your-image-url.jpg"
      placeholder="placeholder-image-url.jpg"
      alt="Description"
      placeholderEffect="blur"
      offset={100}
      optimize={true}
      breakpoints={{ small: 480, medium: 768, large: 1024 }}
    />
  );
}

export default App;

Props

PropTypeDefaultDescription
srcstringrequiredThe source URL of the image
altstring''Alt text for the image
placeholderstring''URL of the placeholder image
classNamestring''CSS class name (also tailwind classes supported)
styleobject{}Inline styles
placeholderEffect'blur' | 'opacity' | 'none''none'Effect to apply to placeholder
customSkeletonelementnullCustom skeleton component
offsetnumber0Offset in pixels for pre-loading
useIntersectionObserverbooleantrueUse Intersection Observer API
scrollbooleanfalseUse scroll event instead
onLoadfunction() => {}Called when image loads
onErrorfunction() => {}Called on load error
optimizebooleanfalseOptimize image loading based on breakpoints
breakpointsobject{}Custom breakpoints for responsive images

Prop Descriptions

  • src: The URL of the image to be loaded. This prop is required.
  • alt: The alt text for the image.
  • placeholder: The URL of the placeholder image to display while the main image is loading.
  • className: A CSS class name to apply to the image container. you can write here tailwind classes.
  • style: Inline styles to apply to the image container.
  • placeholderEffect: The effect to apply to the placeholder image. Can be 'blur', 'opacity', or 'none'.
  • customSkeleton: A custom skeleton component to display while the main image is loading.
  • offset: The offset in pixels to start loading the image before it enters the viewport.
  • useIntersectionObserver: Whether to use the Intersection Observer API for lazy loading. Defaults to true.
  • scroll: Whether to use the scroll event for lazy loading. Defaults to false.
  • onLoad: A callback function to be called when the main image loads successfully.
  • onError: A callback function to be called if there is an error loading the main image.
  • optimize: Whether to optimize image loading based on breakpoints. Defaults to false.
  • breakpoints: Custom breakpoints for responsive images. For example: { small: 480, medium: 768, large: 1024 }.

Example with All Props

Here's an example demonstrating the use of all props:

import React from "react";
import LazyLoadImage from "minox-img-optimizer";

function App() {
  const handleImageLoad = () => {
    console.log("Image loaded");
  };

  const handleImageError = () => {
    console.log("Failed to load image");
  };

  return (
    <LazyLoadImage
      src="your-image-url.jpg"
      alt="Description"
      placeholder="placeholder-image-url.jpg"
      className="custom-class"
      style={{ borderRadius: "8px" }}
      placeholderEffect="blur"
      customSkeleton={<div className="skeleton-loader">Loading...</div>}
      offset={100}
      useIntersectionObserver={true}
      scroll={false}
      onLoad={handleImageLoad}
      onError={handleImageError}
      optimize={true}
      breakpoints={{ small: 480, medium: 768, large: 1024 }}
    />
  );
}

export default App;

Advanced Features

Image Optimization

By setting the optimize prop to true, the component will load different image versions based on the current breakpoint. This helps in reducing the loading time and improving performance.

<LazyLoadImage
  src="your-image-url.jpg"
  placeholder="placeholder-image-url.jpg"
  alt="Description"
  optimize={true}
  breakpoints={{ small: 480, medium: 768, large: 1024 }}
/>

Responsive Images with Custom Breakpoints

You can provide custom breakpoints using the breakpoints prop. The component will automatically adjust the image source based on these breakpoints.

<LazyLoadImage
  src="your-image-url.jpg"
  placeholder="placeholder-image-url.jpg"
  alt="Description"
  breakpoints={{ small: 480, medium: 768, large: 1024, xlarge: 1200 }}
/>

License

MIT © MHMIYAD. All rights reserved.

Keywords

react-image

FAQs

Package last updated on 13 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.