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 的更多详细信息,请查看 SwatchDocumentLibrary 的文档。