Canvas Design
Create visually striking static designs using HTML Canvas or Python imaging libraries.
Design Principles
Composition
- Rule of Thirds: Place key elements along grid lines
- Visual Hierarchy: Size, color, and position indicate importance
- White Space: Embrace negative space for elegance
- Balance: Symmetrical for formal, asymmetrical for dynamic
Color Theory
- Complementary: Colors opposite on wheel (high contrast)
- Analogous: Adjacent colors (harmonious)
- Triadic: Three equidistant colors (vibrant)
- Limit palette to 3-5 colors
Typography
- Pair one display font with one body font
- Maintain consistent hierarchy
- Ensure readability (contrast, size)
Python Canvas (Pillow + Cairo)
from PIL import Image, ImageDraw, ImageFont import cairo # Create canvas width, height = 1200, 800 surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height) ctx = cairo.Context(surface) # Background gradient pattern = cairo.LinearGradient(0, 0, 0, height) pattern.add_color_stop_rgb(0, 0.1, 0.1, 0.2) pattern.add_color_stop_rgb(1, 0.05, 0.05, 0.1) ctx.set_source(pattern) ctx.paint() # Draw shapes ctx.set_source_rgba(1, 0.3, 0.3, 0.8) ctx.arc(600, 400, 150, 0, 2 * 3.14159) ctx.fill() # Add text ctx.set_source_rgb(1, 1, 1) ctx.select_font_face("Sans", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_BOLD) ctx.set_font_size(48) ctx.move_to(400, 600) ctx.show_text("Hello Design") # Save surface.write_to_png("design.png")
HTML Canvas to Image
const canvas = document.createElement('canvas'); canvas.width = 1200; canvas.height = 800; const ctx = canvas.getContext('2d'); // Draw ctx.fillStyle = '#1a1a2e'; ctx.fillRect(0, 0, 1200, 800); ctx.fillStyle = '#e94560'; ctx.beginPath(); ctx.arc(600, 400, 150, 0, Math.PI * 2); ctx.fill(); // Export const dataUrl = canvas.toDataURL('image/png');
Design Styles
- Minimalist: Limited colors, lots of whitespace, clean lines
- Brutalist: Raw, bold typography, stark contrasts
- Glassmorphism: Frosted glass effects, subtle borders
- Retro/Vintage: Muted colors, textures, classic typography
- Abstract: Geometric shapes, gradients, artistic composition