360 Secure SkillHub
360 安全技能中心

Google Fonts

围绕 Google Fonts 的网页字体使用提供实践建议:强调 display=swap、按需加载字重、preconnect,说明可变字体与子集化,给出常见字体搭配,并涵盖用途选择、常见错误和自托管方案。

ivangdavila
ivangdavila
热度 93.73
最近更新 2026-05-11 16:09:51
分类:开发依赖:纯提示词应用场景:UI 原型 / 代码生成 / 模板 / 概念解释

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add google-fonts
Metadata
name
Google Fonts
description
Load Google Fonts with proper performance, subsetting, and proven font pairings.
metadata
{"clawdbot":{"emoji":"🔤","requires":{},"os":["linux","darwin","win32"]}}

Loading Mistakes

  • Missing display=swap causes invisible text until font loads—always add it to URL
  • Load only weights you use: wght@400;600;700 not the entire family—each unused weight wastes ~20KB
  • Missing preconnect slows load—add both: <link rel="preconnect" href="https://fonts.googleapis.com"> and <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

Variable Fonts

  • Inter, Roboto Flex, Montserrat, Open Sans have variable versions—one file for all weights
  • Use wght@100..900 syntax for variable—downloads single file instead of multiple
  • CSS for variable: font-weight: 450 works with any value in range
  • Check "Variable" badge on font page—not all Google Fonts are variable

Subsetting

  • Default includes latin—only add &subset=latin-ext if you need Polish, Vietnamese, etc.
  • CJK fonts (Noto Sans JP, etc.) are huge—Google serves them sliced, but still heavy
  • Unused subsets = wasted bytes—check what characters you actually need

Proven Pairings

Serif + Sans-Serif (classic contrast):

  • Playfair Display (heading) + Source Sans Pro (body)
  • Lora (heading) + Roboto (body)
  • Libre Baskerville (heading) + Montserrat (body)
  • Merriweather (heading) + Open Sans (body)

Sans-Serif only (modern/clean):

  • Inter (both)—vary weight for hierarchy
  • Montserrat (heading) + Hind (body)
  • Poppins (heading) + Nunito (body)
  • Work Sans (heading) + Open Sans (body)

Tech/Startup:

  • Space Grotesk (heading) + Space Mono (code)
  • DM Sans (heading) + DM Mono (code)
  • IBM Plex Sans + IBM Plex Mono

Display fonts (headings only):

  • Abril Fatface, Bebas Neue, Oswald—never use these for body text

Font Selection by Purpose

  • Long-form reading: Merriweather, Lora, Source Serif Pro, Crimson Text
  • UI/Interfaces: Inter, Roboto, Open Sans, Nunito Sans (tall x-height, clear at small sizes)
  • Impact headings: Playfair Display, Oswald, Bebas Neue (not for body)
  • Monospace: JetBrains Mono, Fira Code, Source Code Pro

Common Mistakes

  • Loading 6+ weights "to be safe"—pick exactly the weights you use (usually 2-3)
  • Using display fonts for paragraphs—Lobster, Pacifico, Abril Fatface are heading-only
  • Two fonts too similar—Roboto + Open Sans look almost identical; just use one
  • Missing font-weight in CSS—font-weight: 600 won't work if you only loaded 400 and 700
  • No fallback stack—always: font-family: 'Inter', system-ui, sans-serif

Self-Hosting

  • Self-host for GDPR compliance—Google Fonts loads from Google servers, logs IP addresses
  • Use google-webfonts-helper to download files
  • Same font-display: swap needed in your @font-face
  • Self-hosted can be faster if your CDN is closer than Google's