BMAD-METHOD/devKalla-Fordonscervice/_wds/workflows/4-ux-design/SKETCH-TEXT-ANALYSIS-GUIDE.md

18 KiB
Raw Blame History

Sketch Analysis Guide: Reading Text Placeholders

For Dog Week and All WDS Projects


Best Practice: When to Use Text vs. Markers

Use ACTUAL TEXT for:

  • Headlines - Provides content guidance and context
  • Button labels - Shows intended action clearly
  • Navigation items - Clarifies structure
  • Short, important text - Where specific wording matters

Example:

Every walk. on time. Every time.  ← Actual text (readable)

Benefits:

  • Agent can read and suggest this as starting content
  • Provides context for design decisions
  • Can still be changed during specification

Use HORIZONTAL LINE MARKERS for:

  • Body paragraphs - Content TBD, just need length indication
  • Long descriptions - Where specific wording isn't decided yet
  • Placeholder content - General sizing guidance

Example:

─────────────────────────────────────────  ← Line markers
─────────────────────────────────────────  ← Show length/size
─────────────────────────────────────────  ← Not final content
─────────────────────────────────────────

Benefits:

  • Shows font size and capacity without committing to content
  • Faster for sketching body text
  • Focuses on layout, not copywriting

Understanding Sketch Text Markers

In Dog Week sketches (and most UI sketches), text is represented by horizontal lines in groups.

What You See

Page Title (centered):
       ═════════════════════════    ← Thick pair, centered = Heading, center-aligned
       ═════════════════

Body text (left-aligned):
─────────────────────────────────────────    ← Thin pairs, left edge = Body, left-aligned
─────────────────────────────────────────
─────────────────────────────────────────
─────────────────────────────────────────
─────────────────────────────────────────

Caption (right-aligned):
                            ──────────────────    ← Short pair, right edge = Caption, right-aligned
                            ──────────────────

Justified/Full-width text:
═════════════════════════════════════════════    ← Extends full width = Justified
═════════════════════════════════════════════

3. Line Count → Number of Text Lines

Each PAIR of horizontal lines = ONE line of text

Number of Pairs Text Lines Typical Use
1 pair 1 line Headlines, labels, buttons
2 pairs 2 lines Short headlines, subheadings
3-4 pairs 3-4 lines Intro paragraphs, descriptions
5+ pairs 5+ lines Body copy, long descriptions

Step 0: Establish Scale Using Project Context

Before analyzing individual text elements, establish your reference points:

1. Check Previous Pages in Project

If analyzing multiple pages in the same project:

Look for established patterns:

Start Page (already analyzed):
- Body text: Thin lines, icon-sized spacing → 16px Regular
- Button labels: Medium lines → 16px Semibold
- Page title: Thick lines, button-height spacing → 48px Bold

Current Page (About Page):
- Similar thin lines, icon-sized spacing → **Same: 16px Regular**
- Similar medium lines in buttons → **Same: 16px Semibold**

Design System Integration:

  • If project has a design system, match visual patterns to existing components
  • Body text that looks like Start Page body text → Use same specification
  • Buttons that look like Start Page buttons → Use same specification

Benefits:

  • Maintains consistency across all pages
  • Builds reusable design patterns
  • Reduces specification time for subsequent pages
  • Creates cohesive user experience

2. Find UI Anchors in Current Sketch

  • Browser chrome (address bar, scrollbars)
  • Standard UI elements (buttons, icons, form inputs)
  • Use these to calibrate scale for this specific sketch resolution

Analysis Rules

1. Line Thickness → Font Weight (Relative)

Line thickness indicates font weight (bold/regular), NOT font size

Compare lines RELATIVE to each other within the sketch:

Relative Thickness Font Weight CSS Value Typical Use
Thickest (═══) Bold font-weight: 700 Headlines, strong emphasis
Thick (═══) Semibold font-weight: 600 Subheadings, medium emphasis
Medium (──) Medium font-weight: 500 Slightly emphasized text
Thin (──) Regular font-weight: 400 Body text, normal content
Thinnest (─) Light font-weight: 300 Subtle text, de-emphasized

Don't measure pixels—compare thickness relative to other text in the same sketch.

2. Distance Between Lines → Font Size (Context-Based)

The vertical spacing between lines indicates font size—compare to UI elements

Spacing Relative To Estimated Font Size Typical Use
Button Height ~40-48px Large Heading - Page titles
Address Bar Height ~32-40px Medium Heading - Section headings
Between Button & Icon ~24-32px Small Heading - Subsection headings
Icon/Scrollbar Size ~16-24px Body text / Paragraphs
Half Icon Size ~12-16px Captions / Helper text

⚠️ Important: If spacing seems disproportionately large (>2x button height), verify this is text and not an image placeholder or colored box!

2a. Visual Examples: Text vs. Image Confusion

TEXT - Normal spacing:

═══════════════════════════════  ← Bold line
                                  ← ~Button Height
═══════════════════════════════  ← Bold line

This is clearly TEXT (H1 heading)

IMAGE - Large spacing (confusion risk):

═══════════════════════════════  ← Line?

                                  ← Much larger than any UI element!

═══════════════════════════════  ← Line?

This might be an IMAGE PLACEHOLDER or COLORED BOX, not text!
Ask user to confirm.

When in doubt: If spacing is disproportionately large compared to UI elements, ask: "Is this text or an image/box?"

3. Text Alignment → Horizontal Position

The position of line pairs within the section indicates text alignment

Alignment Visual Indicator Typical Use
Left-aligned Lines start at left edge of container Body text, lists, labels
Center-aligned Lines centered, equal spacing both sides Headlines, hero text, CTAs
Right-aligned Lines end at right edge of container Captions, metadata, prices, dates
Justified Lines extend full width of container Dense body text, formal content

Visual Examples

Left-Aligned Text:

Container: |                                                           |

═════════════════════════    ← Starts at left edge
═════════════════════════
                                              [empty space →]

Center-Aligned Text:

Container: |                                                           |

               ═════════════════════════    ← Centered in container
               ═════════════════════════

Right-Aligned Text:

Container: |                                                           |

                                          ═════════════    ← Ends at right edge
                                          ═════════════

Justified/Full-Width Text:

Container: |                                                           |

═════════════════════════════════════════════════════    ← Spans full width
═════════════════════════════════════════════════════

4. Number of Lines → Content Length

Lines in Sketch Content Type Character Estimate
1-2 lines Heading/Title 20-60 characters total
3-5 lines Short paragraph 150-350 characters
6-10 lines Full paragraph 400-700 characters
10+ lines Long content 700+ characters

4. Line-Height Calculation

Line-height is derived from font size and spacing:

Line-height ratio = (Distance between lines) / (Estimated font size)

Example:
Distance: 28px
Font size: 24px
Line-height: 28 / 24 = 1.16 ≈ 1.2

Typical ratios:

  • 1.1-1.2 = Tight (headings)
  • 1.4-1.5 = Normal (body text)
  • 1.6-1.8 = Loose (airy text)
Left-aligned:           Center-aligned:        Right-aligned:
──────────────────     ──────────────────            ──────────────────
──────────────────        ──────────────         ──────────────────
──────────────────         ──────────                ──────────────────

5. Characters Per Line

Based on estimated font size and line width:

Large Heading (~48px):  ═══════════════════     = ~20-25 chars
Medium Heading (~36px): ═══════════════════════ = ~25-30 chars
Small Heading (~24px):  ─────────────────────── = ~40-50 chars
Body Text (~16px):      ──────────────────────────────── = ~60-70 chars
Caption (~12px):        ──────────────────────────────────── = ~80-90 chars

Dog Week Example Analysis

Example 1: Landing Page Hero

Sketch shows:

═══════════════════════════════  ← Line 1 (thick, center)
═══════════════════════════      ← Line 2 (thick, center)

Analysis:

  • Type: Large Heading (Page Title)
  • Lines: 2
  • Line thickness: Thickest in sketch → Bold (font-weight: 700)
  • Distance between lines: Matches button height → ~40-48px font-size
  • Line-height: ~1.2 (calculated from spacing)
  • Alignment: Center
  • Capacity: ~25-30 chars per line = 50-60 total
  • Semantic HTML: Determined by page structure (likely H1 if page title)

Content Guidance:

English: "Welcome to Your / Dog Care Hub" (48 chars) ✅
Swedish: "Välkommen till Din / Hundvårdshub" (50 chars) ✅

Example 2: Feature Description

Sketch shows:

─────────────────────────────────────────  ← Line 1
─────────────────────────────────────────  ← Line 2
─────────────────────────────────────────  ← Line 3
─────────────────────────────────────────  ← Line 4

Analysis:

  • Type: Body text / Paragraph
  • Lines: 4
  • Line thickness: Thinnest in sketch → Regular (font-weight: 400)
  • Distance between lines: Matches icon/scrollbar size → ~16-20px font-size
  • Line-height: ~1.5 (calculated from spacing)
  • Alignment: Left
  • Capacity: ~60-70 chars per line = 240-280 total

Content Guidance:

English: "Organize your family around dog care. Assign walks, track
feeding schedules, and never miss a walk again. Perfect for busy
families who want to ensure their dogs get the care they need."
(206 chars) ✅

Swedish: "Organisera din familj kring hundvård. Tilldela promenader,
spåra matscheman och missa aldrig en promenad igen. Perfekt för
upptagna familjer som vill säkerställa att deras hundar får den
vård de behöver." (218 chars) ✅

Example 3: Button Text

Sketch shows:

[────────────]  ← Single line inside button shape

Analysis:

  • Type: Button label
  • Lines: 1
  • Line thickness: Medium (relative) → Semibold (font-weight: 600)
  • Estimated font-size: ~16-18px (button standard)
  • Capacity: ~8-12 characters

Content Guidance:

English: "Get Started" (11 chars) ✅
Swedish: "Kom Igång" (9 chars) ✅

Agent Instructions

When analyzing sketches with text placeholders:

Step 1: Count the Lines

How many horizontal bar groups do you see?

Step 2: Compare Line Thickness → Font Weight

Line thickness indicates font weight (RELATIVE comparison):
- Thickest lines → Bold (font-weight: 700)
- Thick lines → Semibold (font-weight: 600)
- Medium lines → Medium (font-weight: 500)
- Thin lines → Regular (font-weight: 400)
- Thinnest lines → Light (font-weight: 300)

Step 3: Compare Distance to UI Elements → Font Size

Vertical spacing relative to context anchors:
- Matches Button Height → ~40-48px font (Large Heading)
- Matches Address Bar → ~32-40px font (Medium Heading)
- Between Button & Icon → ~24-32px font (Small Heading)
- Matches Icon/Scrollbar → ~16-24px font (Body Text)
- Half Icon Size → ~12-16px font (Caption/Small Text)

⚠️ If spacing is disproportionately large, verify this is text (not image/box)!

NOTE: Visual size ≠ Semantic HTML level (H1/H2/H3).
Semantic heading levels are determined by content structure, not appearance.

Step 4: Calculate Line-Height

Line-height = Distance between lines / Font size

Example:
- Distance: 28px
- Font size: 24px
- Line-height: 28 / 24 = 1.16 ≈ 1.2

Step 5: Calculate Capacity

Lines × Characters-per-line = Total capacity

Example:
5 lines × 60 chars/line = 300 characters

Step 6: Generate Content Guidance

"Content should be: [type], [line count] lines, ~[total chars] characters"

Example:
"Content should be: Full paragraph, 5 lines, ~300 characters"

Step 7: Validate Content

If user provides content:
- Count actual characters
- Compare to capacity
- Warn if mismatch

Example:
⚠️ Your content (450 chars) exceeds sketch capacity (300 chars).
Consider shortening or increasing font size.

Benefits of This Approach

Accurate Content Generation

  • Content matches design space
  • No overflow or underflow issues
  • Professional fit and finish

Design Fidelity

  • Specifications match sketches
  • Developers can trust the specs
  • Reduces back-and-forth

Multilingual Support

  • Can estimate if translation fits
  • Adjust content length per language
  • Prevents UI breaking

Quality Assurance

  • Catches content length issues early
  • Ensures consistency
  • Professional output

Example in Action

User shares Dog Week sketch of profile setup page

Agent analyzes:

"Looking at the profile section heading, I see 2 thick horizontal lines, center-aligned at the top.

Analysis:

  • 2 lines of text (thick bars)
  • Line thickness: Thick (relative) → Bold weight
  • Spacing: Less than button height → ~28-32px font
  • Line-height: ~1.3 (calculated)
  • Alignment: Center
  • Capacity: ~50-60 characters (25-30 per line)

This heading should be: Brief, 2 short lines, ~50-60 characters total

Suggested content:

  • EN: "Complete Your / Profile Setup" (41 chars)
  • SV: "Slutför Din / Profilinställning" (45 chars)

Both fit comfortably within the designed space. Does this match your intent?"


Integration with WDS Workflow

This analysis happens automatically in:

  • 4B: Sketch Analysis - Initial detection
  • object-types/heading-text.md - Detailed analysis
  • 4C-04: Content & Languages - Content validation
  • 4C-08: Generate Spec - Final documentation

Result: Every text element in WDS specifications includes accurate character capacity and content guidance! 🎨


This guide ensures all WDS projects generate content that perfectly fits the designed space.