crafter-station/visual-reference · Archived

add-visual-reference

Add a new visual reference to the project. Paste a screenshot and this skill extracts design tokens, generates the VisualReference JSON, saves all files, and verifies the build. PR-ready.

First seen May 22, 2026

Installation

$ npx skills add crafter-station/visual-reference --skill add-visual-reference

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 3
License MIT
Default branch main
Open issues 1
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 8,057 B
  • docs SUMMARY.md 304 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Add Visual Reference

Add a new visual reference to the visual-reference project. Self-contained — no vault or external pipeline needed.

Prerequisites

  • You are in the visual-reference project root
  • The user provides a screenshot (paste or file path)

Step 1: Analyze Screenshot

Look at the screenshot carefully. Extract:

Colors

  • Background colors: main bg, secondary bg, card bg, section alternates
  • Accent colors: primary CTA, links, highlights, gradients
  • Text colors: headings, body, muted/secondary text

Use hex values. Name them semantically (e.g., "primary", "surface", "muted").

Typography

  • Display font: What typeface are headings using? (e.g., "Inter", "Geist", "GT Walsheim")
  • Body font: What typeface is body text? (often same as display)
  • Mono font: Is there monospace text? (code blocks, labels, stats)

Effects (visual patterns)

Identify which effects are present from this taxonomy:

Category Effects
background-treatment Starfield Background, Color Block Sections, Scroll-Driven Color Zones, Dark Premium Aesthetic, Alternating Dark/Cream, Dot Pattern Branding, Extreme Whitespace, Radical Whitespace, Philosophical Minimalism, Mesh Gradients
hover-interaction Card Hover Lift, Button Hover Brightness, Hover Lift Animation, Card Float on Color
entrance-animation Fade Up Entrance, Perspective Grid
layout-pattern Masonry Grid, Diagonal Section Cuts, Side-by-Side Layout, Editorial Minimalism, High Contrast Sections, Dramatic Negative Space
visual-accent Neon Glow (Subtle), Glass-Morphic Cards, Hairline Borders, Minimal Borders, Halftone Dot Pattern, Underline Emphasis, Arrow Motif, Pill-Shaped CTAs, Blue Pill Tags, Outline Buttons
content-pattern Terminal Aesthetic, Terminal Syntax Highlighting, Product Screenshot Hero, Template Showcase Grid, Logo Wall Grid, Accordion FAQ (Dark), Workflow Preview Cards, Testimonial Masonry, Stats Grid Display, Data Visualization Cards
illustration-system Hand-Drawn Illustrations, Playful Character Scenes, Custom Line Art, Isometric Illustrations
3d-spatial Floating 3D Renders, Ambient Lighting

If an effect is not in the taxonomy, create a new slug: kebab-case-name with category visual-accent as default.

Mode

  • "dark" — dark background, light text
  • "light" — light/white background, dark text
  • "warm" — warm/cream/beige background

Style

One-line description of the design style (e.g., "Vercel-inspired dark dev tools aesthetic with monospace accents").

Step 2: Ask the User

Confirm these details with the user before generating:

  1. Name: Display name (e.g., "Hex Inc", "Plasticity AI")
  2. Source URL: The website URL (optional)
  3. Categories: One or more from: Portfolio, B2B SaaS, Dev Tools, VC / Finance, Creative / 3D, Education, Fintech
  4. Mode: dark / light / warm (confirm your analysis)
  5. Style: Confirm your one-liner or let them edit
  6. Effects: Show your detected effects, let them add/remove

Step 3: Generate Slug

Format: hunt-{kebab-case-name}

Examples:

  • "Hex Inc" → hunt-hex-inc
  • "Better Auth" → hunt-better-auth
  • "United Drone Company" → hunt-united-drone-company

Step 4: Save Screenshot

Save the screenshot to:

public/references/{slug}/reference-desktop.png

Create the directory first:

mkdir -p public/references/{slug}

If the user also provides tablet/mobile screenshots, save as:

  • reference-tablet.png
  • reference-mobile.png

Step 5: Generate VisualReference JSON

Create src/content/references/{slug}.json with this exact schema:

{
  "slug": "hunt-example",
  "name": "Example Site",
  "style": "One-line style description",
  "sourceUrl": "https://example.com",
  "huntDate": "2026-02-17",
  "categories": ["Dev Tools"],
  "engagement": 5,
  "mode": "dark",
  "tokens": {
    "colors": {
      "background": {
        "primary": "#0a0a0a",
        "secondary": "#111111"
      },
      "accent": {
        "primary": "#3b82f6",
        "secondary": "#8b5cf6"
      },
      "text": {
        "primary": "#ffffff",
        "secondary": "#a1a1aa",
        "muted": "#52525b"
      }
    },
    "typography": {
      "families": {
        "display": "Inter",
        "body": "Inter",
        "mono": "JetBrains Mono"
      },
      "scale": {
        "xs": "0.75rem",
        "sm": "0.875rem",
        "base": "1rem",
        "lg": "1.125rem",
        "xl": "1.25rem",
        "2xl": "1.5rem",
        "3xl": "1.875rem",
        "4xl": "2.25rem"
      },
      "weights": {
        "normal": 400,
        "medium": 500,
        "semibold": 600,
        "bold": 700
      },
      "lineHeights": {
        "tight": 1.25,
        "normal": 1.5,
        "relaxed": 1.75
      }
    },
    "spacing": {
      "xs": "0.25rem",
      "sm": "0.5rem",
      "md": "1rem",
      "lg": "1.5rem",
      "xl": "2rem",
      "2xl": "3rem"
    },
    "borderRadius": {
      "sm": "0.25rem",
      "md": "0.5rem",
      "lg": "0.75rem",
      "full": "9999px"
    },
    "shadows": {
      "sm": "0 1px 2px rgba(0,0,0,0.05)",
      "md": "0 4px 6px rgba(0,0,0,0.1)"
    },
    "animation": {
      "durations": {
        "fast": "150ms",
        "normal": "300ms",
        "slow": "500ms"
      },
      "easings": {
        "default": "cubic-bezier(0.4, 0, 0.2, 1)",
        "in": "cubic-bezier(0.4, 0, 1, 1)",
        "out": "cubic-bezier(0, 0, 0.2, 1)"
      }
    }
  },
  "effects": [
    {
      "slug": "dark-premium-aesthetic",
      "name": "Dark Premium Aesthetic",
      "category": "background-treatment"
    },
    {
      "slug": "hairline-borders",
      "name": "Hairline Borders",
      "category": "visual-accent"
    }
  ],
  "whyItWorks": "Brief explanation of what makes this design effective.",
  "coreAesthetic": "Detailed description of the visual identity and design philosophy.",
  "techStack": ["Next.js", "Tailwind CSS", "Framer Motion"],
  "screenshots": {
    "desktop": "/references/hunt-example/reference-desktop.png"
  }
}

Field Notes

  • huntDate: Use today's date (YYYY-MM-DD)
  • engagement: Default 5 (scale 1-10, higher = more visually striking)
  • effects: Array of { slug, name, category } objects. Use the taxonomy above for known effects. For new effects, use kebab-case slug and assign the closest category.
  • whyItWorks: 1-2 sentences on what makes the design effective
  • coreAesthetic: Longer description of the visual identity (up to 500 chars)
  • techStack: Best guess from visual cues (e.g., "React" if SPA-like, "Tailwind" if utility-class patterns)
  • screenshots.desktop: Path relative to /public

Step 6: Update index.json

Read src/content/references/index.json, parse it, append the new reference, and write it back:

const indexPath = "src/content/references/index.json";
const index = JSON.parse(await readFile(indexPath, "utf-8"));
index.push(newReference);
await writeFile(indexPath, JSON.stringify(index, null, 2));

Step 7: Verify Build

bun run build

The build must pass with zero errors. If it fails, fix the JSON and retry.

Step 8: Summary

Print what was created:

Added: {name} ({slug})

Files created:
  - public/references/{slug}/reference-desktop.png
  - src/content/references/{slug}.json
  - src/content/references/index.json (updated)

Build: passed

Next steps:
  git add public/references/{slug}/ src/content/references/{slug}.json src/content/references/index.json
  git commit -m "feat: add {name} visual reference"
  gh pr create --title "Add {name} visual reference" --body "New visual reference: {name} ({style})"