agentleFS
codeonym-osscodeonym-oss/design-skills/skills/typography/SKILL.md

typography

Skill0 starsChanged 48 days agoMITView on GitHub

Fonts and typography — a curated open-source font library (Inter, IBM Plex, Source Sans 3, Roboto, Open Sans, JetBrains Mono, Fira Code, Noto incl. Arabic/CJK/emoji, Liberation, DejaVu), project fonts, FontForge and fontconfig, all in a reproducible container. Use when the user wants to choose or pair fonts, see what fonts are available, add fonts to a project, compare fonts in a specimen, convert fonts to web formats (WOFF2 + @font-face), or edit/create a font.

16 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Project fonts: put .ttf/.otf files in ./fonts (or point DS_FONTS at a folder) and every tool in the container sees them — Inkscape exports, …

    line 20
  2. Distinctive:

    Check the license before shipping a font (SIL OFL / Apache = free to embed and self-host).

    line 51

“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Typography (fonts · FontForge · fontconfig)

Scripts run inside the design-skills container automatically (bash <skill-dir>/scripts/<name>.sh …, see design-sandbox).

Fonts available to every tool

RoleFamilies
UI / product sansInter, IBM Plex Sans, Roboto, Open Sans, Source Sans 3
SerifIBM Plex Serif, Noto Serif, Liberation Serif, DejaVu Serif
Monospace / codeJetBrains Mono, Fira Code, IBM Plex Mono
Global coverageNoto Sans/Serif (Latin, Greek, Cyrillic, Arabic, Hebrew, Devanagari, Thai…), Noto Color Emoji; Noto CJK in the full image
Metric-compatibleLiberation (Arial/Times/Courier), Carlito (Calibri)

Project fonts: put .ttf/.otf files in ./fonts (or point DS_FONTS at a folder) and every tool in the container sees them — Inkscape exports, ImageMagick text, specimens, Scribus. Google Fonts: download the family from fonts.google.com (or github.com/google/fonts) into ./fonts.

Tools

ToolUse it forCLI (in the container)
fontconfigList and match fontsfc-list, fc-match "Inter:bold"
FontForgeEdit glyphs, create fonts, convert formatsfontforge -lang=py -script …
woff2Compress to WOFF2woff2_compress
Desktop font managersBrowse/compare visuallyGNOME Fonts / Font Manager (Linux), Font Book (macOS), Settings → Fonts (Windows)

Scripts

ScriptWhat it does
check.shFont tools, the key families, counts, and project fonts in ./fonts
font-inventory.sh [filter]Families with style counts and location
font-specimen.sh "Family A" "Family B" … [-t "sample text"] [-o out.png]Side-by-side specimen PNG to compare/pair fonts; flags families that aren't installed; any script (Arabic, CJK…) via -t
webfont.sh <font.ttf|otf…> [outdir]WOFF2 + WOFF + an @font-face CSS file with the real family/weight/style

Guides

  • references/pairing-and-hierarchy.md — proven pairings from the bundled set, type scale, readability rules.
  • references/installing-fonts.md — project fonts, installing on Linux/macOS/Windows, licensing.

Rules of thumb

  1. Two families max per project (one sans + one serif or mono). Use weights for hierarchy.
  2. Body text 16 px+ on screen, line-height 1.5, 60–75 characters per line.
  3. Check the license before shipping a font (SIL OFL / Apache = free to embed and self-host).
  4. For the web, self-host WOFF2 (webfont.sh) or use next/font — don't hotlink random font CDNs.
  5. Designing for Arabic, Hebrew, CJK or Indic scripts? Check the specimen with real text (-t) — Latin-only fonts silently fall back.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.