Anima

Anima 的 Storybook 附加元件,用於將元件匯出至 Figma

在 Github 上查看

Storybook 附加元件,可提取 Storybook 資料並將故事轉換為 Figma 元件,以實現更好的設計開發工作流程。

在我們的部落格文章中了解更多關於動機和好處。

示範

需求

此附加元件應適用於任何框架。如果您發現附加元件無法運作的情況,請開啟一個 issue。

:warning: 目前,我們僅支援 Webpack 建構器,如果您使用自訂的 storybook 建構器,例如 vite 或 storybook 的實驗性功能之一,請寫信給我們或開啟一個 issue,因為該附加元件可能無法如預期運作。

開始使用

1. 安裝

npm install --save-dev storybook-anima --legacy-peer-deps
# yarn add -D storybook-anima

2. 在 .storybook/main.js 中註冊附加元件

// .storybook/main.js
module.exports = {
  addons: ["storybook-anima"],
};

3. 設定 Anima 存取權杖

首先從 Anima Figma 外掛程式或您的 Anima 團隊設定中取得存取權杖。了解更多關於如何從 Anima 取得權杖

然後,您可以將存取權杖設定為名為 STORYBOOK_ANIMA_TOKEN 的環境變數。

您可以在專案的根資料夾中建立 .env 檔案,或者您可以在建構或動態執行 Storybook 時,以命令列參數的方式提供環境變數。

# .env
STORYBOOK_ANIMA_TOKEN="<paste your TOKEN here>"

設計系統符號支援

Anima 在產生故事時也可以使用您的設計符號,並自動將其轉換為 Figma 樣式。

若要啟用此功能,請依照下列步驟操作

1 - 準備您的設計系統符號檔案

該檔案應以標準 JSON 格式撰寫。

範例

design-system-tokens.json

{
  "--primary": {
    "$value": "#1976D2"
  },
  "--secondary": {
    "$value": "#ffcd29"
  }
}

2 - 將您的設計系統符號檔案新增至 storybook 預覽

前往 .storybook/preview.js 並匯出一個名為 anima 的新參數,其中包含 designTokens 下的設計系統符號檔案的路徑。

// .storybook/preview.js
export const parameters = {
  ...
  anima: {
    designTokens: require('../design-system-tokens.json')
  },
};


完成!現在,如果您有使用這些設計符號的元件,它們將會以使用原生 Figma 樣式的元件匯出至 Figma。

注意事項

目前,如果您的故事組成僅包含元件本身,而不是包含多個範例或內含文件的複雜故事,此整合效果最佳。

簡而言之,您在 Storybook 故事中看到的內容,就是您在 Figma 中獲得的內容。

布林控制類型限制

由於Storybook 錯誤,如果布林控制項沒有明確指定 type,則附加元件無法正確處理。

例如,如果參數沒有明確指定 type,我們可能會難以處理具有以下 argTypes 定義的故事。

  argTypes: {
    disabled: { control: "boolean" },
    isContained: { control: { type: "boolean" } },
  },

在這種情況下,有必要為每個布林控制項新增明確的類型。

  argTypes: {
    disabled: { control: "boolean", type: "boolean" },
    isContained: { control: { type: "boolean" }, type: "boolean" },
  },

變體數量限制

該附加元件目前將任何給定故事的變體數量限制為最多 1025 個。因此,匯出的元件中可能會缺少某些屬性。

在不久的將來,我們將提供一些選項來自訂在匯出過程中應包含或排除哪些控制項。

開發

在不同的索引標籤中執行以下命令以開始開發

npm run build
npm run dev

如需更多資訊,請造訪:Anima Storybook 整合

授權

MIT © Anima