Agent Skillsclassroomio/classroomio › create-thumbnail

create-thumbnail

GitHub

基于品牌规范生成1920x1080 ClassroomIO缩略图。通过HTML+CSS构建设计,利用无头Chrome渲染PNG,确保字体、Logo及配色符合品牌标准,支持多样化布局以避免重复。

skills/create-thumbnail/SKILL.md classroomio/classroomio

触发场景

创建缩略图 制作封面图片 生成视频或博客横幅

安装

npx skills add classroomio/classroomio --skill create-thumbnail -g -y
更多选项

不安装直接使用

npx skills use classroomio/classroomio@create-thumbnail

指定 Agent (Claude Code)

npx skills add classroomio/classroomio --skill create-thumbnail -a claude-code -g -y

安装 repo 全部 skill

npx skills add classroomio/classroomio --all -g -y

预览 repo 内 skill

npx skills add classroomio/classroomio --list

SKILL.md

Frontmatter
{
    "name": "create-thumbnail",
    "description": "Generate on-brand ClassroomIO thumbnails (blog posts, changelogs, YouTube videos) as 1920×1080 PNGs. Builds HTML+CSS from the brand token system and renders deterministically via headless Chrome. Use when the user asks to create\/make a thumbnail, cover image, or video\/blog banner for ClassroomIO."
}

You are producing a 1920×1080 (16:9) ClassroomIO thumbnail by writing an HTML file that consumes the brand token CSS in this skill, then rendering it to PNG with render.py. The output must look designed-in-Figma, not templated. The "Self-Host ClassroomIO with Dokploy" two-tile thumbnail is the quality bar to match or beat — it is NOT a template to clone.

Vary the composition — do not default to one layout

The brand system is fixed (colors, font, tiles, pills, gradients). The composition is not. Every thumbnail must be a deliberate design choice, not a find-and-replace of the last one.

  • Pick the pattern from the content, not from what you made last time (see the catalog below). A release is a hero icon; a guide is editorial; a multi-item feature is a concept map. Only a true "X with/via Y" integration should reach for the two-tile connect.
  • When you DO reuse a pattern (e.g. a series like "self-host with Dokploy / Coolify / Railway" where consistency is the point), still vary within it — the focal treatment, the pill copy, the headline emphasis, the accent/texture. Series consistency is a choice the user should confirm, not your default.
  • Actively avoid shipping three near-identical images in a row. If the last thumbnail you made used a layout, reach for a different one unless the user asked to match a set.
  • Treat template-two-tile.html as one starting point among the patterns, not THE template. For other patterns, compose fresh from thumbnail.css classes.

If a request is ambiguous about style, propose a pattern (and, for a series, ask whether to match the existing set) before generating — don't silently reuse the previous layout.

Why this pipeline produces quality (do not skip these)

  1. Deterministic fonts. Geist is embedded as base64 @font-face. A Google Fonts <link> does NOT load before the headless screenshot — the headline silently falls back to system sans and looks off-brand. This is the single biggest failure mode. render.py handles it.
  2. Real assets, recolored. ClassroomIO logo = the actual apps/website/static/logo-512.png, recolored white via filter: brightness(0) invert(1). Never redraw it.
  3. Official third-party logos. For a partner/tool, fetch the OFFICIAL svg (e.g. Dokploy: https://dokploy.com/icon.svg). Prefer an svg whose paths are fill="white" (or force white) so it drops onto the blue tile cleanly. A wrong-but-close logo destroys credibility.
  4. Honest gradients, never frosted-white chips. Tiles and pills are real blue gradients with iridescent borders (see thumbnail.css). rgba(255,255,255,0.1) frosted glass reads off-brand.

Design spec (source of truth)

The full pattern catalog and Figma-exact tokens live in company/blog-thumbnail-agent/README.mdread it before generating, alongside the six reference PNGs in that folder. thumbnail.css in this skill already encodes those tokens (background vignette, glass tiles, pills, frame, title). Consume the CSS classes; don't re-derive.

Pick the pattern from the content (each is a distinct look — rotate them)

  • A — Editorial / link: blog posts, guides pointing to a URL. Frame on TOP. Link pill + optional Guide pill. Title centered or bottom-left. No tiles.
  • B — Concept map: multi-item features (languages, integrations) as a connected node graph over a faint globe.
  • C — Before → After: upgrades, limit increases. Two glass tiles + arrow, action pill below, title bottom. Frame on BOTTOM.
  • D — Hero icon: releases, security, single-concept. One big centered glass tile, version/New Feature pill, 2-line title. Frame on BOTTOM.
  • Two-tile connect (C/D hybrid): "X with/via Y" integrations — two tiles joined by an arrow node. template-two-tile.html is a starting point. Powerful but overused — don't reach for it by reflex.

Beyond the pattern, vary the levers that keep a set from looking identical: background texture (chevrons / stacked cards / constellation / globe — match the topic), title placement (centered vs bottom-left), pill copy, and the focal treatment. A guide about one platform often reads better as Pattern A or D (single hero) than as another two-tile clone.

Workflow

  1. Choose a pattern deliberately and confirm intent if unstated: pattern, the partner/tool (and whether to use its real logo), the headline, the pill text, and any URL. Recommend a pattern that fits the content; don't over-ask. If this belongs to an existing series, ask whether to match that set or give it a fresh look — do not silently reuse the last layout.
  2. Fetch third-party assets if needed (official svg logo). Verify it renders white on blue.
  3. Author the HTML in the scratchpad. Copy a template (e.g. template-two-tile.html) as a starting point, or write fresh linking thumbnail.css:
    • <link rel="stylesheet" href="<abs-path-to-skill>/thumbnail.css" />
    • Use data:image/png;base64,__CIO_LOGO_B64__ for the ClassroomIO logo (render.py fills it).
    • Paste the partner's white svg inline inside a .svg-icon container.
    • Keep everything except the headline low-contrast so it reads at thumbnail size.
  4. Render: python3 <skill>/render.py <input.html> <output.png>. This inlines local stylesheets, substitutes __GEIST_WOFF2_B64__ / __CIO_LOGO_B64__, and screenshots at 1920×1080 (device scale 1). Requires Google Chrome at the standard macOS path.
  5. Review the PNG visually (Read the image). Check: brand font actually applied, logos correct and white, text not clipped, gradients present, ≤2 title lines. Iterate on the HTML if needed.
  6. Deliver: save the final PNG to ~/Downloads/ (or a path the user names) and report it. Output is ~880KB — under YouTube's 2MB thumbnail cap.

Files in this skill

  • SKILL.md — this guide.
  • thumbnail.css — Figma-exact brand tokens (background, tiles, pills, connector, frame, title).
  • template-two-tile.html — starting point for the two-tile connect pattern.
  • render.py — inlines assets + renders HTML → PNG via headless Chrome.

Brand palette: deep blue #0233BD · brand blue #2F6BF1 · light blue #ADC3FF · violet #8071F2.

版本历史

  • 4fae088 当前 2026-08-20 12:08

同 Skill 集合

skills/add-docs-image/SKILL.md
skills/add-landing-template/SKILL.md
skills/animation-vocabulary/SKILL.md
skills/apple-design/SKILL.md
skills/create-issue/SKILL.md
skills/emil-design-eng/SKILL.md
skills/find-animation-opportunities/SKILL.md
skills/frontend-design/SKILL.md
skills/humanizer/SKILL.md
skills/i-have-adhd/SKILL.md
skills/improve-animations/SKILL.md
skills/pick-ui-library/SKILL.md
skills/prototype/SKILL.md
skills/review-animations/SKILL.md
skills/ship-feature/SKILL.md
skills/stage-and-commit/SKILL.md
skills/write-docs/SKILL.md
skills/write-prd/SKILL.md

元信息

文件数
0
版本
f08f6c6
Hash
ce0bfc66
收录时间
2026-08-20 12:08

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-16 22:07
浙ICP备14020137号-1