svg
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
viewBoxon 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:
idon key groups,classfor 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).
- Avoid:
- 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.
-
Target environment (drives compatibility)
- Web / inline HTML
- PowerPoint / Office
- HMI/SCADA tool (name/version if known)
- Engineering doc pipeline (PDF export, Visio, etc.)
-
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}$
-
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
-
Content + semantics
- What objects exist (symbols, instruments, pipes, arrows, labels)
- Layering needs (background, pipework, instrumentation, callouts)
- Text rules (font family, size, casing, alignment)
-
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,
markerarrows (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-name__v1__editable.svgasset-name__v1__outlined.svgasset-name__dark.svgasset-name__light.svgasset-name__scale-0-100.svg
Save files into a logical folder (e.g., assets/svg/ or a user-specified directory).
More from tazomatalax/context-engineering
canvas-design
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
7pptx
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
6docx
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
6xlsx
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
6frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
6skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
6