Prototype in Framer without coding
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Stitch Playground.framer
Download Playground.png
Stitch Playground.png
Stitch Playground.sketch


Stitch is a lightweight framework for adding interaction to your Framer prototypes directly from your Sketch designs. View Demo

Use the built-in components, or build your own on top of Stitch and share them with the community!

This is an early beta - feedback welcome.


Checkout the Framer playground prototype - all of the interaction was added automatically with Stitch using only folder names from Sketch.

![Sketch Playground](/Stitch Playground.png)

You can download all the source files below:


Adding Stitch to your Prototype

Add to the modules directory of your Framer prototype.

Import Stitch:

Stitch = require('stitch').Stitch

Instantiate Stitch on your Sketch/Photoshop layers:

new Stitch layers

Triggering Stitch Components

Triggering Stitch components is done through the naming of your folders in Sketch.


So, in order to make one of your folders scrollable, all you have to do is add ___scroll to your layer name:


If your mainLayer is taller or wider than the prototype device, Stitch will automatically add scrolling functionality within the bounds of the device.

If you want explicitly set the height of the scrollable container, you can do so with arguments:


If you want to pass a parameter with the boolean value true, either include true as the value, or leave the value out:


This would instantiate the scroll component with the parameters object { pagination: true }

Adding Components

At the most basic level, a component consists simply of a trigger word and a function.

For example, let's create a new component for making toggles. Create a new file in your prototype's modules directory called

At the bare minimum, this file needs to export your component:

exports.toggle = (layer, name, layers, params) ->
  # do your magic here

Let's first pretend you have a folder in your Sketch document named myToggle___toggle__start_on.

When your component is called by Stitch, it will pass a series of arguments:


This is the layer that triggered the component, or in our case, myToggle___toggle__start_on.


This is the root name of the layer, without the component triggers, or in our case, myToggle.


This contains all the layers that were passed to the Stitch instance. In most cases this would refer to your entire Sketch document.


This is an object of all the parameters set by the folder name in Sketch. In our case, this would return:

  start: on



Use the [Stitch Sample](/Stitch Sample.sketch) Sketch file as a guide. More documentation to come.

  • Vertical and horizontal scrolling
  • Paginate sub-folders
  • Pagination indicators
  • Reference the full-length content from another artboard


Matt Johnston - @mattsjohnston