SiteAssets SiteAssets
Blog · Design 8 min read

Designing a social card grid that fits every platform

One image has to survive seven different renderers, four crops and a 300px-wide compact embed. A grid with an explicit safe area is the cheapest way to stop shipping broken cards.

8 min read SiteAssets team

Designers usually start from the canvas: 1200 × 630, generous margins, a headline that looks great in Figma. Then a crawler crops 12% off the left edge and the layout falls apart. The fix is not a bigger margin — it is a grid with a defined safe area.

Start from the safe area, not the canvas

Work backwards. The canvas is 1200 × 630, but only the centred 1024 × 512 is guaranteed to survive a square crop. Put every element that must be readable inside that box, then let the outer band carry texture and brand colour only.

  • Canvas — 1200 × 630 (1.91:1).
  • Safe area — 1024 × 512, centred. Everything critical lives here.
  • Bleed — the remaining 88px horizontally and 59px vertically. Background only.
  • Logo — top-left inside the safe area, 72 × 72 with a 16px radius.
  • Headline — starts at 76px, drops to 56px when it wraps past two lines.
  • Footer strip — site name and domain, always inside the safe area.

Crop differences, in practice

Every platform keeps the 1.91:1 ratio for large cards, so wide layouts are safe. The problems appear in compact and square contexts.

  1. 01 Discord compact embeds and WhatsApp both render a square thumbnail. A centre-weighted composition survives; a left-aligned headline does not.
  2. 02 X keeps the full card but truncates the title around 70 characters. Keep the headline front-loaded.
  3. 03 LinkedIn renders the card in a narrow mobile feed, so anything below 32px of visual weight becomes noise.
  4. 04 Slack renders at a fixed 360 × 188 in the sidebar, roughly 30% of the native size. Hairlines disappear entirely.

Hierarchy that survives scaling

A card is read in roughly 0.4 seconds at scroll speed. Three levels are enough: an identifier (logo plus site name), one headline, and one line of supporting text. Anything else competes for the same 512px of safe height.

  • Level 1 — headline at 76px, 700 weight, 1.1 line height, maximum three lines.
  • Level 2 — supporting line at 32px, 400 weight, maximum two lines.
  • Level 3 — site name at 22px, always in the footer strip, never competing with the headline.

Colour and contrast

Platforms render cards on light, dark and tinted backgrounds. A card that relies on a light grey background to separate a light grey headline will look flat in dark mode. Pick a foreground from the background luminance instead of hand-picking it — that is what the brand template does, computing contrast from your brand colour.

text
luminance = 0.299R + 0.587G + 0.114B
if luminance > 150 → foreground #2a2418 (ink)
else            → foreground #ffffff (paper)

Build the grid once, reuse it everywhere

The generator ships four templates built on exactly this grid — minimal, gradient, dark and brand. Export the same parameters as PNG, WebP and SVG and the composition stays identical, so a card you approved in the preview is the card that ships.

An OG image is not a poster. It is a 1024 × 512 interface with a decorative border.

Try it on your own site

Fifteen checks, about five seconds.

Paste a deployed URL and read the check table: weight, status and the rule behind every row.