skills/i-typeset/SKILL.md
Use when the user says: "fix the typography", "improve the type", "font choices". Improve typography, font choices, hierarchy, sizing, and readability.
npx skillsauth add NodeJSmith/Claudefiles i-typesetInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Assess and improve typography that feels generic, inconsistent, or poorly structured — turning default-looking text into intentional, well-crafted type.
Read ~/.claude/skills/i-frontend-design/SKILL.md for design principles, anti-patterns, and the Context Gathering Protocol. Follow the protocol before proceeding — if no design context exists yet, you MUST run /i-teach-impeccable first.
Analyze what's weak or generic about the current type:
Font choices:
Hierarchy:
Sizing & scale:
rem scales for app UIs; fluid clamp() for marketing/content page headings)Readability:
Consistency:
CRITICAL: The goal isn't to make text "fancier" — it's to make it clearer, more readable, and more intentional. Good typography is invisible; bad typography is distracting.
Consult the typography reference for detailed guidance on scales, pairing, and loading strategies.
Create a systematic plan:
After analyzing the current state, present your proposed changes to the user:
Then STOP and confirm before implementing:
AskUserQuestion:
question: "Here's what I propose. How would you like to proceed?"
header: "Confirm"
options:
- label: "Implement"
description: "Looks good — go ahead and make these changes."
- label: "Refine scope"
description: "I want to adjust what's included before you start."
- label: "Challenge this first"
description: "I'll run /mine.challenge against your proposal before we proceed."
- label: "Stop here"
description: "Don't implement anything. The proposal is in this conversation only."
If "Implement" → proceed to implementation below. If "Refine scope" → ask what to change, update proposal, re-confirm.
<!-- CHALLENGE-CALLER -->If "Challenge this first" → invoke /mine.challenge inline against the proposal, read findings, revise proposal, re-present this gate.
If "Stop here" → end the skill.
If fonts need replacing:
font-display: swap, metric-matched fallbacks)Build a clear type scale:
rem-based type scale, optionally adjusted at 1-2 breakpoints. Fluid sizing undermines the spatial predictability that dense, container-based layouts needclamp(min, preferred, max) for headings and display text. Keep body text fixedmax-width on text containers using ch units (max-width: 65ch)tabular-nums for data tables and numbers that should alignletter-spacing: slightly open for small caps and uppercase, default or tight for large display text--text-body, --text-heading), not value names (--font-16)font-kerning: normal and consider OpenType features where appropriateNEVER:
user-scalable=no)px for font sizes — use rem to respect user settingsRemember: Typography is the foundation of interface design — it carries the majority of information. Getting it right is the highest-leverage improvement you can make.
After implementation, summarize in conversation:
development
Use when the user says: "document how X works", "write up how this works", "durable explanation", "explain this for the docs", "document this subsystem". Writes a durable, architectural-altitude explanation that survives code churn.
development
Use when picking up a fresh session after /clear, a stop, or an unanswered AskUserQuestion. Reconstructs the prior session's intent from its transcript tail and surfaces any unresolved decision; user-invoked only — for a hand-written end-of-day handoff use /mine-good-morning instead.
development
Use when the user says: "what did we discuss", "continue where we left off", "remember when", "as I mentioned", "you suggested", "we decided", "search my conversations", "find the conversation where", "what did we work on", or uses implicit signals like past-tense references, possessives without context, or assumptive questions. Direct search over past Claude Code sessions via cass.
tools
Use when the user says: "what context do I have", "relevant history for this task", "what have we done related to this". Also usable proactively when starting work that likely has prior history. Assembles a structured context brief from past session history via cass, scoped to the current task and workspace.