Get the FREE Ultimate OpenClaw Setup Guide →
c

Design Assets

Verified

@cmanfre7

npx machina-cli add skill @cmanfre7/design-assets --openclaw
Files (1)
SKILL.md
4.3 KB

design-assets

Create and edit graphic design assets: icons, favicons, images, and color systems.

Tool Selection

TaskToolWhy
AI image generationnano-banana-proGenerate images from text prompts
Image resize/convertsipsmacOS native, fast, no deps
Advanced manipulationImageMagickCompositing, effects, batch processing
Icons & logosSVGScalable, small file size, editable
ScreenshotsscreencapturemacOS native

App Icon Generation

Generate all required sizes from a single 1024x1024 source icon.

iOS / macOS Icon Sizes

#!/bin/bash
# generate-app-icons.sh <source-1024.png> <output-dir>
SOURCE="$1"
OUTDIR="${2:-.}"
mkdir -p "$OUTDIR"

SIZES=(16 20 29 32 40 48 58 60 64 76 80 87 120 128 152 167 180 256 512 1024)
for SIZE in "${SIZES[@]}"; do
  sips -z $SIZE $SIZE "$SOURCE" --out "$OUTDIR/icon-${SIZE}x${SIZE}.png" 2>/dev/null
done
echo "Generated ${#SIZES[@]} icon sizes in $OUTDIR"

Android Icon Sizes

# Android adaptive icon sizes
declare -A ANDROID_SIZES=(
  ["mdpi"]=48 ["hdpi"]=72 ["xhdpi"]=96
  ["xxhdpi"]=144 ["xxxhdpi"]=192
)
for DENSITY in "${!ANDROID_SIZES[@]}"; do
  SIZE=${ANDROID_SIZES[$DENSITY]}
  mkdir -p "res/mipmap-$DENSITY"
  sips -z $SIZE $SIZE "$SOURCE" --out "res/mipmap-$DENSITY/ic_launcher.png"
done

Favicon Generation

#!/bin/bash
# generate-favicons.sh <source.png> <output-dir>
SOURCE="$1"
OUTDIR="${2:-.}"
mkdir -p "$OUTDIR"

# Standard web favicons
sips -z 16 16 "$SOURCE" --out "$OUTDIR/favicon-16x16.png"
sips -z 32 32 "$SOURCE" --out "$OUTDIR/favicon-32x32.png"
sips -z 180 180 "$SOURCE" --out "$OUTDIR/apple-touch-icon.png"
sips -z 192 192 "$SOURCE" --out "$OUTDIR/android-chrome-192x192.png"
sips -z 512 512 "$SOURCE" --out "$OUTDIR/android-chrome-512x512.png"

# ICO file (requires ImageMagick)
magick "$OUTDIR/favicon-16x16.png" "$OUTDIR/favicon-32x32.png" "$OUTDIR/favicon.ico"

echo "Favicons generated in $OUTDIR"

HTML Meta Tags

<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">

site.webmanifest

{
  "name": "My App",
  "short_name": "App",
  "icons": [
    { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
  ],
  "theme_color": "#ffffff",
  "background_color": "#ffffff",
  "display": "standalone"
}

Color Palette Generator

Given a primary color, generate a full palette:

// HSL-based palette generation
function generatePalette(hue, saturation = 70) {
  return {
    50:  `hsl(${hue}, ${saturation}%, 97%)`,
    100: `hsl(${hue}, ${saturation}%, 94%)`,
    200: `hsl(${hue}, ${saturation}%, 86%)`,
    300: `hsl(${hue}, ${saturation}%, 74%)`,
    400: `hsl(${hue}, ${saturation}%, 62%)`,
    500: `hsl(${hue}, ${saturation}%, 50%)`,  // Primary
    600: `hsl(${hue}, ${saturation}%, 42%)`,
    700: `hsl(${hue}, ${saturation}%, 34%)`,
    800: `hsl(${hue}, ${saturation}%, 26%)`,
    900: `hsl(${hue}, ${saturation}%, 18%)`,
    950: `hsl(${hue}, ${saturation}%, 10%)`,
  };
}

ImageMagick Quick Reference

# Resize
magick input.png -resize 800x600 output.png

# Convert format
magick input.png output.webp

# Add border
magick input.png -border 10 -bordercolor "#333" output.png

# Round corners (with transparency)
magick input.png \( +clone -alpha extract -draw "roundrectangle 0,0,%[w],%[h],20,20" \) -alpha off -compose CopyOpacity -composite output.png

# Composite / overlay
magick base.png overlay.png -gravity center -composite output.png

# Batch resize all PNGs
magick mogrify -resize 50% *.png

# Create solid color image
magick -size 1200x630 xc:"#1a1a2e" output.png

# Add text to image
magick input.png -gravity south -pointsize 24 -fill white -annotate +0+20 "Caption" output.png

sips Quick Reference (macOS)

# Resize (maintain aspect ratio)
sips --resampleWidth 800 input.png --out output.png

# Exact resize
sips -z 600 800 input.png --out output.png

# Convert format
sips -s format jpeg input.png --out output.jpg

# Get image info
sips -g all input.png

# Rotate
sips --rotate 90 input.png --out output.png

Source

git clone https://clawhub.ai/cmanfre7/design-assetsView on GitHub

Overview

Design assets covers creating and editing graphic elements such as icons, favicons, images, and color systems. It leverages macOS tools (sips, screencapture), ImageMagick, SVG for scalable assets, and AI image generation to streamline asset production across platforms.

How This Skill Works

Assets are produced from a single source icon (1024x1024) and transformed into platform-specific sizes using scripts like generate-app-icons.sh and generate-favicons.sh. SVG is used for scalable logos, and ImageMagick handles complex edits and batch processing; AI prompts can seed imagery.

When to Use It

  • When shipping a new app icon set for iOS, macOS, and Android
  • When creating a set of favicons and web icons for a site
  • When building a cohesive color system using a primary hue
  • When performing batch image edits or format conversions
  • When generating AI based concept images to seed assets

Quick Start

  1. Step 1: Prepare a 1024x1024 source icon
  2. Step 2: Run the icon and favicon generation scripts to create all sizes
  3. Step 3: Update your HTML with the favicons, apple-touch-icon, manifest, and apply the color palette to your CSS

Best Practices

  • Start from a single 1024x1024 source icon
  • Use SVG for icons to keep files scalable and editable
  • Automate size generation with the provided scripts
  • Validate favicons across platforms and include standard HTML meta tags
  • Document your color palette with HSL values and CSS variables

Example Use Cases

  • Generated iOS/macOS icons from a single 1024 icon
  • Created Android adaptive icons via shell scripts
  • Built favicon set and ICO using ImageMagick
  • Embedded meta tags and a site.webmanifest in a site
  • Generated a full color palette from a primary hue using an HSL-based generator

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers