Eklow

SVG Tiny PS: How To Convert Your Logo For BIMI

Convert your logo to SVG Tiny PS for BIMI: the rules the file must follow, the edits a typical SVG export needs, a worked example and Gmail's size rules.

Sohaib Asghar6 min readDeliverability

Cover for converting a logo to SVG Tiny PS for BIMI: the fixed logo with each change the converter made listed.

Introduction

Your designer sent the logo as an SVG, exactly as asked. You hosted it, published the BIMI record, and the validator came back red: wrong version, wrong profile, no title, unsupported elements. The file opens fine in every browser, so it is hard to see what is wrong with it, and the design tool has no button labelled "BIMI".

Nothing is wrong with the artwork. BIMI requires SVG Tiny PS, a stripped-down profile of SVG built so a mail client can display a logo without running code or fetching anything. To convert a logo to SVG Tiny PS, you set version="1.2" and baseProfile="tiny-ps", add a title, remove x and y from the root, and delete everything the profile does not allow: scripts, animation, embedded images, links, styles and editor metadata. Then make it square and give it a solid background.

Why BIMI Needs A Special SVG Profile

A full SVG file can contain JavaScript, load images and fonts from other servers, animate, and link out. Rendering that inside an inbox would let any sender run code or track opens through the logo. The SVG Tiny PS draft starts from SVG Tiny 1.2 and removes every feature that could do either. What is left is plain shapes, paths, gradients and text, which is all a logo needs.

The profile matters twice. Mailbox providers validate the hosted file, and a certification authority embeds the same SVG in your VMC or CMC, so a file that fails the profile blocks both the logo and the certificate.

The SVG Tiny PS Rules For A BIMI Logo

These are the rules that decide whether a logo passes. Rows marked Profile come from the SVG Tiny PS draft itself; the others come from Google's Create a BIMI SVG file page and the BIMI Group's guidance.

RuleRequired byWhat to look for in your file
version="1.2" on the svg elementProfile §2.1Exports usually say 1.1
baseProfile="tiny-ps"Profile §2.1Missing, or tiny instead of tiny-ps
One non-empty <title>, first inside svgProfile §2.1Usually missing; keep it to 64 characters
No x or y on the svg elementProfile §6.2x="0px" y="0px" from the export
No scripts, animation, <image>, <a>, <style>Profile §2.3Event handlers such as onload, embedded PNGs, CSS classes
No references to other filesProfile §2.3Any href that does not start with #
32 KB or smallerProfile §2.4, GmailLarge path data from auto-tracing
Absolute width and height of at least 96 pxGmailOnly a viewBox, or sizes in percent
Square, centred, solid backgroundBIMI Group, GmailA wide wordmark on a transparent canvas
A <desc> elementGmailMissing; it helps screen readers

Google also asks you to turn text into outlines rather than keeping it as live text. The profile allows <text>, but a mail client rendering your logo may not have your font, so outlines are the safer choice.

A Typical Export, Before And After

Here is the kind of file a vector editor produces. It is a valid SVG and displays correctly in a browser, and it fails eight separate checks.

Before: a normal SVG export
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Vector editor -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
  x="0px" y="0px" viewBox="0 0 200 100"
  style="enable-background:new 0 0 200 100;" onload="init()">
  <g data-name="mark">
    <rect width="200" height="100" style="fill:#1d3557"/>
    <a href="#top"><circle cx="100" cy="50" r="30" style="fill:#f1faee"/></a>
    <animate attributeName="r" from="30" to="40" dur="1s"/>
  </g>
</svg>
SVG Tiny PS logo checks failing on version 1.1, a missing tiny-ps profile, no title and x and y on the svg element.
The same export run through the logo checker. Each failure names the attribute and the rule behind it.

And here is the same logo converted. The artwork has not changed: the coloured rectangle and circle are identical. The canvas was padded to a square by widening the viewBox, and a white background fills the padding.

After: the converted file
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny-ps"
  viewBox="0 -50 200 200" width="96" height="96">
  <title>Example Co</title>
  <desc>Logo for Example Co</desc>
  <rect x="0" y="-50" width="200" height="200" fill="#ffffff"/>
  <g>
    <rect width="200" height="100" fill="#1d3557"/>
    <circle cx="100" cy="50" r="30" fill="#f1faee"/>
  </g>
</svg>

How To Convert A Logo To SVG Tiny PS By Hand

Start from vector artwork, never from a PNG or JPG. Tracing a bitmap produces an approximation, and a CA checks your SVG against your registered or published mark. Then work through the file in a text editor:

  1. Export as SVG Tiny 1.2 if your editor offers that profile; Google's guide describes this route. Otherwise export plain SVG and continue.
  2. Fix the root element. Set version="1.2" and baseProfile="tiny-ps", and delete x, y, id, style and enable-background.
  3. Add a title and a description straight after the opening tag: your company name, then a short description of the logo.
  4. Move styles into attributes. Replace style="fill:#1d3557" with fill="#1d3557", and resolve any CSS classes in a <style> block onto the elements that use them, then delete the block.
  5. Delete what the profile forbids: comments, the XML declaration's editor notes, <script>, on… attributes, <animate>, <a> wrappers (keep their contents), <image>, and anything in an editor namespace such as sodipodi: or inkscape:.
  6. Make it square. Widen the shorter side of the viewBox so the mark sits centred, and add a full-size <rect> as a solid background.
  7. Set an absolute size, such as width="96" height="96", and confirm the file is under 32 KB.

Then check the result in two ways: open it in a browser to confirm it looks right, and run it through a validator, because a file can look perfect and still carry a forbidden attribute.

Design For The Avatar Slot, Not The Letterhead

Mail clients crop BIMI logos into circles, rounded squares or squares, often at around 40 pixels on a phone. A horizontal wordmark shrunk into a circle becomes unreadable. If your brand has a symbol or monogram, use that. Keep the important part away from the corners so a circular crop does not cut it, and choose a background colour that holds up in both light and dark inboxes, because a transparent logo may sit on either.

SVG Tiny PS Questions

What Is SVG Tiny PS?

SVG Tiny Portable/Secure is a restricted profile of SVG Tiny 1.2, defined in an IETF draft for BIMI logos. It keeps shapes, paths, gradients and text, and removes scripting, animation, embedded images and external references, so a mail client can display the logo without running code or loading other files.

Can I Convert A PNG Logo To SVG Tiny PS?

Not faithfully. The profile forbids embedding the PNG inside an SVG, and auto-tracing produces an approximation of your mark with bloated path data. Ask whoever designed the logo for the original vector file, and convert that. A CA also checks the SVG against your registered or published logo.

What Size Should A BIMI Logo Be?

Square, with an absolute width and height of at least 96 pixels for Gmail, and 32 KB or smaller as a file. Because it is a vector, the pixel size is a declaration rather than a resolution; mail clients scale it to fit the avatar slot.

Can A BIMI Logo Have A Transparent Background?

The BIMI Group and Google both recommend a solid background. Transparent areas let the mail client's own background show through, so a dark logo can disappear in a dark-mode inbox. Add a full-size rectangle in your brand colour behind the mark.

How Eklow Handles This

The free BIMI record generator takes your logo by address, upload or paste and checks it against the profile's schema of allowed elements and attributes, the required attributes, and Gmail's size rules, naming the exact attribute behind each failure. It previews the logo cropped as a circle, a rounded square and a square, on light and dark inboxes. For a vector file, it fixes what it can without changing the artwork: version and profile, a missing title, x and y, scripts, editor metadata, inline styles, the absolute size and square padding, with an optional background colour. The fixed file is checked again and compared against your original render before you can download it.

Fixed SVG Tiny PS logo with every change listed, previewed in light and dark inboxes, with a Download Fixed SVG button.
The fixed file lists each change and is offered only after it passes every check the tool runs.

A valid logo is one part of BIMI; the other is a domain that passes DMARC at enforcement. Eklow checks SPF, DKIM and DMARC on every sending domain before campaigns use it and re-checks verified domains every six hours, and SPF, DKIM and DMARC explained for founders covers how the three fit together.

Keep reading

Run outbound from one place.

Connect your senders, build sequences, and keep replies moving.

Start freeExplore features