Font Features logo

Font Features

Community
glebis
font-features

This skill should be used when inspecting or applying advanced OpenType features of a font (woff2/otf/ttf) — ligatures, stylistic sets (ss01–ss20), character variants (cvXX), texture healing, slashed zero, tabular/oldstyle figures, fractions, small caps, case-sensitive forms — and generating the CSS to enable them. Interviews the user via cenno to pick features. Triggers on "OpenType features", "font features", "stylistic sets", "ligatures", "texture healing", "tabular figures", "what can this font do".

Overview

Publisherglebis
Repositoryclaude-skills
Skill namefont-features
Stars
379
Forks
56
Bundled files
1
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.

  • 1 bundled files

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

  • Open source

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

Installation

Install the Font Features 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.
  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/glebis/claude-skills.git /tmp/claude-skills
mkdir -p .claude/skills
cp -r /tmp/claude-skills/font-features .claude/skills/font-features
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Font Features 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 Font Features 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 Font Features 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.

Font Features (OpenType → CSS)

Inspect a font's real OpenType feature inventory and generate CSS to enable chosen features. Never guess what a font supports — always run scripts/otfeat.py list first; only features present in the dump may be offered or enabled.

Requires fontTools (pip install fonttools if missing).

Workflow

  1. Inspect the actual font files in the project:

    bash
    python3 <skill-dir>/scripts/otfeat.py list path/to/Font-Regular.woff2 [more fonts...]

    Output lists each font's GSUB/GPOS tags with human descriptions (Monaspace stylistic sets are described precisely; unknown cvXX are labelled generically).

  2. Interview the user via cenno (mcp__cenno__ask_user, or ask_sequence for several questions). Offer ONLY features found in step 1, grouped sensibly, with a recommendation. Typical question set:

    • Coding ligatures: which sets? (arrows ss03, colons ss07, comparison ss02...) — for code samples only, usually off for prose
    • Numerals: tabular (tnum) for tables/timers, oldstyle (onum) for prose, slashed zero (zero)
    • Texture healing (calt) — for Monaspace, recommend ON everywhere
    • Caps: case for uppercase labels/buttons, smcp if present Use input: {kind: "choice"} with a text option, mark optional questions low-urgency, and respect a "skip" answer.
  3. Generate CSS deterministically:

    bash
    python3 <skill-dir>/scripts/otfeat.py css --family "Monaspace Neon" \
      --features calt,liga,tnum,case --class prose
    # cvXX with a value: --features cv01=2

    High-level font-variant-* properties are preferred automatically (they cascade and combine better); remaining tags fall back to font-feature-settings. --no-variant-props forces the low-level form only.

  4. Apply: paste the block into the project stylesheet; scope per element role (e.g. tnum on tables/stat tiles only, ligature sets on code only). Verify in a browser with real content.

Gotchas

  • font-feature-settings is all-or-nothing per declaration — a second declaration on a nested element REPLACES the inherited list; repeat the full list. This is the main reason to prefer font-variant-*.
  • CSS accepts any tag, browsers silently ignore ones the font lacks — which is why step 1 is mandatory (e.g. Monaspace has NO tnum/zero/smcp; it's a monospace family and zero is already slashed).
  • Stylistic-set meanings are font-specific; never reuse Monaspace's ss-descriptions for another family.
  • A feature tag being present does not mean it covers the glyphs assumed: dump the actual GSUB substitutions before writing demo copy (e.g. Monaspace's case only raises : ¡ ¿ ‽ and combining accents — NOT quotes, brackets, or dashes).
  • Texture healing needs calt AND ligatures left enabled; font-variant-ligatures: none kills it.

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 Font Features AI skill do?

This skill should be used when inspecting or applying advanced OpenType features of a font (woff2/otf/ttf) — ligatures, stylistic sets (ss01–ss20), character variants (cvXX), texture healing, slashed zero, tabular/oldstyle figures, fractions, small caps, case-sensitive forms — and generating the CSS to enable them. Interviews the user via cenno to pick features. Triggers on "OpenType features", "font features", "stylistic sets", "ligatures", "texture healing", "tabular figures", "what can this font do".

Why use Font Features on TypingMind?

Because you install it once and use it with any model. Font Features 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 Font Features in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/glebis/claude-skills/tree/main/font-features. 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 Font Features?

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 Font Features?

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

Is the Font Features AI skill free?

Yes. It is published on GitHub by glebis 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 👇