AgentSkillsCN

type-scale

使用模块化比例生成排版比例,自动计算行高。当设置字体大小令牌、标题层次(h1-h6)或文本尺寸系统时使用。输出CSS、Tailwind或JSON。

SKILL.md
--- frontmatter
name: type-scale
description: Generates typography scales using modular ratios with auto-calculated line heights. Use when setting up font-size tokens, heading hierarchy (h1-h6), or text sizing systems. Outputs CSS, Tailwind, or JSON.

Type Scale Generator

Overview

Generate harmonious typography scales using musical interval ratios. Automatically calculates appropriate line heights based on font size for optimal readability.

When to Use

  • Setting up typography for a new project
  • Creating heading hierarchy (h1-h6)
  • Standardizing font sizes across components
  • Building a responsive type system

Quick Reference: Musical Ratios

NameRatioCharacter
Minor Second1.067Subtle, tight
Major Second1.125Conservative
Minor Third1.2Versatile (recommended)
Major Third1.25Balanced
Perfect Fourth1.333Bold contrast
Augmented Fourth1.414Dramatic
Perfect Fifth1.5High contrast
Golden Ratio1.618Classical, striking

The Process

  1. Get base size: Default 16px (browser default, good baseline)
  2. Choose ratio: Recommend Minor Third (1.2) for most projects
  3. Steps up: How many sizes above base (6-8 typical for headings)
  4. Steps down: How many sizes below base (2-3 for small/caption text)
  5. Ask unit: px, rem, or em?
  6. Ask format: CSS, Tailwind, or JSON?
  7. Generate: Create scale with auto line heights

Auto Line Height

Larger fonts need tighter line height for readability:

Font SizeLine HeightReasoning
14px or less1.7Small text needs room
15-18px1.6Body text range
19-24px1.5Large body/small headings
25-32px1.4Subheadings
33-48px1.3Headings
49px+1.2Display text

Output Formats

CSS Custom Properties:

css
:root {
  /* Font Sizes */
  --text-xs: 13.33px;
  --text-sm: 14.22px;
  --text-base: 16px;
  --text-lg: 19.2px;
  --text-xl: 23.04px;
  --text-2xl: 27.65px;

  /* Line Heights */
  --leading-xs: 1.70;
  --leading-sm: 1.70;
  --leading-base: 1.60;
  --leading-lg: 1.50;
  --leading-xl: 1.50;
  --leading-2xl: 1.40;
}

Tailwind Config:

js
module.exports = {
  theme: {
    fontSize: {
      'xs': ['13.33px', { lineHeight: '1.70' }],
      'sm': ['14.22px', { lineHeight: '1.70' }],
      'base': ['16px', { lineHeight: '1.60' }],
      'lg': ['19.2px', { lineHeight: '1.50' }],
      'xl': ['23.04px', { lineHeight: '1.50' }],
      '2xl': ['27.65px', { lineHeight: '1.40' }],
    }
  }
}

JSON Tokens:

json
{
  "typography": {
    "xs": { "fontSize": "13.33px", "lineHeight": "1.70" },
    "sm": { "fontSize": "14.22px", "lineHeight": "1.70" },
    "base": { "fontSize": "16px", "lineHeight": "1.60" },
    "lg": { "fontSize": "19.2px", "lineHeight": "1.50" }
  }
}

Naming Convention

PositionName
3 below basexxs
2 below basexs
1 below basesm
Basebase
1 above baselg
2 above basexl
3+ above base2xl, 3xl, 4xl...

Common Configurations

Compact UI (dashboards, data-dense):

  • Ratio: 1.125 (Major Second)
  • Base: 14px
  • Steps: 2 down, 5 up

Content Site (blogs, marketing):

  • Ratio: 1.25 (Major Third)
  • Base: 18px
  • Steps: 2 down, 6 up

Editorial (magazines, long-form):

  • Ratio: 1.333 (Perfect Fourth)
  • Base: 20px
  • Steps: 2 down, 8 up