{
  "schemaVersion": "1.0",
  "item": {
    "slug": "design-assets",
    "name": "Design Assets",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/cmanfre7/design-assets",
    "canonicalUrl": "https://clawhub.ai/cmanfre7/design-assets",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/design-assets",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=design-assets",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/design-assets"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/design-assets",
    "agentPageUrl": "https://openagent3.xyz/skills/design-assets/agent",
    "manifestUrl": "https://openagent3.xyz/skills/design-assets/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/design-assets/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "design-assets",
        "body": "Create and edit graphic design assets: icons, favicons, images, and color systems."
      },
      {
        "title": "Tool Selection",
        "body": "TaskToolWhyAI image generationnano-banana-proGenerate images from text promptsImage resize/convertsipsmacOS native, fast, no depsAdvanced manipulationImageMagickCompositing, effects, batch processingIcons & logosSVGScalable, small file size, editableScreenshotsscreencapturemacOS native"
      },
      {
        "title": "App Icon Generation",
        "body": "Generate all required sizes from a single 1024x1024 source icon."
      },
      {
        "title": "iOS / macOS Icon Sizes",
        "body": "#!/bin/bash\n# generate-app-icons.sh <source-1024.png> <output-dir>\nSOURCE=\"$1\"\nOUTDIR=\"${2:-.}\"\nmkdir -p \"$OUTDIR\"\n\nSIZES=(16 20 29 32 40 48 58 60 64 76 80 87 120 128 152 167 180 256 512 1024)\nfor SIZE in \"${SIZES[@]}\"; do\n  sips -z $SIZE $SIZE \"$SOURCE\" --out \"$OUTDIR/icon-${SIZE}x${SIZE}.png\" 2>/dev/null\ndone\necho \"Generated ${#SIZES[@]} icon sizes in $OUTDIR\""
      },
      {
        "title": "Android Icon Sizes",
        "body": "# Android adaptive icon sizes\ndeclare -A ANDROID_SIZES=(\n  [\"mdpi\"]=48 [\"hdpi\"]=72 [\"xhdpi\"]=96\n  [\"xxhdpi\"]=144 [\"xxxhdpi\"]=192\n)\nfor DENSITY in \"${!ANDROID_SIZES[@]}\"; do\n  SIZE=${ANDROID_SIZES[$DENSITY]}\n  mkdir -p \"res/mipmap-$DENSITY\"\n  sips -z $SIZE $SIZE \"$SOURCE\" --out \"res/mipmap-$DENSITY/ic_launcher.png\"\ndone"
      },
      {
        "title": "Favicon Generation",
        "body": "#!/bin/bash\n# generate-favicons.sh <source.png> <output-dir>\nSOURCE=\"$1\"\nOUTDIR=\"${2:-.}\"\nmkdir -p \"$OUTDIR\"\n\n# Standard web favicons\nsips -z 16 16 \"$SOURCE\" --out \"$OUTDIR/favicon-16x16.png\"\nsips -z 32 32 \"$SOURCE\" --out \"$OUTDIR/favicon-32x32.png\"\nsips -z 180 180 \"$SOURCE\" --out \"$OUTDIR/apple-touch-icon.png\"\nsips -z 192 192 \"$SOURCE\" --out \"$OUTDIR/android-chrome-192x192.png\"\nsips -z 512 512 \"$SOURCE\" --out \"$OUTDIR/android-chrome-512x512.png\"\n\n# ICO file (requires ImageMagick)\nmagick \"$OUTDIR/favicon-16x16.png\" \"$OUTDIR/favicon-32x32.png\" \"$OUTDIR/favicon.ico\"\n\necho \"Favicons generated in $OUTDIR\""
      },
      {
        "title": "HTML Meta Tags",
        "body": "<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicon-32x32.png\">\n<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicon-16x16.png\">\n<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/apple-touch-icon.png\">\n<link rel=\"manifest\" href=\"/site.webmanifest\">"
      },
      {
        "title": "site.webmanifest",
        "body": "{\n  \"name\": \"My App\",\n  \"short_name\": \"App\",\n  \"icons\": [\n    { \"src\": \"/android-chrome-192x192.png\", \"sizes\": \"192x192\", \"type\": \"image/png\" },\n    { \"src\": \"/android-chrome-512x512.png\", \"sizes\": \"512x512\", \"type\": \"image/png\" }\n  ],\n  \"theme_color\": \"#ffffff\",\n  \"background_color\": \"#ffffff\",\n  \"display\": \"standalone\"\n}"
      },
      {
        "title": "Color Palette Generator",
        "body": "Given a primary color, generate a full palette:\n\n// HSL-based palette generation\nfunction generatePalette(hue, saturation = 70) {\n  return {\n    50:  `hsl(${hue}, ${saturation}%, 97%)`,\n    100: `hsl(${hue}, ${saturation}%, 94%)`,\n    200: `hsl(${hue}, ${saturation}%, 86%)`,\n    300: `hsl(${hue}, ${saturation}%, 74%)`,\n    400: `hsl(${hue}, ${saturation}%, 62%)`,\n    500: `hsl(${hue}, ${saturation}%, 50%)`,  // Primary\n    600: `hsl(${hue}, ${saturation}%, 42%)`,\n    700: `hsl(${hue}, ${saturation}%, 34%)`,\n    800: `hsl(${hue}, ${saturation}%, 26%)`,\n    900: `hsl(${hue}, ${saturation}%, 18%)`,\n    950: `hsl(${hue}, ${saturation}%, 10%)`,\n  };\n}"
      },
      {
        "title": "ImageMagick Quick Reference",
        "body": "# Resize\nmagick input.png -resize 800x600 output.png\n\n# Convert format\nmagick input.png output.webp\n\n# Add border\nmagick input.png -border 10 -bordercolor \"#333\" output.png\n\n# Round corners (with transparency)\nmagick input.png \\( +clone -alpha extract -draw \"roundrectangle 0,0,%[w],%[h],20,20\" \\) -alpha off -compose CopyOpacity -composite output.png\n\n# Composite / overlay\nmagick base.png overlay.png -gravity center -composite output.png\n\n# Batch resize all PNGs\nmagick mogrify -resize 50% *.png\n\n# Create solid color image\nmagick -size 1200x630 xc:\"#1a1a2e\" output.png\n\n# Add text to image\nmagick input.png -gravity south -pointsize 24 -fill white -annotate +0+20 \"Caption\" output.png"
      },
      {
        "title": "sips Quick Reference (macOS)",
        "body": "# Resize (maintain aspect ratio)\nsips --resampleWidth 800 input.png --out output.png\n\n# Exact resize\nsips -z 600 800 input.png --out output.png\n\n# Convert format\nsips -s format jpeg input.png --out output.jpg\n\n# Get image info\nsips -g all input.png\n\n# Rotate\nsips --rotate 90 input.png --out output.png"
      }
    ],
    "body": "design-assets\n\nCreate and edit graphic design assets: icons, favicons, images, and color systems.\n\nTool Selection\nTask\tTool\tWhy\nAI image generation\tnano-banana-pro\tGenerate images from text prompts\nImage resize/convert\tsips\tmacOS native, fast, no deps\nAdvanced manipulation\tImageMagick\tCompositing, effects, batch processing\nIcons & logos\tSVG\tScalable, small file size, editable\nScreenshots\tscreencapture\tmacOS native\nApp Icon Generation\n\nGenerate all required sizes from a single 1024x1024 source icon.\n\niOS / macOS Icon Sizes\n#!/bin/bash\n# generate-app-icons.sh <source-1024.png> <output-dir>\nSOURCE=\"$1\"\nOUTDIR=\"${2:-.}\"\nmkdir -p \"$OUTDIR\"\n\nSIZES=(16 20 29 32 40 48 58 60 64 76 80 87 120 128 152 167 180 256 512 1024)\nfor SIZE in \"${SIZES[@]}\"; do\n  sips -z $SIZE $SIZE \"$SOURCE\" --out \"$OUTDIR/icon-${SIZE}x${SIZE}.png\" 2>/dev/null\ndone\necho \"Generated ${#SIZES[@]} icon sizes in $OUTDIR\"\n\nAndroid Icon Sizes\n# Android adaptive icon sizes\ndeclare -A ANDROID_SIZES=(\n  [\"mdpi\"]=48 [\"hdpi\"]=72 [\"xhdpi\"]=96\n  [\"xxhdpi\"]=144 [\"xxxhdpi\"]=192\n)\nfor DENSITY in \"${!ANDROID_SIZES[@]}\"; do\n  SIZE=${ANDROID_SIZES[$DENSITY]}\n  mkdir -p \"res/mipmap-$DENSITY\"\n  sips -z $SIZE $SIZE \"$SOURCE\" --out \"res/mipmap-$DENSITY/ic_launcher.png\"\ndone\n\nFavicon Generation\n#!/bin/bash\n# generate-favicons.sh <source.png> <output-dir>\nSOURCE=\"$1\"\nOUTDIR=\"${2:-.}\"\nmkdir -p \"$OUTDIR\"\n\n# Standard web favicons\nsips -z 16 16 \"$SOURCE\" --out \"$OUTDIR/favicon-16x16.png\"\nsips -z 32 32 \"$SOURCE\" --out \"$OUTDIR/favicon-32x32.png\"\nsips -z 180 180 \"$SOURCE\" --out \"$OUTDIR/apple-touch-icon.png\"\nsips -z 192 192 \"$SOURCE\" --out \"$OUTDIR/android-chrome-192x192.png\"\nsips -z 512 512 \"$SOURCE\" --out \"$OUTDIR/android-chrome-512x512.png\"\n\n# ICO file (requires ImageMagick)\nmagick \"$OUTDIR/favicon-16x16.png\" \"$OUTDIR/favicon-32x32.png\" \"$OUTDIR/favicon.ico\"\n\necho \"Favicons generated in $OUTDIR\"\n\nHTML Meta Tags\n<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicon-32x32.png\">\n<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicon-16x16.png\">\n<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/apple-touch-icon.png\">\n<link rel=\"manifest\" href=\"/site.webmanifest\">\n\nsite.webmanifest\n{\n  \"name\": \"My App\",\n  \"short_name\": \"App\",\n  \"icons\": [\n    { \"src\": \"/android-chrome-192x192.png\", \"sizes\": \"192x192\", \"type\": \"image/png\" },\n    { \"src\": \"/android-chrome-512x512.png\", \"sizes\": \"512x512\", \"type\": \"image/png\" }\n  ],\n  \"theme_color\": \"#ffffff\",\n  \"background_color\": \"#ffffff\",\n  \"display\": \"standalone\"\n}\n\nColor Palette Generator\n\nGiven a primary color, generate a full palette:\n\n// HSL-based palette generation\nfunction generatePalette(hue, saturation = 70) {\n  return {\n    50:  `hsl(${hue}, ${saturation}%, 97%)`,\n    100: `hsl(${hue}, ${saturation}%, 94%)`,\n    200: `hsl(${hue}, ${saturation}%, 86%)`,\n    300: `hsl(${hue}, ${saturation}%, 74%)`,\n    400: `hsl(${hue}, ${saturation}%, 62%)`,\n    500: `hsl(${hue}, ${saturation}%, 50%)`,  // Primary\n    600: `hsl(${hue}, ${saturation}%, 42%)`,\n    700: `hsl(${hue}, ${saturation}%, 34%)`,\n    800: `hsl(${hue}, ${saturation}%, 26%)`,\n    900: `hsl(${hue}, ${saturation}%, 18%)`,\n    950: `hsl(${hue}, ${saturation}%, 10%)`,\n  };\n}\n\nImageMagick Quick Reference\n# Resize\nmagick input.png -resize 800x600 output.png\n\n# Convert format\nmagick input.png output.webp\n\n# Add border\nmagick input.png -border 10 -bordercolor \"#333\" output.png\n\n# Round corners (with transparency)\nmagick input.png \\( +clone -alpha extract -draw \"roundrectangle 0,0,%[w],%[h],20,20\" \\) -alpha off -compose CopyOpacity -composite output.png\n\n# Composite / overlay\nmagick base.png overlay.png -gravity center -composite output.png\n\n# Batch resize all PNGs\nmagick mogrify -resize 50% *.png\n\n# Create solid color image\nmagick -size 1200x630 xc:\"#1a1a2e\" output.png\n\n# Add text to image\nmagick input.png -gravity south -pointsize 24 -fill white -annotate +0+20 \"Caption\" output.png\n\nsips Quick Reference (macOS)\n# Resize (maintain aspect ratio)\nsips --resampleWidth 800 input.png --out output.png\n\n# Exact resize\nsips -z 600 800 input.png --out output.png\n\n# Convert format\nsips -s format jpeg input.png --out output.jpg\n\n# Get image info\nsips -g all input.png\n\n# Rotate\nsips --rotate 90 input.png --out output.png"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cmanfre7/design-assets",
    "publisherUrl": "https://clawhub.ai/cmanfre7/design-assets",
    "owner": "cmanfre7",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/design-assets",
    "downloadUrl": "https://openagent3.xyz/downloads/design-assets",
    "agentUrl": "https://openagent3.xyz/skills/design-assets/agent",
    "manifestUrl": "https://openagent3.xyz/skills/design-assets/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/design-assets/agent.md"
  }
}