View fix-principle.md

If you're using Principle 2.0.6, you're probably aware that its Sketch importer no longer works with Sketch 41. We've made some changes to the way our exporter works under the hood, and as a result they had to update a few lines of code on the plugin they run to import from Sketch.

Surprisingly, they've decided to make their fix available only for users of Principle 2.1 (a paid upgrade). If you'd rather not have to pay for a trivial fix, here's what you can do:

  • Download the trial for Principle 2.1 from https://principleformac.com
  • Right click the app bundle you just downloaded, choose "Show Package Contents", and navigate to Principle.app/Contents/Resources/
  • Select the script.js file and copy it (Cmd+C)
  • Now go to your Applications folder, right click Principle.app, choose "Show Package Contents" and navigate to Principle.app/Contents/Resources/
  • Paste script.js (Cmd+V)
  • Relaunch Principle 2.0.6
View sketch-image-compressor.md

Sketch Image Compressor (Beta)

A Plugin for Sketch that compresses your bitmap assets, to keep filesize to a minimum.

Please note that the compression is lossless, so no pixels will be harmed by running this Plugin : )

Installation

  • Download Sketch Image Compressor & unzip it.
  • Double click Sketch Image Compressor.sketchplugin to install the Plugin.
View unlock_pages.cocoascript
var pages = context.document.pages()
for (var i = 0; i < pages.count(); i++) {
pages.objectAtIndex(i).isVisible = 1
}
View README.md

This is what Craft does:

function loadFramework(pluginRoot) {
  if (NSClassFromString('PanelsManager') == null) {
    var mocha = [Mocha sharedRuntime];
    return [mocha loadFrameworkWithName:'Panels' inDirectory:pluginRoot];
  } else {
    return true;
  }
View sketch-diff-in-git.md

Using sketchtool to diff your .sketch files using text

Requirements

You need to have SketchTool installed somewhere in your path.

Setup

Add this in your ~/.gitconfig file (for some reason, it won't work in a local .gitconfig file):

View gist:9d820e8752cd69b028f0
// Disable all Blurs in document
var doc = context.document,
pages = doc.pages()
for (var i = 0; i < [pages count]; i++) {
var currentPage = [pages objectAtIndex:i]
var all_layers = [currentPage children]
for (var j = 0; j < [all_layers count]; j++) {
var current_layer = [all_layers objectAtIndex:j]
if(current_layer.style != undefined){
View gist:a43325131793f71a7b25
// Show All Layers in All Pages
var doc = context.document,
pages = doc.pages()
for (var i = 0; i < [pages count]; i++) {
var currentPage = [pages objectAtIndex:i]
var all_layers = [currentPage children]
for (var j = 0; j < [all_layers count]; j++) {
var current_layer = [all_layers objectAtIndex:j]
[current_layer setIsVisible:true]
View gist:9a2df820f2422537d5be
function copy_text(txt){
var pasteBoard = [NSPasteboard generalPasteboard]
[pasteBoard declareTypes:[NSArray arrayWithObject:NSPasteboardTypeString] owner:nil]
[pasteBoard setString:txt forType:NSPasteboardTypeString]
}
var s = context.selection[0]
var css = s.CSSAttributeString()
var framerCSS = css.replace("border-radius", "borderRadius")
View gist:b42f78bd61894de79582
13/10/15 23:46:03,067 Framer Studio Beta[48787]: -[NSWindow setTitleVisibility:]: unrecognized selector sent to instance 0x6080001ffc00
13/10/15 23:46:03,068 Framer Studio Beta[48787]: (
0 CoreFoundation 0x00007fff8882525c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff891cee75 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8882812d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00007fff88783272 ___forwarding___ + 1010
4 CoreFoundation 0x00007fff88782df8 _CF_forwarding_prep_0 + 120
5 Framer Studio Beta 0x000000010110af46 -[PDDocsWindowController windowDidLoad] + 163
6 AppKit 0x00007fff8caf73ac -[NSWindowController _windowDidLoad] + 450
7 AppKit 0x00007fff8caddfa6 -[NSWindowController window] + 110