5.1 KiB
5.1 KiB
Assessment Step 2: Compare Attributes
Purpose: Systematically compare current component to existing candidates.
Input: Current component spec + candidate list
Output: Detailed comparison of similarities and differences
Comparison Framework
Compare across 4 dimensions:
1. Visual Attributes
- Size (small, medium, large)
- Shape (rounded, square, pill)
- Color scheme
- Typography
- Spacing/padding
- Border style
2. Functional Attributes
- Purpose/intent
- User action
- Input/output type
- Validation rules
- Required/optional
3. Behavioral Attributes
- States (default, hover, active, disabled, loading, error)
- Interactions (click, hover, focus, blur)
- Animations/transitions
- Keyboard support
- Accessibility
4. Contextual Attributes
- Usage pattern (where it appears)
- Frequency (how often used)
- Relationship to other components
- User journey stage
Step 1: Visual Comparison
Compare visual attributes: - Extract visual properties from current spec - Extract visual properties from candidate - Calculate matches and differencesExample:
Visual Comparison: Current Button vs Button [btn-001]
Similarities:
✓ Size: medium (both)
✓ Shape: rounded (both)
✓ Color scheme: blue primary (both)
Differences:
✗ Current: Has icon on left
✗ btn-001: Text only
✗ Current: Slightly larger padding
Step 2: Functional Comparison
Compare functional attributes: - What does it do? - What's the user intent? - What's the outcome?Example:
Functional Comparison: Current Button vs Button [btn-001]
Similarities:
✓ Purpose: Primary action trigger
✓ User action: Click to submit/proceed
✓ Outcome: Form submission or navigation
Differences:
✗ Current: "Continue to next step"
✗ btn-001: "Submit form"
✗ Current: Navigation action
✗ btn-001: Form submission action
Step 3: Behavioral Comparison
Compare behavioral attributes: - States - Interactions - AnimationsExample:
Behavioral Comparison: Current Button vs Button [btn-001]
Similarities:
✓ States: default, hover, active, disabled (both)
✓ Hover: Darkens background (both)
✓ Disabled: Grayed out (both)
Differences:
✗ Current: Has loading state with spinner
✗ btn-001: No loading state
✗ Current: Icon rotates on hover
Step 4: Contextual Comparison
Compare contextual attributes: - Where is it used? - How often? - What's the pattern?Example:
Contextual Comparison: Current Button vs Button [btn-001]
Similarities:
✓ Both: Primary action in forms
✓ Both: Bottom-right of containers
✓ Both: High-frequency usage
Differences:
✗ Current: Multi-step flow navigation
✗ btn-001: Single-page form submission
✗ Current: Always has "next" context
Step 5: Calculate Similarity Score
Score each dimension: - Visual: High/Medium/Low similarity - Functional: High/Medium/Low similarity - Behavioral: High/Medium/Low similarity - Contextual: High/Medium/Low similarityScoring Guide:
- High: 80%+ attributes match
- Medium: 50-79% attributes match
- Low: <50% attributes match
Example:
Similarity Score: Current Button vs Button [btn-001]
Visual: High (90% match)
Functional: Medium (60% match)
Behavioral: Medium (70% match)
Contextual: Medium (65% match)
Overall: Medium-High Similarity
Step 6: Summarize Comparison
Present comparison summary:📊 Comparison: Current Button vs Button [btn-001]
**Similarities:**
✓ Visual appearance (size, shape, color)
✓ Primary action purpose
✓ Standard states (default, hover, active, disabled)
✓ High-frequency usage pattern
**Differences:**
✗ Current has icon, btn-001 is text-only
✗ Current has loading state, btn-001 doesn't
✗ Current for navigation, btn-001 for submission
✗ Current has icon animation
**Similarity Score:** Medium-High (71%)
Step 7: Pass to Next Step
Pass comparison data to similarity calculation: - Detailed comparison - Similarity scores - Key differencesNext: 03-calculate-similarity.md
Edge Cases
Perfect match (100%):
✓ This component is identical to btn-001.
This is likely the same component with different content.
Recommend: Reuse existing component
Very low similarity (<30%):
✗ This component is very different from btn-001.
Despite being the same type, these serve different purposes.
Recommend: Create new component
Multiple candidates:
📊 Comparing to 2 candidates:
Button [btn-001]: 71% similarity
Icon Button [btn-002]: 45% similarity
btn-001 is the closest match.
Continue with best match
Output Format
For next step:
{
"comparison": {
"candidate_id": "btn-001",
"visual_similarity": "high",
"functional_similarity": "medium",
"behavioral_similarity": "medium",
"contextual_similarity": "medium",
"overall_score": 0.71,
"similarities": [...],
"differences": [...]
}
}
This step compares systematically. Interpretation happens in the next step.