/design-context-extract
Extract design DNA from app screenshots, live URLs, or screen recordings using Google Stitch — color palettes, typography, spacing tokens, component patterns, and motion specs as design-tokens.json or Tailwind config. Use when the user points to a screenshot, URL, or video and
$ npx -y skills add yonatangross/orchestkit --skill design-context-extract --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/design-context-extract
Context preview
The summary Claude sees to decide when to auto-load this skill.
Extract design DNA from app screenshots, live URLs, or screen recordings using Google Stitch — color palettes, typography, spacing tokens, component patterns, and motion specs as design-tokens.json or Tailwind config. Use when the user points to a screenshot, URL, or video and
SKILL.md
design-context-extract.SKILL.mdname: design-context-extract
license: MIT
compatibility: "Claude Code 2.1.220+. Optional: stitch (official Google Stitch) MCP server."
description: "Extract design DNA from app screenshots, live URLs, or screen recordings using Google Stitch — color palettes, typography, spacing tokens, component patterns, and motion specs as design-tokens.json or Tailwind config. Use when the user points to a screenshot, URL, or video and asks to extract or audit the design, analyze animations or scroll behavior, or keep new pages matching an established visual identity."
argument-hint: "[screenshot-path | video-path | url | 'current project']"
tags: [design-context, design-tokens, stitch, extraction, colors, typography, audit, visual-identity]
context: fork
# user-typed commands stay interactive; CC >= 2.1.218 backgrounds forks by default (#3093)
background: false
version: 1.0.1
author: OrchestKit
user-invocable: true
complexity: medium
persuasion-type: collaborative
model: sonnet
agent: design-context-extractor
allowed-tools:
- Read
- Write
- Glob
- Grep
- Bash
- WebFetch
- AskUserQuestion
- TaskCreate
- TaskUpdate
- TaskList
skills:
- design-system-tokens
- remember
- memory
metadata:
category: document-asset-creation
mcp-server: stitch
triggers:
keywords: ["extract design", "design tokens", "color palette", "typography", "design dna", "visual identity", "design system from", "screen recording", "motion spec", "analyze this video"]
examples:
- "extract the design tokens from this screenshot"
- "what colors and fonts does this app use"
- "create a design system from this live URL"
- "analyze the animations in this screen recording"
anti-triggers: [implement, build, component, explore, brainstorm]Design Context Extract
Extract the "Design DNA" from existing applications — colors, typography, spacing, and component patterns — and output as structured tokens.
/ork:design-context-extract /tmp/screenshot.png # From screenshot
/ork:design-context-extract /tmp/recording.mp4 # From screen recording (motion spec)
/ork:design-context-extract https://example.com # From live URL
/ork:design-context-extract current project # Scan project's existing styles
Pipeline
Input (screenshot/URL/project)
│
▼
┌──────────────────────────────┐
│ Capture │ Screenshot or fetch HTML/CSS
└──────────┬───────────────────┘
│
▼
┌──────────────────────────────┐
│ Extract │ Stitch extract_design_context
│ │ OR multimodal analysis (fallback)
│ → Colors (hex + oklch) │
│ → Typography (families, scale)│
│ → Spacing (padding, gaps) │
│ → Components (structure) │
└──────────┬───────────────────┘
│
▼
┌──────────────────────────────┐
│ Output │ Choose format:
│ → design-tokens.json (W3C) │
│ → @theme (Tailwind v4) │
│ → tokens.css (CSS variables) │
│ → Markdown spec │
└──────────────────────────────┘Step 0: Detect Input and Context
INPUT = ""
# 1. Create main task IMMEDIATELY
TaskCreate(subject="Extract design context: {INPUT}", description="Extract design DNA", activeForm="Extracting design from {INPUT}")
# 2. Create subtasks for each phase
TaskCreate(subject="Detect input type and context", activeForm="Detecting input type") # id=2
TaskCreate(subject="Capture source material", activeForm="Capturing source") # id=3
TaskCreate(subject="Extract design tokens", activeForm="Extracting tokens") # id=4
TaskCreate(subject="Choose output format and generate", activeForm="Generating output") # id=5
TaskCreate(subject="Recommend shadcn/ui style", activeForm="Recommending style") # id=6
# 3. Set dependencies for sequential phases
TaskUpdate(taskId="3", addBlockedBy=["2"]) # Capture needs input type detected
TaskUpdate(taskId="4", addBlockedBy=["3"]) # Extraction needs captured source
TaskUpdate(taskId="5", addBlockedBy=["4"]) # Output needs extracted tokens
TaskUpdate(taskId="6", addBlockedBy=["5"]) # Style recommendation needs output
# 4. Update status as you progress
TaskUpdate(taskId="2", status="in_progress") # When starting
TaskUpdate(taskId="2", status="completed") # When done — repeat for each subtask
# Determine input type
# "/path/to/file.png" → screenshot
# "/path/to/file.mp4|.mov|.webm|.gif" → screen recording (video pipeline)
# "http..." → URL
# "current project" → scan project stylesStep 1: Capture Source
**For screenshots:** Read the image directly (Claude is multimodal). Pasted/attached images are compressed to the same token budget as Read tool images (CC 2.1.97), so both workflows are equally efficient.
> **Resolution budget (Opus 5 / CC 2.1.111+):** Max input is **2,576 px on the long edge** (~3.75 MP) — roughly 3× the Opus 4.6 ceiling. Dense dashboards, dark-mode UIs, and technical diagrams benefit the most from the higher ceiling; extraction reads tiny labels, spacing ticks, and component boundaries that were previously blurred. Below 1,024 px, don't upscale — the source bitmap is the ceiling. Resize only when input exceeds 2,576 px.
**For URLs:**
# If stitch available: call build_site(prompt=<url + extraction goal>)
# then get_screen_code / get_screen_image per generated screen
# If not: WebFetch the URL and analyze HTML/CSS
**For current project:**
Grep("@theme", glob="**/*.css") # Tailwind v4: theme lives in CSS, not a config file
Glob("**/tailwind.config.*") # Tailwind v3 only (v4 ignores this file)
Glob("**/tokens.css")
Glob("**/*.css") # Look for design token files
Glob("**/theme.*")
# Read and analyze existing style definitions**For screen recordings (video):** the only input mode that carries motion — easing, scroll choreography, transitions. Requires `f
Read more
name: design-context-extract
license: MIT
compatibility: "Claude Code 2.1.220+. Optional: stitch (official Google Stitch) MCP server."
description: "Extract design DNA from app screenshots, live URLs, or screen recordings using Google Stitch — color palettes, typography, spacing tokens, component patterns, and motion specs as design-tokens.json or Tailwind config. Use when the user points to a screenshot, URL, or video and asks to extract or audit the design, analyze animations or scroll behavior, or keep new pages matching an established visual identity."
argument-hint: "[screenshot-path | video-path | url | 'current project']"
tags: [design-context, design-tokens, stitch, extraction, colors, typography, audit, visual-identity]
context: fork
# user-typed commands stay interactive; CC >= 2.1.218 backgrounds forks by default (#3093)
background: false
version: 1.0.1
author: OrchestKit
user-invocable: true
complexity: medium
persuasion-type: collaborative
model: sonnet
agent: design-context-extractor
allowed-tools:
- Read
- Write
- Glob
- Grep
- Bash
- WebFetch
- AskUserQuestion
- TaskCreate
- TaskUpdate
- TaskList
skills:
- design-system-tokens
- remember
- memory
metadata:
category: document-asset-creation
mcp-server: stitch
triggers:
keywords: ["extract design", "design tokens", "color palette", "typography", "design dna", "visual identity", "design system from", "screen recording", "motion spec", "analyze this video"]
examples:
- "extract the design tokens from this screenshot"
- "what colors and fonts does this app use"
- "create a design system from this live URL"
- "analyze the animations in this screen recording"
anti-triggers: [implement, build, component, explore, brainstorm]Design Context Extract
Extract the "Design DNA" from existing applications — colors, typography, spacing, and component patterns — and output as structured tokens.
/ork:design-context-extract /tmp/screenshot.png # From screenshot /ork:design-context-extract /tmp/recording.mp4 # From screen recording (motion spec) /ork:design-context-extract https://example.com # From live URL /ork:design-context-extract current project # Scan project's existing styles
Pipeline
Input (screenshot/URL/project)
│
▼
┌──────────────────────────────┐
│ Capture │ Screenshot or fetch HTML/CSS
└──────────┬───────────────────┘
│
▼
┌──────────────────────────────┐
│ Extract │ Stitch extract_design_context
│ │ OR multimodal analysis (fallback)
│ → Colors (hex + oklch) │
│ → Typography (families, scale)│
│ → Spacing (padding, gaps) │
│ → Components (structure) │
└──────────┬───────────────────┘
│
▼
┌──────────────────────────────┐
│ Output │ Choose format:
│ → design-tokens.json (W3C) │
│ → @theme (Tailwind v4) │
│ → tokens.css (CSS variables) │
│ → Markdown spec │
└──────────────────────────────┘Step 0: Detect Input and Context
INPUT = ""
# 1. Create main task IMMEDIATELY
TaskCreate(subject="Extract design context: {INPUT}", description="Extract design DNA", activeForm="Extracting design from {INPUT}")
# 2. Create subtasks for each phase
TaskCreate(subject="Detect input type and context", activeForm="Detecting input type") # id=2
TaskCreate(subject="Capture source material", activeForm="Capturing source") # id=3
TaskCreate(subject="Extract design tokens", activeForm="Extracting tokens") # id=4
TaskCreate(subject="Choose output format and generate", activeForm="Generating output") # id=5
TaskCreate(subject="Recommend shadcn/ui style", activeForm="Recommending style") # id=6
# 3. Set dependencies for sequential phases
TaskUpdate(taskId="3", addBlockedBy=["2"]) # Capture needs input type detected
TaskUpdate(taskId="4", addBlockedBy=["3"]) # Extraction needs captured source
TaskUpdate(taskId="5", addBlockedBy=["4"]) # Output needs extracted tokens
TaskUpdate(taskId="6", addBlockedBy=["5"]) # Style recommendation needs output
# 4. Update status as you progress
TaskUpdate(taskId="2", status="in_progress") # When starting
TaskUpdate(taskId="2", status="completed") # When done — repeat for each subtask
# Determine input type
# "/path/to/file.png" → screenshot
# "/path/to/file.mp4|.mov|.webm|.gif" → screen recording (video pipeline)
# "http..." → URL
# "current project" → scan project stylesStep 1: Capture Source
**For screenshots:** Read the image directly (Claude is multimodal). Pasted/attached images are compressed to the same token budget as Read tool images (CC 2.1.97), so both workflows are equally efficient.
> **Resolution budget (Opus 5 / CC 2.1.111+):** Max input is **2,576 px on the long edge** (~3.75 MP) — roughly 3× the Opus 4.6 ceiling. Dense dashboards, dark-mode UIs, and technical diagrams benefit the most from the higher ceiling; extraction reads tiny labels, spacing ticks, and component boundaries that were previously blurred. Below 1,024 px, don't upscale — the source bitmap is the ceiling. Resize only when input exceeds 2,576 px.
**For URLs:**
# If stitch available: call build_site(prompt=<url + extraction goal>) # then get_screen_code / get_screen_image per generated screen # If not: WebFetch the URL and analyze HTML/CSS
**For current project:**
Grep("@theme", glob="**/*.css") # Tailwind v4: theme lives in CSS, not a config file
Glob("**/tailwind.config.*") # Tailwind v3 only (v4 ignores this file)
Glob("**/tokens.css")
Glob("**/*.css") # Look for design token files
Glob("**/theme.*")
# Read and analyze existing style definitions**For screen recordings (video):** the only input mode that carries motion — easing, scroll choreography, transitions. Requires `f
Showing the first part of this file.
The Complete AI Development Toolkit for Claude Code — 114 skills, 37 agents, 212 hooks. Production-ready patterns for full-stack development.
Repo: yonatangross/orchestkit
Other skills on orchestkit.
- /accessibility
Accessibility patterns for WCAG 2.2 compliance, keyboard focus management, React Aria component patterns, cognitive inclusion, native HTML-first philosophy, and user preference honoring. Use when implementing screen reader support, keyboard navigation, ARIA patterns, focus
Open skill - /agent-orchestration
Agent orchestration patterns for agentic loops, multi-agent coordination, alternative frameworks, and multi-scenario workflows. Use when building autonomous agent loops, coordinating multiple agents, evaluating CrewAI/AutoGen/Swarm, or orchestrating complex multi-step scenarios.
Open skill - /ai-ui-generation
AI-assisted UI generation patterns for json-render, v0.app, Google Stitch, Bolt Cloud, and Cursor workflows. Covers prompt engineering for component and full-stack app generation, review checklists for AI-generated code, design token injection, refactoring for design system
Open skill - /analytics
Queries local analytics across OrchestKit projects for agent usage, skill frequency, hook timing, team activity, session replay, cost estimation, and model delegation trends. Privacy-safe with hashed project IDs. Supports time-range filtering and comparative analysis. Use when
Open skill - /animation-motion-design
Animation and motion design patterns using Motion library (formerly Framer Motion) and View Transitions API. Use when implementing component animations, page transitions, micro-interactions, gesture-driven UIs, or ensuring motion accessibility with prefers-reduced-motion.
Open skill - /api-design
API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs. Use when specifying the wire contract an endpoint exposes, choosing a versioning scheme, or
Open skill

