Before / After
Split-frame before/after thumbnail with BEFORE/AFTER chips and a center result stat badge — swap both photos, labels and the stat.
- Type
- Image
- Format
- HD · 16:9
- Orientation
- Landscape
Variablesphoto
Open in editor
Free template · opens in the editor, no account required.
Customize Before / After
Before / After is a ready-to-render Video thumbnails image design formatted for HD · 16:9 and support for variables, photo. Open it in the editor to replace its copy and media, then render variations through the Zvid API.
8 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.
eyebrowText30-DAY TRANSFORMATION
beforeLabelTextBEFORE
afterLabelTextAFTER
statLabelTextLEAN MASS GAINED
statValueText+18 LBS
accentColor#34D399
beforeImageMedia URLafterImageMedia URLThe 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-thumb-before-after",
"resolution": "hd",
"outputFormat": "png",
"backgroundColor": "#0B0F0D",
"variables": {
"eyebrow": "30-DAY TRANSFORMATION",
"beforeLabel": "BEFORE",
"afterLabel": "AFTER",
"statLabel": "LEAN MASS GAINED",
"statValue": "+18 LBS",
"accent": "#34D399",
"beforeImage": "https://images.pexels.com/photos/6628962/pexels-photo-6628962.jpeg?auto=compress&cs=tinysrgb&w=1600",
"afterImage": "https://images.unsplash.com/photo-1517836357463-d25dfeac3438?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&ixid=M3w3MDgwMTZ8MHwxfHNlYXJjaHwyfHxneW0lMjB3b3Jrb3V0JTIwd2VpZ2h0c3xlbnwwfHx8fDE3ODM1MjY5ODJ8MA&ixlib=rb-4.1.0&q=80&w=1600"
},
"visuals": [
{
"type": "IMAGE",
"src": "{{beforeImage}}",
"x": 0,
"y": 0,
"width": 640,
"height": 720,
"anchor": "top-left",
"radius": {
"tl": 0,
"tr": 0,
"bl": 0,
"br": 0
},
"filter": {
"saturate": -100,
"brightness": -10
},
"track": 0
},
{
"type": "IMAGE",
"src": "{{afterImage}}",
"x": 640,
"y": 0,
"width": 640,
"height": 720,
"anchor": "top-left",
"radius": {
"tl": 0,
"tr": 0,
"bl": 0,
"br": 0
},
"track": 0
},
{
"type": "SVG",
"width": 1280,
"height": 720,
"position": "center-center",
"track": 2,
"svg": "<svg width='1280' height='720' viewBox='0 0 1280 720' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='sb' x1='0' y1='1' x2='0' y2='0'><stop offset='0' stop-color='#050806' stop-opacity='0.9'/><stop offset='0.28' stop-color='#050806' stop-opacity='0'/></linearGradient><linearGradient id='st' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='#050806' stop-opacity='0.72'/><stop offset='0.26' stop-color='#050806' stop-opacity='0'/></linearGradient></defs><rect width='1280' height='720' fill='url(#st)'/><rect width='1280' height='720' fill='url(#sb)'/></svg>"
},
{
"type": "SVG",
"x": 632,
"y": 0,
"width": 16,
"height": 720,
"anchor": "top-left",
"track": 3,
"svg": "<svg width='16' height='720' viewBox='0 0 16 720' xmlns='http://www.w3.org/2000/svg'><rect x='7' y='0' width='2' height='720' fill='{{accent}}' fill-opacity='0.85'/></svg>"
},
{
"type": "SVG",
"x": 640,
"y": 44,
"width": 440,
"height": 46,
"anchor": "top-center",
"track": 3,
"svg": "<svg width='440' height='46' viewBox='0 0 440 46' xmlns='http://www.w3.org/2000/svg'><rect x='0' y='0' width='440' height='46' rx='23' fill='#050806' fill-opacity='0.55' stroke='{{accent}}' stroke-opacity='0.5' stroke-width='1.2'/></svg>"
},
{
"type": "TEXT",
"x": 640,
"y": 56,
"width": 440,
"anchor": "top-center",
"track": 4,
"text": "{{eyebrow}}",
"style": {
"fontFamily": "Space Grotesk",
"fontSize": "23px",
"fontWeight": "600",
"letterSpacing": "0.26em",
"color": "#8FE9C6",
"textAlign": "center"
}
},
{
"type": "SVG",
"x": 640,
"y": 360,
"width": 340,
"height": 160,
"anchor": "center-center",
"track": 4,
"svg": "<svg width='340' height='160' viewBox='0 0 340 160' xmlns='http://www.w3.org/2000/svg'><rect x='2' y='2' width='336' height='156' rx='24' fill='#0B0F0D' fill-opacity='0.86' stroke='{{accent}}' stroke-width='2'/><rect x='150' y='24' width='40' height='4' rx='2' fill='{{accent}}'/></svg>"
},
{
"type": "TEXT",
"x": 640,
"y": 360,
"width": 320,
"anchor": "center-center",
"track": 5,
"style": {
"fontFamily": "Manrope"
},
"html": "<div style='text-align:center;'><div style='font-size:21px; font-weight:600; letter-spacing:0.18em; color:#8FBFA8;'>{{statLabel}}</div><div style='margin-top:6px; font-size:66px; font-weight:800; letter-spacing:-0.02em; line-height:1; color:{{accent}};'>{{statValue}}</div></div>"
},
{
"type": "SVG",
"x": 40,
"y": 634,
"width": 210,
"height": 54,
"anchor": "top-left",
"track": 5,
"svg": "<svg width='210' height='54' viewBox='0 0 210 54' xmlns='http://www.w3.org/2000/svg'><rect x='0' y='0' width='210' height='54' rx='14' fill='#050806' fill-opacity='0.72' stroke='#FFFFFF' stroke-opacity='0.22' stroke-width='1'/><text x='105' y='35' font-family='Space Grotesk, Arial' font-size='24' font-weight='700' letter-spacing='4' fill='#EAF7F0' text-anchor='middle'>{{beforeLabel}}</text></svg>"
},
{
"type": "SVG",
"x": 1030,
"y": 634,
"width": 210,
"height": 54,
"anchor": "top-left",
"track": 5,
"svg": "<svg width='210' height='54' viewBox='0 0 210 54' xmlns='http://www.w3.org/2000/svg'><rect x='0' y='0' width='210' height='54' rx='14' fill='{{accent}}'/><text x='105' y='35' font-family='Space Grotesk, Arial' font-size='24' font-weight='700' letter-spacing='4' fill='#05231A' text-anchor='middle'>{{afterLabel}}</text></svg>"
}
]
}More Video thumbnails templates
View all ↗Ready to ship video at scale?
Start free — your first render is only a JSON payload away.