Social image templates
@brandkit/social-image-templates
Generate on-brand social image templates as editable SVGs from your brand.md tokens: an Open Graph image (1200x630), a square post (1080x1080), and a story (1080x1920 with safe zones). Checks text contrast and fits the headline for you.
- Activity
- New: be the first to try it
- Installs
- 0 installs
- Likes
- 0 likes
- Clones
- 0 clones
How this works
- It is a skill: written instructions Claude reads when your request matches what the skill is for. You do not call it by name; just ask for the task.
- While it works, it reads and changes files in the places it lists, nowhere else.
- It runs these commands on your computer: node scripts/make-templates.mjs.
- Nothing runs until you choose to use it, and you can remove it any time.
SKILL.md
Social image templates
Turns the brand's colors, fonts, and logo into three ready-to-edit SVG templates. The script handles the fiddly parts: exact sizes, story safe zones, text contrast, and fitting the headline.
When to use
- A launch, blog post, event, or announcement needs a share image.
- The site has no Open Graph image, or each page needs its own.
- "Make me a LinkedIn graphic for this post", "OG image for the new landing page", "story version of this announcement".
- Not for photo editing or illustration. These are clean type-led cards.
Inputs
- Brand guide with a tokens block (
brand.mdordocs/brand.md). Needs at leastcolor.primary. Also usescolor.accent,color.ink,color.paper,font.heading,font.body,name, andlogo.primary. No guide: offerbrand-guide-builderfirst. - Headline, 4 to 10 words. If the user gives a whole post, write three headline options, pick the strongest, and say which you chose.
- Subtitle, one line on what the reader gets. Optional.
- Footer, usually the domain. Defaults to the brand name.
- Style:
brand(primary color background, the default),light, ordark.
Steps
- Check the tokens. Read the guide's tokens block. If
color.primaryis missing or not a hex color, stop and ask for it. Run the generator.
node scripts/make-templates.mjs brand.md social-templates --title "Cut no-shows by a third" --subtitle "Two-way text reminders, live today" --footer "yourdomain.com"- The logo from
logo.primaryis embedded so the SVG works anywhere. Add--link-logoto reference the file instead (smaller, but the logo must travel with the SVG). - Use
--logo path/to/logo.svgif the guide has no logo path.
- The logo from
- Read
social-templates/templates.json. Checktext_contrast(must be 4.5 or more) andwarnings. If contrast is low, rerun with--style lightor--style darkand say why. If the title shrank or runs long, offer a shorter headline. - Show the result. Open or describe each file and the size it is for. If the user wants several posts, run once per headline into subfolders like
social-templates/launch/. - Explain export. SVG is the editable master. For PNG: open in a browser and screenshot at 100%, or open in Figma and export at 1x. Fonts must be installed (or loaded) where the SVG is rendered.
Output format
Made 3 templates in social-templates/ (brand style, text contrast 5.3:1)
| File | Size | Use for |
| --- | --- | --- |
| og-1200x630.svg | 1200x630 | Link previews: set as og:image |
| square-1080.svg | 1080x1080 | LinkedIn and Instagram posts |
| story-1080x1920.svg | 1080x1920 | Stories and Reels |
Headline used: "<title>"
Notes: <logo embedded, or wordmark used because no logo was found>
To change the text later: edit the #title and #subtitle elements, or rerun with a new --title.Guardrails
- Use only colors and fonts from the tokens. Never add stock photos, gradients, or effects the guide does not allow.
- Never ship a template with text contrast below 4.5:1. Switch style or ask.
- Do not recolor or redraw the logo. If there is no logo file, use the wordmark and say so.
- Keep text inside the story safe zone (top 250 px and bottom 340 px are covered by app UI). The script does this; do not move text there by hand.
- Headlines are claims. Do not invent numbers or results for them; use only what the user said.
README.md
Social image templates
Get clean, on-brand share images in seconds. This kit reads your brand colors, fonts, and logo from brand.md and makes three editable SVG templates: a link preview, a square post, and a story.
Who it is for: founders, marketers, and anyone who posts launches and announcements without a designer on call.
Example
Ask: "Make social images for our launch: Cut no-shows by a third with two-way text reminders."
Claude runs:
node scripts/make-templates.mjs brand.md social-templates --title "Cut no-shows by a third with two-way text reminders" --footer "yourdomain.com"and you get:
| File | Size | Use for |
|---|---|---|
| og-1200x630.svg | 1200x630 | Link previews (og:image) |
| square-1080.svg | 1080x1080 | LinkedIn and Instagram posts |
| story-1080x1920.svg | 1080x1920 | Stories, with safe zones respected |
Each one uses your primary color, heading font, accent bar, and logo, with white or dark text picked for contrast (checked against the 4.5:1 guideline). templates.json records the colors, contrast, and any notes. Try it on examples/brand.md.
What it can access
- Reads
brand.mdordocs/brand.md, and your logo fromassets/orbrand/. - Writes only inside
social-templates/. - Runs one script,
scripts/make-templates.mjs(Node, no dependencies). No network.
Setup
None. Needs Node 18 or newer and a brand guide with a tokens block. Use brand-guide-builder to make one.
Files
- README.md
- SKILL.md
- examples/brand.md
- kit.json
- scripts/make-templates.mjs
- scripts/tokens-lib.mjs
Did it work?
0worked for them0did not work
Sign in to say whether it worked for you.
Nobody has said yet. Tried it? Tell the next person.
