Skip to content
phillip-motionPublic

About

Making SVG import into Cavalry as smooth as drawing an arrow and letting it fly 🏹

Resources

Stars

130 stars

Watchers

3 watching

Forks

Latest commit

Β 

History

116 Commits

Folders and files

Repository files navigation

quiver_logo

Launch your designs into Cavalry 🏹

Send art from Affinity/Figma to Cavalry in one click.

quiver_download

Download for Cavalry Download for Affinity Add to Figma

Demo

Quiver1-5-0Demo.mp4

Other features

  • 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.

Install

Important

Make sure you have a Cavalry project selected.

Cavalry

  1. Copy the Quiver.jsc file into your Cavalry Scripts folder.
  2. Select the Scripts menu and open Quiver.

Affinity

Tip

For colours and blend modes that match Affinity, use sRGB as Cavalry's working colour space (or leave Color Management off).

  1. In Affinity, go to Settings > Scripting and turn on Enable Affinity Scripting.
  2. Under Default Permissions, allow Access the file system and Access networks, then add your Desktop under File System Access.
  3. Drag the Quiver for Affinity.afscripts file into your Affinity app.
  4. Open Window > Scripting > Scripts Library and click Quiver for Affinity.

Figma

Open the Actions menu and search for Quiver.

Open Quiver in Figma

Then, select a frame and click Fire Towards Cavalry.

Click the Fire button.

Manual import

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.

Convert to Rectangle

Converts selected shapes to rectangles while preserving:

  • Fill and stroke styling
  • Opacity and blend modes
  • Position and hierarchy

Dynamic Align

Automatically adjusts anchor points based on layer scale. Useful for maintaining alignment during animations

Flatten Shape

Flattens complex shapes into simpler editable paths.

Horizontal/Vertical Text Alignment

Automatically adjusts position of text when changing text alignment. Useful for maintaining position and original design.

Rename Layers

Batch rename selected layers. Eg. [name] 1, [name] 2 etc.

Manual import

(We recommend using the Figma Plugin above for full functionality)

Figma

  1. Select the frame you want to export
  2. Under Export in the side panel, select SVG
  3. 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
  1. Export or copy your frame as SVG!

Affinity features

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 βœ…

Figma features

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)

Credits

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!

License

MIT

About

Making SVG import into Cavalry as smooth as drawing an arrow and letting it fly 🏹

Resources

Stars

130 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages