
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
minox-img-optimizer
Advanced tools
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
A React component for lazy loading optimized responsive images with placeholder and effects support.
You can install the package using npm:
npm install minox-img-optimizer
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;
Prop | Type | Default | Description |
---|---|---|---|
src | string | required | The source URL of the image |
alt | string | '' | Alt text for the image |
placeholder | string | '' | URL of the placeholder image |
className | string | '' | CSS class name (also tailwind classes supported) |
style | object | {} | Inline styles |
placeholderEffect | 'blur' | 'opacity' | 'none' | 'none' | Effect to apply to placeholder |
customSkeleton | element | null | Custom skeleton component |
offset | number | 0 | Offset in pixels for pre-loading |
useIntersectionObserver | boolean | true | Use Intersection Observer API |
scroll | boolean | false | Use scroll event instead |
onLoad | function | () => {} | Called when image loads |
onError | function | () => {} | Called on load error |
optimize | boolean | false | Optimize image loading based on breakpoints |
breakpoints | object | {} | Custom breakpoints for responsive images |
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 }
.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;
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 }}
/>
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 }}
/>
MIT © MHMIYAD. All rights reserved.
FAQs
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
The npm package minox-img-optimizer receives a total of 2 weekly downloads. As such, minox-img-optimizer popularity was classified as not popular.
We found that minox-img-optimizer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.