Graphic Design Studio
Description
Full graphic design capability using code-based rendering. Turns Claude Code's HTML/CSS/SVG skills into production graphic design output.
When to Use
- User asks for logos, icons, graphics, banners, social media images
- User says "design", "graphic", "logo", "banner", "poster", "visual"
- User needs marketing visuals, brand assets, or presentation graphics
- User needs image editing, resizing, format conversion, optimization
Design Pipeline (4 methods — pick the best for the task)
Method 1: HTML/CSS → Playwright Screenshot (BEST FOR MOST TASKS)
Best for: Logos, banners, cards, social media graphics, UI mockups
- Create a self-contained HTML file with inline CSS
- Use modern CSS: gradients, shadows, blend modes, filters, animations (freeze frame)
- Set exact pixel dimensions via viewport meta + body sizing
- Use Google Fonts via CDN link for typography
- Render with Playwright: take screenshot at exact dimensions
- Post-process with Pillow if needed (crop, resize, optimize)
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page(viewport={"width": 1200, "height": 630})
page.set_content(html_content)
page.screenshot(path="output.png", full_page=False)
browser.close()
Method 2: SVG Generation (BEST FOR VECTOR GRAPHICS)
Best for: Icons, logos, geometric patterns, scalable assets
- Use svgwrite Python library for programmatic SVG
- Or write SVG XML directly (more control)
- Export as .svg for vector use or convert to PNG via Playwright
import svgwrite
dwg = svgwrite.Drawing('output.svg', size=('400px', '400px'))
# Replace colors with your project's brand palette
dwg.add(dwg.circle(center=(200, 200), r=100, fill='<primary-color>'))
dwg.add(dwg.text('<INITIALS>', insert=(160, 215), fill='<accent-color>',
font_size='60px', font_family='Georgia'))
dwg.save()
Method 3: Python Pillow (BEST FOR IMAGE PROCESSING)
Best for: Photo editing, compositing, batch processing, format conversion
- Open/create images with PIL.Image
- Draw shapes, text, gradients with ImageDraw
- Apply filters: blur, sharpen, contrast, color adjustment
- Composite multiple images together
- Export in any format: PNG, JPG, WebP, ICO
from PIL import Image, ImageDraw, ImageFont, ImageFilter
# Replace colors with your project's brand palette
img = Image.new('RGBA', (1200, 630), '<primary-color>')
draw = ImageDraw.Draw(img)
draw.text((100, 100), "<Brand Name>", fill='<accent-color>')
img.save('output.png', optimize=True)
Method 4: AI Image Generation (REQUIRES API KEY)
Best for: Photorealistic images, illustrations, creative concepts
- Use fal.ai skills (
@fal-generate, @fal-image-edit, @fal-upscale)
- Use HuggingFace skills (
@huggingface-skills plugin)
- Use
stability-ai skill
- NOTE: Requires user to provide API key for the chosen service
Design Principles (Always Follow)
- Use brand colors defined in the project's CLAUDE.md or a design-tokens file.
Never hardcode colors — reference them by semantic name.
- Minimum font size: 14px for body, 24px for headlines
- Always include whitespace — don't crowd elements
- Use contrast ratios that pass WCAG AA (4.5:1 minimum)
- Export at 2x resolution for retina displays
- For social media: follow platform size guides
- LinkedIn banner: 1584x396
- Instagram post: 1080x1080
- Instagram story: 1080x1920
- X/Twitter header: 1500x500
- Facebook cover: 820x312
- OG image (generic social share): 1200x630
- YouTube thumbnail: 1280x720
Output Formats
- PNG: Default for most graphics (lossless, supports transparency)
- SVG: For logos and icons (infinitely scalable)
- WebP: For web use (smaller file size than PNG)
- JPG: For photos (lossy but small)
- ICO: For favicons
- PDF: For print-ready designs (use reportlab or Pillow)
Quality Checklist
Cost Awareness
- Methods 1-3 are FREE (pure code rendering, no API calls)
- Method 4 costs money (fal.ai: $0.003-$0.05 per image)
- ALWAYS start with Methods 1-3 unless you specifically need photorealistic output
1---2name: graphic-design-studio3description: Full graphic design capability using code-based rendering — turns Claude Code's HTML/CSS/SVG skills into production graphic design output4---56# Graphic Design Studio78## Description9Full graphic design capability using code-based rendering. Turns Claude Code's HTML/CSS/SVG skills into production graphic design output.1011## When to Use12- User asks for logos, icons, graphics, banners, social media images13- User says "design", "graphic", "logo", "banner", "poster", "visual"14- User needs marketing visuals, brand assets, or presentation graphics15- User needs image editing, resizing, format conversion, optimization1617## Design Pipeline (4 methods — pick the best for the task)1819### Method 1: HTML/CSS → Playwright Screenshot (BEST FOR MOST TASKS)20Best for: Logos, banners, cards, social media graphics, UI mockups211. Create a self-contained HTML file with inline CSS222. Use modern CSS: gradients, shadows, blend modes, filters, animations (freeze frame)233. Set exact pixel dimensions via viewport meta + body sizing244. Use Google Fonts via CDN link for typography255. Render with Playwright: take screenshot at exact dimensions266. Post-process with Pillow if needed (crop, resize, optimize)2728```python29from playwright.sync_api import sync_playwright30with sync_playwright() as p:31 browser = p.chromium.launch()32 page = browser.new_page(viewport={"width": 1200, "height": 630})33 page.set_content(html_content)34 page.screenshot(path="output.png", full_page=False)35 browser.close()36```3738### Method 2: SVG Generation (BEST FOR VECTOR GRAPHICS)39Best for: Icons, logos, geometric patterns, scalable assets401. Use svgwrite Python library for programmatic SVG412. Or write SVG XML directly (more control)423. Export as .svg for vector use or convert to PNG via Playwright4344```python45import svgwrite46dwg = svgwrite.Drawing('output.svg', size=('400px', '400px'))47# Replace colors with your project's brand palette48dwg.add(dwg.circle(center=(200, 200), r=100, fill='<primary-color>'))49dwg.add(dwg.text('<INITIALS>', insert=(160, 215), fill='<accent-color>',50 font_size='60px', font_family='Georgia'))51dwg.save()52```5354### Method 3: Python Pillow (BEST FOR IMAGE PROCESSING)55Best for: Photo editing, compositing, batch processing, format conversion561. Open/create images with PIL.Image572. Draw shapes, text, gradients with ImageDraw583. Apply filters: blur, sharpen, contrast, color adjustment594. Composite multiple images together605. Export in any format: PNG, JPG, WebP, ICO6162```python63from PIL import Image, ImageDraw, ImageFont, ImageFilter64# Replace colors with your project's brand palette65img = Image.new('RGBA', (1200, 630), '<primary-color>')66draw = ImageDraw.Draw(img)67draw.text((100, 100), "<Brand Name>", fill='<accent-color>')68img.save('output.png', optimize=True)69```7071### Method 4: AI Image Generation (REQUIRES API KEY)72Best for: Photorealistic images, illustrations, creative concepts73- Use fal.ai skills (`@fal-generate`, `@fal-image-edit`, `@fal-upscale`)74- Use HuggingFace skills (`@huggingface-skills` plugin)75- Use `stability-ai` skill76- NOTE: Requires user to provide API key for the chosen service7778## Design Principles (Always Follow)791. Use brand colors defined in the project's CLAUDE.md or a design-tokens file.80 Never hardcode colors — reference them by semantic name.812. Minimum font size: 14px for body, 24px for headlines823. Always include whitespace — don't crowd elements834. Use contrast ratios that pass WCAG AA (4.5:1 minimum)845. Export at 2x resolution for retina displays856. For social media: follow platform size guides86 - LinkedIn banner: 1584x39687 - Instagram post: 1080x108088 - Instagram story: 1080x192089 - X/Twitter header: 1500x50090 - Facebook cover: 820x31291 - OG image (generic social share): 1200x63092 - YouTube thumbnail: 1280x7209394## Output Formats95- **PNG**: Default for most graphics (lossless, supports transparency)96- **SVG**: For logos and icons (infinitely scalable)97- **WebP**: For web use (smaller file size than PNG)98- **JPG**: For photos (lossy but small)99- **ICO**: For favicons100- **PDF**: For print-ready designs (use reportlab or Pillow)101102## Quality Checklist103- [ ] Correct dimensions for intended use104- [ ] Brand colors applied correctly (from project tokens)105- [ ] Text is readable at target size106- [ ] Transparent background where appropriate107- [ ] File size optimized for web (<500KB for web graphics)108- [ ] Retina-ready (2x export for PNG/JPG)109- [ ] Color contrast passes WCAG AA110111## Cost Awareness112- **Methods 1-3 are FREE** (pure code rendering, no API calls)113- **Method 4 costs money** (fal.ai: $0.003-$0.05 per image)114- ALWAYS start with Methods 1-3 unless you specifically need photorealistic output