| name | canva-image-editor |
| description | Edit and modify image-based designs in Canva (social media posts, posters, flyers, etc.).
Use this skill when user wants to modify existing image designs or create new ones.
Follows 3-mode workflow: PLAN changes, CLARIFY with user, then IMPLEMENT.
For presentations use canva-presentation skill. For videos use canva-video skill.
|
| allowed-tools | ["Bash","Read","Write","Edit","AskUserQuestion"] |
Canva Image Editor Skill
QUICK REFERENCE
- Scripts location:
scripts/ (NOT skills/canva-image-editor/scripts/ - those don't exist)
- Auth check:
.venv\Scripts\python.exe scripts/auth_check.py
- List designs:
.venv\Scripts\python.exe scripts/list_designs.py
- API client:
scripts/canva_client.py (import: from canva_client import get_client)
- Sample script:
scripts/samples/sample_canva_operations.py
WARNING: Commands below referencing skills/canva-*/scripts/*.py are WRONG paths.
Write custom Python using canva_client.py. See scripts/samples/sample_canva_operations.py.
Edit and modify image-based designs in Canva including social media posts, posters, flyers, logos, and other static graphics.
Scope of This Skill
This skill handles:
- Instagram Posts/Stories
- Facebook Posts/Covers
- Twitter/X Posts
- LinkedIn Posts/Banners
- Posters & Flyers
- Logos
- Business Cards
- Invitations
- Infographics
- Thumbnails
- Any static image design
NOT handled by this skill:
- Presentations/Slideshows → Use
canva-presentation
- Videos/Animations → Use
canva-video
- Document editing → Use
canva-document
- Bulk exports → Use
canva-export
3-Mode Workflow
MODE 1: PLAN
Before any edits, analyze and document:
-
Identify the Target Design
python skills/canva-explorer/scripts/get_design.py --id "DESIGN_ID" --include-pages
-
Analyze Current State
- Design dimensions
- Number of elements (text, images, shapes)
- Current colors and fonts
- Background type
-
Document Proposed Changes
## Edit Plan for "[Design Name]"
### Current State
- Type: Instagram Post (1080x1080)
- Elements: 3 text layers, 2 images, 1 background
- Primary colors: #FF5733, #FFFFFF
### Proposed Changes
1. Update headline text from "X" to "Y"
2. Replace main image with new uploaded asset
3. Change background color to #2E86AB
### Elements NOT Being Changed
- Logo placement (top-right)
- Footer text
- Secondary image
### Risks
- Text may overflow if new headline is longer
- New image aspect ratio may need adjustment
MODE 2: CLARIFY
Ask user to confirm:
-
Verify Changes
- "The headline will change from 'Summer Sale' to 'Winter Sale'. Correct?"
- "Should I resize the new image to fit, or crop it?"
-
Offer Options
- "Should I work on the original or create a copy first?"
- "Do you want to preview the changes before finalizing?"
-
Handle Ambiguity
- "I found 3 text elements. Which one should I modify?"
- "The new color doesn't meet contrast guidelines. Proceed anyway?"
MODE 3: IMPLEMENT
Execute approved changes:
python skills/canva-image-editor/scripts/update_text.py \
--design "DESIGN_ID" \
--element "ELEMENT_ID" \
--text "New headline text"
python skills/canva-image-editor/scripts/replace_image.py \
--design "DESIGN_ID" \
--element "ELEMENT_ID" \
--new-image "path/to/image.jpg"
python skills/canva-image-editor/scripts/update_colors.py \
--design "DESIGN_ID" \
--primary "#2E86AB" \
--secondary "#F4D35E"
Available Scripts
Analysis Scripts
analyze_design.py - Deep analysis of design elements
extract_colors.py - Get color palette from design
extract_text.py - Get all text content
check_dimensions.py - Verify size and aspect ratio
Edit Scripts
update_text.py - Modify text content
replace_image.py - Swap images in design
update_colors.py - Change color scheme
resize_design.py - Change dimensions
duplicate_design.py - Create a copy before editing
Creation Scripts
create_from_template.py - New design from Canva template
create_blank.py - New blank design with dimensions
Design Types and Dimensions
| Type | Dimensions | Aspect Ratio |
|---|
| Instagram Post | 1080x1080 | 1:1 |
| Instagram Story | 1080x1920 | 9:16 |
| Facebook Post | 1200x630 | 1.91:1 |
| Facebook Cover | 820x312 | 2.63:1 |
| Twitter Post | 1600x900 | 16:9 |
| LinkedIn Post | 1200x1200 | 1:1 |
| LinkedIn Banner | 1584x396 | 4:1 |
| Pinterest Pin | 1000x1500 | 2:3 |
| YouTube Thumbnail | 1280x720 | 16:9 |
| Poster | 18x24 inches | 3:4 |
| A4 Document | 210x297mm | 1:1.41 |
Element Types
When working with design elements:
- Text Elements: Headlines, body text, captions
- Image Elements: Photos, graphics, icons
- Shape Elements: Rectangles, circles, lines
- Frame Elements: Image frames, masks
- Background: Solid color, gradient, image
Safety Guidelines
- Always duplicate first for major changes
- Check text overflow when changing content
- Verify image quality after replacement
- Test color contrast for accessibility
- Log all changes to output folder
Example Interactions
"Change the headline in my Instagram post"
[PLAN]
- Found design "Summer Promo" (1080x1080)
- Contains headline: "SUMMER SALE 50% OFF"
- Proposed: Change to user's new text
[CLARIFY]
- What should the new headline say?
- Keep same font and size?
[IMPLEMENT]
- Update text element with new content
- Verify no overflow
- Confirm change complete
"Update the colors to match my brand"
[PLAN]
- Analyze current colors: #FF5733, #FFFFFF, #333333
- User's brand colors: #2E86AB, #F4D35E, #1A1A1A
- Map old → new colors
[CLARIFY]
- Confirm color mapping is correct
- Should background also change?
- Keep or update any accent colors?
[IMPLEMENT]
- Apply color changes to all elements
- Verify readability
- Export preview
Output Files
Changes are logged to:
output/edits/ - Before/after comparisons
output/logs/edit_history.json - All modifications
output/previews/ - Preview exports