smithery.ai

svg

Create precise, production-ready SVG graphics for technical and business contexts (diagrams, P&IDs, HMI/SCADA widgets, process flow visuals, PowerPoint/Office illustrations, UI icons, annotations).

First seen Apr 25, 2026

Installation

$ npx skills add https://smithery.ai

Summary

  • Create precise, production-ready SVG graphics for technical and business contexts (diagrams, P&IDs, HMI/SCADA widgets, process flow visuals, PowerPoint/Office illustrations, UI icons, annotations).
  • Use when the user asks to generate, edit, standardize, optimize, or export SVG artwork; convert requirements (dimensions, scale, line weights, layers, symbols) into clean SVG markup; or produce multiple layout/variant files (editable vs outlined text, light/dark, monochrome).

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,664 B
  • docs SUMMARY.md 485 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

SVG Creation Guide

Create clean, scalable SVG that is easy to edit, prints well, and survives “real-world” tooling (PowerPoint, browser, PDF export, HMI toolchains).

Working rules (keep SVG dependable)

  • Use a viewBox on every SVG.
  • Keep geometry simple: prefer path, rect, circle, line, polyline, polygon.
  • Prefer strokes for technical drawings; prefer fills for pictograms.
  • Use consistent naming and grouping: id on key groups, class for reusable styling.
  • Avoid renderer-fragile features unless asked:

- Avoid: filter, mask, clipPath, foreignObject, blend modes, external images/fonts. - Use gradients sparingly; keep them simple (linearGradient/radialGradient).

  • Keep decimal precision reasonable (typically 2–3 decimals). Do not over-optimize readability away.

Requirements to capture (ask only what matters)

Capture enough to produce the correct output on the first pass.

  1. Target environment (drives compatibility)

- Web / inline HTML - PowerPoint / Office - HMI/SCADA tool (name/version if known) - Engineering doc pipeline (PDF export, Visio, etc.)

  1. Canvas + scale

- Desired physical size (mm/in) or slide size intent - Coordinate system preference (e.g., “0–100 grid”, “millimeters”, “pixels”) - Any snapping/grid requirements

Useful conversions (SVG assumes 96 DPI for CSS pixels): - $1\,\text{in} = 96\,\text{px}$ - $1\,\text{mm} = 96/25.4 \approx 3.7795\,\text{px}$

  1. Styling constraints

- Stroke widths (e.g., 1.5 for primary lines, 1.0 for secondary) - Line caps/joins (round vs square) - Color palette (include corporate colors if relevant) - Light/dark background expectations

  1. Content + semantics

- What objects exist (symbols, instruments, pipes, arrows, labels) - Layering needs (background, pipework, instrumentation, callouts) - Text rules (font family, size, casing, alignment)

  1. Deliverables

- Number of variants (size/layout/color) - Editable text vs outlined text requirements - File naming convention and destination folder

Output patterns (choose the right one)

Pattern A: Technical diagram / P&ID style

Use strokes, consistent line weights, and a simple palette. Prefer vector-effect="non-scaling-stroke" when objects will be scaled.

Key tips:

  • Keep symbols as <g id="symbol-*"> groups.
  • Use stroke="currentColor" on symbols when you want themeable line art.
  • Align to a grid; keep elbows crisp with polyline.

Pattern B: PowerPoint/Office-friendly illustration

Prioritize compatibility:

  • Prefer inline presentation attributes (fill, stroke, stroke-width) over heavy CSS.
  • Avoid: masks/filters, complex gradients, marker arrows (Office support varies).
  • Keep text as <text> if the user wants to edit labels in PPT.
  • If the user needs pixel-perfect portability, provide an “outlined” version (text converted to paths) and warn it is no longer editable.

Pattern C: HMI/SCADA widget

Design for clarity at small sizes and for interaction:

  • Use generous hit areas (transparent rect with fill="transparent" for click/touch zones).
  • Keep state styling isolated (.state-ok, .state-alarm, .state-disabled).
  • Separate “skin” from “labels” so integrators can map tags and states.

SVG skeleton (recommended)

Use this as the default structure.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 200" width="300" height="200" role="img" aria-labelledby="title desc">
  <title id="title">Diagram title</title>
  <desc id="desc">Short description of what is shown</desc>

  <defs>
    <style>
      .line { fill: none; stroke: #111827; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
      .thin { stroke-width: 1; }
      .fill { fill: #F3F4F6; }
      .text { fill: #111827; font-family: Arial, sans-serif; font-size: 12px; }
    </style>
  </defs>

  <g id="layer-background"></g>
  <g id="layer-geometry"></g>
  <g id="layer-annotations"></g>
</svg>

If targeting PowerPoint/Office and compatibility is uncertain, repeat critical attributes inline on elements (Office can be picky about CSS).

Reference examples (copy/paste building blocks)

1) P&ID-style pipe with arrow and tag

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 80" width="240" height="80">
  <g id="pipe" stroke="#111827" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke">
    <polyline points="20,40 160,40" />
    <!-- arrow head (Office-friendly: polygon instead of marker) -->
    <polygon points="160,32 160,48 178,40" fill="#111827" stroke="none" />
  </g>

  <g id="tag">
    <rect x="185" y="24" width="45" height="32" rx="6" fill="#FFFFFF" stroke="#111827" stroke-width="2" />
    <text x="207.5" y="45" text-anchor="middle" font-family="Arial, sans-serif" font-size="12" fill="#111827">P-101</text>
  </g>
</svg>

2) Simple valve symbol (line-art)

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 40" width="120" height="40">
  <g id="valve" stroke="#111827" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke">
    <line x1="10" y1="20" x2="35" y2="20" />
    <line x1="85" y1="20" x2="110" y2="20" />
    <polygon points="35,8 60,20 35,32" />
    <polygon points="85,8 60,20 85,32" />
  </g>
</svg>

3) HMI button (states via classes)

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 70" width="220" height="70">
  <defs>
    <style>
      .btn { stroke: #0F172A; stroke-width: 2; rx: 12; }
      .ok { fill: #22C55E; }
      .alarm { fill: #EF4444; }
      .disabled { fill: #CBD5E1; }
      .label { fill: #0F172A; font-family: Arial, sans-serif; font-size: 16px; font-weight: 700; }
    </style>
  </defs>

  <g id="button" class="ok">
    <rect class="btn ok" x="10" y="10" width="200" height="50" />
    <text class="label" x="110" y="42" text-anchor="middle" dominant-baseline="middle">START</text>
    <!-- hit area -->
    <rect x="10" y="10" width="200" height="50" fill="transparent" />
  </g>
</svg>

Quality checklist (run mentally before delivering)

  • Include viewBox; ensure shapes fit the viewBox with sane margins.
  • Keep stroke widths consistent and intentional.
  • Ensure text alignment is correct (text-anchor, dominant-baseline).
  • Keep groups layered predictably (layer-*).
  • Avoid external dependencies (no linked fonts/images) unless requested.
  • If PowerPoint/Office is the target, avoid unsupported features and prefer inline attributes.

File outputs

When saving multiple variants, use a naming convention that encodes intent:

  • asset-namev1editable.svg
  • asset-namev1outlined.svg
  • asset-name__dark.svg
  • asset-name__light.svg
  • asset-name__scale-0-100.svg

Save files into a logical folder (e.g., assets/svg/ or a user-specified directory).