FontOps

V1.1.0

The in-editor font pipeline for Unity — browse, install, organise, and audit your type system without ever leaving the editor.

Free fonts from three catalogs. One-click install. Live previews. Licensing on every card. Palettes, compliance audits, and a visual font picker — all in one tool window.

Commercial-safe by default: OFL / Apache / MIT / UFL only.

At a glance

What Details
3 font providers Google Fonts · Fontshare (OSS) · Fontsource — combined ~3,000+ unique families, all OFL/Apache/MIT/UFL
One-click install No browser. No ZIP archive. TTF lands in your configured folder, auto-generates a TMP_FontAsset + SDF atlas if enabled
Cross-source dedup ALL view collapses the same family across catalogs and shows a multi-source badge (e.g. GF + FSRC)
Font Palettes ScriptableObjects with named roles (Heading, Body, Caption, Button, …) — every TMP component pulls from one source of truth
Font Picker (new) A small search button (🔍) beside every TMP_FontAsset field — pick from palette roles, installed fonts, or one-click catalog installs with favorites, previews, and pagination, each typeset in its own face
Compliance Checker Audits every text component in scenes + prefabs against a palette, with inline IGNORE / RESTORE
Font Scanner Project-wide font discovery, duplicate detection (MD5), source classification, missing-TMP-asset alerts
Palette-less general audit Run a usage/quality report with no palette assigned — surfaces installed-but-unused families and placeholder flags
Licensing on every card Canonical license label (OFL 1.1, Apache 2.0, MIT, UFL 1.0) sourced from authoritative endpoints — never guessed
Zero boilerplate All runtime components (FontPaletteApplier, FontComplianceIgnore) are drop-in MonoBehaviours

Providers at a glance

Provider Catalog size License filter Delivery API key
Google Fonts ~1,700 families OFL / Apache / UFL Per-variant TTF from Google CDN Optional — higher rate limit
Fontshare (OSS) ~150 families OFL only (ITF FFL rejected at ingest) Per-family ZIP → extracted + cached Not needed
Fontsource 2,077 families (GF superset + 126 unique) OFL / Apache / MIT / UFL Per-variant TTF from jsDelivr Not needed
FontOps ships integrations only for providers with a documented JSON/REST API. If your team relies on a different foundry, you can install its fonts manually and FontOps' scanner + palette system will still pick them up.

Features

🗂 Providers

Browse + install from Google Fonts, Fontshare, and Fontsource. Cross-source dedup, live previews, per-font licensing.

🎨 Font Palettes

Define typographic roles once. Every TMP component pulls from the palette — no more hand-tuning sizes per object.

✨ Font Picker (new)

Click the small search button (🔍) beside any TMP_FontAsset field. Pick from palette roles, installed fonts, or one-click catalog installs — each typeset in its own face.

✔ Compliance Checker

Scan scenes + prefabs. Flag anything that doesn't follow your palette. Inline IGNORE / RESTORE on every component.

✨ Palette Extractor

Scan existing fonts, get AI-assisted role-name suggestions, and build a palette from your project's current typography.

🚀 Getting Started

Configure settings, optionally add a Google Fonts API key, and create your first palette — all in under five minutes.

Video Tutorials

▶ Promo Video

Feature overview trailer showcasing FontOps in action.

▶ Initial Setup

Set up your API key and import TextMeshPro essentials.

▶ Quick Start

Full tutorial: download fonts, create a palette, and run your first audit.

Quick Start

  1. Open Tools → FontOps — launches the editor window.
  2. (Optional) Add a Google Fonts API keySettings → Google Fonts API. Unlocks higher rate limits; Fontshare and Fontsource don't need any key.
  3. Browse and install — use the source pills (ALL / GOOGLE FONTS / FONTSHARE / FONTSOURCE), pick a font, hit ↓ INSTALL.
  4. Create a Font PaletteAssets → Create → FontOps → Font Palette. Five default roles ship out of the box.
  5. Assign fonts to roles — Header, Body, Caption, Button, or any custom role you add.
  6. Run a compliance auditTools → Text Auditor → SCAN PROJECT. Anything off-palette gets a flag.
  7. (Optional) Use the Font Picker — on any TextMeshPro component, click the small magnifying-glass button beside the Font Asset field to assign a font visually.

What's in the box

Runtime components

Editor tools

Requirements

Dependency Minimum Version Notes
Unity 2022.3 LTS Works on all newer LTS + Unity 6
TextMeshPro 3.0.6 Required. Absorbed into com.unity.ugui in Unity 6 — still works
Newtonsoft Json 3.2.1 Bundled automatically by UPM; no manual install

Licensing posture

FontOps will never surface a font whose license forbids redistribution. The provider ingest layers filter down to OFL 1.1, Apache 2.0, MIT, and UFL 1.0 only. Every card shows its canonical license label (read from authoritative endpoints, never scraped from human-facing HTML), and every install drops the license file alongside the TTF.