Get the FREE Ultimate OpenClaw Setup Guide →

Typography Selector

npx machina-cli add skill davepoon/buildwithclaude/typography-selector --openclaw
Files (1)
SKILL.md
6.0 KB

Typography Selector

Browse, select, and apply typography for frontend designs.

Purpose

This skill helps select the perfect fonts by:

  • Browsing trending fonts on Google Fonts
  • Suggesting pairings based on aesthetic
  • Generating Google Fonts imports
  • Mapping to Tailwind config
  • Providing curated fallbacks when browser unavailable

Browser Workflow

Step 1: Navigate to Google Fonts

tabs_context_mcp({ createIfEmpty: true })
tabs_create_mcp()
navigate({ url: "https://fonts.google.com/?sort=trending", tabId: tabId })

Step 2: Browse Fonts

Take screenshots of trending fonts:

computer({ action: "screenshot", tabId: tabId })

Present to user: "Here are trending fonts. What style catches your eye?"

Step 3: Search Specific Fonts

If user has a preference:

navigate({ url: "https://fonts.google.com/?query=Outfit", tabId: tabId })
computer({ action: "screenshot", tabId: tabId })

Step 4: View Font Details

Click on a font to see all weights and styles:

computer({ action: "left_click", coordinate: [x, y], tabId: tabId })
computer({ action: "screenshot", tabId: tabId })

Step 5: Select Fonts

Get user's choice for:

  • Display/Heading font: For headlines, hero text
  • Body font: For paragraphs, readable text
  • Mono font (optional): For code, technical content

Step 6: Generate Import

Create Google Fonts import:

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,700&display=swap" rel="stylesheet">

Step 7: Generate Config

Create Tailwind font config:

tailwind.config = {
  theme: {
    extend: {
      fontFamily: {
        display: ['Fraunces', 'serif'],
        body: ['Outfit', 'sans-serif'],
        mono: ['JetBrains Mono', 'monospace'],
      }
    }
  }
}

Fallback Mode

When browser tools are unavailable, use curated pairings.

How to Use Fallbacks

  1. Ask user about desired aesthetic
  2. Present relevant pairings from references/font-pairing.md
  3. Let user choose or request adjustments
  4. Provide import code for selected fonts

Quick Aesthetic Match

AestheticRecommended Pairing
Dark & PremiumFraunces + Outfit
MinimalSatoshi + Satoshi
NeobrutalismSpace Grotesk + Space Mono
EditorialInstrument Serif + Inter
Y2K/CyberOrbitron + JetBrains Mono
ScandinavianPlus Jakarta Sans + Plus Jakarta Sans
CorporateWork Sans + Inter

Typography Best Practices

Font Pairing Rules

Contrast, not conflict:

  • Pair serif with sans-serif
  • Pair display with readable body
  • Match x-height for harmony
  • Limit to 2 fonts (3 max with mono)

Weight distribution:

  • Headlines: Bold (600-900)
  • Subheads: Medium (500-600)
  • Body: Regular (400)
  • Captions: Light to Regular (300-400)

Sizing Scale

Use a consistent type scale:

/* Minor Third (1.2) */
--text-xs: 0.75rem;    /* 12px */
--text-sm: 0.875rem;   /* 14px */
--text-base: 1rem;     /* 16px */
--text-lg: 1.125rem;   /* 18px */
--text-xl: 1.25rem;    /* 20px */
--text-2xl: 1.5rem;    /* 24px */
--text-3xl: 1.875rem;  /* 30px */
--text-4xl: 2.25rem;   /* 36px */
--text-5xl: 3rem;      /* 48px */
--text-6xl: 3.75rem;   /* 60px */
--text-7xl: 4.5rem;    /* 72px */

Line Height

Content TypeLine HeightTailwind Class
Headlines1.1 - 1.2leading-tight
Subheads1.25 - 1.35leading-snug
Body text1.5 - 1.75leading-relaxed
Small text1.4 - 1.5leading-normal

Letter Spacing

UsageTrackingTailwind Class
All capsWidetracking-widest
HeadlinesTight to normaltracking-tight
BodyNormaltracking-normal
Small capsWidetracking-wide

Fonts to Avoid

Overused (instant "template" feeling):

  • Inter (the default AI font)
  • Roboto (Android default)
  • Open Sans (early 2010s web)
  • Arial / Helvetica (unless intentional Swiss)
  • Lato (overexposed)
  • Poppins (overused in 2020s)

Why these feel generic:

  • Used in every Figma template
  • Default in many tools
  • No distinctive character
  • Signal "no design decision made"

Output Format

Provide selected typography in this format:

## Selected Typography

### Font Stack
| Role | Font | Weights | Fallback |
|------|------|---------|----------|
| Display | Fraunces | 400, 700 | serif |
| Body | Outfit | 400, 500, 600 | sans-serif |
| Mono | JetBrains Mono | 400 | monospace |

### Google Fonts Import
\`\`\`html
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,700&family=Outfit:wght@400;500;600&family=JetBrains+Mono&display=swap" rel="stylesheet">
\`\`\`

### Tailwind Config
\`\`\`javascript
fontFamily: {
  display: ['Fraunces', 'serif'],
  body: ['Outfit', 'sans-serif'],
  mono: ['JetBrains Mono', 'monospace'],
}
\`\`\`

### Usage Examples
\`\`\`html
<h1 class="font-display text-6xl font-bold leading-tight">
  Headline
</h1>
<p class="font-body text-lg leading-relaxed">
  Body text goes here.
</p>
<code class="font-mono text-sm">
  code example
</code>
\`\`\`

References

See references/font-pairing.md for:

  • Curated font pairings by aesthetic
  • Font classification guide
  • Advanced pairing techniques
  • Performance considerations

Source

git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/frontend-design-pro/skills/typography-selector/SKILL.mdView on GitHub

Overview

Typography Selector helps you browse trending Google Fonts, suggests pairings based on aesthetics, and generate Google Fonts imports and a Tailwind config. It supports choosing display, body, and optional mono fonts to match your design needs, with curated fallbacks when browser tools are unavailable.

How This Skill Works

Navigate to Google Fonts and browse trending fonts, then view details for weights and styles. Select fonts for display/heading, body, and an optional mono, then generate the Google Fonts import and the Tailwind fontFamily config to apply in your project. If browser tools are down, rely on curated fallbacks and font pairings from the references.

When to Use It

  • Starting a design project and selecting typography from Google Fonts
  • Building a hero/landing page with a strong display font paired with body text
  • Ensuring readable body text with a complementary sans-serif or serif
  • Browser tools unavailable, using curated font pairings for quick results
  • Aligning typography with a design system by generating a Tailwind config

Quick Start

  1. Step 1: Open Google Fonts via the Typography Selector workflow
  2. Step 2: Browse fonts, then pick a display/heading, body, and optional mono pairing
  3. Step 3: Generate the Google Fonts import and the Tailwind config, then apply to your project

Best Practices

  • Limit font usage to 2 fonts (3 max if including a mono font) to maintain harmony
  • Pair serif with sans-serif and ensure visual contrast between headings and body
  • Match x-height and overall proportions for balanced typography
  • Plan font weights: headlines (600-900), subheads (500-600), body (400), captions (300-400)
  • Always generate and apply a Google Fonts import and a Tailwind fontFamily mapping

Example Use Cases

  • Dark & Premium: Fraunces (display) + Outfit (body) for high-contrast headlines and readable body text
  • Minimal: Satoshi + Satoshi for a clean, unified sans-serif look
  • Neobrutalism: Space Grotesk + Space Mono for bold headings with monospaced code blocks
  • Editorial: Instrument Serif + Inter for stylish article typography
  • Y2K/Cyber: Orbitron + JetBrains Mono for futuristic headings and code snippets

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers