← スキル一覧に戻る
optical-refinement
vinzenz / jules-agentic-software-builder-for-claude
⭐ 0🍴 0📅 2025年11月26日
Reviews designs for optical balance issues that mathematical precision misses. Covers typography kerning, visual alignment, spacing rhythm, color weight, and the human touch that distinguishes professional design from AI-generated output.
SKILL.md
---
name: optical-refinement
description: Reviews designs for optical balance issues that mathematical precision misses. Covers typography kerning, visual alignment, spacing rhythm, color weight, and the human touch that distinguishes professional design from AI-generated output.
---
# Optical Refinement Skill
You are operating with optical refinement capabilities. This skill addresses the fundamental difference between mathematically correct and visually correct design.
## Core Philosophy
> "The way humans see and process images isn't always going in pair with what the numbers say. What may seem perfectly aligned and balanced for a computer may not seem the same way for your eyes." — Rafal Tomal
Professional designers trust their eyes over rulers. AI uses mathematical precision — which often looks wrong to human eyes. This skill teaches how to identify and correct optical issues.
## Why This Matters
**Mathematical precision fails because:**
- Human vision is not a camera
- We perceive some shapes as "heavier" than others
- Optical illusions affect all viewers consistently
- Context changes how we perceive elements
**Examples:**
- A mathematically centered circle in a square looks too low
- Letters A and V need tighter kerning than H and I
- A 10px gap after text looks smaller than a 10px gap after an icon
- Warm colors appear to advance; cool colors recede
## Category 1: Typography Optical Issues
### Kerning and Letter Spacing
<typography_kerning>
**Common Problems:**
- "AV", "AT", "LT", "Ty" combinations need tighter spacing
- Round letters (O, C, G) need visual compensation
- The eye judges spacing by AREA, not distance
**How to Check:**
1. Flip the text upside down (removes semantic reading)
2. Squint to blur the letterforms
3. Look for "rivers" of white space
4. Check if any letter pairs feel disconnected
**Correction Approach:**
- Space by optical area, not mathematical distance
- Tighten pairs with diagonal/round edges
- Loosen pairs with vertical stems
```xml
<kerning_issue>
<location>Element containing the text</location>
<problem_pair>AV, LT, etc.</problem_pair>
<current_spacing>Mathematical spacing</current_spacing>
<recommended_action>Tighten by X units or percentage</recommended_action>
</kerning_issue>
```
</typography_kerning>
### Vertical Rhythm and Line Height
<typography_rhythm>
**Common Problems:**
- Line height that works for body text is wrong for headings
- All-caps text needs tighter line height than mixed case
- Descenders (g, j, p, q, y) affect perceived line spacing
**How to Check:**
1. Measure paragraph "color" — should be even gray when squinted
2. Check for "stacking" — lines that feel too tight
3. Check for "floating" — lines that feel disconnected
4. Compare line spacing to paragraph spacing ratios
**Correction Approach:**
- Body text: 1.4-1.6x font size
- Headings: 1.1-1.3x font size
- All-caps: 1.0-1.2x font size
- Maintain proportional paragraph spacing (usually 1.5-2x line height)
```xml
<rhythm_issue>
<location>Text block or section</location>
<current_line_height>Current value</current_line_height>
<problem>Lines feel too tight/loose because...</problem>
<recommended_line_height>Adjusted value</recommended_line_height>
</rhythm_issue>
```
</typography_rhythm>
### Type Size Relationships
<typography_scale>
**Common Problems:**
- Too many type sizes (more than 5-6 creates chaos)
- Size jumps too small (hard to establish hierarchy)
- Size jumps inconsistent (no mathematical relationship)
**How to Check:**
1. List all font sizes used — are they intentional?
2. Do size jumps create clear hierarchy?
3. Can you identify the importance of text by size alone?
**Correction Approach:**
- Use a type scale (1.25, 1.333, 1.5, or 1.618 ratio)
- Larger jumps for clearer hierarchy (don't be timid)
- Fewer sizes, more consistent use
```xml
<scale_issue>
<sizes_in_use>12, 14, 16, 18, 20, 24, 32, 48</sizes_in_use>
<problem>Too many sizes / No clear ratio / Hierarchy unclear</problem>
<recommended_scale>base: 16, ratio: 1.25 = 16, 20, 25, 31, 39</recommended_scale>
</scale_issue>
```
</typography_scale>
## Category 2: Spatial Optical Issues
### Visual Centering
<spatial_centering>
**The Problem:**
Mathematical center looks wrong because:
- Shapes with points (triangles, play icons) have visual weight offset from geometric center
- Text has a visual center different from its bounding box center
- Elements with descenders or ascenders shift perceived center
**How to Check:**
1. Cover half the container — does the element look centered?
2. Squint — where does your eye land?
3. Compare to similar elements — is centering consistent?
**Common Fixes:**
- Play icons: shift right ~5-10% of their width
- Triangles pointing up: shift down slightly
- Text: align to cap-height or x-height, not bounding box
- Icons in circles: adjust per icon shape
```xml
<centering_issue>
<element>Play button icon</element>
<container>Circular button</container>
<mathematical_center>50%, 50%</mathematical_center>
<visual_adjustment>Shift right 2px, no vertical change</visual_adjustment>
<reason>Triangle visual weight is left of geometric center</reason>
</centering_issue>
```
</spatial_centering>
### Spacing Consistency
<spatial_spacing>
**The Problem:**
Same pixel value feels different depending on:
- What's being separated (text vs icon vs image)
- The "weight" of adjacent elements
- Background color/contrast
**How to Check:**
1. Do all similar elements feel equally spaced?
2. Does spacing create clear groupings?
3. Are there any "awkward gaps" or "crowded areas"?
**Correction Approach:**
- Space by visual separation, not pixels
- Heavier elements need more space
- Group related items with tighter spacing
- Separate unrelated items with more space
```xml
<spacing_issue>
<location>Card header area</location>
<elements>Icon, title, subtitle</elements>
<current_spacing>All 8px gaps</current_spacing>
<problem>Icon-to-title gap feels larger than title-to-subtitle</problem>
<recommended_adjustment>Icon-title: 6px, Title-subtitle: 10px</recommended_adjustment>
<reason>Icon has inherent padding; text lines relate more closely</reason>
</spacing_issue>
```
</spatial_spacing>
### Edge Alignment
<spatial_alignment>
**The Problem:**
Visually aligned edges may not be pixel-aligned because:
- Text has optical margins built into fonts
- Icons have visual weight offset from bounding box
- Rounded corners start their curve before the mathematical edge
**How to Check:**
1. Turn on alignment guides — do "aligned" elements actually align?
2. Does the page feel structured or chaotic?
3. Are there hidden alignment lines creating order?
**Correction Approach:**
- Align to optical edge, not bounding box
- Text should "hang" slightly into margins (optical margin alignment)
- Icons may need individual offsets
- Create consistent alignment zones, then optically adjust
```xml
<alignment_issue>
<elements>Paragraph text and bullet icon</elements>
<current_state>Mathematically left-aligned</current_state>
<problem>Bullet feels indented compared to text</problem>
<recommended_adjustment>Shift bullet left 2px to align visually</recommended_adjustment>
</alignment_issue>
```
</spatial_alignment>
## Category 3: Color Optical Issues
### Perceived Weight
<color_weight>
**The Problem:**
Different colors have different visual "weight":
- Saturated colors feel heavier than desaturated
- Dark colors feel heavier than light
- Warm colors advance; cool colors recede
- Some hues (red, yellow) grab attention more than others (blue, green)
**How to Check:**
1. Does the visual hierarchy match the importance hierarchy?
2. Are accent colors being used for the right elements?
3. Do any colors "jump out" inappropriately?
**Correction Approach:**
- Reduce saturation for background elements
- Increase saturation for focal points
- Balance warm/cool to create depth
- Use color weight to reinforce hierarchy
```xml
<color_weight_issue>
<element>Secondary action button</element>
<current_color>#FF5733 (saturated orange)</current_color>
<problem>Competes with primary action despite lower importance</problem>
<recommended_adjustment>Desaturate to #D4A57B or switch to neutral</recommended_adjustment>
</color_weight_issue>
```
</color_weight>
### Contrast Perception
<color_contrast>
**The Problem:**
WCAG contrast ratios measure mathematical contrast, but perceived contrast varies:
- Small text needs more contrast than large text
- Thin fonts need more contrast than bold fonts
- Colored backgrounds shift perceived text color
- Adjacent colors influence each other (simultaneous contrast)
**How to Check:**
1. Pass WCAG is minimum — does it FEEL readable?
2. Check on multiple devices/lighting conditions
3. Look for "vibrating" color combinations
**Correction Approach:**
- Exceed WCAG minimums for body text
- Test with actual content, not placeholder
- Avoid pure black on pure white (too harsh)
- Adjust for adjacent color influence
```xml
<contrast_issue>
<element>Body text on colored card</element>
<wcag_ratio>4.8:1 (passes AA)</wcag_ratio>
<problem>Thin font weight makes text feel hard to read</problem>
<recommended_adjustment>Increase font weight OR darken text to 7:1</recommended_adjustment>
</contrast_issue>
```
</color_contrast>
## Category 4: Component Optical Issues
### Icon Consistency
<icon_optical>
**The Problem:**
Icons from different sources/styles have inconsistent visual weight even at same pixel size:
- Stroke-based vs filled icons
- Different stroke weights
- Different levels of detail
- Different optical sizes within bounding box
**How to Check:**
1. Line up icons — do they feel the same size?
2. Do some icons feel "bolder" than others?
3. Is there consistent visual density?
**Correction Approach:**
- Standardize on one icon set/style
- Adjust individual icons to match visual weight
- Simpler icons may need slight size increase
- Complex icons may need slight size decrease
```xml
<icon_issue>
<icons>Menu (3 lines), Search (magnifier), User (person)</icons>
<problem>Search icon feels smaller than others</problem>
<current_size>All 24px</current_size>
<recommended_adjustment>Search icon: 26px to match visual weight</recommended_adjustment>
</icon_issue>
```
</icon_optical>
### Button and Touch Targets
<button_optical>
**The Problem:**
Buttons with same padding can look different depending on:
- Label length (short labels feel cramped)
- Icon presence (icons add visual weight)
- Border/shadow presence
**How to Check:**
1. Do all buttons feel equally "clickable"?
2. Do icon buttons feel balanced?
3. Is there enough touch target area? (44px minimum)
**Correction Approach:**
- Minimum width for short labels
- Optical padding adjustment for icons
- Consider visual padding vs actual padding
```xml
<button_issue>
<buttons>"OK" button vs "Cancel Changes" button</buttons>
<current_padding>12px 24px for both</current_padding>
<problem>"OK" feels too narrow despite same padding</problem>
<recommended_adjustment>Add min-width: 80px for short labels</recommended_adjustment>
</button_issue>
```
</button_optical>
## Refinement Process
<refinement_workflow>
1. **First Pass — Squint Test**
- View design at 50% zoom
- Squint to blur details
- Note areas that feel "off"
2. **Second Pass — Component Audit**
- Check each component category
- Apply category-specific checks
- Document issues found
3. **Third Pass — Context Check**
- View in realistic context
- Check responsive breakpoints
- Test on actual devices if possible
4. **Fourth Pass — Fresh Eyes**
- Step away, return later
- View as a user would
- Note any remaining friction
</refinement_workflow>
## Output Format
<refinement_output>
```xml
<optical_refinement_report>
<summary>
<issues_found count="N"/>
<critical_issues count="N">Issues that significantly harm perception</critical_issues>
<minor_issues count="N">Polish items</minor_issues>
</summary>
<typography_issues>
<!-- Issues from Category 1 -->
</typography_issues>
<spatial_issues>
<!-- Issues from Category 2 -->
</spatial_issues>
<color_issues>
<!-- Issues from Category 3 -->
</color_issues>
<component_issues>
<!-- Issues from Category 4 -->
</component_issues>
<before_after_recommendations>
<recommendation priority="1">
<element>What to change</element>
<before>Current state</before>
<after>Recommended state</after>
<impact>Why this matters</impact>
</recommendation>
</before_after_recommendations>
<overall_assessment>
<craft_level>novice/developing/professional/exceptional</craft_level>
<most_impactful_change>The single change that would help most</most_impactful_change>
</overall_assessment>
</optical_refinement_report>
```
</refinement_output>
## Key Principle
> "Font design is all about minute adjustments to create optically pleasing letterforms."
The same applies to all design. The difference between "pretty good" and "exceptional" is in the optical refinements — the adjustments that defy mathematical precision but satisfy the human eye.