## Image Guidelines

Product: Monogram - Personal Portfolio WordPress Theme
URL: https://hub.jkdevstudio.com/docs/monogram/content-management/image-guidelines
Updated: 2026-09-06

Monogram registers custom image sizes and uses a responsive rendering system to serve the right image for every screen size. Understanding how images work in the theme helps you upload the right files and get the best visual results.

## Registered Image Sizes

Monogram registers three sets of image sizes. Each set targets a different aspect ratio and includes multiple breakpoints from small to extra-large.

### Square Set (`jkd-square`)

Used for avatars, client logos, square thumbnails, and grid items with 1:1 aspect ratio.

<table style="min-width:75px;"><colgroup><col style="min-width:25px;"><col style="min-width:25px;"><col style="min-width:25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Size</p></th><th colspan="1" rowspan="1"><p>Dimensions</p></th><th colspan="1" rowspan="1"><p>Typical Use</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-square-xs</code></p></td><td colspan="1" rowspan="1"><p>300 x 300</p></td><td colspan="1" rowspan="1"><p>Small thumbnails, mobile cards</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-square-sm</code></p></td><td colspan="1" rowspan="1"><p>540 x 540</p></td><td colspan="1" rowspan="1"><p>Medium thumbnails</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-square-md</code></p></td><td colspan="1" rowspan="1"><p>768 x 768</p></td><td colspan="1" rowspan="1"><p>Tablet displays</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-square-lg</code></p></td><td colspan="1" rowspan="1"><p>1024 x 1024</p></td><td colspan="1" rowspan="1"><p>Desktop grid items</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-square-xl</code></p></td><td colspan="1" rowspan="1"><p>1440 x 1440</p></td><td colspan="1" rowspan="1"><p>Large displays, retina</p></td></tr></tbody></table>

### Wide Set (`jkd-wide`)

Used for portfolio cards, blog post thumbnails, page headers, and any landscape-oriented image slot (3:2 ratio).

<table style="min-width:75px;"><colgroup><col style="min-width:25px;"><col style="min-width:25px;"><col style="min-width:25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Size</p></th><th colspan="1" rowspan="1"><p>Dimensions</p></th><th colspan="1" rowspan="1"><p>Typical Use</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-wide-sm</code></p></td><td colspan="1" rowspan="1"><p>540 x 360</p></td><td colspan="1" rowspan="1"><p>Small cards, mobile</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-wide-md</code></p></td><td colspan="1" rowspan="1"><p>768 x 512</p></td><td colspan="1" rowspan="1"><p>Tablet cards</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-wide-lg</code></p></td><td colspan="1" rowspan="1"><p>1024 x 683</p></td><td colspan="1" rowspan="1"><p>Desktop cards</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-wide-xl</code></p></td><td colspan="1" rowspan="1"><p>1440 x 960</p></td><td colspan="1" rowspan="1"><p>Full-width sections, hero images</p></td></tr></tbody></table>

### Vertical Set (`jkd-vertical`)

Used for portrait-oriented content like vertical portfolio cards or tall image sections (2:3 ratio).

<table style="min-width:75px;"><colgroup><col style="min-width:25px;"><col style="min-width:25px;"><col style="min-width:25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Size</p></th><th colspan="1" rowspan="1"><p>Dimensions</p></th><th colspan="1" rowspan="1"><p>Typical Use</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-vertical-sm</code></p></td><td colspan="1" rowspan="1"><p>360 x 540</p></td><td colspan="1" rowspan="1"><p>Small portrait cards</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-vertical-md</code></p></td><td colspan="1" rowspan="1"><p>512 x 768</p></td><td colspan="1" rowspan="1"><p>Tablet portrait displays</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-vertical-lg</code></p></td><td colspan="1" rowspan="1"><p>683 x 1024</p></td><td colspan="1" rowspan="1"><p>Desktop portrait cards</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>jkd-vertical-xl</code></p></td><td colspan="1" rowspan="1"><p>960 x 1440</p></td><td colspan="1" rowspan="1"><p>Large portrait displays</p></td></tr></tbody></table>

## LQIP (Low Quality Image Placeholders)

Every registered image size also has a corresponding **LQIP variant** - a tiny version (max 64px on the longest side) used as a blur-up placeholder while the full image loads. This creates the smooth loading effect you see throughout the theme.

You do not need to do anything to enable LQIP - it is generated automatically when WordPress processes your uploads.

## Responsive Image Rendering

Monogram renders images using responsive `<picture>` tags via the `JKDTheme::renderImage()` helper. This means:

- The browser receives multiple image sources at different sizes
- It automatically picks the best match for the visitor screen width and pixel density
- Mobile visitors download smaller files, saving bandwidth and loading faster
- Retina displays get higher-resolution versions

You do not need to manually select which size to use - the theme handles this automatically wherever images are displayed.

## Upload Recommendations

<table style="min-width:50px;"><colgroup><col style="min-width:25px;"><col style="min-width:25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Guideline</p></th><th colspan="1" rowspan="1"><p>Recommendation</p></th></tr><tr><td colspan="1" rowspan="1"><p><strong>Minimum width</strong></p></td><td colspan="1" rowspan="1"><p>1440px - ensures the <code>xl</code> size is generated at full quality</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Photos</strong></p></td><td colspan="1" rowspan="1"><p>JPEG at 80-90% quality. Best balance of quality and file size</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Graphics with transparency</strong></p></td><td colspan="1" rowspan="1"><p>PNG - supports alpha transparency</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Modern format</strong></p></td><td colspan="1" rowspan="1"><p>WebP if your server supports it - 25-35% smaller than JPEG at equivalent quality</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Maximum file size</strong></p></td><td colspan="1" rowspan="1"><p>Aim for under 500KB per image before upload. WordPress generates all the smaller sizes automatically</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Aspect ratio</strong></p></td><td colspan="1" rowspan="1"><p>Upload images close to the intended display ratio. A 4:3 image used in a 1:1 slot will be center-cropped</p></td></tr></tbody></table>

<div data-callout="tip">

Always upload at the largest size you need. WordPress generates all smaller sizes automatically during upload. You cannot upscale - if you upload a 600px-wide image, the `lg` and `xl` sizes will not be generated.

</div>

## How Cropping Works

All registered sizes use **hard crop** mode. This means WordPress crops the image to fit the exact dimensions rather than scaling it down proportionally. The crop is center-aligned by default.

If your source image has a very different aspect ratio than the target size, important content near the edges may be cropped out. For best results, keep the main subject centered in your uploads.

<div data-callout="info">

If you upload new images after a theme update that adds new image sizes, the new sizes will only be generated for future uploads. To regenerate sizes for existing images, use a plugin like **Regenerate Thumbnails**.

</div>