figma-mcp-cli 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/askCopilot.js +51 -0
  2. package/index.js +10 -3
  3. package/my-new-project/.env +1 -1
  4. package/my-new-project/.vscode/settings.json +1 -1
  5. package/my-new-project/my-app/.env +1 -0
  6. package/my-new-project/my-app/README.md +73 -0
  7. package/my-new-project/my-app/eslint.config.js +23 -0
  8. package/my-new-project/my-app/index.html +13 -0
  9. package/my-new-project/my-app/package-lock.json +3212 -0
  10. package/my-new-project/my-app/package.json +30 -0
  11. package/my-new-project/my-app/public/vite.svg +1 -0
  12. package/my-new-project/my-app/src/App.css +42 -0
  13. package/my-new-project/my-app/src/App.tsx +28 -0
  14. package/my-new-project/my-app/src/FigmaSidebarComponent.css +99 -0
  15. package/my-new-project/my-app/src/FigmaSidebarComponent.tsx +111 -0
  16. package/my-new-project/my-app/src/React19AllFeaturesDemo.jsx +111 -0
  17. package/my-new-project/my-app/src/RenderRightSidebar.css +32 -0
  18. package/my-new-project/my-app/src/RenderRightSidebar.tsx +73 -0
  19. package/my-new-project/my-app/src/assets/react.svg +1 -0
  20. package/my-new-project/my-app/src/components/AccordionSection.tsx +33 -0
  21. package/my-new-project/my-app/src/components/ChevronIcon.tsx +24 -0
  22. package/my-new-project/my-app/src/components/EnvironmentScenePanel.tsx +57 -0
  23. package/my-new-project/my-app/src/components/LightingPanel.tsx +57 -0
  24. package/my-new-project/my-app/src/components/RenderScalePanel.tsx +34 -0
  25. package/my-new-project/my-app/src/components/ResolutionPanel.tsx +27 -0
  26. package/my-new-project/my-app/src/components/SaturationPanel.tsx +27 -0
  27. package/my-new-project/my-app/src/components/SidebarButton.tsx +27 -0
  28. package/my-new-project/my-app/src/components/SidebarPreview.tsx +77 -0
  29. package/my-new-project/my-app/src/index.css +68 -0
  30. package/my-new-project/my-app/src/main.tsx +10 -0
  31. package/my-new-project/my-app/src/styles/AccordionSection.css +70 -0
  32. package/my-new-project/my-app/src/styles/EnvironmentScenePanel.css +104 -0
  33. package/my-new-project/my-app/src/styles/LightingPanel.css +111 -0
  34. package/my-new-project/my-app/src/styles/RenderScalePanel.css +67 -0
  35. package/my-new-project/my-app/src/styles/ResolutionPanel.css +60 -0
  36. package/my-new-project/my-app/src/styles/SaturationPanel.css +56 -0
  37. package/my-new-project/my-app/src/styles/SidebarButton.css +81 -0
  38. package/my-new-project/my-app/src/styles/SidebarPreview.css +92 -0
  39. package/my-new-project/my-app/tsconfig.app.json +28 -0
  40. package/my-new-project/my-app/tsconfig.json +7 -0
  41. package/my-new-project/my-app/tsconfig.node.json +26 -0
  42. package/my-new-project/my-app/vite.config.ts +7 -0
  43. package/package.json +2 -1
@@ -0,0 +1,60 @@
1
+ .resolution-panel {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 8px;
5
+ width: 100%;
6
+ }
7
+
8
+ .panel-header {
9
+ font-size: 12px;
10
+ font-weight: 400;
11
+ color: #111;
12
+ letter-spacing: 0.11px;
13
+ }
14
+
15
+ .resolution-grid {
16
+ display: grid;
17
+ grid-template-columns: repeat(2, 1fr);
18
+ gap: 8px;
19
+ width: 100%;
20
+ }
21
+
22
+ .resolution-pill {
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ min-height: 32px;
27
+ padding: 4px 12px;
28
+ background: #f5f5f5;
29
+ border: 2px solid transparent;
30
+ border-radius: 64px;
31
+ font-size: 12px;
32
+ font-weight: 700;
33
+ color: #111;
34
+ cursor: pointer;
35
+ transition: all 0.2s ease;
36
+ font-family: inherit;
37
+ }
38
+
39
+ .resolution-pill:hover {
40
+ background: #ffffff;
41
+ border-color: #ddd;
42
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
43
+ }
44
+
45
+ .resolution-pill.active {
46
+ background: #f5f5f5;
47
+ border-color: #111;
48
+ box-shadow: 0 0 0 2px rgba(17, 17, 17, 0.1);
49
+ }
50
+
51
+ @media (max-width: 768px) {
52
+ .resolution-grid {
53
+ gap: 6px;
54
+ }
55
+
56
+ .resolution-pill {
57
+ font-size: 11px;
58
+ padding: 3px 10px;
59
+ }
60
+ }
@@ -0,0 +1,56 @@
1
+ .saturation-panel {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 8px;
5
+ width: 100%;
6
+ }
7
+
8
+ .saturation-grid {
9
+ display: flex;
10
+ gap: 10px;
11
+ width: 100%;
12
+ justify-content: flex-start;
13
+ }
14
+
15
+ .saturation-pill {
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ min-height: 32px;
20
+ padding: 4px 12px;
21
+ background: #f5f5f5;
22
+ border: 2px solid transparent;
23
+ border-radius: 64px;
24
+ font-size: 12px;
25
+ font-weight: 700;
26
+ color: #111;
27
+ cursor: pointer;
28
+ transition: all 0.2s ease;
29
+ flex: 0 0 auto;
30
+ min-width: 62px;
31
+ font-family: inherit;
32
+ }
33
+
34
+ .saturation-pill:hover {
35
+ background: #ffffff;
36
+ border-color: #ddd;
37
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
38
+ }
39
+
40
+ .saturation-pill.active {
41
+ background: #f5f5f5;
42
+ border-color: #111;
43
+ box-shadow: 0 0 0 2px rgba(17, 17, 17, 0.1);
44
+ }
45
+
46
+ @media (max-width: 768px) {
47
+ .saturation-pill {
48
+ font-size: 11px;
49
+ padding: 3px 10px;
50
+ min-width: 56px;
51
+ }
52
+
53
+ .saturation-grid {
54
+ gap: 8px;
55
+ }
56
+ }
@@ -0,0 +1,81 @@
1
+ .sidebar-button {
2
+ position: relative;
3
+ width: 60px;
4
+ height: 76px;
5
+ background: white;
6
+ border: 1px solid #e0e0e0;
7
+ border-radius: 4px;
8
+ cursor: pointer;
9
+ display: flex;
10
+ flex-direction: column;
11
+ align-items: center;
12
+ justify-content: center;
13
+ gap: 8px;
14
+ padding: 8px;
15
+ box-sizing: border-box;
16
+ transition: all 0.2s ease;
17
+ font-family: 'Noto IKEA Latin', 'Noto IKEA Simplified Chinese', sans-serif;
18
+ }
19
+
20
+ .sidebar-button:hover {
21
+ background: #f9f9f9;
22
+ border-color: #d0d0d0;
23
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
24
+ transform: translateY(-2px);
25
+ }
26
+
27
+ .sidebar-button.active {
28
+ background: #f5f5f5;
29
+ border-color: #111;
30
+ box-shadow: inset 0 0 0 2px #111;
31
+ }
32
+
33
+ .sidebar-button.active:hover {
34
+ box-shadow: inset 0 0 0 2px #111, 0 2px 8px rgba(0, 0, 0, 0.12);
35
+ }
36
+
37
+ .sidebar-button-icon {
38
+ font-size: 24px;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ width: 28px;
43
+ height: 28px;
44
+ }
45
+
46
+ .sidebar-button-label {
47
+ font-size: 11px;
48
+ font-weight: 700;
49
+ color: #111;
50
+ text-align: center;
51
+ line-height: 1.3;
52
+ white-space: pre-line;
53
+ word-break: break-word;
54
+ max-width: 48px;
55
+ }
56
+
57
+ /* 激活状态的标签样式 */
58
+ .sidebar-button.active .sidebar-button-label {
59
+ color: #111;
60
+ font-weight: 700;
61
+ }
62
+
63
+ /* 响应式设计 */
64
+ @media (max-width: 768px) {
65
+ .sidebar-button {
66
+ width: 50px;
67
+ height: 64px;
68
+ gap: 6px;
69
+ }
70
+
71
+ .sidebar-button-icon {
72
+ font-size: 20px;
73
+ width: 24px;
74
+ height: 24px;
75
+ }
76
+
77
+ .sidebar-button-label {
78
+ font-size: 10px;
79
+ max-width: 40px;
80
+ }
81
+ }
@@ -0,0 +1,92 @@
1
+ .sidebar-preview {
2
+ width: 100%;
3
+ height: 100%;
4
+ display: flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ justify-content: center;
8
+ background: white;
9
+ border-radius: 8px;
10
+ padding: 32px;
11
+ box-sizing: border-box;
12
+ box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
13
+ }
14
+
15
+ .preview-image-container {
16
+ width: 100%;
17
+ max-width: 600px;
18
+ height: auto;
19
+ max-height: 400px;
20
+ border-radius: 4px;
21
+ overflow: hidden;
22
+ margin-bottom: 24px;
23
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
24
+ }
25
+
26
+ .preview-image {
27
+ width: 100%;
28
+ height: 100%;
29
+ object-fit: cover;
30
+ display: block;
31
+ }
32
+
33
+ .preview-content {
34
+ text-align: center;
35
+ max-width: 500px;
36
+ }
37
+
38
+ .preview-title {
39
+ font-size: 28px;
40
+ font-weight: 700;
41
+ color: #111;
42
+ margin: 0 0 16px 0;
43
+ font-family: 'Noto IKEA Latin', sans-serif;
44
+ }
45
+
46
+ .preview-description {
47
+ font-size: 16px;
48
+ color: #484848;
49
+ line-height: 1.6;
50
+ margin: 0;
51
+ font-family: 'Noto IKEA Latin', 'Noto IKEA Simplified Chinese', sans-serif;
52
+ }
53
+
54
+ /* 响应式设计 */
55
+ @media (max-width: 768px) {
56
+ .sidebar-preview {
57
+ padding: 16px;
58
+ }
59
+
60
+ .preview-image-container {
61
+ max-height: 300px;
62
+ margin-bottom: 16px;
63
+ }
64
+
65
+ .preview-title {
66
+ font-size: 22px;
67
+ margin-bottom: 12px;
68
+ }
69
+
70
+ .preview-description {
71
+ font-size: 14px;
72
+ }
73
+ }
74
+
75
+ @media (max-width: 480px) {
76
+ .sidebar-preview {
77
+ padding: 12px;
78
+ }
79
+
80
+ .preview-image-container {
81
+ max-height: 200px;
82
+ margin-bottom: 12px;
83
+ }
84
+
85
+ .preview-title {
86
+ font-size: 18px;
87
+ }
88
+
89
+ .preview-description {
90
+ font-size: 12px;
91
+ }
92
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "compilerOptions": {
3
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
+ "target": "ES2022",
5
+ "useDefineForClassFields": true,
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "module": "ESNext",
8
+ "types": ["vite/client"],
9
+ "skipLibCheck": true,
10
+
11
+ /* Bundler mode */
12
+ "moduleResolution": "bundler",
13
+ "allowImportingTsExtensions": true,
14
+ "verbatimModuleSyntax": true,
15
+ "moduleDetection": "force",
16
+ "noEmit": true,
17
+ "jsx": "react-jsx",
18
+
19
+ /* Linting */
20
+ "strict": true,
21
+ "noUnusedLocals": true,
22
+ "noUnusedParameters": true,
23
+ "erasableSyntaxOnly": true,
24
+ "noFallthroughCasesInSwitch": true,
25
+ "noUncheckedSideEffectImports": true
26
+ },
27
+ "include": ["src"]
28
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ { "path": "./tsconfig.app.json" },
5
+ { "path": "./tsconfig.node.json" }
6
+ ]
7
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
+ "target": "ES2023",
5
+ "lib": ["ES2023"],
6
+ "module": "ESNext",
7
+ "types": ["node"],
8
+ "skipLibCheck": true,
9
+
10
+ /* Bundler mode */
11
+ "moduleResolution": "bundler",
12
+ "allowImportingTsExtensions": true,
13
+ "verbatimModuleSyntax": true,
14
+ "moduleDetection": "force",
15
+ "noEmit": true,
16
+
17
+ /* Linting */
18
+ "strict": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "erasableSyntaxOnly": true,
22
+ "noFallthroughCasesInSwitch": true,
23
+ "noUncheckedSideEffectImports": true
24
+ },
25
+ "include": ["vite.config.ts"]
26
+ }
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from 'vite'
2
+ import react from '@vitejs/plugin-react'
3
+
4
+ // https://vite.dev/config/
5
+ export default defineConfig({
6
+ plugins: [react()],
7
+ })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "figma-mcp-cli",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "A CLI to automate Figma MCP setup and code generation",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -21,6 +21,7 @@
21
21
  "license": "ISC",
22
22
  "dependencies": {
23
23
  "axios": "^1.13.2",
24
+ "clipboardy": "^5.0.2",
24
25
  "commander": "^14.0.2",
25
26
  "dotenv": "^17.2.3",
26
27
  "inquirer": "^13.1.0"