Sketch 69 新功能
发布日期:2020 年 9 月 29 日 – 阅读发行说明
更改
颜色变量 API
Sketch 69 引入了一个新的 颜色变量功能.
颜色变量用新的 swatches
对象替换了之前存在的 colors
对象,该对象位于 Document
中。它是一个颜色变量数组,在内部称为色板,您可以直接修改它。
此示例生成 100 个随机色板并将其添加到当前文档中
const sketch = require('sketch')
const Swatch = sketch.Swatch
const doc = sketch.getSelectedDocument()
for (var i = 0; i < 100; i++) {
const randomColor = generateHex()
const swatch = Swatch.from({
name: `Rainbow ${i + 1}`,
color: randomColor,
})
doc.swatches.push(swatch)
}
function generateHex() {
var randomColor = Math.floor(Math.random() * 16777215).toString(16)
var hexColor = '#' + randomColor
return hexColor
}
要在图层、样式或任何需要颜色的 API 上使用颜色变量,请使用色板的 referencingColor
属性
const mySwatch = Swatch.from({
name: 'Safety Orange',
color: '#ff6600',
})
doc.swatches.push(mySwatch) // Add Swatch to document before using
textLayer.style.textColor = mySwatch.referencingColor
除了本地颜色变量之外,Sketch 还支持来自共享库的颜色变量。它们的工作原理类似于符号,因此如果您以前使用过符号 API,API 将看起来很熟悉。
此示例将从共享库导入所有颜色变量
const sketch = require('sketch')
const Library = sketch.Library
const doc = sketch.getSelectedDocument()
const lib = Library.getLibraryForDocumentAtPath(
'shared-color-variables.sketch'
)
const importableSwatches = lib.getImportableSwatchReferencesForDocument(doc)
const importedSwatch = importableSwatches[0].import()
textLayer.style.textColor = importedSwatch.referencingColor
有关 API 的更多详细信息,请查看 Swatch
、Document
和 Library
的文档。