Brand

Fonts

A few text styles your whole brand draws from.

Your brand defines a few text styles: a heading, a subheading, body text, and a button. Each one sets the font, the weight, the letter spacing, and whether it's uppercase. Every piece of text in a creative uses one of them.

How text uses them

A piece of text doesn't carry a font. It carries a name, like heading or body, and your brand decides what that looks like. So changing your heading font in your brand updates every heading everywhere, and clearing a font on one element brings back the brand default for its style.

Replacing a font

There are three ways, and they all do the same thing.

  • In brand config, on the style you want to change: drop the font file onto its card, or pick "Upload a font file…" in its Font menu (also under "Replace font" when you hover the card).
  • In the command bar: drag the font file in and say what it's for, like "use this for the headings" or "byt rubriktypsnittet till den här". braaand shows the font set in your brand's name and asks you to confirm.
  • For agents: upload the file, then use_font (MCP) or braaand brands use-font <brandId> ./Font-Bold.otf --roles heading (CLI).

braaand reads the font's name and weight from the file itself, not from the file name, so FormulaCondensed-Bold_RS2026.otf becomes Formula Condensed at Bold. The style keeps everything else you set: uppercase, letter spacing and line height stay as they were. A file that holds one weight sets the style to that weight; a variable font keeps the weight the style already had.

The new file is the one that renders, even if an older file of the same family is still in your library. Nothing else in the brand changes until you replace it.

A standard size for each style

Each text style can also carry a default size: how big a new heading starts out. It's the size you'd otherwise set by hand every time you add one.

The easiest place to set it is the editor, not brand config. Open any template, size a heading until it looks right, and under the size field you'll see what your brand's default is and a link to make this the new one. Sizes scale with the shape of the creative, so it doesn't matter which aspect ratio you're looking at when you set it — braaand works out the equivalent for the others.

Two things it deliberately doesn't do. It never resizes anything that already exists, including the element you set it from: the default only applies to text added later. And it's a starting point, not a rule — you're free to size any individual heading however the design needs.

Logos and buttons work the same way, from the width field: a default width per logo, and a standard width for your buttons.

Variable fonts

A variable font is one file that contains every weight instead of one file per weight. Upload it like any other font and braaand reads the file to see what it covers — you'll see "Variable font · any weight 100–900" on the styles that use it.

Two things follow. Every weight in that range is available, including ones you never listed, so a style set to 600 renders a real 600 rather than the nearest weight you happen to have a file for. And the file is loaded once instead of once per weight, which is most of the payload of a render when a family carries four or five weights.

If you upload both a variable file and separate weight files for the same family, the variable one is used across its range. Weights it doesn't reach — a Black at 900 when the variable stops at 700 — still come from their own file.

Beyond the basics

The four styles cover most needs, and a few friendly names map onto them on their own: a "headline" uses your heading style, a "caption" uses body. A template can also invent its own named styles, like "hashtag" or "quote", as long as the brand or template says what they look like.