SVG Editor - Online Vector Drawing & Code Tool
Draw and edit SVG vector graphics in the browser. Basic shapes, text, and freehand. Export raw SVG code or as a file. No server, fully local.
UD5 Toolkit
stroke-dasharray and stroke-dashoffset to control which parts of a path are visible, creating the illusion of a pen tracing the outline. This technique is widely used for logo animations, icon reveals, and artistic web effects.stroke-dasharray defines the pattern of dashes and gaps on a stroke. For line animations, you set it to the total path length so the entire path becomes one long "dash." stroke-dashoffset shifts this dash pattern. By animating stroke-dashoffset from the path length down to 0, the dash appears to gradually reveal the entire path. The path length is obtained using JavaScript's getTotalLength() method.<path> elements within your SVG can be animated together. Simply apply the same CSS animation class to each path, or use a group selector. Each path will need its own stroke-dasharray value matching its individual length. Our tool automatically calculates lengths for all paths in your SVG and generates the appropriate CSS rules.getTotalLength() method has near-universal support. For IE11, a polyfill or fallback may be needed.animation-iteration-count property to infinite. In our tool, select "infinite (loop)" from the Iterations dropdown. For a smooth continuous loop, you may also want to use the alternate animation direction, which makes the line draw and then undraw in a seamless cycle.getTotalLength() method on SVG <path> elements. Simply select the path element and call this method to get its exact length in user units. For example: document.querySelector('path').getTotalLength(). This tool automatically performs this calculation for you and displays the result in the preview area.<path> elements or the entire SVG code. Paste it into our Custom input area. The tool will automatically extract all paths, calculate their lengths, and generate animation code. For best results, use outlined/stroked artwork rather than filled shapes.stroke-dasharray value is smaller than the actual path length, causing the dash to repeat. Always use getTotalLength() for accuracy. (2) The path has multiple disconnected sub-paths (multiple 'M' commands) — getTotalLength() sums all sub-paths, but each sub-path animates simultaneously. (3) Stroke-linecap rounding can cause slight visual artifacts at path endpoints.Draw and edit SVG vector graphics in the browser. Basic shapes, text, and freehand. Export raw SVG code or as a file. No server, fully local.
Create smooth, animated CSS waves (like water or sound) by adjusting amplitude, colors, and speed. Copy the ready‑to‑use SVG/CSS code.
Upload multiple SVGs and combine them into a single icon font (TTF, WOFF). Also get the CSS classes. Client‑side conversion.
Generate flowing geometric art by layering sine waves with different frequencies, amplitudes, and colors. Download SVG.
Generate and print custom calligraphy practice sheets with adjustable x-height, slant angle, and base line. Perfect for copperplate or Spencerian.
Paste an HTML snippet and convert it into an SVG image that visually replicates the DOM. Useful for creating static snapshots. Local canvas rendering.
Use trigonometric functions in CSS to create circular animations and layouts without JavaScript. See the code.
Upload a font file or specify a URL and generate the complete @font‑face rule with modern formats and font‑display. Copy instantly.
Assign a CSS class to any emoji and generate a snippet that displays the emoji as a background image or pseudo element. Useful for icon systems.
Create styled text using Unicode math symbols that render as bold, italic, bold-italic, etc. Copy and paste to social media bios. Local generator.
Parse an SVG path’s d attribute and list all the commands and absolute coordinates. Convert relative to absolute. Local.
Wrap your text inside an ASCII art frame or bubble. Multiple designs (speech bubble, box). Copy to clipboard.
Upload an image and convert it into a paint-by-numbers outline with numbered palette. Adjust complexity. Print and paint. Local processing.
Paste an SVG file and extract all path data. Clean and copy individual d strings. For icon manipulation.
Build perfect Open Graph meta tags for rich social media previews. Preview how your link will look on Facebook and LinkedIn. Structured data tools for better CTR.
Turn any photo into a greyscale pencil sketch. Adjust detail level and darkness. Download your artwork. Local canvas filter.
Upload a photo and turn it into an optimized Open Graph image with title overlay. Perfect for blog social shares. Canvas.
Generate random but realistic‑looking data arrays (users, products, orders) with typos and missing fields. For test robustness.
Generate a random, completely fake analytics dashboard snippet. 'Bounce rate: 98% from Mars.' Geeky humor.
Generate a hardboiled film noir plot with a detective, a dame, and a McGuffin. Great for creative writing prompts.
Create a fake WhatsApp/iMessage chat screenshot. Customize names, messages, and timestamps. Just for fun.
Enter a URL to see exactly what Open Graph and Twitter card tags will be shown when shared on social media. Fetch from browser.
Turn every line of a text file into a separate JSON object in a JSONL file. Configure key name and add line numbers. Perfect for data importing.
Generate strong, memorable passphrases using the Diceware word list (EFF). Choose number of words. Cryprographically random selection. Privacy guaranteed.
Generate a DKIM DNS record from a public key and selector. Check syntax. Improve your domain’s email deliverability.
Enter an amount and see a virtual stack of $100 bills with height comparison to everyday objects.
Experiment with exponential, square root, and hypotenuse functions in CSS. See live computed values. Modern CSS math.
Convert HTML to plain text while preserving paragraph breaks. Remove images, links, and scripts. Quick data extraction.
Generate ultra-secure, random passwords with configurable length and character sets. Created entirely on your device; never transmitted or stored.
Generate Argon2id hashes in the browser using a WASM compilation. Choose memory, iterations, and parallelism. Secure local hashing.