Featured Image Creator
Create blog featured images as clean SVG graphics at 2400x1260px. Illustrations and icons tell the story, not text. Output is converted to PNG via rsvg-convert for WordPress.
Specs
| Attribute |
Value |
| Dimensions |
viewBox="0 0 2400 1260" |
| Aspect ratio |
~1.9:1 (close to 16:9) |
| Text |
None or negligible (title overlay not needed) |
| Visuals |
Illustration libraries (primary) + FontAwesome icons (accent) |
| Output |
.svg file, converted to .png via rsvg-convert |
| Target PNG |
2400x1260px exact via rsvg-convert -w 2400 -h 1260 |
Conversion Command
for f in *.svg; do rsvg-convert -f png -w 2400 -h 1260 -o "${f%.svg}.png" "$f"; done
Single file:
rsvg-convert -f png -w 2400 -h 1260 -o "output.png" "input.svg"
Illustration Library (Primary Visual Source)
Location
~/Icons/graphics-inspirations/
Available Collections
| Collection |
Folder |
SVGs |
Best For |
| Freelance & Remote Work |
Freelance-Vector-Illustrations/SVG/Expanded/Titled/ |
361 |
Freelancing, remote work, agency life |
| Software Developer |
Software-Developer-Illustrations/SVG/Expanded/Titled/ |
201 |
Coding, debugging, dev workflows |
| Work & Office |
7c89bfb8-*-Work-Illustrations/SVG/Expanded/Titled/ |
201 |
Planning, burnout, office scenarios |
| Job Professions |
Job-Illustrations-Art-Set/SVG/Expanded/Titled/ |
201 |
Career roles, professional services |
| Ecommerce |
Ecommerce-Illustrations/SVG/Expanded/Titled/ |
201 |
Shopping, pricing, products, billing |
| AI & Robotics |
971d5aad-*-Artificial-Intelligence-*/SVG/Expanded/Titled/ |
301 |
AI, automation, robots, futuristic |
| Workaholics |
Workaholics-Characters-*/SVG/Expanded/Titled/ |
401 |
Work stress, deadlines, hustle |
| Advertising |
Advertising Illustration/SVG/Expanded/ |
25 |
Marketing, ads (numbered 1–25) |
| Colorful Life |
Colorful-Life-Collection/ (6 subcategories) |
1126 |
Celebration, health, travel, education |
| IoT & Smart Devices |
IOT-Illustrations/SVG/Expanded/Titled/ |
201 |
Smart tech, automation, devices |
| Lifestyle |
Lifestyle-Illustrations/SVG/Expanded/Titled/ |
361 |
Daily activities, hobbies |
| Shopping & Grocery |
Shopping-Grocery-Illustrations/SVG/Expanded/Titled/ |
301 |
Retail, delivery, shopping |
| Stress & Sleep |
Stress & Sleep Illustrations Design/SVG/Expanded/Titled/ |
301 |
Mental health, wellness |
| Math & Education |
c0788535-*-Math-Illustrations/SVG/Expanded/Titled/ |
261 |
Math, education, tutoring |
| Reeded Glass |
e6ceb468-*-reeded_glass/ |
20 |
Glassmorphism UI elements |
| WordPress |
wpbeginner/ |
5 |
WordPress-specific scenes |
How to Use Illustrations
Illustrations are full SVG files with embedded <style> blocks using CSS classes (.st0, .st1, etc.) for colors. They have their own viewBoxes (commonly 0 0 156 156 or 0 0 600 600).
Embed using nested <svg> element to preserve the illustration's style scope:
<!-- Read the illustration file, strip the XML declaration and outer <svg> opening/closing -->
<!-- Then embed as a nested SVG with positioning -->
<svg x="600" y="80" width="1200" height="1100" viewBox="0 0 156 156">
<style type="text/css">
.st0{fill:#F7CFC6;}
.st1{fill:#73504E;}
<!-- ... all style classes from the illustration -->
</style>
<!-- All illustration paths/groups here -->
</svg>
Key embedding rules:
- Read the illustration SVG file completely
- Extract everything BETWEEN
<svg ...> and </svg> (the inner content including <style>)
- Wrap in a new
<svg> element with x/y/width/height for positioning on the 2400x1260 canvas
- The nested SVG's viewBox should match the original illustration's viewBox
- Size the illustration to occupy ~60-80% of canvas height (750-1000px height)
- Center horizontally, position slightly above vertical center
Illustration style notes:
- All illustrations use flat design with vibrant, consistent color palettes
- Colors include blues (#006BFF, #3BA2FB), greens (#00C491, #02A05A), pinks (#EE5271), yellows (#FFD700), and skin tones (#F7CFC6, #FAB19D)
- Character-centric scenes with professional themes
- Well-suited as hero visuals without color modification
Matching Illustrations to Topics
| Article Topic |
Collection |
Search Keywords |
| Agency operations |
Work-Illustrations |
"Making Plan", "Employee Planning", "Organizing Files" |
| Project management |
Software-Developer, Work |
"Organizing Tasks", "Tracking Sales" |
| Proposals/contracts |
Work-Illustrations |
"Proofreading", "Discussion" |
| Developer rates |
Job-Illustrations, Freelance |
"Freelance Worker", "Freelancer" |
| Maintenance business |
Software-Developer |
"Debugging", "Server Configuration" |
| Pricing/billing |
Ecommerce |
"Sale Offer", "Bill Receipt", "Checkout" |
| Sales/pitching |
Freelance, Advertising |
"Brainstorming", "Video Call", "Presentation" |
| Productized services |
Ecommerce |
"Add to Cart", "Online Shopping", "Online Store" |
| AI services |
AI-Illustrations |
"AI Analyst", "AI Research", "Robot Assistant" |
| White-label |
Software-Developer |
"Frontend Developer", "Reviewing Code" |
| Partnerships |
Work-Illustrations |
"Work Buddy", "Online Chat" |
| Freelancer growth |
Freelance |
"Freelancer", "Remote Employment" |
| Plugin development |
Software-Developer |
"Coding Files", "Feature Branch", "Programming" |
| Product business |
Ecommerce |
"Online Order", "Online Sale" |
| SaaS ideas |
Software-Developer, AI |
"App Testing", "Storage Setting", "Virtual Assistant" |
FontAwesome Icons (Local)
Location
~/Downloads/fontawesome-pro-6.4.2-desktop/svgs/
Categories
| Category |
Path |
Count |
Use For |
| Solid |
solid/ |
1,390 |
Primary icons, filled style |
| Regular |
regular/ |
163 |
Outline style, lighter feel |
| Brands |
brands/ |
492 |
WordPress, YouTube, GitHub, etc. |
How to Use FontAwesome Icons
- Read the SVG file to get the path data
- Extract the
<path d="..."> and viewBox from the file
- Embed inline in your SVG using a
<g> with transform for positioning and scaling
<!-- Example: embedding a FontAwesome icon -->
<g transform="translate(500, 400) scale(0.15)">
<!-- Paste the path data from the .svg file -->
<path d="M0 64C0 28.7 28.7 0 64 0L352..." fill="#2563eb"/>
</g>
Scaling Math
FontAwesome icons use large viewBoxes (typically 0 0 512 512 or 0 0 640 512). To get them to a target pixel size in the 2400x1260 canvas:
| Target Size |
Scale Factor (512 viewBox) |
Scale Factor (640 viewBox) |
| 40px |
0.078 |
0.0625 |
| 60px |
0.117 |
0.094 |
| 80px |
0.156 |
0.125 |
| 100px |
0.195 |
0.156 |
| 120px |
0.234 |
0.188 |
| 150px |
0.293 |
0.234 |
| 200px |
0.39 |
0.313 |
| 250px |
0.488 |
0.39 |
| 300px |
0.586 |
0.469 |
Formula: scale = target_size / icon_viewbox_width
Common Icons by Topic
| Blog Topic |
Solid Icons to Use |
| Blogging / Writing |
pen-to-square, blog, pencil, keyboard, newspaper |
| Money / Income |
dollar-sign, money-bill, coins, piggy-bank, wallet, chart-line |
| WordPress |
brands/wordpress, brands/wordpress-simple |
| Hosting / Server |
server, database, hard-drive, cloud |
| SEO |
magnifying-glass, chart-simple, ranking-star, arrow-trend-up |
| Email |
envelope, paper-plane, at, inbox |
| Social Media |
brands/twitter, brands/youtube, brands/instagram, brands/linkedin |
| Education / Students |
graduation-cap, book, book-open, school, chalkboard-user |
| Tools |
screwdriver-wrench, gear, gears, toolbox, wand-magic-sparkles |
| Speed / Performance |
bolt, gauge-high, rocket, stopwatch |
| Security |
shield-halved, lock, key, user-shield |
| Shopping / Affiliate |
cart-shopping, bag-shopping, tags, receipt |
| Design |
palette, paintbrush, swatchbook, pen-ruler |
| Code / Dev |
code, terminal, bug, laptop-code, file-code |
| AI / Automation |
robot, microchip, brain, wand-magic-sparkles |
| Analytics |
chart-bar, chart-pie, chart-line, chart-area |
| Communication |
comments, message, bullhorn, phone |
| Media |
image, camera, video, photo-film |
| Growth |
arrow-up, arrow-trend-up, seedling, leaf |
| Invoicing / Finance |
file-invoice-dollar, receipt, credit-card, calculator, money-bill-wave |
| Time / Productivity |
clock, stopwatch, hourglass-half, gauge-high, list-check |
Open-Source SVG Icons (Online)
When FontAwesome doesn't have what you need, use inline SVG paths from:
- Heroicons (MIT): Simple, clean outlines or solid fills
- Lucide (ISC): Fork of Feather Icons, consistent 24x24 grid
- Simple Icons (CC0): Brand/company logos
- Tabler Icons (MIT): 2px stroke, rounded caps
Embed the same way: extract <path> data, embed in <g> with transform.
Visual Styles
Pick one style per image based on article type. Do not mix styles.
Style 1: Floating Icons (Default)
Best for: Most blog articles, how-to guides, educational content.
Clean background gradient with 4-8 icons floating at different sizes, slight rotations, and varying opacities. The icons tell the story of the article topic.
Background: Subtle gradient (warm or cool), dot grid pattern for texture.
Icons: Mixed sizes (60px to 250px), scattered composition, slight rotations (-15 to +15 degrees), varying opacity (0.4 to 1.0 for depth).
Accents: Soft colored blobs behind icon clusters, decorative rings, thin connecting lines optional.
Depth techniques (REQUIRED for standout quality):
- Use 3 distinct depth layers: foreground (opacity 0.9-1.0, scale large), midground (0.6-0.8, scale medium), background (0.3-0.5, scale small)
- Background-layer icons should use a blur filter (
feGaussianBlur stdDeviation="3") to simulate depth of field
- Foreground icons should have a drop shadow for elevation
- Add 1-2 decorative rings (unfilled circles with thin stroke) behind the hero icon cluster for visual interest
- Place accent dots (3-6px circles at 0.1-0.2 opacity) scattered between icons
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#f0f9ff"/>
<stop offset="100%" stop-color="#e0f2fe"/>
</linearGradient>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="6" stdDeviation="12" flood-opacity="0.1"/>
</filter>
<filter id="bgBlur">
<feGaussianBlur stdDeviation="3"/>
</filter>
<pattern id="dots" width="30" height="30" patternUnits="userSpaceOnUse">
<circle cx="15" cy="15" r="1.5" fill="#94a3b8" opacity="0.15"/>
</pattern>
</defs>
<!-- Background -->
<rect width="100%" height="100%" fill="url(#bg)"/>
<rect width="100%" height="100%" fill="url(#dots)"/>
<!-- Accent blobs (soft, organic shapes) -->
<ellipse cx="650" cy="450" rx="320" ry="260" fill="#dbeafe" opacity="0.35"/>
<ellipse cx="1800" cy="800" rx="280" ry="220" fill="#c7d2fe" opacity="0.25"/>
<!-- Decorative rings (behind hero icon) -->
<circle cx="1100" cy="550" r="220" fill="none" stroke="#93c5fd" stroke-width="1.5" opacity="0.2"/>
<circle cx="1100" cy="550" r="320" fill="none" stroke="#93c5fd" stroke-width="1" opacity="0.1"/>
<!-- Accent dots scattered for texture -->
<circle cx="380" cy="200" r="4" fill="#3b82f6" opacity="0.15"/>
<circle cx="1900" cy="180" r="5" fill="#6366f1" opacity="0.12"/>
<circle cx="2100" cy="900" r="6" fill="#3b82f6" opacity="0.1"/>
<circle cx="300" cy="1000" r="4" fill="#8b5cf6" opacity="0.12"/>
<circle cx="1500" cy="150" r="3" fill="#6366f1" opacity="0.15"/>
<!-- BACKGROUND LAYER: small, blurred, low opacity -->
<g filter="url(#bgBlur)">
<g transform="translate(200, 180) scale(0.1) rotate(-8)" opacity="0.35">
<path d="..." fill="#8b5cf6"/>
</g>
<g transform="translate(2050, 950) scale(0.1) rotate(10)" opacity="0.3">
<path d="..." fill="#a78bfa"/>
</g>
</g>
<!-- MIDGROUND LAYER: medium, partial opacity -->
<g filter="url(#shadow)">
<g transform="translate(500, 350) scale(0.22) rotate(8)" opacity="0.7">
<path d="..." fill="#3b82f6"/>
</g>
<g transform="translate(1750, 350) scale(0.2) rotate(-10)" opacity="0.65">
<path d="..." fill="#6366f1"/>
</g>
<g transform="translate(450, 750) scale(0.23) rotate(-10)" opacity="0.75">
<path d="..." fill="#2563eb"/>
</g>
</g>
<!-- FOREGROUND LAYER: hero, large, high opacity, strong shadow -->
<g filter="url(#shadow)">
<g transform="translate(1050, 500) scale(0.45) rotate(-5)" opacity="0.95">
<path d="..." fill="#2563eb"/>
</g>
<g transform="translate(1850, 630) scale(0.2) rotate(6)" opacity="0.85">
<path d="..." fill="#6366f1"/>
</g>
</g>
</svg>
Composition rules for floating icons:
- 1 large hero icon (180-250px) placed slightly off-center (rule of thirds)
- 2-3 midground icons (80-120px) distributed around
- 2-3 background icons (40-70px) filling gaps, lower opacity, slight blur
- Minimum 80px padding from canvas edges
- Vary rotation between -15 and +15 degrees
- Use 2-3 colors from the same palette, never rainbow
- Add decorative rings behind hero icon for visual depth
- Scatter 4-6 accent dots between icon clusters
Style 2: Icon Cards on Grid
Best for: Tool comparisons, plugin roundups, structured content.
Icons sit inside white card containers arranged on a visible dot grid. Connected by dashed lines. Feels organized and structured like a diagram.
Background: Light neutral with visible dot grid.
Icons: Inside white rounded-rect cards (120x120px), consistent sizes (60-80px), arranged in a balanced grid-like pattern.
Accents: Thin dashed lines connecting cards, subtle drop shadows on cards, one card highlighted with colored border.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#fafbfc"/>
<stop offset="100%" stop-color="#f1f5f9"/>
</linearGradient>
<filter id="card-shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="4" stdDeviation="12" flood-opacity="0.06"/>
</filter>
<filter id="hero-shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="8" stdDeviation="20" flood-opacity="0.12"/>
</filter>
<pattern id="grid" width="60" height="60" patternUnits="userSpaceOnUse">
<circle cx="30" cy="30" r="1.5" fill="#cbd5e1" opacity="0.25"/>
</pattern>
</defs>
<rect width="100%" height="100%" fill="url(#bg)"/>
<rect width="100%" height="100%" fill="url(#grid)"/>
<!-- Connecting lines between cards (dashed) -->
<line x1="520" y1="400" x2="780" y2="400" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="8 4"/>
<line x1="920" y1="400" x2="1180" y2="400" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="8 4"/>
<!-- Regular cards -->
<g filter="url(#card-shadow)" transform="translate(400, 340)">
<rect x="-60" y="-60" width="120" height="120" rx="16" fill="#fff"/>
<g transform="scale(0.15) translate(-256, -256)">
<path d="..." fill="#64748b"/>
</g>
</g>
<!-- Hero card (highlighted, slightly larger, colored border) -->
<g filter="url(#hero-shadow)" transform="translate(800, 340)">
<rect x="-72" y="-72" width="144" height="144" rx="20" fill="#fff" stroke="#3b82f6" stroke-width="3"/>
<g transform="scale(0.18) translate(-256, -256)">
<path d="..." fill="#2563eb"/>
</g>
</g>
<!-- More regular cards... -->
</svg>
Composition rules for icon cards:
- 5-7 cards in a loose grid (NOT perfectly aligned, slight organic drift)
- One card is the "hero" card: 20% larger, colored border, stronger shadow
- Cards connected by dashed lines to show relationships
- Use the Slate Neutral palette for cards, accent color only on hero card
- Stagger rows slightly for visual interest (not a rigid grid)
Style 3: Bold Gradient + Central Icon
Best for: Single-topic articles, reviews, opinion pieces, newsletter headers.
A rich gradient background with one large central icon (or a tight cluster of 2-3). Minimal, impactful, bold.
Background: Strong multi-point gradient, no grid.
Icons: 1 large icon (280-350px) centered, or 2-3 tightly grouped. White or near-white fill.
Accents: Glow effect behind central icon, concentric rings, subtle radial gradient, corner geometric shapes.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#1e3a5f"/>
<stop offset="40%" stop-color="#1e40af"/>
<stop offset="100%" stop-color="#3b82f6"/>
</linearGradient>
<radialGradient id="glow" cx="50%" cy="50%" r="35%">
<stop offset="0%" stop-color="#fff" stop-opacity="0.12"/>
<stop offset="100%" stop-color="#fff" stop-opacity="0"/>
</radialGradient>
<filter id="icon-glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceGraphic" stdDeviation="15" result="blur"/>
<feBlend in="SourceGraphic" in2="blur" mode="normal"/>
</filter>
</defs>
<rect width="100%" height="100%" fill="url(#bg)"/>
<rect width="100%" height="100%" fill="url(#glow)"/>
<!-- Concentric rings -->
<circle cx="1200" cy="630" r="250" fill="none" stroke="#fff" stroke-width="1.5" opacity="0.08"/>
<circle cx="1200" cy="630" r="350" fill="none" stroke="#fff" stroke-width="1" opacity="0.05"/>
<circle cx="1200" cy="630" r="450" fill="none" stroke="#fff" stroke-width="0.5" opacity="0.03"/>
<!-- Corner geometric accents -->
<rect x="80" y="80" width="120" height="3" rx="1.5" fill="#fff" opacity="0.1"/>
<rect x="80" y="80" width="3" height="120" rx="1.5" fill="#fff" opacity="0.1"/>
<rect x="2200" y="1080" width="120" height="3" rx="1.5" fill="#fff" opacity="0.1"/>
<rect x="2317" y="960" width="3" height="120" rx="1.5" fill="#fff" opacity="0.1"/>
<!-- Central icon (large, white, with glow) -->
<g transform="translate(1200, 630) scale(0.6)" filter="url(#icon-glow)">
<g transform="translate(-256, -256)">
<path d="..." fill="#fff"/>
</g>
</g>
<!-- Small supporting icon (subtle) -->
<g transform="translate(700, 400) scale(0.15)" opacity="0.2">
<path d="..." fill="#93c5fd"/>
</g>
</svg>
Style 4: Glassmorphism Float (NEW)
Best for: SaaS reviews, modern web tools, premium content.
Icons float on frosted glass cards over a gradient background. Premium, modern feel. Each icon sits on a semi-transparent card with backdrop blur simulation.
Background: Rich gradient (dark or vibrant).
Icons: Inside glassmorphic containers (white at 0.08-0.12 opacity, white border at 0.15 opacity, rounded corners).
Accents: Gradient orbs behind glass cards, scattered light sparkles.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0f172a"/>
<stop offset="50%" stop-color="#1e293b"/>
<stop offset="100%" stop-color="#0f172a"/>
</linearGradient>
<filter id="glow-orb">
<feGaussianBlur stdDeviation="40"/>
</filter>
<filter id="card-shadow">
<feDropShadow dx="0" dy="8" stdDeviation="16" flood-color="#000" flood-opacity="0.2"/>
</filter>
</defs>
<rect width="100%" height="100%" fill="url(#bg)"/>
<!-- Glowing orbs behind cards -->
<circle cx="500" cy="400" r="200" fill="#3b82f6" opacity="0.15" filter="url(#glow-orb)"/>
<circle cx="1900" cy="800" r="180" fill="#8b5cf6" opacity="0.12" filter="url(#glow-orb)"/>
<circle cx="1200" cy="600" r="250" fill="#06b6d4" opacity="0.08" filter="url(#glow-orb)"/>
<!-- Glass card with icon -->
<g filter="url(#card-shadow)" transform="translate(1100, 500)">
<!-- Glass background -->
<rect x="-80" y="-80" width="160" height="160" rx="24"
fill="#fff" fill-opacity="0.08"
stroke="#fff" stroke-opacity="0.15" stroke-width="1"/>
<!-- Icon inside -->
<g transform="scale(0.18) translate(-256, -256)">
<path d="..." fill="#e2e8f0"/>
</g>
</g>
<!-- More glass cards at various positions... -->
<!-- Light sparkles (tiny bright dots) -->
<circle cx="800" cy="300" r="2" fill="#fff" opacity="0.4"/>
<circle cx="1600" cy="200" r="1.5" fill="#fff" opacity="0.3"/>
<circle cx="2000" cy="500" r="2" fill="#fff" opacity="0.35"/>
</svg>
Composition rules for glassmorphism:
- 4-6 glass cards of varying sizes (100px to 200px containers)
- One hero card is 40% larger than others
- Cards overlap slightly at edges for depth
- 2-3 colored orbs behind cards create the glow bleed effect
- Scatter 5-8 tiny sparkle dots (1.5-3px, white, 0.2-0.5 opacity)
- Use slate white icons (#e2e8f0) for consistency on dark backgrounds
Style 5: Illustration Hero (PREFERRED)
Best for: Any article where a matching illustration exists. This is the highest-quality style.
A full illustration from the library serves as the hero visual, positioned on a gradient background with subtle accent elements. The illustration tells the story; FA icons are optional accents only.
Background: Soft gradient matching illustration mood + subtle dot grid.
Hero: Full illustration (60-80% canvas height), centered or rule-of-thirds positioned.
Accents: 2-3 soft blobs behind illustration, optional 1-2 small FA icons as floating accents at very low opacity, decorative rings.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#f0f9ff"/>
<stop offset="100%" stop-color="#e0f2fe"/>
</linearGradient>
<filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="8" stdDeviation="20" flood-opacity="0.08"/>
</filter>
<pattern id="dots" width="40" height="40" patternUnits="userSpaceOnUse">
<circle cx="20" cy="20" r="1" fill="#94a3b8" opacity="0.12"/>
</pattern>
</defs>
<!-- Background -->
<rect width="100%" height="100%" fill="url(#bg)"/>
<rect width="100%" height="100%" fill="url(#dots)"/>
<!-- Accent blobs (behind illustration) -->
<ellipse cx="1200" cy="600" rx="500" ry="400" fill="#dbeafe" opacity="0.3"/>
<ellipse cx="800" cy="700" rx="300" ry="250" fill="#c7d2fe" opacity="0.2"/>
<!-- Decorative rings -->
<circle cx="1200" cy="630" r="500" fill="none" stroke="#93c5fd" stroke-width="1" opacity="0.1"/>
<!-- ILLUSTRATION (nested SVG preserves its own styles) -->
<g filter="url(#shadow)">
<svg x="600" y="80" width="1200" height="1100" viewBox="0 0 156 156">
<style type="text/css">
.st0{fill:#F7CFC6;}
.st1{fill:#73504E;}
<!-- ... illustration styles ... -->
</style>
<!-- ... illustration paths ... -->
</svg>
</g>
<!-- Optional: 1-2 tiny FA icon accents (very subtle) -->
<g transform="translate(300, 200) scale(0.12)" opacity="0.15">
<path d="..." fill="#3b82f6"/>
</g>
<!-- Accent dots -->
<circle cx="400" cy="300" r="4" fill="#3b82f6" opacity="0.12"/>
<circle cx="2000" cy="900" r="5" fill="#6366f1" opacity="0.1"/>
</svg>
Composition rules for illustration hero:
- Illustration occupies 60-80% of canvas height (750-1000px)
- Center the illustration horizontally on the canvas
- Position illustration slightly above vertical center (y offset ~80-130px from top)
- Background gradient should complement the illustration's color palette
- Accent blobs should be BEHIND the illustration, large and soft
- FA icon accents are OPTIONAL and should be at 0.1-0.2 opacity max
- Keep accent dots and decorative elements subtle — the illustration is the star
- Apply a light drop shadow to the illustration group for elevation
How to embed an illustration:
- Read the full illustration SVG file
- Extract the
viewBox value from the source SVG
- Extract the inner content (everything between
<svg> and </svg>, including <style> blocks)
- Wrap in a new
<svg x="..." y="..." width="..." height="..." viewBox="..."> element
- Place inside a
<g filter="url(#shadow)"> for elevation
- Size: for a 156x156 viewBox illustration, use
width="1100" height="1100" and center with x="650" y="80"
- For 600x600 viewBox illustrations, use
width="1100" height="1100" and center with x="650" y="80"
Illustration viewBox sizing reference:
| Source viewBox |
Recommended width/height |
x position (centered) |
y position |
| 0 0 156 156 |
1100 x 1100 |
650 |
80 |
| 0 0 600 600 |
1100 x 1100 |
650 |
80 |
| 0 0 500 500 |
1100 x 1100 |
650 |
80 |
Color Palettes
Pick one palette per image. Match to article mood.
Cool Blue (Default for tech/WordPress)
| Element |
Color |
Hex |
| Background start |
Ice blue |
#f0f9ff |
| Background end |
Light blue |
#e0f2fe |
| Primary icon |
Blue |
#2563eb |
| Secondary icon |
Indigo |
#6366f1 |
| Tertiary icon |
Violet |
#8b5cf6 |
| Accent blob |
Blue wash |
#dbeafe |
| Decorative ring |
Light blue |
#93c5fd |
| Grid dots |
Slate |
#94a3b8 |
Warm Amber (Money, business, affiliate)
| Element |
Color |
Hex |
| Background start |
Warm cream |
#fffbeb |
| Background end |
Amber tint |
#fef3c7 |
| Primary icon |
Amber |
#d97706 |
| Secondary icon |
Orange |
#ea580c |
| Tertiary icon |
Rose |
#e11d48 |
| Accent blob |
Amber wash |
#fde68a |
| Decorative ring |
Peach |
#fdba74 |
| Grid dots |
Stone |
#a8a29e |
Fresh Green (Growth, blogging, beginner guides)
| Element |
Color |
Hex |
| Background start |
Mint |
#f0fdf4 |
| Background end |
Green tint |
#dcfce7 |
| Primary icon |
Green |
#16a34a |
| Secondary icon |
Teal |
#0d9488 |
| Tertiary icon |
Emerald |
#059669 |
| Accent blob |
Green wash |
#bbf7d0 |
| Decorative ring |
Light green |
#86efac |
| Grid dots |
Gray-green |
#86efac |
Deep Dark (Bold reviews, opinion pieces)
| Element |
Color |
Hex |
| Background start |
Dark navy |
#0f172a |
| Background mid |
Dark blue |
#1e293b |
| Icon color |
White |
#ffffff |
| Secondary icon |
Light slate |
#e2e8f0 |
| Accent orbs |
Blue/violet/cyan at low opacity |
#3b82f6 / #8b5cf6 / #06b6d4 |
| Sparkles |
White at 0.3-0.5 |
#ffffff |
| Geometric accents |
White at 0.05-0.1 |
#ffffff |
Slate Neutral (Comparisons, lists, roundups)
| Element |
Color |
Hex |
| Background start |
Near white |
#fafbfc |
| Background end |
Light slate |
#f1f5f9 |
| Primary icon |
Slate |
#475569 |
| Secondary icon |
Blue-gray |
#64748b |
| Accent |
Blue pop |
#3b82f6 |
| Card background |
White |
#ffffff |
| Card border (hero) |
Blue |
#3b82f6 |
Composition Rules
Canvas Layout
+--80px padding--+------------------------------------------+--80px padding--+
| | | |
| 80px | SAFE AREA (2240 x 1100) | 80px |
| padding | | padding |
| | | |
+--80px padding--+------------------------------------------+--80px padding--+
- Keep all icons within the safe area (80px inset from edges)
- Social sharing crops to ~1.91:1 (Facebook) or 2:1 (Twitter). Critical content should be centered
- WordPress thumbnails crop to various ratios. Center the visual weight
Hierarchy (3-Layer Depth System)
Every image MUST use 3 depth layers for visual richness:
Foreground (closest to viewer)
- The hero icon (largest, 180-300px)
- 1-2 supporting icons at high opacity (0.85-1.0)
- Drop shadow filter applied
- Slight rotation for dynamism
Midground (middle distance)
- 2-3 medium icons (80-120px)
- Medium opacity (0.6-0.8)
- Light shadow or no shadow
- Moderate rotation
Background (furthest away)
- 2-3 small icons (40-70px)
- Low opacity (0.3-0.5)
- Apply blur filter (
feGaussianBlur stdDeviation="2-4")
- Creates atmospheric depth
Decorative Elements (REQUIRED)
Every image must include at least 3 of these:
- Accent blobs: Soft ellipses (200-350px radius) at 0.2-0.4 opacity in palette-matching colors
- Decorative rings: 1-2 unfilled circles (200-350px radius) with thin stroke (1-2px) at 0.08-0.2 opacity centered behind hero icon
- Accent dots: 4-8 small circles (2-6px) scattered across canvas at 0.1-0.2 opacity
- Dot grid pattern: Light repeating dot pattern for texture
- Corner accents: Thin L-shaped lines in corners (Style 3 and 4 only)
- Sparkles: Tiny bright dots for glassmorphism style
Spacing
- Minimum 80px between icon edges
- Hero icon should have 180px+ clear space around it (except for decorative rings)
- Supporting icons distribute evenly but not symmetrically
- Background icons can be partially clipped by safe area edges for depth
What NOT to Do
- No text (article title goes in WordPress, not the image)
- No photographs or raster images embedded in SVG
- No more than 8 icons total (gets cluttered)
- No rainbow colors. Stick to one palette (2-3 hues)
- No perfect symmetry (feels lifeless)
- No tiny icons that disappear at thumbnail size
- No clip art aesthetic
- No decorative borders or frames
- No flat compositions without depth layers
- No icons all the same size (kills visual hierarchy)
- No icons all at the same opacity (kills depth)
Execution Steps
- Read the article (or article outline) to understand the core topic
- Pick a visual style: Floating Icons (default), Icon Cards, Bold Gradient, or Glassmorphism Float
- Pick a color palette: Match to article mood/category
- Select 5-8 icons from FontAwesome that represent the topic
- Read each
.svg file from the local FontAwesome directory
- Extract the
viewBox and <path d="..."> data
- Note the viewBox dimensions for scaling math
- Build the SVG:
a. Set
viewBox="0 0 2400 1260"
b. Define gradients, filters (shadow, blur, glow), and patterns in <defs>
c. Create background (gradient + pattern)
d. Add accent shapes (blobs, rings, dots)
e. Place BACKGROUND layer icons (small, blurred, low opacity)
f. Place MIDGROUND layer icons (medium, moderate opacity)
g. Place FOREGROUND layer icons (hero + supporting, high opacity, shadow)
h. Add final decorative touches (sparkles, corner accents)
- Review: Does it read well at 300px wide (thumbnail)? Is the topic obvious from icons alone? Is there clear visual depth?
- Save as
.svg file
- Convert:
rsvg-convert -f png -w 2400 -h 1260 -o "output.png" "input.svg"
Matching Style to Article Type
PREFERRED: Always check the Illustration Library first. If a matching illustration exists, use Style 5: Illustration Hero. Fall back to icon-only styles when no good illustration match is available.
| Article Type |
Preferred Style |
Fallback Style |
Recommended Palette |
| How-to guide |
Illustration Hero |
Floating Icons |
Cool Blue |
| Tutorial |
Illustration Hero |
Icon Cards on Grid |
Cool Blue or Neutral |
| Money/affiliate |
Illustration Hero |
Floating Icons |
Warm Amber |
| Beginner guide |
Illustration Hero |
Floating Icons |
Fresh Green |
| WordPress tutorial |
Illustration Hero |
Floating Icons or Icon Cards |
Cool Blue |
| Software review |
Illustration Hero |
Bold Gradient or Glassmorphism |
Deep Dark |
| Product review |
Illustration Hero |
Glassmorphism Float |
Deep Dark |
| Comparison/roundup |
Illustration Hero |
Icon Cards on Grid |
Slate Neutral |
| Opinion/thought leadership |
Illustration Hero |
Bold Gradient |
Deep Dark |
| Agency/business |
Illustration Hero |
Floating Icons |
Cool Blue or Amber |
| Freelancing |
Illustration Hero |
Floating Icons |
Warm Amber |
| AI/automation |
Illustration Hero |
Glassmorphism Float |
Deep Dark |
| Newsletter header |
Illustration Hero |
Floating Icons |
Any |
| Tool recommendation |
Illustration Hero |
Floating Icons |
Warm Amber |
| Student/education |
Illustration Hero |
Floating Icons |
Fresh Green |
| SaaS/web app |
Illustration Hero |
Glassmorphism Float |
Deep Dark |
| Invoice/finance |
Illustration Hero |
Floating Icons |
Warm Amber |
| Time/productivity |
Illustration Hero |
Floating Icons |
Cool Blue |
rsvg-convert Notes
- For exact 2400x1260 PNG:
rsvg-convert -f png -w 2400 -h 1260 -o "output.png" "input.svg"
- For batch conversion:
for f in *.svg; do rsvg-convert -f png -w 2400 -h 1260 -o "${f%.svg}.png" "$f"; done
- Install on macOS:
brew install librsvg
- If only
-w is specified, height scales proportionally from viewBox
Mobile-Friendly Rules
Featured images display at various sizes across devices:
- viewBox is mandatory —
viewBox="0 0 2400 1260", never fixed pixel dimensions.
- Center visual weight: Social crops (1.91:1 Facebook, 2:1 Twitter) and WordPress thumbnails all crop from center. Keep the hero icon cluster centered.
- Test at 300px wide: The image must be recognizable and the topic obvious at thumbnail size. This is the mobile card/feed width.
- Minimum icon rendered size: The hero icon must remain identifiable at ~60px rendered width. Background icons can fade.
- No tiny decorative elements that vanish at small sizes — accent dots under 4px at viewBox scale disappear on mobile.
- Responsive embed: WordPress handles this, but for custom use:
width="100%" height="auto".
Quality Checklist
1---2name: featured-image-creator3description: Create blog featured images as SVG (2400x1260px) using illustration libraries, FontAwesome icons, and open-source SVGs. No or negligible text. Convert to PNG via rsvg-convert. Use for yoursite.com and youragency.com blog post thumbnails, social sharing images, and WordPress featured images.4---56# Featured Image Creator78Create blog featured images as clean SVG graphics at 2400x1260px. Illustrations and icons tell the story, not text. Output is converted to PNG via `rsvg-convert` for WordPress.910## Specs1112| Attribute | Value |13|-----------|-------|14| Dimensions | `viewBox="0 0 2400 1260"` |15| Aspect ratio | ~1.9:1 (close to 16:9) |16| Text | None or negligible (title overlay not needed) |17| Visuals | Illustration libraries (primary) + FontAwesome icons (accent) |18| Output | `.svg` file, converted to `.png` via rsvg-convert |19| Target PNG | 2400x1260px exact via `rsvg-convert -w 2400 -h 1260` |2021## Conversion Command2223```bash24for f in *.svg; do rsvg-convert -f png -w 2400 -h 1260 -o "${f%.svg}.png" "$f"; done25```2627Single file:28```bash29rsvg-convert -f png -w 2400 -h 1260 -o "output.png" "input.svg"30```3132---3334## Illustration Library (Primary Visual Source)3536### Location3738```39~/Icons/graphics-inspirations/40```4142### Available Collections4344| Collection | Folder | SVGs | Best For |45|-----------|--------|------|----------|46| Freelance & Remote Work | `Freelance-Vector-Illustrations/SVG/Expanded/Titled/` | 361 | Freelancing, remote work, agency life |47| Software Developer | `Software-Developer-Illustrations/SVG/Expanded/Titled/` | 201 | Coding, debugging, dev workflows |48| Work & Office | `7c89bfb8-*-Work-Illustrations/SVG/Expanded/Titled/` | 201 | Planning, burnout, office scenarios |49| Job Professions | `Job-Illustrations-Art-Set/SVG/Expanded/Titled/` | 201 | Career roles, professional services |50| Ecommerce | `Ecommerce-Illustrations/SVG/Expanded/Titled/` | 201 | Shopping, pricing, products, billing |51| AI & Robotics | `971d5aad-*-Artificial-Intelligence-*/SVG/Expanded/Titled/` | 301 | AI, automation, robots, futuristic |52| Workaholics | `Workaholics-Characters-*/SVG/Expanded/Titled/` | 401 | Work stress, deadlines, hustle |53| Advertising | `Advertising Illustration/SVG/Expanded/` | 25 | Marketing, ads (numbered 1–25) |54| Colorful Life | `Colorful-Life-Collection/` (6 subcategories) | 1126 | Celebration, health, travel, education |55| IoT & Smart Devices | `IOT-Illustrations/SVG/Expanded/Titled/` | 201 | Smart tech, automation, devices |56| Lifestyle | `Lifestyle-Illustrations/SVG/Expanded/Titled/` | 361 | Daily activities, hobbies |57| Shopping & Grocery | `Shopping-Grocery-Illustrations/SVG/Expanded/Titled/` | 301 | Retail, delivery, shopping |58| Stress & Sleep | `Stress & Sleep Illustrations Design/SVG/Expanded/Titled/` | 301 | Mental health, wellness |59| Math & Education | `c0788535-*-Math-Illustrations/SVG/Expanded/Titled/` | 261 | Math, education, tutoring |60| Reeded Glass | `e6ceb468-*-reeded_glass/` | 20 | Glassmorphism UI elements |61| WordPress | `wpbeginner/` | 5 | WordPress-specific scenes |6263### How to Use Illustrations6465Illustrations are full SVG files with embedded `<style>` blocks using CSS classes (`.st0`, `.st1`, etc.) for colors. They have their own viewBoxes (commonly `0 0 156 156` or `0 0 600 600`).6667**Embed using nested `<svg>` element** to preserve the illustration's style scope:6869```svg70<!-- Read the illustration file, strip the XML declaration and outer <svg> opening/closing -->71<!-- Then embed as a nested SVG with positioning -->72<svg x="600" y="80" width="1200" height="1100" viewBox="0 0 156 156">73 <style type="text/css">74 .st0{fill:#F7CFC6;}75 .st1{fill:#73504E;}76 <!-- ... all style classes from the illustration -->77 </style>78 <!-- All illustration paths/groups here -->79</svg>80```8182**Key embedding rules:**831. Read the illustration SVG file completely842. Extract everything BETWEEN `<svg ...>` and `</svg>` (the inner content including `<style>`)853. Wrap in a new `<svg>` element with x/y/width/height for positioning on the 2400x1260 canvas864. The nested SVG's viewBox should match the original illustration's viewBox875. Size the illustration to occupy ~60-80% of canvas height (750-1000px height)886. Center horizontally, position slightly above vertical center8990**Illustration style notes:**91- All illustrations use flat design with vibrant, consistent color palettes92- Colors include blues (#006BFF, #3BA2FB), greens (#00C491, #02A05A), pinks (#EE5271), yellows (#FFD700), and skin tones (#F7CFC6, #FAB19D)93- Character-centric scenes with professional themes94- Well-suited as hero visuals without color modification9596### Matching Illustrations to Topics9798| Article Topic | Collection | Search Keywords |99|--------------|-----------|-----------------|100| Agency operations | Work-Illustrations | "Making Plan", "Employee Planning", "Organizing Files" |101| Project management | Software-Developer, Work | "Organizing Tasks", "Tracking Sales" |102| Proposals/contracts | Work-Illustrations | "Proofreading", "Discussion" |103| Developer rates | Job-Illustrations, Freelance | "Freelance Worker", "Freelancer" |104| Maintenance business | Software-Developer | "Debugging", "Server Configuration" |105| Pricing/billing | Ecommerce | "Sale Offer", "Bill Receipt", "Checkout" |106| Sales/pitching | Freelance, Advertising | "Brainstorming", "Video Call", "Presentation" |107| Productized services | Ecommerce | "Add to Cart", "Online Shopping", "Online Store" |108| AI services | AI-Illustrations | "AI Analyst", "AI Research", "Robot Assistant" |109| White-label | Software-Developer | "Frontend Developer", "Reviewing Code" |110| Partnerships | Work-Illustrations | "Work Buddy", "Online Chat" |111| Freelancer growth | Freelance | "Freelancer", "Remote Employment" |112| Plugin development | Software-Developer | "Coding Files", "Feature Branch", "Programming" |113| Product business | Ecommerce | "Online Order", "Online Sale" |114| SaaS ideas | Software-Developer, AI | "App Testing", "Storage Setting", "Virtual Assistant" |115116---117118## FontAwesome Icons (Local)119120### Location121122```123~/Downloads/fontawesome-pro-6.4.2-desktop/svgs/124```125126### Categories127128| Category | Path | Count | Use For |129|----------|------|-------|---------|130| Solid | `solid/` | 1,390 | Primary icons, filled style |131| Regular | `regular/` | 163 | Outline style, lighter feel |132| Brands | `brands/` | 492 | WordPress, YouTube, GitHub, etc. |133134### How to Use FontAwesome Icons1351361. **Read the SVG file** to get the path data1372. **Extract the `<path d="...">` and `viewBox`** from the file1383. **Embed inline** in your SVG using a `<g>` with transform for positioning and scaling139140```svg141<!-- Example: embedding a FontAwesome icon -->142<g transform="translate(500, 400) scale(0.15)">143 <!-- Paste the path data from the .svg file -->144 <path d="M0 64C0 28.7 28.7 0 64 0L352..." fill="#2563eb"/>145</g>146```147148### Scaling Math149150FontAwesome icons use large viewBoxes (typically `0 0 512 512` or `0 0 640 512`). To get them to a target pixel size in the 2400x1260 canvas:151152| Target Size | Scale Factor (512 viewBox) | Scale Factor (640 viewBox) |153|-------------|---------------------------|---------------------------|154| 40px | 0.078 | 0.0625 |155| 60px | 0.117 | 0.094 |156| 80px | 0.156 | 0.125 |157| 100px | 0.195 | 0.156 |158| 120px | 0.234 | 0.188 |159| 150px | 0.293 | 0.234 |160| 200px | 0.39 | 0.313 |161| 250px | 0.488 | 0.39 |162| 300px | 0.586 | 0.469 |163164**Formula**: `scale = target_size / icon_viewbox_width`165166### Common Icons by Topic167168| Blog Topic | Solid Icons to Use |169|------------|-------------------|170| Blogging / Writing | `pen-to-square`, `blog`, `pencil`, `keyboard`, `newspaper` |171| Money / Income | `dollar-sign`, `money-bill`, `coins`, `piggy-bank`, `wallet`, `chart-line` |172| WordPress | `brands/wordpress`, `brands/wordpress-simple` |173| Hosting / Server | `server`, `database`, `hard-drive`, `cloud` |174| SEO | `magnifying-glass`, `chart-simple`, `ranking-star`, `arrow-trend-up` |175| Email | `envelope`, `paper-plane`, `at`, `inbox` |176| Social Media | `brands/twitter`, `brands/youtube`, `brands/instagram`, `brands/linkedin` |177| Education / Students | `graduation-cap`, `book`, `book-open`, `school`, `chalkboard-user` |178| Tools | `screwdriver-wrench`, `gear`, `gears`, `toolbox`, `wand-magic-sparkles` |179| Speed / Performance | `bolt`, `gauge-high`, `rocket`, `stopwatch` |180| Security | `shield-halved`, `lock`, `key`, `user-shield` |181| Shopping / Affiliate | `cart-shopping`, `bag-shopping`, `tags`, `receipt` |182| Design | `palette`, `paintbrush`, `swatchbook`, `pen-ruler` |183| Code / Dev | `code`, `terminal`, `bug`, `laptop-code`, `file-code` |184| AI / Automation | `robot`, `microchip`, `brain`, `wand-magic-sparkles` |185| Analytics | `chart-bar`, `chart-pie`, `chart-line`, `chart-area` |186| Communication | `comments`, `message`, `bullhorn`, `phone` |187| Media | `image`, `camera`, `video`, `photo-film` |188| Growth | `arrow-up`, `arrow-trend-up`, `seedling`, `leaf` |189| Invoicing / Finance | `file-invoice-dollar`, `receipt`, `credit-card`, `calculator`, `money-bill-wave` |190| Time / Productivity | `clock`, `stopwatch`, `hourglass-half`, `gauge-high`, `list-check` |191192### Open-Source SVG Icons (Online)193194When FontAwesome doesn't have what you need, use inline SVG paths from:195196- **Heroicons** (MIT): Simple, clean outlines or solid fills197- **Lucide** (ISC): Fork of Feather Icons, consistent 24x24 grid198- **Simple Icons** (CC0): Brand/company logos199- **Tabler Icons** (MIT): 2px stroke, rounded caps200201Embed the same way: extract `<path>` data, embed in `<g>` with transform.202203---204205## Visual Styles206207Pick one style per image based on article type. Do not mix styles.208209### Style 1: Floating Icons (Default)210211Best for: Most blog articles, how-to guides, educational content.212213Clean background gradient with 4-8 icons floating at different sizes, slight rotations, and varying opacities. The icons tell the story of the article topic.214215**Background**: Subtle gradient (warm or cool), dot grid pattern for texture.216**Icons**: Mixed sizes (60px to 250px), scattered composition, slight rotations (-15 to +15 degrees), varying opacity (0.4 to 1.0 for depth).217**Accents**: Soft colored blobs behind icon clusters, decorative rings, thin connecting lines optional.218219**Depth techniques (REQUIRED for standout quality):**220- Use 3 distinct depth layers: foreground (opacity 0.9-1.0, scale large), midground (0.6-0.8, scale medium), background (0.3-0.5, scale small)221- Background-layer icons should use a **blur filter** (`feGaussianBlur stdDeviation="3"`) to simulate depth of field222- Foreground icons should have a **drop shadow** for elevation223- Add 1-2 **decorative rings** (unfilled circles with thin stroke) behind the hero icon cluster for visual interest224- Place **accent dots** (3-6px circles at 0.1-0.2 opacity) scattered between icons225226```svg227<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">228 <defs>229 <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">230 <stop offset="0%" stop-color="#f0f9ff"/>231 <stop offset="100%" stop-color="#e0f2fe"/>232 </linearGradient>233 <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">234 <feDropShadow dx="0" dy="6" stdDeviation="12" flood-opacity="0.1"/>235 </filter>236 <filter id="bgBlur">237 <feGaussianBlur stdDeviation="3"/>238 </filter>239 <pattern id="dots" width="30" height="30" patternUnits="userSpaceOnUse">240 <circle cx="15" cy="15" r="1.5" fill="#94a3b8" opacity="0.15"/>241 </pattern>242 </defs>243244 <!-- Background -->245 <rect width="100%" height="100%" fill="url(#bg)"/>246 <rect width="100%" height="100%" fill="url(#dots)"/>247248 <!-- Accent blobs (soft, organic shapes) -->249 <ellipse cx="650" cy="450" rx="320" ry="260" fill="#dbeafe" opacity="0.35"/>250 <ellipse cx="1800" cy="800" rx="280" ry="220" fill="#c7d2fe" opacity="0.25"/>251252 <!-- Decorative rings (behind hero icon) -->253 <circle cx="1100" cy="550" r="220" fill="none" stroke="#93c5fd" stroke-width="1.5" opacity="0.2"/>254 <circle cx="1100" cy="550" r="320" fill="none" stroke="#93c5fd" stroke-width="1" opacity="0.1"/>255256 <!-- Accent dots scattered for texture -->257 <circle cx="380" cy="200" r="4" fill="#3b82f6" opacity="0.15"/>258 <circle cx="1900" cy="180" r="5" fill="#6366f1" opacity="0.12"/>259 <circle cx="2100" cy="900" r="6" fill="#3b82f6" opacity="0.1"/>260 <circle cx="300" cy="1000" r="4" fill="#8b5cf6" opacity="0.12"/>261 <circle cx="1500" cy="150" r="3" fill="#6366f1" opacity="0.15"/>262263 <!-- BACKGROUND LAYER: small, blurred, low opacity -->264 <g filter="url(#bgBlur)">265 <g transform="translate(200, 180) scale(0.1) rotate(-8)" opacity="0.35">266 <path d="..." fill="#8b5cf6"/>267 </g>268 <g transform="translate(2050, 950) scale(0.1) rotate(10)" opacity="0.3">269 <path d="..." fill="#a78bfa"/>270 </g>271 </g>272273 <!-- MIDGROUND LAYER: medium, partial opacity -->274 <g filter="url(#shadow)">275 <g transform="translate(500, 350) scale(0.22) rotate(8)" opacity="0.7">276 <path d="..." fill="#3b82f6"/>277 </g>278 <g transform="translate(1750, 350) scale(0.2) rotate(-10)" opacity="0.65">279 <path d="..." fill="#6366f1"/>280 </g>281 <g transform="translate(450, 750) scale(0.23) rotate(-10)" opacity="0.75">282 <path d="..." fill="#2563eb"/>283 </g>284 </g>285286 <!-- FOREGROUND LAYER: hero, large, high opacity, strong shadow -->287 <g filter="url(#shadow)">288 <g transform="translate(1050, 500) scale(0.45) rotate(-5)" opacity="0.95">289 <path d="..." fill="#2563eb"/>290 </g>291 <g transform="translate(1850, 630) scale(0.2) rotate(6)" opacity="0.85">292 <path d="..." fill="#6366f1"/>293 </g>294 </g>295</svg>296```297298**Composition rules for floating icons:**299- 1 large hero icon (180-250px) placed slightly off-center (rule of thirds)300- 2-3 midground icons (80-120px) distributed around301- 2-3 background icons (40-70px) filling gaps, lower opacity, slight blur302- Minimum 80px padding from canvas edges303- Vary rotation between -15 and +15 degrees304- Use 2-3 colors from the same palette, never rainbow305- Add decorative rings behind hero icon for visual depth306- Scatter 4-6 accent dots between icon clusters307308### Style 2: Icon Cards on Grid309310Best for: Tool comparisons, plugin roundups, structured content.311312Icons sit inside white card containers arranged on a visible dot grid. Connected by dashed lines. Feels organized and structured like a diagram.313314**Background**: Light neutral with visible dot grid.315**Icons**: Inside white rounded-rect cards (120x120px), consistent sizes (60-80px), arranged in a balanced grid-like pattern.316**Accents**: Thin dashed lines connecting cards, subtle drop shadows on cards, one card highlighted with colored border.317318```svg319<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">320 <defs>321 <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">322 <stop offset="0%" stop-color="#fafbfc"/>323 <stop offset="100%" stop-color="#f1f5f9"/>324 </linearGradient>325 <filter id="card-shadow" x="-20%" y="-20%" width="140%" height="140%">326 <feDropShadow dx="0" dy="4" stdDeviation="12" flood-opacity="0.06"/>327 </filter>328 <filter id="hero-shadow" x="-20%" y="-20%" width="140%" height="140%">329 <feDropShadow dx="0" dy="8" stdDeviation="20" flood-opacity="0.12"/>330 </filter>331 <pattern id="grid" width="60" height="60" patternUnits="userSpaceOnUse">332 <circle cx="30" cy="30" r="1.5" fill="#cbd5e1" opacity="0.25"/>333 </pattern>334 </defs>335336 <rect width="100%" height="100%" fill="url(#bg)"/>337 <rect width="100%" height="100%" fill="url(#grid)"/>338339 <!-- Connecting lines between cards (dashed) -->340 <line x1="520" y1="400" x2="780" y2="400" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="8 4"/>341 <line x1="920" y1="400" x2="1180" y2="400" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="8 4"/>342343 <!-- Regular cards -->344 <g filter="url(#card-shadow)" transform="translate(400, 340)">345 <rect x="-60" y="-60" width="120" height="120" rx="16" fill="#fff"/>346 <g transform="scale(0.15) translate(-256, -256)">347 <path d="..." fill="#64748b"/>348 </g>349 </g>350351 <!-- Hero card (highlighted, slightly larger, colored border) -->352 <g filter="url(#hero-shadow)" transform="translate(800, 340)">353 <rect x="-72" y="-72" width="144" height="144" rx="20" fill="#fff" stroke="#3b82f6" stroke-width="3"/>354 <g transform="scale(0.18) translate(-256, -256)">355 <path d="..." fill="#2563eb"/>356 </g>357 </g>358359 <!-- More regular cards... -->360</svg>361```362363**Composition rules for icon cards:**364- 5-7 cards in a loose grid (NOT perfectly aligned, slight organic drift)365- One card is the "hero" card: 20% larger, colored border, stronger shadow366- Cards connected by dashed lines to show relationships367- Use the Slate Neutral palette for cards, accent color only on hero card368- Stagger rows slightly for visual interest (not a rigid grid)369370### Style 3: Bold Gradient + Central Icon371372Best for: Single-topic articles, reviews, opinion pieces, newsletter headers.373374A rich gradient background with one large central icon (or a tight cluster of 2-3). Minimal, impactful, bold.375376**Background**: Strong multi-point gradient, no grid.377**Icons**: 1 large icon (280-350px) centered, or 2-3 tightly grouped. White or near-white fill.378**Accents**: Glow effect behind central icon, concentric rings, subtle radial gradient, corner geometric shapes.379380```svg381<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">382 <defs>383 <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">384 <stop offset="0%" stop-color="#1e3a5f"/>385 <stop offset="40%" stop-color="#1e40af"/>386 <stop offset="100%" stop-color="#3b82f6"/>387 </linearGradient>388 <radialGradient id="glow" cx="50%" cy="50%" r="35%">389 <stop offset="0%" stop-color="#fff" stop-opacity="0.12"/>390 <stop offset="100%" stop-color="#fff" stop-opacity="0"/>391 </radialGradient>392 <filter id="icon-glow" x="-50%" y="-50%" width="200%" height="200%">393 <feGaussianBlur in="SourceGraphic" stdDeviation="15" result="blur"/>394 <feBlend in="SourceGraphic" in2="blur" mode="normal"/>395 </filter>396 </defs>397398 <rect width="100%" height="100%" fill="url(#bg)"/>399 <rect width="100%" height="100%" fill="url(#glow)"/>400401 <!-- Concentric rings -->402 <circle cx="1200" cy="630" r="250" fill="none" stroke="#fff" stroke-width="1.5" opacity="0.08"/>403 <circle cx="1200" cy="630" r="350" fill="none" stroke="#fff" stroke-width="1" opacity="0.05"/>404 <circle cx="1200" cy="630" r="450" fill="none" stroke="#fff" stroke-width="0.5" opacity="0.03"/>405406 <!-- Corner geometric accents -->407 <rect x="80" y="80" width="120" height="3" rx="1.5" fill="#fff" opacity="0.1"/>408 <rect x="80" y="80" width="3" height="120" rx="1.5" fill="#fff" opacity="0.1"/>409 <rect x="2200" y="1080" width="120" height="3" rx="1.5" fill="#fff" opacity="0.1"/>410 <rect x="2317" y="960" width="3" height="120" rx="1.5" fill="#fff" opacity="0.1"/>411412 <!-- Central icon (large, white, with glow) -->413 <g transform="translate(1200, 630) scale(0.6)" filter="url(#icon-glow)">414 <g transform="translate(-256, -256)">415 <path d="..." fill="#fff"/>416 </g>417 </g>418419 <!-- Small supporting icon (subtle) -->420 <g transform="translate(700, 400) scale(0.15)" opacity="0.2">421 <path d="..." fill="#93c5fd"/>422 </g>423</svg>424```425426### Style 4: Glassmorphism Float (NEW)427428Best for: SaaS reviews, modern web tools, premium content.429430Icons float on frosted glass cards over a gradient background. Premium, modern feel. Each icon sits on a semi-transparent card with backdrop blur simulation.431432**Background**: Rich gradient (dark or vibrant).433**Icons**: Inside glassmorphic containers (white at 0.08-0.12 opacity, white border at 0.15 opacity, rounded corners).434**Accents**: Gradient orbs behind glass cards, scattered light sparkles.435436```svg437<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">438 <defs>439 <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">440 <stop offset="0%" stop-color="#0f172a"/>441 <stop offset="50%" stop-color="#1e293b"/>442 <stop offset="100%" stop-color="#0f172a"/>443 </linearGradient>444 <filter id="glow-orb">445 <feGaussianBlur stdDeviation="40"/>446 </filter>447 <filter id="card-shadow">448 <feDropShadow dx="0" dy="8" stdDeviation="16" flood-color="#000" flood-opacity="0.2"/>449 </filter>450 </defs>451452 <rect width="100%" height="100%" fill="url(#bg)"/>453454 <!-- Glowing orbs behind cards -->455 <circle cx="500" cy="400" r="200" fill="#3b82f6" opacity="0.15" filter="url(#glow-orb)"/>456 <circle cx="1900" cy="800" r="180" fill="#8b5cf6" opacity="0.12" filter="url(#glow-orb)"/>457 <circle cx="1200" cy="600" r="250" fill="#06b6d4" opacity="0.08" filter="url(#glow-orb)"/>458459 <!-- Glass card with icon -->460 <g filter="url(#card-shadow)" transform="translate(1100, 500)">461 <!-- Glass background -->462 <rect x="-80" y="-80" width="160" height="160" rx="24"463 fill="#fff" fill-opacity="0.08"464 stroke="#fff" stroke-opacity="0.15" stroke-width="1"/>465 <!-- Icon inside -->466 <g transform="scale(0.18) translate(-256, -256)">467 <path d="..." fill="#e2e8f0"/>468 </g>469 </g>470471 <!-- More glass cards at various positions... -->472473 <!-- Light sparkles (tiny bright dots) -->474 <circle cx="800" cy="300" r="2" fill="#fff" opacity="0.4"/>475 <circle cx="1600" cy="200" r="1.5" fill="#fff" opacity="0.3"/>476 <circle cx="2000" cy="500" r="2" fill="#fff" opacity="0.35"/>477</svg>478```479480**Composition rules for glassmorphism:**481- 4-6 glass cards of varying sizes (100px to 200px containers)482- One hero card is 40% larger than others483- Cards overlap slightly at edges for depth484- 2-3 colored orbs behind cards create the glow bleed effect485- Scatter 5-8 tiny sparkle dots (1.5-3px, white, 0.2-0.5 opacity)486- Use slate white icons (#e2e8f0) for consistency on dark backgrounds487488### Style 5: Illustration Hero (PREFERRED)489490Best for: Any article where a matching illustration exists. This is the highest-quality style.491492A full illustration from the library serves as the hero visual, positioned on a gradient background with subtle accent elements. The illustration tells the story; FA icons are optional accents only.493494**Background**: Soft gradient matching illustration mood + subtle dot grid.495**Hero**: Full illustration (60-80% canvas height), centered or rule-of-thirds positioned.496**Accents**: 2-3 soft blobs behind illustration, optional 1-2 small FA icons as floating accents at very low opacity, decorative rings.497498```svg499<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2400 1260">500 <defs>501 <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">502 <stop offset="0%" stop-color="#f0f9ff"/>503 <stop offset="100%" stop-color="#e0f2fe"/>504 </linearGradient>505 <filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">506 <feDropShadow dx="0" dy="8" stdDeviation="20" flood-opacity="0.08"/>507 </filter>508 <pattern id="dots" width="40" height="40" patternUnits="userSpaceOnUse">509 <circle cx="20" cy="20" r="1" fill="#94a3b8" opacity="0.12"/>510 </pattern>511 </defs>512513 <!-- Background -->514 <rect width="100%" height="100%" fill="url(#bg)"/>515 <rect width="100%" height="100%" fill="url(#dots)"/>516517 <!-- Accent blobs (behind illustration) -->518 <ellipse cx="1200" cy="600" rx="500" ry="400" fill="#dbeafe" opacity="0.3"/>519 <ellipse cx="800" cy="700" rx="300" ry="250" fill="#c7d2fe" opacity="0.2"/>520521 <!-- Decorative rings -->522 <circle cx="1200" cy="630" r="500" fill="none" stroke="#93c5fd" stroke-width="1" opacity="0.1"/>523524 <!-- ILLUSTRATION (nested SVG preserves its own styles) -->525 <g filter="url(#shadow)">526 <svg x="600" y="80" width="1200" height="1100" viewBox="0 0 156 156">527 <style type="text/css">528 .st0{fill:#F7CFC6;}529 .st1{fill:#73504E;}530 <!-- ... illustration styles ... -->531 </style>532 <!-- ... illustration paths ... -->533 </svg>534 </g>535536 <!-- Optional: 1-2 tiny FA icon accents (very subtle) -->537 <g transform="translate(300, 200) scale(0.12)" opacity="0.15">538 <path d="..." fill="#3b82f6"/>539 </g>540541 <!-- Accent dots -->542 <circle cx="400" cy="300" r="4" fill="#3b82f6" opacity="0.12"/>543 <circle cx="2000" cy="900" r="5" fill="#6366f1" opacity="0.1"/>544</svg>545```546547**Composition rules for illustration hero:**548- Illustration occupies 60-80% of canvas height (750-1000px)549- Center the illustration horizontally on the canvas550- Position illustration slightly above vertical center (y offset ~80-130px from top)551- Background gradient should complement the illustration's color palette552- Accent blobs should be BEHIND the illustration, large and soft553- FA icon accents are OPTIONAL and should be at 0.1-0.2 opacity max554- Keep accent dots and decorative elements subtle — the illustration is the star555- Apply a light drop shadow to the illustration group for elevation556557**How to embed an illustration:**5581. Read the full illustration SVG file5592. Extract the `viewBox` value from the source SVG5603. Extract the inner content (everything between `<svg>` and `</svg>`, including `<style>` blocks)5614. Wrap in a new `<svg x="..." y="..." width="..." height="..." viewBox="...">` element5625. Place inside a `<g filter="url(#shadow)">` for elevation5636. Size: for a 156x156 viewBox illustration, use `width="1100" height="1100"` and center with `x="650" y="80"`5647. For 600x600 viewBox illustrations, use `width="1100" height="1100"` and center with `x="650" y="80"`565566**Illustration viewBox sizing reference:**567568| Source viewBox | Recommended width/height | x position (centered) | y position |569|---------------|-------------------------|----------------------|------------|570| 0 0 156 156 | 1100 x 1100 | 650 | 80 |571| 0 0 600 600 | 1100 x 1100 | 650 | 80 |572| 0 0 500 500 | 1100 x 1100 | 650 | 80 |573574---575576## Color Palettes577578Pick one palette per image. Match to article mood.579580### Cool Blue (Default for tech/WordPress)581582| Element | Color | Hex |583|---------|-------|-----|584| Background start | Ice blue | `#f0f9ff` |585| Background end | Light blue | `#e0f2fe` |586| Primary icon | Blue | `#2563eb` |587| Secondary icon | Indigo | `#6366f1` |588| Tertiary icon | Violet | `#8b5cf6` |589| Accent blob | Blue wash | `#dbeafe` |590| Decorative ring | Light blue | `#93c5fd` |591| Grid dots | Slate | `#94a3b8` |592593### Warm Amber (Money, business, affiliate)594595| Element | Color | Hex |596|---------|-------|-----|597| Background start | Warm cream | `#fffbeb` |598| Background end | Amber tint | `#fef3c7` |599| Primary icon | Amber | `#d97706` |600| Secondary icon | Orange | `#ea580c` |601| Tertiary icon | Rose | `#e11d48` |602| Accent blob | Amber wash | `#fde68a` |603| Decorative ring | Peach | `#fdba74` |604| Grid dots | Stone | `#a8a29e` |605606### Fresh Green (Growth, blogging, beginner guides)607608| Element | Color | Hex |609|---------|-------|-----|610| Background start | Mint | `#f0fdf4` |611| Background end | Green tint | `#dcfce7` |612| Primary icon | Green | `#16a34a` |613| Secondary icon | Teal | `#0d9488` |614| Tertiary icon | Emerald | `#059669` |615| Accent blob | Green wash | `#bbf7d0` |616| Decorative ring | Light green | `#86efac` |617| Grid dots | Gray-green | `#86efac` |618619### Deep Dark (Bold reviews, opinion pieces)620621| Element | Color | Hex |622|---------|-------|-----|623| Background start | Dark navy | `#0f172a` |624| Background mid | Dark blue | `#1e293b` |625| Icon color | White | `#ffffff` |626| Secondary icon | Light slate | `#e2e8f0` |627| Accent orbs | Blue/violet/cyan at low opacity | `#3b82f6` / `#8b5cf6` / `#06b6d4` |628| Sparkles | White at 0.3-0.5 | `#ffffff` |629| Geometric accents | White at 0.05-0.1 | `#ffffff` |630631### Slate Neutral (Comparisons, lists, roundups)632633| Element | Color | Hex |634|---------|-------|-----|635| Background start | Near white | `#fafbfc` |636| Background end | Light slate | `#f1f5f9` |637| Primary icon | Slate | `#475569` |638| Secondary icon | Blue-gray | `#64748b` |639| Accent | Blue pop | `#3b82f6` |640| Card background | White | `#ffffff` |641| Card border (hero) | Blue | `#3b82f6` |642643---644645## Composition Rules646647### Canvas Layout648649```650+--80px padding--+------------------------------------------+--80px padding--+651| | | |652| 80px | SAFE AREA (2240 x 1100) | 80px |653| padding | | padding |654| | | |655+--80px padding--+------------------------------------------+--80px padding--+656```657658- Keep all icons within the safe area (80px inset from edges)659- Social sharing crops to ~1.91:1 (Facebook) or 2:1 (Twitter). Critical content should be centered660- WordPress thumbnails crop to various ratios. Center the visual weight661662### Hierarchy (3-Layer Depth System)663664Every image MUST use 3 depth layers for visual richness:6656661. **Foreground** (closest to viewer)667 - The hero icon (largest, 180-300px)668 - 1-2 supporting icons at high opacity (0.85-1.0)669 - Drop shadow filter applied670 - Slight rotation for dynamism6716722. **Midground** (middle distance)673 - 2-3 medium icons (80-120px)674 - Medium opacity (0.6-0.8)675 - Light shadow or no shadow676 - Moderate rotation6776783. **Background** (furthest away)679 - 2-3 small icons (40-70px)680 - Low opacity (0.3-0.5)681 - Apply blur filter (`feGaussianBlur stdDeviation="2-4"`)682 - Creates atmospheric depth683684### Decorative Elements (REQUIRED)685686Every image must include at least 3 of these:687688- **Accent blobs**: Soft ellipses (200-350px radius) at 0.2-0.4 opacity in palette-matching colors689- **Decorative rings**: 1-2 unfilled circles (200-350px radius) with thin stroke (1-2px) at 0.08-0.2 opacity centered behind hero icon690- **Accent dots**: 4-8 small circles (2-6px) scattered across canvas at 0.1-0.2 opacity691- **Dot grid pattern**: Light repeating dot pattern for texture692- **Corner accents**: Thin L-shaped lines in corners (Style 3 and 4 only)693- **Sparkles**: Tiny bright dots for glassmorphism style694695### Spacing696697- Minimum 80px between icon edges698- Hero icon should have 180px+ clear space around it (except for decorative rings)699- Supporting icons distribute evenly but not symmetrically700- Background icons can be partially clipped by safe area edges for depth701702### What NOT to Do703704- No text (article title goes in WordPress, not the image)705- No photographs or raster images embedded in SVG706- No more than 8 icons total (gets cluttered)707- No rainbow colors. Stick to one palette (2-3 hues)708- No perfect symmetry (feels lifeless)709- No tiny icons that disappear at thumbnail size710- No clip art aesthetic711- No decorative borders or frames712- No flat compositions without depth layers713- No icons all the same size (kills visual hierarchy)714- No icons all at the same opacity (kills depth)715716---717718## Execution Steps7197201. **Read the article** (or article outline) to understand the core topic7212. **Pick a visual style**: Floating Icons (default), Icon Cards, Bold Gradient, or Glassmorphism Float7223. **Pick a color palette**: Match to article mood/category7234. **Select 5-8 icons** from FontAwesome that represent the topic724 - Read each `.svg` file from the local FontAwesome directory725 - Extract the `viewBox` and `<path d="...">` data726 - Note the viewBox dimensions for scaling math7275. **Build the SVG**:728 a. Set `viewBox="0 0 2400 1260"`729 b. Define gradients, filters (shadow, blur, glow), and patterns in `<defs>`730 c. Create background (gradient + pattern)731 d. Add accent shapes (blobs, rings, dots)732 e. Place BACKGROUND layer icons (small, blurred, low opacity)733 f. Place MIDGROUND layer icons (medium, moderate opacity)734 g. Place FOREGROUND layer icons (hero + supporting, high opacity, shadow)735 h. Add final decorative touches (sparkles, corner accents)7366. **Review**: Does it read well at 300px wide (thumbnail)? Is the topic obvious from icons alone? Is there clear visual depth?7377. **Save** as `.svg` file7388. **Convert**: `rsvg-convert -f png -w 2400 -h 1260 -o "output.png" "input.svg"`739740---741742## Matching Style to Article Type743744**PREFERRED**: Always check the Illustration Library first. If a matching illustration exists, use **Style 5: Illustration Hero**. Fall back to icon-only styles when no good illustration match is available.745746| Article Type | Preferred Style | Fallback Style | Recommended Palette |747|-------------|----------------|----------------|---------------------|748| How-to guide | Illustration Hero | Floating Icons | Cool Blue |749| Tutorial | Illustration Hero | Icon Cards on Grid | Cool Blue or Neutral |750| Money/affiliate | Illustration Hero | Floating Icons | Warm Amber |751| Beginner guide | Illustration Hero | Floating Icons | Fresh Green |752| WordPress tutorial | Illustration Hero | Floating Icons or Icon Cards | Cool Blue |753| Software review | Illustration Hero | Bold Gradient or Glassmorphism | Deep Dark |754| Product review | Illustration Hero | Glassmorphism Float | Deep Dark |755| Comparison/roundup | Illustration Hero | Icon Cards on Grid | Slate Neutral |756| Opinion/thought leadership | Illustration Hero | Bold Gradient | Deep Dark |757| Agency/business | Illustration Hero | Floating Icons | Cool Blue or Amber |758| Freelancing | Illustration Hero | Floating Icons | Warm Amber |759| AI/automation | Illustration Hero | Glassmorphism Float | Deep Dark |760| Newsletter header | Illustration Hero | Floating Icons | Any |761| Tool recommendation | Illustration Hero | Floating Icons | Warm Amber |762| Student/education | Illustration Hero | Floating Icons | Fresh Green |763| SaaS/web app | Illustration Hero | Glassmorphism Float | Deep Dark |764| Invoice/finance | Illustration Hero | Floating Icons | Warm Amber |765| Time/productivity | Illustration Hero | Floating Icons | Cool Blue |766767---768769## rsvg-convert Notes770771- For exact 2400x1260 PNG: `rsvg-convert -f png -w 2400 -h 1260 -o "output.png" "input.svg"`772- For batch conversion: `for f in *.svg; do rsvg-convert -f png -w 2400 -h 1260 -o "${f%.svg}.png" "$f"; done`773- Install on macOS: `brew install librsvg`774- If only `-w` is specified, height scales proportionally from viewBox775776---777778## Mobile-Friendly Rules779780Featured images display at various sizes across devices:7817821. **viewBox is mandatory** — `viewBox="0 0 2400 1260"`, never fixed pixel dimensions.7832. **Center visual weight**: Social crops (1.91:1 Facebook, 2:1 Twitter) and WordPress thumbnails all crop from center. Keep the hero icon cluster centered.7843. **Test at 300px wide**: The image must be recognizable and the topic obvious at thumbnail size. This is the mobile card/feed width.7854. **Minimum icon rendered size**: The hero icon must remain identifiable at ~60px rendered width. Background icons can fade.7865. **No tiny decorative elements** that vanish at small sizes — accent dots under 4px at viewBox scale disappear on mobile.7876. **Responsive embed**: WordPress handles this, but for custom use: `width="100%" height="auto"`.788789## Quality Checklist790791- [ ] viewBox is `0 0 2400 1260`792- [ ] No text or negligible text (title NOT baked into image)793- [ ] Icons are from FontAwesome (local) or open-source (inline paths)794- [ ] No `<image>` tags or external references (fully self-contained SVG)795- [ ] 5-8 icons total, clear visual hierarchy796- [ ] One color palette used consistently (2-3 hues max)797- [ ] Icons stay within safe area (80px from edges)798- [ ] **3 depth layers present** (foreground, midground, background)799- [ ] Background layer icons have blur filter applied800- [ ] Foreground icons have drop shadow801- [ ] At least 3 decorative elements (blobs, rings, dots, sparkles)802- [ ] Reads well at thumbnail size (~300px wide)803- [ ] Topic is recognizable from icons alone804- [ ] Background has gradient (not flat white)805- [ ] rsvg-convert produces clean PNG without artifacts806- [ ] File size is reasonable (under 100KB for SVG)