mcpField
V
visual-design

visual-design

github.com/aws-samplesDesign & UI19740 installsUpdated 3w ago
Repository

About visual-design

visual-design is a skill for creating data charts, posters, infographics, and artwork. It provides separate tools for charts and visual design, and directs editable architecture or flow diagrams to the Excalidraw skill.

Key features

  1. 01Generate data chart PNGs
  2. 02Create posters, infographics, and artwork
  3. 03Export designs as PNG or PDF
  4. 04Use Excalidraw skill for editable diagrams

Use cases

  1. 01Turn data into a chart
  2. 02Make a poster or infographic
  3. 03Create artwork or visual designs
  4. 04Build an editable architecture or flow diagram

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aws-samples/sample-strands-agent-with-agentcore --skill visual-design

After installing, type/visual-designin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

canvas-design.md
diagram-design.md
library-reference.md

Details

From the project README

Visual Design

Quick Reference

TaskToolGuide
Data chart or graphgenerate_chartRead SKILL.md Design Ideas
Poster / infographic / artcreate_visual_designRead canvas-design.md
Architecture / flow diagramExcalidraw skillUse create_excalidraw_diagram for an editable in-app result. Use image generation only when a raster or print deliverable is requested.

Available Tools

generate_chart

Data visualization. Executes matplotlib/plotly code to produce chart PNGs.

  • python_code (str, required): Chart generation Python code
  • output_filename (str, required): .png filename
create_visual_design

Visual design creation: posters, infographics, artwork, diagrams. Uses reportlab, Pillow, svgwrite, or any available library.

  • python_code (str, required): Design generation Python code
  • output_filename (str, required): .png or .pdf filename

Available Libraries

PurposeLibrariesOutputNotes
Data chartsmatplotlib, plotly, bokehPNGBest for charts
PDF designreportlab, fpdfPDFFull control
Image designPillow + fonttoolsPNGBest for PNG designs
Vector graphicssvgwrite → svglib + renderPDFSVG → PDFSVG→PNG NOT supported (no renderPM)
Image processingWand (ImageMagick), opencv-pythonPNGCheck availability first

IMPORTANT: For PNG output, use Pillow or matplotlib. Do NOT use svgwrite→renderPM (rlPyCairo is unavailable).

Design Workflow

Data Charts (generate_chart)
  1. Identify data structure and choose appropriate chart type
  2. Select color palette (see Design Ideas below)
  3. Preserve requested labels, units, colors, dimensions, and explicit axis limits in the code. Verify these against the generated output.
  4. Write code with plt.savefig(filename, dpi=300, bbox_inches='tight')
  5. Review the generated chart and confirm the saved file matches the requested format and filename
Visual Design (create_visual_design)
  1. Establish design concept/philosophy (internally)
  2. Follow the process in canvas-design.md
  3. Select appropriate library and write code
  4. Save: reportlab canvas.save(), Pillow image.save(), matplotlib plt.savefig()
  5. Review output and refine

Design Ideas

Color Palettes
ThemePrimaryAccentBackground
Midnight Executive1E2761408EC60D1B2A
Forest & Moss2C5F2D97BC621A1A1A
Coral EnergyF96167F9E7952F3C7E
Ocean Gradient065A821B9AAA021B29
Charcoal Minimal36454FE8E8E81C1C1E
Cherry Bold990011FCF6F5150E11
Sage Calm84B59F69A2972D3A2D
Warm TerracottaB85042E7E8D12A1F1C
Typography

Prefer thin/light fonts. Minimize text in designs.

ElementSizeStyle
Main title48-72ptBold or Thin
Subtext14-18ptLight
Labels/captions8-12ptRegular, muted

Text-to-Canvas Balance (IMPORTANT):

  • Text size must be proportional to the overall canvas and surrounding design elements
  • Common mistake: text that is too small relative to the canvas, making it unreadable at normal viewing distance
  • Rule of thumb: if you need to zoom in to read it, it's too small
  • Titles should command attention — when in doubt, go larger
  • Labels/captions should be clearly legible, not decorative afterthoughts
  • Test: mentally shrink the output to 50% — all text should still be readable
Spacing & Composition
  • Generous margins (minimum 10% of canvas)
  • Consistent spacing between elements
  • No overlapping; all elements within canvas bounds
  • Visual hierarchy: convey importance via size, color, position
Avoid
  • Elements flush to canvas edges (insufficient margins)
  • Overlapping elements
  • Too many colors (stick to 3-4)
  • Excessive text — visual elements are the focus
  • Default matplotlib styles without customization

Code Requirements

  • Code must save a file to disk
  • Use the exact output_filename provided
  • PNG: dpi=300 or higher recommended
  • PDF: A4 or Letter size recommended
  • For Korean text: configure appropriate fonts

QA

Assume there are problems and look for them.

  1. Review the generated image/PDF
  2. Check for overlapping elements, clipped text, insufficient margins
  3. Verify sufficient color contrast
  4. If issues found, fix the code and regenerate
  5. If a check fails, correct and verify it. Do not regenerate an already valid output solely to perform a fix cycle.

UI Guidance (from tools-config)

Tool Selection:

  • generate_chart: Data charts/graphs (matplotlib, plotly, bokeh) → PNG
  • create_visual_design: Posters, infographics, artwork, flow diagrams (reportlab, Pillow, svgwrite) → PNG or PDF

Code Requirements:

  • Charts: plt.savefig(filename, dpi=300, bbox_inches='tight')
  • PDF designs: canvas.save() (reportlab) or equivalent
  • Image designs: image.save(filename) (Pillow)
  • PNG: dpi=300+ recommended
  • PDF: A4 or Letter size recommended

Comments

Markdown supported