Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Google Fonts for Confluence v2: The Picker, Rebuilt — and the Six Weeks That Made It Possible

motto.png

Three weeks ago I told you the font picker was getting rebuilt, and I'd post the before/after when it shipped. Late Q3, I said.

I was wrong by a few weeks. It's today — and it isn't just the picker.

v2.0.0 bundles two pieces of work. The harder one was getting all 1,942 fonts to serve from inside Atlassian with zero data egress — the Runs on Atlassian work I wrote about three weeks ago. That took about six weeks of engineering. The picker refactor — the thing I'd promised for late Q3 — got folded into the same body of work and shipped at the same time. I'm Simon from NGPILOT, and here's what landed.


What it took: getting to Runs on Atlassian

When I wrote about Runs on Atlassian certification three weeks ago, I framed it as a procurement win — no outbound calls to fonts.gstatic.com, no data leaving Atlassian's perimeter, the kind of thing that gets a font app through regulated-industry security reviews. What I didn't say was how long it took to actually get there.

Self-hosting 1,942 font families inside Forge isn't free. Each family ships in four variants (regular, bold, italic, bold italic) as woff2 — roughly 7,700 font files — and Forge's resource model isn't built for "serve thousands of binary assets from inside the platform." We had to write a bundling pipeline to partition the catalog, ship the bundles as Forge resources, and resolve URLs at runtime so a macro in a page could load the right font file without ever reaching outside Atlassian. End-to-end rendering broke several times before it worked.

That was the better part of six weeks on its own. The picker refactor was the easier half.

What shipped: the picker

The old config UI had two problems. First, the catalog lived in a single alphabetical dropdown with 1,785 families — typeahead search worked, but only on names. You couldn't filter by Sans, Serif, Display, Handwriting, Monospace, or Icons, and the preview only showed the one font you'd already picked. Browsing meant scrolling, typing partial names, and guessing.

old-macro-config.png

Second, the form was stepped — the variant, color, size, and preview fields only rendered after you picked a font. So if you opened an existing macro to tweak the size or color, you saw this until you re-selected the font:

new-macro-config.png

The new picker is fullscreen and behaves more like fonts.google.com than a Forge macro config. Four things worth calling out:

  • Category filters. Filter by Sans, Serif, Display, Handwriting, Monospace, or Icons. Typeahead search on names is still there — now you can also narrow by category before you start typing.
  • Live preview cards for every family. Each of the 1,942 families renders as a card showing your own preview text at the size you've chosen. The old picker previewed only the font you'd picked; the new one previews all of them at once.
  • A sidebar for the rest. Size slider (8–96 px), variant selector, color picker, alignment. One panel, all changes reflected across every card in real time.
  • Variant fallback badges. If a family doesn't ship the variant you picked (say, bold italic), the card tells you what it's substituting with — a small ↓ regular pill — instead of silently rendering something different.

config-v2.png

What didn't change

Every macro is stored as the same 7 fields it always was:

selectedFont, selectedVariant, previewText, selectedFontURL, textSize, textColor, textAlign

That contract is frozen. If you have pages built with the old picker, they render identically after the upgrade. Only the choosing changed — not what gets saved.

Where to try it

Google Fonts for Confluence on the Marketplace. Existing installs get v2.0.0 automatically on upgrade — no migration, no broken pages.

We also shipped

Google Fonts is one of a handful of macros we make for Confluence pages. If a font picker caught your eye, the rest of the shelf — briefly, in case one of these is also your problem:

0 comments

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events