{
  "schemaVersion": "1.0",
  "item": {
    "slug": "google-fonts",
    "name": "Google Fonts",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/google-fonts",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/google-fonts",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/google-fonts",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=google-fonts",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/google-fonts"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/google-fonts",
    "agentPageUrl": "https://openagent3.xyz/skills/google-fonts/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-fonts/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-fonts/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Loading Mistakes",
        "body": "Missing display=swap causes invisible text until font loads—always add it to URL\nLoad only weights you use: wght@400;600;700 not the entire family—each unused weight wastes ~20KB\nMissing preconnect slows load—add both: <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"> and <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>"
      },
      {
        "title": "Variable Fonts",
        "body": "Inter, Roboto Flex, Montserrat, Open Sans have variable versions—one file for all weights\nUse wght@100..900 syntax for variable—downloads single file instead of multiple\nCSS for variable: font-weight: 450 works with any value in range\nCheck \"Variable\" badge on font page—not all Google Fonts are variable"
      },
      {
        "title": "Subsetting",
        "body": "Default includes latin—only add &subset=latin-ext if you need Polish, Vietnamese, etc.\nCJK fonts (Noto Sans JP, etc.) are huge—Google serves them sliced, but still heavy\nUnused subsets = wasted bytes—check what characters you actually need"
      },
      {
        "title": "Proven Pairings",
        "body": "Serif + Sans-Serif (classic contrast):\n\nPlayfair Display (heading) + Source Sans Pro (body)\nLora (heading) + Roboto (body)\nLibre Baskerville (heading) + Montserrat (body)\nMerriweather (heading) + Open Sans (body)\n\nSans-Serif only (modern/clean):\n\nInter (both)—vary weight for hierarchy\nMontserrat (heading) + Hind (body)\nPoppins (heading) + Nunito (body)\nWork Sans (heading) + Open Sans (body)\n\nTech/Startup:\n\nSpace Grotesk (heading) + Space Mono (code)\nDM Sans (heading) + DM Mono (code)\nIBM Plex Sans + IBM Plex Mono\n\nDisplay fonts (headings only):\n\nAbril Fatface, Bebas Neue, Oswald—never use these for body text"
      },
      {
        "title": "Font Selection by Purpose",
        "body": "Long-form reading: Merriweather, Lora, Source Serif Pro, Crimson Text\nUI/Interfaces: Inter, Roboto, Open Sans, Nunito Sans (tall x-height, clear at small sizes)\nImpact headings: Playfair Display, Oswald, Bebas Neue (not for body)\nMonospace: JetBrains Mono, Fira Code, Source Code Pro"
      },
      {
        "title": "Common Mistakes",
        "body": "Loading 6+ weights \"to be safe\"—pick exactly the weights you use (usually 2-3)\nUsing display fonts for paragraphs—Lobster, Pacifico, Abril Fatface are heading-only\nTwo fonts too similar—Roboto + Open Sans look almost identical; just use one\nMissing font-weight in CSS—font-weight: 600 won't work if you only loaded 400 and 700\nNo fallback stack—always: font-family: 'Inter', system-ui, sans-serif"
      },
      {
        "title": "Self-Hosting",
        "body": "Self-host for GDPR compliance—Google Fonts loads from Google servers, logs IP addresses\nUse google-webfonts-helper to download files\nSame font-display: swap needed in your @font-face\nSelf-hosted can be faster if your CDN is closer than Google's"
      }
    ],
    "body": "Loading Mistakes\nMissing display=swap causes invisible text until font loads—always add it to URL\nLoad only weights you use: wght@400;600;700 not the entire family—each unused weight wastes ~20KB\nMissing preconnect slows load—add both: <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"> and <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\nVariable Fonts\nInter, Roboto Flex, Montserrat, Open Sans have variable versions—one file for all weights\nUse wght@100..900 syntax for variable—downloads single file instead of multiple\nCSS for variable: font-weight: 450 works with any value in range\nCheck \"Variable\" badge on font page—not all Google Fonts are variable\nSubsetting\nDefault includes latin—only add &subset=latin-ext if you need Polish, Vietnamese, etc.\nCJK fonts (Noto Sans JP, etc.) are huge—Google serves them sliced, but still heavy\nUnused subsets = wasted bytes—check what characters you actually need\nProven Pairings\n\nSerif + Sans-Serif (classic contrast):\n\nPlayfair Display (heading) + Source Sans Pro (body)\nLora (heading) + Roboto (body)\nLibre Baskerville (heading) + Montserrat (body)\nMerriweather (heading) + Open Sans (body)\n\nSans-Serif only (modern/clean):\n\nInter (both)—vary weight for hierarchy\nMontserrat (heading) + Hind (body)\nPoppins (heading) + Nunito (body)\nWork Sans (heading) + Open Sans (body)\n\nTech/Startup:\n\nSpace Grotesk (heading) + Space Mono (code)\nDM Sans (heading) + DM Mono (code)\nIBM Plex Sans + IBM Plex Mono\n\nDisplay fonts (headings only):\n\nAbril Fatface, Bebas Neue, Oswald—never use these for body text\nFont Selection by Purpose\nLong-form reading: Merriweather, Lora, Source Serif Pro, Crimson Text\nUI/Interfaces: Inter, Roboto, Open Sans, Nunito Sans (tall x-height, clear at small sizes)\nImpact headings: Playfair Display, Oswald, Bebas Neue (not for body)\nMonospace: JetBrains Mono, Fira Code, Source Code Pro\nCommon Mistakes\nLoading 6+ weights \"to be safe\"—pick exactly the weights you use (usually 2-3)\nUsing display fonts for paragraphs—Lobster, Pacifico, Abril Fatface are heading-only\nTwo fonts too similar—Roboto + Open Sans look almost identical; just use one\nMissing font-weight in CSS—font-weight: 600 won't work if you only loaded 400 and 700\nNo fallback stack—always: font-family: 'Inter', system-ui, sans-serif\nSelf-Hosting\nSelf-host for GDPR compliance—Google Fonts loads from Google servers, logs IP addresses\nUse google-webfonts-helper to download files\nSame font-display: swap needed in your @font-face\nSelf-hosted can be faster if your CDN is closer than Google's"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/google-fonts",
    "publisherUrl": "https://clawhub.ai/ivangdavila/google-fonts",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/google-fonts",
    "downloadUrl": "https://openagent3.xyz/downloads/google-fonts",
    "agentUrl": "https://openagent3.xyz/skills/google-fonts/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-fonts/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-fonts/agent.md"
  }
}