Last active
June 14, 2020 03:47
-
-
Save tankxu/e58f11dbd3b0ac73e2fb86d2ca36eb2e to your computer and use it in GitHub Desktop.
Sketch Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A list of sketch scripts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var ctx = null; | |
var sliceMaster = function(){} | |
sliceMaster.prototype = { | |
run: function() { | |
var theLayer; | |
//所选的图层合集 | |
var loopLayer = ctx.selection.objectEnumerator(); | |
//遍历图层 | |
while (theLayer = loopLayer.nextObject()) { | |
this.handleSlice(theLayer); | |
} | |
}, | |
handleSlice: function(layer) { | |
//新建一个 group 然后把 icon 移进去 | |
var iconLayer = layer.layers()[0] | |
var group = MSLayerGroup.new(); | |
group.setName('Icon'); | |
group.moveToLayer_beforeLayer(layer, layer.firstLayer()); | |
iconLayer.moveToLayer_beforeLayer(group, group.firstLayer()); | |
//基于选择的图层创建切片 | |
var slice = MSSliceLayer.sliceLayerFromLayer(layer); | |
slice.setName(layer.name().replace(/(.+\/)/, "")); | |
slice.makeOriginIntegral(); | |
//移动切片到群组末端 | |
slice.moveToLayer_beforeLayer(group, group.firstLayer()); | |
//使导出切片去除背景,export group contents only | |
slice.exportOptions().setLayerOptions(2); | |
var sliceFormat = MSExportPreset.allExportPresets()[3].exportFormats() | |
slice.exportOptions().setExportFormats(sliceFormat); | |
ctx.document.reloadInspector(); | |
//resize group | |
group.fixGeometryWithOptions(0); | |
//给 group 添加 mask | |
group.hasClippingMask = true; | |
} | |
} | |
var onRun = function(context) { | |
ctx = context; | |
new sliceMaster().run(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sketch = require("sketch"); | |
var selection = sketch.getSelectedDocument().selectedLayers.layers; | |
var n = 800 | |
selection.forEach(function(layer) { | |
layer.text = "$color-blue-" + n | |
n = n - 100 | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sketch = require("sketch"); | |
var selection = sketch.getSelectedDocument().selectedLayers.layers; | |
selection.forEach(function(layer) { | |
var colorLayer = layer.parent.layers[0].style.fills["0"].color; | |
layer.text = colorLayer.replace(/ff$/,"") | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var document = context.document; | |
var selection = context.selection; | |
var loopSelection = selection.objectEnumerator(); | |
var layer; | |
while (layer = loopSelection.nextObject()) { | |
var layers = MSLayerArray.arrayWithLayers([layer]); | |
if (MSSymbolCreator.canCreateSymbolFromLayers(layers)) { | |
var symbolName = layer.parentGroup().name(); | |
var symbolInstance = MSSymbolCreator.createSymbolFromLayers_withName_onSymbolsPage(layers, symbolName, true); | |
var symbolMaster = symbolInstance.symbolMaster(); | |
symbolMaster | |
} | |
}; | |
// copy from https://github.com/Ashung/Automate-Sketch |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sketch = require("sketch"); | |
var colors = sketch.globalAssets.colors; | |
// show all colors | |
console.log(colors); | |
// use splice()to delete all colors, splice(x,n) can only delete the colors you want | |
colors.splice(); | |
// add colors to palette | |
colors.push({ type: 'ColorAsset', name: 'color-black', color: '#000000ff' }, | |
{ type: 'ColorAsset', name: 'color-white', color: '#ffffffff' }); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sketch = require("sketch"); | |
var Style = require('sketch/dom').Style | |
var selection = sketch.getSelectedDocument().selectedLayers.layers; | |
selection.forEach(function(layer) { | |
var colors = ['#00B1D1','#0355B2','#0086D4','#0070C4','#00A3E5']; | |
var randomColor = colors[Math.floor(Math.random()*colors.length)]; | |
layer.style.fills = [ | |
{ | |
color: randomColor, | |
fillType: Style.FillType.Color, | |
}, | |
] | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sketch = require("sketch"); | |
var selectedLayers = sketch.getSelectedDocument().selectedLayers.layers; | |
selectedLayers.forEach(function(layer) { | |
var resultName = layer.name.replace(/(.+\/)/, "") | |
layer.name = resultName; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sketch = require("sketch"); | |
var selectedLayers = sketch.getSelectedDocument().selectedLayers.layers; | |
selectedLayers.forEach(function(layer) { | |
var resultName = layer.name.replace(/\s+/g, "") | |
layer.name = resultName; | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment