Typography logo

Typography

Community
danium
typography

Use when styling or reviewing text in any medium; choosing fonts, size, spacing, measure, headings, emphasis, punctuation, or numeric typography; auditing websites, documents, slides, email, resumes, tables, or PDFs; or resolving a user's visual preference against typographic, accessibility, language, and delivery constraints

Overview

Publisherdanium
Repositorypracticaltypography
Skill nametypography
Stars
29
Forks
1
Bundled files
7
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 7 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by danium on GitHub. Read the source before you install it.

Installation

Install the Typography AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/danium/practicaltypography/tree/main/skills/typography
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/danium/practicaltypography.git /tmp/practicaltypography
mkdir -p .claude/skills
cp -r /tmp/practicaltypography/skills/typography .claude/skills/typography
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Typography in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Typography on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Typography is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Typography

Good typography reinforces the meaning of the text and conserves the reader's attention. Start with body text, but never apply body-text rules to every role. Treat Practical Typography as a benchmark, not a compliance standard. Rule IDs point to provenance.md, which distinguishes source guidance (PT), project choices (DEVIATION), and current external requirements (CURRENT).

Load only what the task needs [ROUTE-001]

  • Character substitutions, punctuation, whitespace, emphasis, or literal text: composition.md
  • Paragraphs, headings, lists, quotations, tables, styles, pagination, columns, or grids: layout.md
  • Font selection, pairing, glyphs, features, or licensing: fonts.md
  • Websites, responsive measure, actual font use, fallbacks, or accessibility: web.md
  • Print, slides, email, resumes, tables of numbers, or PDF delivery: media.md
  • Non-English, non-Latin, bidirectional, or mixed-script text: international.md
  • Authority, scope, freshness, and evaluation coverage for a rule: provenance.md

Do not load every reference by default. A PDF containing Arabic code examples, for example, needs media.md, international.md, and the literal-text section of composition.md; a simple English print paragraph does not need web.md.

Precedence

Apply this order whenever recommendations conflict [CORE-002]:

  1. content correctness and semantics;
  2. accessibility, language conventions, and legal or license constraints;
  3. user intent and delivery medium;
  4. Practical Typography benchmarks;
  5. project presets and optional taste.

Preserve the user's requested aesthetic as far as higher-priority constraints allow. If it departs from a benchmark, label the departure once and give the benchmark alternative without repeatedly arguing the point.

Gated audit

1. Classify context [AUDIT-001]

Identify the medium and delivery format, reading environment, intended audience, language and script, user intent, and the roles present: running prose, display heading, navigation, caption, table, code, data, and so on. State a material assumption if it cannot be verified.

2. Protect literal and semantic regions [AUDIT-002]

Before changing characters, classify spans as prose, code, command, URL, email address, identifier, measurement, legal reference, or data. Transform eligible prose only. Preserve unknown or mixed spans and report uncertainty instead of silently normalizing them. See composition.md.

3. Inspect the strongest available evidence [AUDIT-003]

Distinguish four levels:

  1. authored source or declared styles;
  2. computed or application formatting, including the font actually selected;
  3. rendered pages, lines, and glyphs;
  4. final delivery artifact, such as an exported PDF or printed page.

Use the highest level available and name what was not verified. Never present a source-only inference as a rendered fact.

4. Apply constraints [CORE-002]

Check semantics, accessibility, language/script behavior, font capability, licensing, and delivery reliability before aesthetic benchmarks. For web work, use web.md; for unfamiliar languages or scripts, use international.md.

5. Apply benchmarks in impact order [AUDIT-004]

  1. Body text: font, size, line spacing, and rendered measure. For English-language running prose, Practical Typography's starting ranges are 15–25 px on the web, 10–12 pt in print, 120–145% line spacing, and about 45–90 actual characters per line [TYPE-001]. CSS ch is only a setup heuristic because it measures the zero glyph, not average characters; verify representative rendered lines or use the two-to-three-lowercase-alphabets test.
  2. Alignment and paragraphs: use either first-line indents or paragraph space, not both; do not center running prose; justify only when language-aware line breaking and spacing produce an acceptable result [TYPE-002] [TYPE-003].
  3. Headings: keep hierarchy restrained, use the smallest visible distinction that works, avoid underlining and untracked caps, make space above exceed space below, and keep headings with what follows [TYPE-004].
  4. Emphasis: prefer one signal, keep emphasis shorter than a sentence when practical, do not underline non-links, and use genuine small caps with appropriate tracking [TYPE-005].
  5. Composition: inspect eligible prose for quotes, apostrophes, dashes, ellipses, symbols, ordinals, delimiters, and whitespace without altering literal content [COMP-001..007].
  6. Supporting elements: apply role-specific guidance for quotations, lists, code, tables, captions, navigation, callouts, slides, and other media. Do not invent exact ratios where visual calibration is the actual test.

6. Prioritize and report [AUDIT-005]

Report each actionable finding as:

text
[MAJOR|MINOR] element: observed problem -> correction (value or edit; evidence level)

MAJOR means the defect materially harms reading, meaning, accessibility, language behavior, or delivery. MINOR means refinement whose absence does not materially block reading. Severity is contextual, not a fixed lookup table.

End every audit with:

  • corrected values, code, or an edit list;
  • the evidence level reached and any verification still needed;
  • the three fixes expected to make the greatest improvement.

Optional presets [PRESET-001]

These are project-authored starting points, not Butterick rules. Calibrate them against the actual font, content, viewport, and medium.

PresetStarting pointIntended feel
Bookish17–18 px, 1.3–1.4 leading, rendered lines near the middle of the source range, serif, first-line indentsdense, print-influenced
Airy screen19–21 px, 1.5–1.6 leading, narrower rendered measure, paragraph spacedeliberately looser than the PT leading range
Compact docs15–17 px, 1.35–1.45 leading, wider but verified measure, modest paragraph spaceinformation-dense documentation

Use the smallest visible adjustment, render alternatives when possible, and judge the result in its delivery context [CORE-001].

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Typography AI skill do?

Use when styling or reviewing text in any medium; choosing fonts, size, spacing, measure, headings, emphasis, punctuation, or numeric typography; auditing websites, documents, slides, email, resumes, tables, or PDFs; or resolving a user's visual preference against typographic, accessibility, language, and delivery constraints

Why use Typography on TypingMind?

Because you install it once and use it with any model. Typography is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Typography in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/danium/practicaltypography/tree/main/skills/typography. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Typography?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Typography?

As many as you like. As long as a model supports skills, you can use Typography with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Typography AI skill free?

Yes. It is published on GitHub by danium under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇