Placeholder images are essential tools for designers and developers creating mockups, prototypes, and wireframes. This guide covers how to generate custom placeholder images with specific dimensions, colors, and text, plus best practices for using placeholders in your design workflow.
Placeholder images are temporary graphics used during the design and development process to represent where final images will be placed. They help visualize layouts, test responsive designs, and demonstrate image placement without requiring actual content.
# Social Media
1200 × 630 Facebook/LinkedIn share
1080 × 1080 Instagram post (square)
1080 × 1920 Instagram Story
1200 × 675 Twitter large image
# Website Headers
1920 × 1080 Full HD hero image
1600 × 900 Standard hero
2560 × 1440 2K hero
# Content Images
800 × 600 Standard content image
600 × 400 Medium content image
400 × 300 Small content image
# Avatars & Profiles
150 × 150 Large avatar
64 × 64 Standard avatar
32 × 32 Small avatar
# Thumbnails
300 × 200 Video thumbnail
200 × 200 Product thumbnail
120 × 90 Small thumbnail
# Banners
728 × 90 Leaderboard
300 × 250 Medium rectangle
160 × 600 Wide skyscraper
16:9 = 1920x1080, 1280x720, 800x450
4:3 = 1024x768, 800x600, 640x480
1:1 = 1000x1000, 500x500, 300x300
3:2 = 1500x1000, 900x600
21:9 = 2560x1080 (ultrawide)
# Basic usage
https://via.placeholder.com/800x600
# With background color
https://via.placeholder.com/800x600/0077BE
# With text and colors
https://via.placeholder.com/800x600/0077BE/FFFFFF?text=Hero+Image
# Format specification
https://via.placeholder.com/800x600.png
https://via.placeholder.com/800x600.jpg
# Random image
https://picsum.photos/800/600
# Specific image by ID
https://picsum.photos/id/237/800/600
# Grayscale
https://picsum.photos/800/600?grayscale
# Blur effect
https://picsum.photos/800/600?blur=2
# Random seed for consistency
https://picsum.photos/seed/picsum/800/600
# Simple placeholder
https://placehold.co/800x600
# With custom colors and text
https://placehold.co/800x600/EEE/31343C?text=Placeholder
# Format options
https://placehold.co/800x600.png
https://placehold.co/800x600.webp
https://placehold.co/800x600.svg
# Font customization
https://placehold.co/800x600?font=roboto&text=Custom+Font
# Basic
https://dummyimage.com/800x600
# With colors (bg/text)
https://dummyimage.com/800x600/000/fff
# Custom text
https://dummyimage.com/800x600/000/fff&text=Hello+World
# Format
https://dummyimage.com/800x600.png
https://dummyimage.com/800x600.gif
<div class="placeholder"
style="width: 800px;
height: 600px;
background: #ddd;
display: flex;
align-items: center;
justify-content: center;
color: #999;
font-size: 24px;">
800 × 600
</div>
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='600'%3E%3Crect width='800' height='600' fill='%23ddd'/%3E%3Ctext x='50%25' y='50%25' dominant-baseline='middle' text-anchor='middle' font-family='sans-serif' font-size='24' fill='%23999'%3E800 × 600%3C/text%3E%3C/svg%3E" alt="Placeholder">
function createPlaceholder(width, height, text) {
const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
const ctx = canvas.getContext('2d');
// Background
ctx.fillStyle = '#ddd';
ctx.fillRect(0, 0, width, height);
// Text
ctx.fillStyle = '#999';
ctx.font = '24px sans-serif';
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.fillText(text || `${width} × ${height}`, width/2, height/2);
return canvas.toDataURL();
}
// Usage
const placeholderURL = createPlaceholder(800, 600, 'Hero Image');
document.getElementById('img').src = placeholderURL;
<img
src="https://via.placeholder.com/800x600"
srcset="https://via.placeholder.com/400x300 400w,
https://via.placeholder.com/800x600 800w,
https://via.placeholder.com/1200x900 1200w"
sizes="(max-width: 600px) 400px,
(max-width: 1200px) 800px,
1200px"
alt="Responsive placeholder"
>
.placeholder {
width: 100%;
aspect-ratio: 16 / 9;
background: #ddd;
display: flex;
align-items: center;
justify-content: center;
color: #999;
font-size: clamp(1rem, 3vw, 2rem);
}
/* Fallback for browsers without aspect-ratio */
@supports not (aspect-ratio: 16 / 9) {
.placeholder::before {
content: '';
display: block;
padding-bottom: 56.25%; /* 16:9 ratio */
}
}
<picture>
<source media="(min-width: 1200px)"
srcset="https://via.placeholder.com/1920x1080">
<source media="(min-width: 768px)"
srcset="https://via.placeholder.com/1200x675">
<img src="https://via.placeholder.com/800x600"
alt="Responsive placeholder">
</picture>
/* Good - consistent 16:9 */
Hero: 1920 × 1080
Medium: 1280 × 720
Thumbnail: 640 × 360
/* Avoid - mixed ratios */
Hero: 1920 × 1080 (16:9)
Medium: 800 × 600 (4:3)
Thumbnail: 300 × 300 (1:1)
https://via.placeholder.com/800x600?text=Hero+Image+800x600
Benefits:
- Clear size reference
- Easy to identify in mockups
- Helps with content planning
/* Primary brand color placeholders */
https://placehold.co/800x600/326CE5/FFFFFF?text=Logo
/* Neutral placeholders */
https://placehold.co/800x600/F5F5F5/999999?text=Content
<img src="https://via.placeholder.com/800x600"
alt="Hero image placeholder"
class="hero-image-placeholder"
data-placeholder="hero">
<img src="https://via.placeholder.com/10x10"
data-src="https://via.placeholder.com/800x600"
loading="lazy"
alt="Lazy loaded placeholder">
<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
<rect width="800" height="600" fill="#ddd"/>
<text x="50%" y="50%"
dominant-baseline="middle"
text-anchor="middle"
font-size="24"
fill="#999">
800 × 600
</text>
</svg>
.placeholder {
position: relative;
width: 800px;
height: 600px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.placeholder::before {
content: '800 × 600';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: white;
font-size: 24px;
font-weight: 600;
}
.skeleton-placeholder {
width: 800px;
height: 600px;
background: linear-gradient(
90deg,
#f0f0f0 25%,
#e0e0e0 50%,
#f0f0f0 75%
);
background-size: 200% 100%;
animation: loading 1.5s infinite;
}
@keyframes loading {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
<!-- Low quality placeholder -->
<img src="https://via.placeholder.com/50x37"
data-src="https://example.com/image-800x600.jpg"
class="progressive-image"
style="filter: blur(10px);"
alt="Progressive loading">
<script>
// Replace with high-res when loaded
const img = document.querySelector('.progressive-image');
const highRes = new Image();
highRes.src = img.dataset.src;
highRes.onload = () => {
img.src = highRes.src;
img.style.filter = 'blur(0)';
};
</script>
<!-- Figma/Sketch style mockup -->
<div class="mockup">
<img src="https://via.placeholder.com/1920x1080?text=Hero+Section"
alt="Hero mockup">
<img src="https://via.placeholder.com/400x300?text=Feature+1"
alt="Feature 1">
<img src="https://via.placeholder.com/400x300?text=Feature+2"
alt="Feature 2">
</div>
<!-- Card component with placeholder -->
<div class="card">
<img src="https://via.placeholder.com/400x250?text=Card+Image"
alt="Card thumbnail">
<h3>Card Title</h3>
<p>Card description text...</p>
</div>
<div class="product-grid">
<div class="product">
<img src="https://via.placeholder.com/300x300?text=Product+1"
alt="Product 1">
</div>
<div class="product">
<img src="https://via.placeholder.com/300x300?text=Product+2"
alt="Product 2">
</div>
<!-- More products -->
</div>
// Find all placeholder images
const placeholders = document.querySelectorAll('img[src*="placeholder"]');
console.warn(`Found ${placeholders.length} placeholder images!`);
placeholders.forEach(img => {
console.log('Placeholder:', img.src, img.alt);
});
Placeholder images are invaluable during the design and development process, allowing you to create functional mockups and prototypes before final content is available. By using the right dimensions, colors, and formats, and following best practices, you can create professional-looking designs that accurately represent the final product.
Use QuickUtil.dev's Placeholder Image Generator to create custom placeholder images with exact dimensions, colors, and text for your projects. Generate URLs or download images instantly for seamless integration into your workflows.
A placeholder image is a temporary image used in design mockups, prototypes, and wireframes to represent where final images will be placed. They help visualize layouts without requiring actual content.
Use a placeholder image generator by specifying dimensions (e.g., 800x600), background color, text color, and optional custom text. The tool generates an image URL or downloadable file.
Common dimensions: 1920x1080 (Full HD), 1200x630 (social media), 800x600 (standard), 400x300 (thumbnail), 300x250 (banner), and 150x150 (avatar/profile pic).
Placeholder images should be replaced with real content before production. They're meant for development, testing, and design mockups only. Always use final images in live websites.
Lorem Picsum provides random photos for realistic previews. Custom placeholders show exact dimensions and are better for wireframes. Use Lorem Picsum for visual design, custom for layout testing.
Most placeholder generators allow custom text via URL parameters or form inputs. Example: /800x600?text=Hero+Image or using a generator interface to specify dimensions and text.
PNG for solid colors and text (lossless), JPG for photographic placeholders (smaller file size), SVG for scalable placeholders, and WebP for modern browsers (best compression).
Yes, use CSS to make placeholders responsive: width: 100%; height: auto; or use srcset with multiple placeholder sizes for different breakpoints. SVG placeholders scale infinitely.
Create placeholder images with custom dimensions, colors, and text for your design mockups and prototypes instantly.
Try the Placeholder Image Generator Now