Sutra

Safe zones are not guidelines, they are constraints

The interface eats the top and bottom of every vertical ad, and a different amount on every app. Here is where the frame goes, why letterboxing to rescue a composition is a kill, and the contract that decides layout before anything is drawn.

What is in here
  1. Where does platform UI actually cover a vertical ad?
  2. Why this post will not print the pixel numbers
  3. Design to the smallest guaranteed rectangle, not to the canvas
  4. Why is letterboxing an ad a kill?
  5. Crop the frame, not the asset
  6. The layout contract: decided in code, before anything is drawn
  7. How do I check an ad I already have?
The short answer

Platform interface covers the top and the bottom of a vertical ad on every surface it runs on, and it covers a different amount on each one. A composition laid out on a clean 1080 by 1920 canvas gets its brand mark sat on and its caption buried. The fix is not a rescue pass at the end. Design to the smallest rectangle you are guaranteed everywhere, keep the picture bleeding to all four edges, and crop by moving the frame rather than shrinking the asset.

What you get out of this
  1. Where the interface actually lands on a vertical frame, and why no two apps take the same bite
  2. Why this post gives you the rule and refuses to give you the pixel numbers
  3. The two kinds of crop: moving the frame edge, which costs nothing, against shrinking the asset, which is a letterbox
  4. The layout contract we run, where a text box that would leave its plate makes the plate grow or fails the render
  5. A check you can run on an ad you already have, in about four minutes

The numbers this post is built on

Three of these are ours
0letterboxed or pillarboxed frames in anything we deliver. Not a preference, a refusing checkSutra Haus production log
5%minimum cap height of any word on screen, as a share of frame height, measured off the ink and not the point sizeSutra Haus
360pxthe width every delivered frame is re-proved at, because that is roughly the width of a feed tile in a handSutra Haus
-2%CPM for every 10% gain in creative quality score, across 822,000 observations at 99% confidence. Real, and smallCreativeX
The first three are house rules, counted off delivered files rather than estimated. The fourth is somebody else's and it is the closest thing to real evidence that format compliance is worth anything at all.

01Where does platform UI actually cover a vertical ad?

Along the top, along the bottom, and down one side. A bar or a gradient across the top carrying the account row. A column of action controls down one edge - like, comment, share, the audio disc. A block along the bottom holding the handle, the caption, the call-to-action button and, on some surfaces, a progress bar. The picture keeps playing underneath all of it. Your composition does not.

The same frame, with the furniture on it

Tap the marks
A man in a white t-shirt skipping rope in a dark gym filled with haze, other people skipping behind him in soft focus, a small letterspaced wordmark set across the very top of the frame
Our own frame, from a fitness studio demo. Note where the wordmark sits. It reads perfectly in this still and it is the first thing an account row would land on.

The expensive failure is a process that treats the canvas as flat and the furniture as an afterthought, so the problem only surfaces at the end, where fixing it costs the most.

02Why this post will not print the pixel numbers

Because they move, and a wrong number in a blog post outlives the spec that made it wrong. Meta publishes its own safe-zone guidance for Stories and Reels ads, and it publishes per-placement specs in its ads guide. I opened both on 1 September 2026 to make sure they existed and to link them properly, and I am deliberately not copying their figures into this page. In six months somebody will find this post through a search, trust the number, and build to it.

The rule, without the numberGet the current figure from the platform's own page on the day you build, and write it into the project file next to the date you checked. A number without a date is a rumour. This is the same reason our own cut sheets carry the day a spec was read, not just the spec.

What each surface puts on top of your frame

Switch between them
The most documented, and the one people still get wrong

Meta publishes a safe-zone article specifically about text overlays in Stories and Reels ads, which is more than most surfaces give you. Read it before you lay out a single card.

The failure I see most often is not the caption. It is the end card: a lockup centered in the lower third, which is exactly where the handle, the caption and the button live.

  • Top: account row and a scrim over it
  • Right: the action column, running most of the frame height
  • Bottom: handle, caption, CTA button
Where to get the number
Meta's own safe-zone page, on the day you build
The thing people forget
The end card, not the captions
Described as furniture rather than as pixels, on purpose. The furniture is stable. The measurements are not, and every one of these apps has changed them without telling anybody.

03Design to the smallest guaranteed rectangle, not to the canvas

Take the tightest placement you will actually run on, take its covered regions, and subtract them from the frame. What is left is the rectangle. Everything that has to be read, recognized or understood goes inside it: the proposition, the brand mark, the product at its clearest, the price if there is one. Everything else can live outside it and be beautiful.

This is not the same instruction as "keep your text in the middle." The picture still fills the entire frame. What changes is which part of the picture is load-bearing. A hand entering from the bottom edge is fine. A hand holding the product in the bottom edge is not, because the caption block is about to sit on the product.

Designing to the rectangle, against designing and then rescuing

Two processes
Designing to the rectangle, against designing and then rescuing
DimensionTo the rectangleDesign, then rescue
When the constraint entersYes. Before the first compositionNo. At export, from a QA note
What moves when it does not fitYes. The frame, or the plate under the textNo. The whole picture, inward
Cost of a fixYes. Minutes, on paperNo. A re-render, and often a re-grade
What the viewer getsYes. Full bleed, nothing important coveredNo. Bars, or a covered lockup, or both
Multi-placement deliveryYes. One build, reframed per surfacePartly. One master, hoped for
Who catches the failureYes. The build, before a render existsNo. The client, in the feed
The left column is the one we run. The right column is what almost every deck-driven process does, and it fails in the same place every time: at the end, when the only cheap move left is to shrink the picture.

The words we use when we argue about a frame

Search the vocabulary
6 terms
Full bleedDelivery
Zero letterboxed or pillarboxed frames. Every frame fills the delivery canvas edge to edge, and the delivered file is re-measured for flat bands along its edges rather than trusted.
The guaranteed rectangleLayout
Ours. The frame minus the covered regions of the tightest placement you will run on. Everything that has to be read or recognized lives inside it. Everything else may live outside it.
Frame-edge cropLayout
Moving the delivery frame across a larger composite instead of shrinking the picture to fit. It changes the composition on purpose and costs no resolution, which is why it beats an asset crop every time.
Occlusion budgetLayout
A declared maximum for how much of one element another may cover, measured on the composited frame rather than on the intention. Written before the build, checked after it, never argued about in review.
Cap height floorType
The smallest cap height any word may have, as a share of frame height, measured off the plate's own ink. Ours is 5%. Point size is not a proxy for it, because cap height varies wildly between faces.
The 360-pixel proofQA
Re-measuring the delivered file at roughly feed-tile width rather than at delivery width. Within minutes of ours existing it found three bugs in our own work, including bold type that had shipped oblique.
House terms. Where one of these is our own synthesis rather than a platform's published definition, the entry says so.

04Why is letterboxing an ad a kill?

Because bars are a signal, and the signal is that this ad was made for somewhere else. Black strips at the top and bottom of a vertical placement say the file arrived from a 16:9 timeline and nobody re-made it. Pillarboxing says the same thing louder. Our rule is blunt and it is enforced rather than requested: every frame fills the delivery canvas edge to edge, and the delivered file gets re-measured for flat bands along its edges instead of being trusted.

There is a second cost people miss. Bars do not only look borrowed, they shrink the picture into the exact region the interface is already competing for. You lose height at both ends and then hand what is left to a caption block. The rescue makes the original problem worse.

A dark navy vertical frame with a faint grid, a violet outlined bracket glyph in the upper middle, small letterspaced caps reading ONE SHARED INBOX beneath it, and a thin violet horizon glow low in the frame
A frame from a SaaS demo of ours. The mark and the line sit in the middle band with the whole lower third left empty, which is not composition taste. It is the caption block being designed around before the frame was made.
The one legal exceptionA fitted plate is allowed if it declares what fills the rest of the frame. A blurred, pushed and regraded extension of the same picture is a decision. Two black bars are the absence of one. The test is whether anybody chose the pixels at the top and bottom of the file.

Four things people say about safe zones

Flip them
All four have been said to us by somebody paying for creative. The last one is the one that costs the most, because it sounds like caution.

05Crop the frame, not the asset

There are two ways to make a picture fit a rectangle, and only one of them is free. You can shrink the asset until it fits, which loses resolution and creates bars. Or you can move the frame across a picture that is bigger than the frame, which loses nothing and changes the composition on purpose.

So we composite into a buffer larger than the delivery canvas. Not much larger, and the exact ratio is build configuration rather than doctrine, but the principle transfers to any toolchain: give yourself room to move the frame without resampling it. Reframing for a second placement then costs a crop decision instead of a rebuild. It is the same instinct behind shooting wider than you cut.

Why the oversized buffer matters

Layer anatomy
BUFComposite buffer, larger than deliveryroom to move without resamplingFRMThe delivery frame, 1080 by 1920a window that slides, never a container that shrinksRECTThe guaranteed rectangle inside iteverything load-bearing lives hereUIPlatform furniture, drawn after you shiptop strip, side column, bottom block
The frame is a window onto the buffer. Move the window and the picture is untouched. Shrink the picture to fit the window and you have made a letterbox with extra steps.

06The layout contract: decided in code, before anything is drawn

We learned this the expensive way. A review came back with eight static creatives carrying mechanical layout breakage: text running outside the background plates it belonged to, an image chip almost entirely hidden behind other elements, labels too small to read. None of it was a taste problem. All of it was a system that had no idea a text box had a plate it must not leave.

The build talking back

What a refusal looks like
A sketch of our own layout pass, simplified. The point is the last line. A checker that reports a problem is a review note. A checker that refuses to produce the file is a constraint.

So it stopped being a review note. A text run that would leave its plate makes the engine grow the plate, or the render fails and says why. Every overlap carries a declared budget and the engine measures the real overlap after compositing, not the intended one. That second half matters: we once shipped animation that was real, expensive, and covered by a type layer in the delivered file. At feed size it read as a bug.

A rule is either in the path, or it is a suggestion.

Our own audit of which rules never broke, and which broke repeatedly

The layout half of our delivery contract

Copy it into your own spec
plate       every text run belongs to a named plate
fit         the box fits, or the plate grows. no third option
refuse      a run that cannot fit its grown plate fails the render
bleed       zero letterboxed or pillarboxed frames, edge to edge
buffer      composite larger than you deliver, then move the frame
rect        nothing load-bearing outside the smallest guaranteed rectangle
occlusion   every overlap carries a declared budget, measured post-composite
cap height  >= 5% of frame height, measured off the ink, not the point size
contrast    4.5:1 at delivery width, 3:1 at 360 px, worst local ground
proof       re-measure the delivered file, never the design file
The two contrast figures come from the W3C's contrast criterion: AA for normal text at delivery size, AA-large at embed size, because most of the loss at 360 pixels is a resampling artifact rather than a design fault.

The evidence behind that sentence is unflattering. When we classified our own rulebook, 149 of 293 rules existed only as documentation. The rules that never broke were the handful with a refusing gate in the only path to the effect. The ones that broke over and over were the ones written down as prose, and layout was top of that list. The longer argument is turning taste into checks a machine can run.

07How do I check an ad I already have?

On a phone, in the actual app, as a draft. Not in a preview window on a laptop. The preview lies by omission: it shows you the file, and the file is not what anybody watches. Five checks, about four minutes, and you can do all of them without opening an editor. One of them overlaps with the legibility floors a caption has to clear on a phone, which is the same problem measured on the type instead of on the frame.

The safe-zone pass

Tick as you go - it remembers
0%
If you cannot honestly tick one of these, that is the note. You do not need a second opinion to act on it, and four of the five are fixed by moving the frame rather than by re-rendering anything.

One honest limit. Clearing all five makes an ad legal, not good. Format compliance buys a small, real efficiency gain and nothing else: the best number anybody has published is CreativeX's finding of about 2% lower CPM per 10% gain in creative quality score, across 822,000 observations. Worth having. Not a campaign. The campaign is still the hook, which is how a short ad is built rather than how it is exported.

Four films that were framed before they were cut

Ours, built to the rectangle
Ephoria - campaign ad
Hotel client - campaign reel
SaaS - studio demo
Fitness - studio demo
Watch any of these on a phone and put your thumb where the caption block goes. Nothing you need is underneath it, and none of them has a bar on any edge.

Questions people actually ask

Open what you need
What is the safe zone on Instagram Reels?

It is the region of the frame that platform interface does not cover: a band through the middle, with the top strip, the action column and the bottom caption block subtracted. Meta publishes the current figures in its own safe-zone article for Stories and Reels ads. Read it on the day you build rather than trusting a number from a blog post, including this one.

Where do captions get covered on Reels?

At the bottom, under the handle and caption block, and along the side edge where the action column sits. The failure people actually ship is not a caption though, it is the end card: a lockup composed into the lower third, which is precisely where the CTA button lands. Upload the cut as a draft and look at it before you deliver.

Can I letterbox a 16:9 video into a 9:16 ad?

You can, and we refuse to. Bars announce that the file was made for a different place and nobody re-made it for this one, and they also squeeze the picture into the region the interface is already competing for. Reframe instead: crop into the wide picture and lose the sides, or extend the frame with a declared treatment that somebody actually chose.

Do I need a different edit for TikTok and Reels?

Not a different edit. A different frame. Same cut, same sound, same type, reframed to the surface with the deepest interface furniture and then checked on the other one. If you only build one master, build it to the tighter rectangle, because designing to the average of two placements produces a file that is wrong on both.

What size should text be in a vertical video ad?

Big enough to survive being resampled to about a third of its delivered width. Our own floor is cap height at 5% of frame height or more, measured off the ink rather than the point size, because two faces at the same point size can have wildly different cap heights. The full argument is in our piece on legibility floors.

Is there a safe zone template I can download?

Templates go stale, which is the whole problem. Build your own once per campaign: open the current spec pages, draw the covered regions as guides over an empty 1080 by 1920 canvas, and save it with the date you checked in the filename. It takes ten minutes and it is correct for as long as the platform leaves the spec alone.

Safe zones get treated as guidelines because they are published as guidance, in a tone that sounds like advice. They are the shape of the hole your work has to fit through. The only difference between a constraint and a guideline is whether something refuses when you break it. Ours refuses. Make yours refuse, or a person has to remember, and people do not. The rest of the pass is in the pre-launch QA checklist for generated footage and in how to brief and QA ad creative.

Where the numbers came from

  1. Meta Business Help Center. About text overlays and the Safe Zone for ads in Stories and Reels - the current safe-zone guidance. Checked 1 September 2026. The numbers on it are deliberately not reproduced in this post
  2. Meta. Facebook Ads guide: ad format specs and recommendations - the per-placement spec index. Checked 1 September 2026
  3. CreativeX. Creative Quality Score against media cost, 822,000 observations at 99% confidence - the -2% CPM per +10% quality-score figure, 822,000 observations at 99% confidence
  4. W3C. Understanding Success Criterion 1.4.3: Contrast (Minimum) - the 4.5:1 and 3:1 thresholds our on-screen type gate is built from

Every figure above links to the place it was published. Numbers marked as ours are measured inside this studio and we say so where they appear. We do not print a statistic we cannot point at.

Badal Kariwal

Runs Sutra Haus, a one-person ad studio that has shipped over a thousand finished creatives - film and stills - for DTC brands and hotels. Writes here about what the work actually taught him, including the parts that failed. The person who reads your brief is the person who builds the work. Send him something to make.

The version of this you can hold in your hand

Send a link. Get one finished ad back.

One 9:16 film built from your own product, inside three days, free and yours whether or not we ever work together. Upload it as a draft and put the caption block over it. If anything that matters is underneath, you will know we do not follow our own rules.

Replies within a day. Ad within three.
Read next