Send art from Affinity/Figma to Cavalry in one click.
Quiver1-5-0Demo.mp4
- Import or paste SVGs from other software
- Supports editable text, embedded images, gradients, shadows, blurs and more
- Convert To Rectangle: create a rectangle from the bounding box of a selected layer
- Dynamic Align: Dynamically adjust the pivot point of a layer
- Flatten Shape: Flatten all selected shapes into one layer
- Horizontal/Vertical Text Alignment: Dynamically adjust horizontal/vertical text alignment
- Rename Layers: Renames all selected layers as [name] 1, [name] 2 etc.
Important
Make sure you have a Cavalry project selected.
- Copy the
Quiver.jscfile into your Cavalry Scripts folder. - Select the
Scriptsmenu and open Quiver.
Tip
For colours and blend modes that match Affinity, use sRGB as Cavalry's working colour space (or leave Color Management off).
- In Affinity, go to Settings > Scripting and turn on Enable Affinity Scripting.
- Under Default Permissions, allow Access the file system and Access networks, then add your Desktop under File System Access.
- Drag the
Quiver for Affinity.afscriptsfile into your Affinity app. - Open Window > Scripting > Scripts Library and click Quiver for Affinity.
Open the Actions menu and search for Quiver.
Then, select a frame and click Fire Towards Cavalry.
Otherwise click Paste to fire an SVG from your clipboard, or click Import to select a file.
See Preparing your SVGs to make sure your SVG files have the right settings.
Converts selected shapes to rectangles while preserving:
- Fill and stroke styling
- Opacity and blend modes
- Position and hierarchy
Automatically adjusts anchor points based on layer scale. Useful for maintaining alignment during animations
Flattens complex shapes into simpler editable paths.
Automatically adjusts position of text when changing text alignment. Useful for maintaining position and original design.
Batch rename selected layers. Eg. [name] 1, [name] 2 etc.
(We recommend using the Figma Plugin above for full functionality)
- Select the frame you want to export
- Under Export in the side panel, select SVG
- Click the 3 dots and ensure your settings match below:
- Include bounding box
- Include "id" attribute (this retains layer names)
- Simplify Stroke
- Outline Text
- Ignore overlapping layers
- Export or copy your frame as SVG!
| Feature name | Supported |
|---|---|
| Rectangles, ellipses, polygons, stars | β (as live shapes) |
| Curves and paths | β |
| Live corners | β |
| Artboards | β (as compositions) |
| Art and frame text | β |
| Text styling (fonts, size, colour, tracking, leading) | β |
| Variable fonts | β (limited) |
| Text on a path, filler text | β (outlined) |
| Text columns, table text | β |
| Solid and gradient fills | β |
| Multiple fills and strokes | β |
| Fill layers | β |
| Pattern fills | β |
| Mesh, hatch and diffusion fills | β |
| Strokes and dashes | β |
| Pressure profiles | β |
| Vector brushes | β |
| Arrowheads | β |
| Placed images | β |
| Pixel and RAW layers | β |
| Embedded documents | β (as an image) |
| Opacity and Transparency tool | β |
| Blend modes | β (most) |
| Clipping and masks | β |
| Shadows, glows, blur, colour and gradient overlay, outline | β |
| Bevel and emboss | β |
| Adjustments and live filters | β (most) |
| CMYK documents | β |
| Feature name | Supported |
|---|---|
Rectangles <rect> |
β |
Circles <circle> |
β |
Ellipse <ellipse> |
β |
Paths <path> |
β |
Polygons <polygon> |
β |
Lines <line> |
β |
Polyline <polyline> |
β |
Text <text> |
β |
| Text alignment | β |
| Variable fonts | β (limited) |
| Emojis | β |
Tspan <tspan> |
β |
| Color | β |
| Opacity | β |
| Linear gradient | β |
| Radial gradient | β |
| Angular gradient | β |
| Diamond gradient | β |
| Strokes | β |
| Stroke dashes | β |
| Line caps | β |
| Line joins | β |
| Drop shadows | β |
| Inner shadows | β |
| Blur | β |
| Images | β |
| Patterns | β |
| Blend modes | β |
| Masks and clip paths | β |
| Background blur | β |
| Glass | β (Figma plugin) |
Made possible by your friends in the Canva Creative Team.
Idea and main development by Jack Jaeschke. UI, icons and additional development assistance by Sam Mularczyk. Repo maintained by Phillip Tibballs, Jack Jaeschke and Sam Mularczyk. Made with Claude.
Feel free to open pull requests, dig through the code and use this to build your own tools. We release these freely to help further the Cavalry community!
MIT

