Loading...
Loading...
This skill MUST be invoked when the user says "analyze screenshot", "extract design tokens", "pull colors from screenshot", "component inventory", "break down this UI", or "design extraction". SHOULD also invoke when user mentions "screenshot", "color palette", "typography", "spacing", or "component catalog".
npx skill4agent add deepeshbodh/human-in-loop analysis-screenshot| Attribute | What to Determine |
|---|---|
| Platform | Mobile (iOS/Android), web (desktop/responsive), desktop app |
| Design language | Material, iOS HIG, custom, hybrid |
| Layout approach | Single column, multi-column, sidebar+content, dashboard grid |
| Density | Compact (data-heavy), comfortable (standard), spacious (marketing) |
| Color mode | Light, dark, or mixed |
| Apparent era | Current design trends vs. dated patterns |
PLATFORM: [platform]
DESIGN LANGUAGE: [language]
LAYOUT: [approach]
DENSITY: [level]
COLOR MODE: [mode]
NOTES: [anything notable about the overall approach]PRIMARY PALETTE:
Brand Primary: #XXXXXX (observed in: [element])
Brand Secondary: #XXXXXX (observed in: [element])
NEUTRAL PALETTE:
Background Base: #XXXXXX (observed in: [element])
Background Elevated: #XXXXXX (observed in: [element])
Surface: #XXXXXX (observed in: [element])
Border Default: #XXXXXX (observed in: [element])
Text Primary: #XXXXXX (observed in: [element])
Text Secondary: #XXXXXX (observed in: [element])
Text Muted: #XXXXXX (observed in: [element])
SEMANTIC PALETTE:
Success: #XXXXXX (observed in: [element])
Warning: #XXXXXX (observed in: [element])
Error: #XXXXXX (observed in: [element])
Info: #XXXXXX (observed in: [element])
ACCENT PALETTE:
[role]: #XXXXXX (observed in: [element])(observed in: ...)FONT FAMILIES:
Primary: [family] (confidence: high/medium/low)
Secondary: [family] (confidence: high/medium/low)
Monospace: [family] (if present)
TYPE SCALE:
Display: ~[size]px / weight [N] / leading [N] (observed in: [element])
Heading 1: ~[size]px / weight [N] / leading [N] (observed in: [element])
Heading 2: ~[size]px / weight [N] / leading [N] (observed in: [element])
Heading 3: ~[size]px / weight [N] / leading [N] (observed in: [element])
Body: ~[size]px / weight [N] / leading [N] (observed in: [element])
Caption: ~[size]px / weight [N] / leading [N] (observed in: [element])
Label: ~[size]px / weight [N] / leading [N] (observed in: [element])
Overline: ~[size]px / weight [N] / leading [N] (observed in: [element])
LETTER SPACING:
Headings: [value or "normal"]
Labels: [value or "normal"]
Overline: [value or "normal"]~BASE UNIT: [N]px
SPACING SCALE:
2xs: [N]px ([base] x [multiplier]) — used for: [context]
xs: [N]px ([base] x [multiplier]) — used for: [context]
sm: [N]px ([base] x [multiplier]) — used for: [context]
md: [N]px ([base] x [multiplier]) — used for: [context]
lg: [N]px ([base] x [multiplier]) — used for: [context]
xl: [N]px ([base] x [multiplier]) — used for: [context]
2xl: [N]px ([base] x [multiplier]) — used for: [context]
COMPONENT PADDING PATTERNS:
Buttons: [top] [right] [bottom] [left]
Cards: [top] [right] [bottom] [left]
Inputs: [top] [right] [bottom] [left]
List items: [top] [right] [bottom] [left]
GAP PATTERNS:
Form fields: [N]px between fields
Button groups: [N]px between buttons
Section gap: [N]px between major sectionsCOMPONENT: [Name]
Variants observed: [list]
States visible: [list]
States NOT visible: [list — mark as gap]
Dimensions:
Height: ~[N]px
Padding: [values]
Border radius: [N]px
Font size: ~[N]px
Font weight: [N]
Icon size: [N]px (if applicable)
Colors:
Background: #XXXXXX
Text: #XXXXXX
Border: #XXXXXX (if applicable)
Icon: #XXXXXX (if applicable)
Composition: [sub-elements]
Notes: [anything unusual or distinctive]GRID:
Type: [fixed/fluid/hybrid]
Columns: [N]
Gutter: ~[N]px
Margin: ~[N]px
Max width: ~[N]px (if constrained)
SECTION MAP:
[Section name]: [position, approximate dimensions, role]
[Section name]: [position, approximate dimensions, role]
...
VISUAL HIERARCHY (reading order):
1. [Element/area] — draws attention via [mechanism]
2. [Element/area] — secondary focus via [mechanism]
3. [Element/area] — tertiary via [mechanism]
ALIGNMENT:
Primary axis: [left/center/mixed]
Notable breaks: [any deliberate alignment breaks]
CONTENT DENSITY:
[Section]: [sparse/moderate/dense]DEPTH STRATEGY: [borders-only / subtle-shadows / layered-shadows / surface-shifts]
BORDER RADII:
Small (buttons, inputs): [N]px
Medium (cards, panels): [N]px
Large (modals, sheets): [N]px
Full (avatars, pills): [N]px (9999px / 50%)
SHADOWS:
Level 1 (subtle): [offset-x] [offset-y] [blur] [spread] [color]
Level 2 (medium): [offset-x] [offset-y] [blur] [spread] [color]
Level 3 (elevated): [offset-x] [offset-y] [blur] [spread] [color]
BORDER TREATMENTS:
Default: [width] [style] [color]
Subtle: [width] [style] [color]
Strong: [width] [style] [color]
ELEVATION MAP:
Level 0: [elements at base level]
Level 1: [elements floating above base]
Level 2: [elements above level 1]
Level 3: [highest elevation elements]
DIVIDER PATTERN: [description of how sections are separated]KNOWN GAPS:
Cannot determine from static screenshot:
- [ ] Hover states for [components]
- [ ] Focus ring styles
- [ ] Animation/transition properties
- [ ] Responsive breakpoint behavior
- [ ] Touch target sizes (if mobile)
- [ ] Scroll behavior
- [ ] [Other gaps specific to this screenshot]
Low confidence extractions:
- [ ] [Item] — reason for low confidence
- [ ] [Item] — reason for low confidence| Mistake | Fix |
|---|---|
| Guessing hex values instead of acknowledging approximation | Prefix all color values with context; use |
| Extracting colors without assigning roles | Every color must have a named role (primary, secondary, border, etc.) |
| Listing components without measuring them | Every component needs dimensions, padding, and radius values |
| Ignoring the spacing system | Identify the base unit first; express all spacing as multiples |
| Skipping the gaps section | Always document what cannot be determined from a static image |
| Treating all text sizes as a flat list | Organize into a hierarchical scale with named levels |
| Extracting shadows without noting the depth strategy | Classify the overall approach before listing individual shadow values |
| Providing vague font identification | State confidence level; suggest closest known match |
~