Thread Cover
X/LinkedIn thread cover with a hook, thread-rail motif and 'A Thread' arrow pill — swap the handle, hook, label, count and accent.
- Type
- Image
- Format
- Instagram Post · 1:1
- Orientation
- Square
Free template · opens in the editor, no account required.
Customize Thread Cover
Thread Cover is a ready-to-render Content creator / social image design formatted for Instagram Post · 1:1 and support for variables. Open it in the editor to replace its copy and media, then render variations through the Zvid API.
10 variables: Every value below is a variable you can override — send them in the variables field of the render request (or edit them in the editor) to generate on-brand versions at scale.
handleTexttitlePreTexthighlightTexttitlePostTextthreadLabelTextsubCountTextinkColoroffWhiteColormutedColoraccentColorThe exact JSON payload
This is the full render config — POST it to the API, or open it in the editor to tweak.
{
"type": "image",
"name": "img-social-thread-cover",
"resolution": "instagram-post",
"outputFormat": "png",
"backgroundColor": "#14181D",
"variables": {
"handle": "@elenacodes",
"titlePre": "I rewrote my landing page 9 times.",
"highlight": "Here's what",
"titlePost": "finally doubled signups.",
"threadLabel": "A THREAD",
"subCount": "9 lessons inside",
"ink": "#14181D",
"offWhite": "#F0F4F8",
"muted": "#828C97",
"accent": "#38BDF8"
},
"visuals": [
{
"type": "SVG",
"width": 1080,
"height": 1080,
"position": "center-center",
"track": 0,
"svg": "<svg width='1080' height='1080' viewBox='0 0 1080 1080' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='bg' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='#182029'/><stop offset='0.55' stop-color='#14181D'/><stop offset='1' stop-color='#0F1216'/></linearGradient><radialGradient id='gl' cx='0.88' cy='0.9' r='0.7'><stop offset='0' stop-color='{{accent}}' stop-opacity='0.2'/><stop offset='1' stop-color='{{accent}}' stop-opacity='0'/></radialGradient></defs><rect width='1080' height='1080' fill='url(#bg)'/><rect width='1080' height='1080' fill='url(#gl)'/><rect x='40' y='40' width='1000' height='1000' rx='30' fill='none' stroke='#FFFFFF' stroke-opacity='0.08' stroke-width='1.5'/></svg>"
},
{
"type": "SVG",
"x": 80,
"y": 96,
"width": 360,
"height": 56,
"anchor": "top-left",
"track": 4,
"svg": "<svg width='360' height='56' viewBox='0 0 360 56' xmlns='http://www.w3.org/2000/svg'><circle cx='28' cy='28' r='24' fill='{{accent}}' fill-opacity='0.18' stroke='{{accent}}' stroke-opacity='0.55' stroke-width='1.4'/><circle cx='28' cy='23' r='7' fill='{{accent}}'/><path d='M15 42 C15 32, 41 32, 41 42' fill='{{accent}}'/><text x='66' y='37' font-family='IBM Plex Mono, monospace' font-size='24' font-weight='500' fill='{{offWhite}}'>{{handle}}</text></svg>"
},
{
"type": "SVG",
"x": 92,
"y": 320,
"width": 40,
"height": 470,
"anchor": "top-left",
"track": 4,
"svg": "<svg width='40' height='470' viewBox='0 0 40 470' xmlns='http://www.w3.org/2000/svg'><line x1='20' y1='20' x2='20' y2='450' stroke='{{accent}}' stroke-opacity='0.35' stroke-width='2' stroke-dasharray='2 10'/><circle cx='20' cy='20' r='9' fill='{{accent}}'/><circle cx='20' cy='235' r='6' fill='{{accent}}' fill-opacity='0.6'/><circle cx='20' cy='450' r='6' fill='{{accent}}' fill-opacity='0.6'/></svg>"
},
{
"type": "TEXT",
"x": 168,
"y": 306,
"width": 838,
"anchor": "top-left",
"track": 5,
"style": {
"fontFamily": "DM Sans"
},
"html": "<div style='font-size:78px; font-weight:800; line-height:1.05; letter-spacing:-0.035em; color:{{offWhite}};'>{{titlePre}} <span style='color:{{accent}};'>{{highlight}}</span> {{titlePost}}</div>"
},
{
"type": "SVG",
"x": 80,
"y": 902,
"width": 268,
"height": 60,
"anchor": "top-left",
"track": 7,
"svg": "<svg width='268' height='60' viewBox='0 0 268 60' xmlns='http://www.w3.org/2000/svg'><rect x='0' y='2' width='268' height='56' rx='28' fill='{{accent}}'/><text x='34' y='38' font-family='IBM Plex Mono, monospace' font-size='21' font-weight='600' letter-spacing='2' fill='{{ink}}'>{{threadLabel}}</text><path d='M212 30 L238 30 M228 20 L238 30 L228 40' stroke='{{ink}}' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>"
},
{
"type": "TEXT",
"x": 372,
"y": 918,
"width": 500,
"anchor": "top-left",
"track": 7,
"text": "{{subCount}}",
"style": {
"fontFamily": "IBM Plex Mono",
"fontSize": "22px",
"fontWeight": "500",
"color": "#828C97"
}
}
]
}More Content creator / social templates
View all ↗Ready to ship video at scale?
Start free — your first render is only a JSON payload away.









