Skip to content

Commit f93222e

Browse files
committed
第3回
1 parent 0a02411 commit f93222e

4 files changed

Lines changed: 43 additions & 17 deletions

File tree

src/code/code.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
1+
import { createVariables } from "./lib/createVariables";
2+
13
figma.showUI(__html__);
24

35
figma.ui.onmessage = (msg: { type: string; count: number }) => {
4-
if (msg.type === "create-rectangles") {
5-
const nodes: SceneNode[] = [];
6-
for (let i = 0; i < msg.count; i++) {
7-
const rect = figma.createRectangle();
8-
rect.x = i * 150;
9-
rect.fills = [{ type: "SOLID", color: { r: 1, g: 0.5, b: 0 } }];
10-
figma.currentPage.appendChild(rect);
11-
nodes.push(rect);
12-
}
13-
figma.currentPage.selection = nodes;
14-
figma.viewport.scrollAndZoomIntoView(nodes);
6+
if (msg.type === "create-variables") {
7+
createVariables();
158
}
169
figma.closePlugin();
1710
};

src/code/lib/createVariables.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
export function createVariables() {
2+
// Primitives
3+
const primitivesCollection = figma.variables.createVariableCollection("Primitives");
4+
const whiteVariable = figma.variables.createVariable("white", primitivesCollection, "COLOR");
5+
const blackVariable = figma.variables.createVariable("black", primitivesCollection, "COLOR");
6+
const modeId = primitivesCollection.modes[0].modeId;
7+
whiteVariable.setValueForMode(modeId, figma.util.rgb("#FFFFFF"));
8+
blackVariable.setValueForMode(modeId, figma.util.rgb("#000000"));
9+
10+
// Semantics
11+
const semanticsCollection = figma.variables.createVariableCollection("Semantics");
12+
const lightMode = semanticsCollection.modes[0];
13+
semanticsCollection.renameMode(lightMode.modeId, "Light");
14+
semanticsCollection.addMode("Dark");
15+
const darkMode = semanticsCollection.modes[1];
16+
17+
const textDefaultVariable = figma.variables.createVariable("text-default", semanticsCollection, "COLOR");
18+
textDefaultVariable.setValueForMode(lightMode.modeId, {
19+
type: "VARIABLE_ALIAS",
20+
id: blackVariable.id,
21+
});
22+
textDefaultVariable.setValueForMode(darkMode.modeId, {
23+
type: "VARIABLE_ALIAS",
24+
id: whiteVariable.id,
25+
});
26+
27+
const backgroundVariable = figma.variables.createVariable("background", semanticsCollection, "COLOR");
28+
backgroundVariable.setValueForMode(lightMode.modeId, {
29+
type: "VARIABLE_ALIAS",
30+
id: whiteVariable.id,
31+
});
32+
backgroundVariable.setValueForMode(darkMode.modeId, {
33+
type: "VARIABLE_ALIAS",
34+
id: blackVariable.id,
35+
});
36+
}

src/ui/ui.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
(() => {
22
const createButton = document.getElementById("create");
33
const cancelButton = document.getElementById("cancel");
4-
const textbox = document.getElementById("count") as HTMLInputElement;
54

6-
if (!createButton || !cancelButton || !textbox) {
5+
if (!createButton || !cancelButton) {
76
return;
87
}
98

109
createButton.onclick = () => {
11-
const count = parseInt(textbox.value, 10);
12-
parent.postMessage({ pluginMessage: { type: "create-rectangles", count } }, "*");
10+
parent.postMessage({ pluginMessage: { type: "create-variables" } }, "*");
1311
};
1412

1513
cancelButton.onclick = () => {

ui.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
<h2>Rectangle Creator</h2>
2-
<p>Count: <input id="count" value="5" /></p>
1+
<h2>Variable Creator</h2>
32
<button id="create">Create</button>
43
<button id="cancel">Cancel</button>
54
<script type="module" src="./src/ui/ui.ts"></script>

0 commit comments

Comments
 (0)