@sarjallab09/figma-intelligence 1.1.0 → 1.2.1
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.
- package/README.md +69 -36
- package/dist/bin/cli.js +2 -0
- package/dist/design-bridge/bridge.js +2 -0
- package/dist/figma-bridge-plugin/bridge-relay.js +2 -0
- package/dist/figma-bridge-plugin/code.js +1 -0
- package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package-lock.json +0 -3
- package/dist/figma-bridge-plugin/ui.html +4970 -0
- package/dist/figma-intelligence-layer/dist/index.js +2 -0
- package/dist/scripts/clean-existing-chunks.js +2 -0
- package/dist/scripts/connect-ai-tool.js +2 -0
- package/dist/scripts/convert-hub-pdfs.js +2 -0
- package/dist/scripts/figma-mcp-status.js +2 -0
- package/dist/scripts/register-codex-mcp.js +2 -0
- package/dist/scripts/test-copilot-chat.js +2 -0
- package/package.json +11 -8
- package/bin/cli.js +0 -859
- package/design-bridge/bridge.js +0 -196
- package/design-bridge/lib/assets.js +0 -367
- package/design-bridge/lib/prompt.js +0 -85
- package/design-bridge/lib/server.js +0 -66
- package/design-bridge/lib/stitch.js +0 -37
- package/design-bridge/lib/tokens.js +0 -82
- package/design-bridge/package-lock.json +0 -579
- package/figma-bridge-plugin/README.md +0 -97
- package/figma-bridge-plugin/anthropic-chat-runner.js +0 -192
- package/figma-bridge-plugin/bridge-relay.js +0 -2505
- package/figma-bridge-plugin/chat-runner.js +0 -485
- package/figma-bridge-plugin/code.js +0 -1534
- package/figma-bridge-plugin/codex-runner.js +0 -505
- package/figma-bridge-plugin/component-schemas.js +0 -110
- package/figma-bridge-plugin/content-context.js +0 -869
- package/figma-bridge-plugin/create-button.js +0 -216
- package/figma-bridge-plugin/gemini-cli-runner.js +0 -291
- package/figma-bridge-plugin/gemini-runner.js +0 -187
- package/figma-bridge-plugin/html-to-figma.js +0 -927
- package/figma-bridge-plugin/knowledge-hub/.gitkeep +0 -0
- package/figma-bridge-plugin/knowledge-hub/uspec-references/anatomy-spec.md +0 -159
- package/figma-bridge-plugin/knowledge-hub/uspec-references/api-spec.md +0 -162
- package/figma-bridge-plugin/knowledge-hub/uspec-references/color-spec.md +0 -148
- package/figma-bridge-plugin/knowledge-hub/uspec-references/full-spec-template.md +0 -314
- package/figma-bridge-plugin/knowledge-hub/uspec-references/property-spec.md +0 -175
- package/figma-bridge-plugin/knowledge-hub/uspec-references/screen-reader-spec.md +0 -180
- package/figma-bridge-plugin/knowledge-hub/uspec-references/structure-spec.md +0 -165
- package/figma-bridge-plugin/perplexity-runner.js +0 -188
- package/figma-bridge-plugin/references/SKILL.md +0 -178
- package/figma-bridge-plugin/references/anatomy-spec.md +0 -159
- package/figma-bridge-plugin/references/api-spec.md +0 -162
- package/figma-bridge-plugin/references/color-spec.md +0 -148
- package/figma-bridge-plugin/references/full-spec-template.md +0 -314
- package/figma-bridge-plugin/references/property-spec.md +0 -175
- package/figma-bridge-plugin/references/screen-reader-spec.md +0 -180
- package/figma-bridge-plugin/references/structure-spec.md +0 -165
- package/figma-bridge-plugin/shared-prompt-config.js +0 -645
- package/figma-bridge-plugin/spec-helpers/build-table.js +0 -269
- package/figma-bridge-plugin/spec-helpers/classify-elements.js +0 -189
- package/figma-bridge-plugin/spec-helpers/index.js +0 -35
- package/figma-bridge-plugin/spec-helpers/parse-figma-link.js +0 -49
- package/figma-bridge-plugin/spec-helpers/position-markers.js +0 -158
- package/figma-bridge-plugin/stitch-auth.js +0 -322
- package/figma-bridge-plugin/stitch-runner.js +0 -1427
- package/figma-bridge-plugin/token-resolver.js +0 -107
- package/figma-bridge-plugin/ui.html +0 -4542
- package/figma-intelligence-layer/.env.example +0 -39
- package/figma-intelligence-layer/docs/local-image-generation.md +0 -60
- package/figma-intelligence-layer/examples/comfyui-workflow-template.example.json +0 -101
- package/figma-intelligence-layer/jest.config.js +0 -14
- package/figma-intelligence-layer/mcp-config.json +0 -19
- package/figma-intelligence-layer/package-lock.json +0 -5892
- package/figma-intelligence-layer/scripts/setup-comfyui-local.sh +0 -67
- package/figma-intelligence-layer/scripts/start-comfyui.sh +0 -33
- package/figma-intelligence-layer/src/index.ts +0 -2233
- package/figma-intelligence-layer/src/shared/auto-layout-validator.ts +0 -404
- package/figma-intelligence-layer/src/shared/cache.ts +0 -187
- package/figma-intelligence-layer/src/shared/color-operations.ts +0 -533
- package/figma-intelligence-layer/src/shared/color-utils.ts +0 -138
- package/figma-intelligence-layer/src/shared/component-script-builder.ts +0 -413
- package/figma-intelligence-layer/src/shared/component-templates.ts +0 -2767
- package/figma-intelligence-layer/src/shared/concept-taxonomy.ts +0 -694
- package/figma-intelligence-layer/src/shared/decision-log.ts +0 -128
- package/figma-intelligence-layer/src/shared/design-system-context.ts +0 -568
- package/figma-intelligence-layer/src/shared/design-system-intelligence.ts +0 -131
- package/figma-intelligence-layer/src/shared/design-system-matcher.ts +0 -184
- package/figma-intelligence-layer/src/shared/design-system-normalizers.ts +0 -196
- package/figma-intelligence-layer/src/shared/design-system-tokens.ts +0 -295
- package/figma-intelligence-layer/src/shared/dtcg-validator.ts +0 -530
- package/figma-intelligence-layer/src/shared/enrichment-pipeline.ts +0 -671
- package/figma-intelligence-layer/src/shared/figma-bridge.ts +0 -1418
- package/figma-intelligence-layer/src/shared/font-config.ts +0 -126
- package/figma-intelligence-layer/src/shared/icon-catalog.ts +0 -360
- package/figma-intelligence-layer/src/shared/icon-fetch.ts +0 -80
- package/figma-intelligence-layer/src/shared/prototype-script-builder.ts +0 -162
- package/figma-intelligence-layer/src/shared/response-compression.ts +0 -440
- package/figma-intelligence-layer/src/shared/semantic-token-catalog.ts +0 -324
- package/figma-intelligence-layer/src/shared/token-binder.ts +0 -505
- package/figma-intelligence-layer/src/shared/token-math.ts +0 -427
- package/figma-intelligence-layer/src/shared/token-naming.ts +0 -468
- package/figma-intelligence-layer/src/shared/token-utils.ts +0 -420
- package/figma-intelligence-layer/src/shared/types.ts +0 -346
- package/figma-intelligence-layer/src/shared/typography-presets.ts +0 -94
- package/figma-intelligence-layer/src/shared/unsplash.ts +0 -165
- package/figma-intelligence-layer/src/shared/vision-client.ts +0 -607
- package/figma-intelligence-layer/src/shared/vision-provider-anthropic.ts +0 -334
- package/figma-intelligence-layer/src/shared/vision-provider-openai.ts +0 -446
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-handler.ts +0 -782
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-renderer.ts +0 -496
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotation-kit.ts +0 -230
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/colorblind-sim.ts +0 -66
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/index.ts +0 -810
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-analyzer.ts +0 -1191
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-figma-page.ts +0 -1346
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-handler.ts +0 -148
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-figma-page.ts +0 -499
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-report.ts +0 -910
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-checker.ts +0 -989
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-criteria.ts +0 -1160
- package/figma-intelligence-layer/src/tools/phase1-vision/design-from-ref/index.ts +0 -424
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/component-recognizer.ts +0 -38
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/ds-matcher.ts +0 -111
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/font-matcher.ts +0 -114
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/icon-resolver.ts +0 -103
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/index.ts +0 -1060
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/layout-segmenter.ts +0 -18
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/token-inferencer.ts +0 -39
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/vision-pipeline.ts +0 -58
- package/figma-intelligence-layer/src/tools/phase1-vision/sketch-to-design/index.ts +0 -298
- package/figma-intelligence-layer/src/tools/phase1-vision/visual-audit/index.ts +0 -197
- package/figma-intelligence-layer/src/tools/phase2-accuracy/component-audit/index.ts +0 -494
- package/figma-intelligence-layer/src/tools/phase2-accuracy/intent-translator/index.ts +0 -356
- package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/container-patterns.ts +0 -123
- package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/index.ts +0 -663
- package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/built-in-rules.yaml +0 -56
- package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/index.ts +0 -614
- package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/rule-engine.ts +0 -113
- package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/color-theory.ts +0 -178
- package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/index.ts +0 -470
- package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/index.ts +0 -429
- package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/token-override-maps.ts +0 -226
- package/figma-intelligence-layer/src/tools/phase3-generation/ai-image-insert/index.ts +0 -535
- package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/index.ts +0 -660
- package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/pattern-fingerprints.ts +0 -209
- package/figma-intelligence-layer/src/tools/phase3-generation/composition-builder/index.ts +0 -540
- package/figma-intelligence-layer/src/tools/phase3-generation/figma-animated-build.ts +0 -391
- package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/index.ts +0 -2019
- package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/screen-templates.ts +0 -131
- package/figma-intelligence-layer/src/tools/phase3-generation/prototype-map/index.ts +0 -381
- package/figma-intelligence-layer/src/tools/phase3-generation/prototype-wire/index.ts +0 -565
- package/figma-intelligence-layer/src/tools/phase3-generation/swarm-build/index.ts +0 -764
- package/figma-intelligence-layer/src/tools/phase3-generation/system-drift/index.ts +0 -535
- package/figma-intelligence-layer/src/tools/phase3-generation/unsplash-search/index.ts +0 -84
- package/figma-intelligence-layer/src/tools/phase3-generation/url-to-frame/index.ts +0 -401
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/css-animations.ts +0 -68
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/framer-motion.ts +0 -78
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/swift-animations.ts +0 -93
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/index.ts +0 -596
- package/figma-intelligence-layer/src/tools/phase4-sync/ci-check/index.ts +0 -462
- package/figma-intelligence-layer/src/tools/phase4-sync/export-tokens/index.ts +0 -1470
- package/figma-intelligence-layer/src/tools/phase4-sync/generate-component-code/index.ts +0 -829
- package/figma-intelligence-layer/src/tools/phase4-sync/handoff-spec/index.ts +0 -702
- package/figma-intelligence-layer/src/tools/phase4-sync/icon-library-sync/index.ts +0 -483
- package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/index.ts +0 -501
- package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/storybook-parser.ts +0 -106
- package/figma-intelligence-layer/src/tools/phase4-sync/watch-docs/index.ts +0 -676
- package/figma-intelligence-layer/src/tools/phase4-sync/webhook-listener/index.ts +0 -560
- package/figma-intelligence-layer/src/tools/phase5-governance/apg-doc/index.ts +0 -1043
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/component-detection.ts +0 -620
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/anatomy.ts +0 -331
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/color-tokens.ts +0 -77
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/properties.ts +0 -54
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/snapshot.ts +0 -287
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/spacing.ts +0 -71
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/states.ts +0 -43
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/typography.ts +0 -71
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/index.ts +0 -221
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/_default.ts +0 -166
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/accordion.ts +0 -232
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/alert.ts +0 -234
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar-group.ts +0 -270
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar.ts +0 -249
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/badge.ts +0 -231
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/banner.ts +0 -293
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/breadcrumb.ts +0 -240
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/button.ts +0 -243
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/calendar.ts +0 -307
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/card.ts +0 -143
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/checkbox.ts +0 -227
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/chip.ts +0 -233
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/combobox.ts +0 -282
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/datepicker.ts +0 -276
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/divider.ts +0 -223
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/drawer.ts +0 -255
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/dropdown-menu.ts +0 -289
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/empty-state.ts +0 -261
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/file-uploader.ts +0 -290
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/form.ts +0 -265
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/grid.ts +0 -238
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/icon.ts +0 -255
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/index.ts +0 -128
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-edit.ts +0 -286
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-message.ts +0 -255
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/input.ts +0 -330
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/link.ts +0 -247
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/list.ts +0 -250
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/menu.ts +0 -247
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/modal.ts +0 -144
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navbar.ts +0 -264
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navigation.ts +0 -251
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/number-input.ts +0 -261
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/pagination.ts +0 -248
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/popover.ts +0 -270
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/progress.ts +0 -251
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/radio.ts +0 -142
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/range-slider.ts +0 -282
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/rating.ts +0 -250
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/search.ts +0 -258
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/segmented-control.ts +0 -265
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/select.ts +0 -319
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/skeleton.ts +0 -256
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/slider.ts +0 -232
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/spinner.ts +0 -239
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/status-dot.ts +0 -252
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/stepper.ts +0 -270
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/table.ts +0 -244
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tabs.ts +0 -143
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tag.ts +0 -243
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/textarea.ts +0 -259
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/time-picker.ts +0 -293
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toast.ts +0 -144
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toggle.ts +0 -289
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toolbar.ts +0 -267
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tooltip.ts +0 -232
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/treeview.ts +0 -257
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/typography.ts +0 -319
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/legacy-compat.ts +0 -121
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/anatomy-diagram.ts +0 -430
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/figma-page.ts +0 -312
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/json.ts +0 -129
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/markdown.ts +0 -78
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/visual-doc.ts +0 -2333
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/accessibility.ts +0 -100
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/anatomy.ts +0 -32
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/color-tokens.ts +0 -59
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/content-guidance.ts +0 -18
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/design-tokens.ts +0 -53
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/interaction-rules.ts +0 -19
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/overview.ts +0 -91
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/properties-api.ts +0 -71
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/qa-criteria.ts +0 -19
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/related-components.ts +0 -110
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/responsive.ts +0 -19
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/size-specs.ts +0 -67
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/spacing-structure.ts +0 -58
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/state-specs.ts +0 -79
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/states.ts +0 -50
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/type-hierarchy.ts +0 -33
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/typography.ts +0 -55
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/usage-guidelines.ts +0 -73
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/variants.ts +0 -81
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/types.ts +0 -409
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/index.ts +0 -198
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/renderer.ts +0 -701
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/types.ts +0 -88
- package/figma-intelligence-layer/src/tools/phase5-governance/decision-log/index.ts +0 -135
- package/figma-intelligence-layer/src/tools/phase5-governance/design-decision-log/index.ts +0 -491
- package/figma-intelligence-layer/src/tools/phase5-governance/ds-primitives/index.ts +0 -416
- package/figma-intelligence-layer/src/tools/phase5-governance/ds-scaffolder/index.ts +0 -722
- package/figma-intelligence-layer/src/tools/phase5-governance/ds-variables/index.ts +0 -449
- package/figma-intelligence-layer/src/tools/phase5-governance/health-report/index.ts +0 -393
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/index.ts +0 -406
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/figma-page.ts +0 -292
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/json.ts +0 -24
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/markdown.ts +0 -172
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/naming-guide.ts +0 -409
- package/figma-intelligence-layer/src/tools/phase5-governance/token-analytics/index.ts +0 -594
- package/figma-intelligence-layer/src/tools/phase5-governance/token-docs/index.ts +0 -710
- package/figma-intelligence-layer/src/tools/phase5-governance/token-migrate/index.ts +0 -458
- package/figma-intelligence-layer/src/tools/phase5-governance/token-naming/index.ts +0 -134
- package/figma-intelligence-layer/tests/apg-doc.test.ts +0 -101
- package/figma-intelligence-layer/tests/design-system-context.test.ts +0 -152
- package/figma-intelligence-layer/tests/design-system-matcher.test.ts +0 -144
- package/figma-intelligence-layer/tests/figma-bridge.test.ts +0 -83
- package/figma-intelligence-layer/tests/generate-image-and-insert.test.ts +0 -56
- package/figma-intelligence-layer/tests/screen-cloner-regression.test.ts +0 -69
- package/figma-intelligence-layer/tests/smoke.test.ts +0 -174
- package/figma-intelligence-layer/tests/spec-generator.test.ts +0 -127
- package/figma-intelligence-layer/tests/token-migrate.test.ts +0 -21
- package/figma-intelligence-layer/tests/token-naming.test.ts +0 -30
- package/figma-intelligence-layer/tsconfig.json +0 -19
- package/scripts/clean-existing-chunks.js +0 -179
- package/scripts/connect-ai-tool.js +0 -490
- package/scripts/convert-hub-pdfs.js +0 -425
- package/scripts/figma-mcp-status.js +0 -349
- package/scripts/register-codex-mcp.js +0 -96
- /package/{design-bridge → dist/design-bridge}/.env.example +0 -0
- /package/{design-bridge → dist/design-bridge}/package.json +0 -0
- /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/manifest.json +0 -0
- /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package.json +0 -0
- /package/{figma-intelligence-layer → dist/figma-intelligence-layer}/package.json +0 -0
|
File without changes
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
# Anatomy Spec Reference
|
|
2
|
-
|
|
3
|
-
Generate numbered anatomy annotations with attribute tables directly in Figma.
|
|
4
|
-
|
|
5
|
-
## What This Spec Produces
|
|
6
|
-
|
|
7
|
-
1. **Component artwork** — A default-variant instance with all hidden elements made visible
|
|
8
|
-
2. **Numbered markers** — Pink circles (24px, #D946EF) with connector lines pointing to each element
|
|
9
|
-
3. **Attribute table** — 4 columns: Number, Type (instance/text/shape icon), Element Name, Semantic Notes
|
|
10
|
-
4. **Per-child sections** — Nested component instances get their own markers and tables
|
|
11
|
-
5. **Cross-references** — Composition table notes link to per-child sections ("See X anatomy section")
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Step-by-Step Pipeline
|
|
16
|
-
|
|
17
|
-
### Phase 1: Extract Component Data
|
|
18
|
-
|
|
19
|
-
1. Parse the Figma link to get `file_key` and `node_id`
|
|
20
|
-
2. Read the component set or standalone component:
|
|
21
|
-
```
|
|
22
|
-
get_node(file_key, node_id)
|
|
23
|
-
get_component_property_definitions(node_id)
|
|
24
|
-
```
|
|
25
|
-
3. Get the **default variant** (first child of the component set, or the component itself if standalone)
|
|
26
|
-
4. Traverse all child layers recursively and collect:
|
|
27
|
-
- `name` — Layer name
|
|
28
|
-
- `type` — INSTANCE, TEXT, RECTANGLE, ELLIPSE, VECTOR, FRAME, GROUP, LINE
|
|
29
|
-
- `visible` — Whether the element is visible in the default state
|
|
30
|
-
- `componentPropertyReferences` — Which boolean property controls this element's visibility
|
|
31
|
-
- `characters` — Text content (for TEXT nodes)
|
|
32
|
-
- `componentId` — If an INSTANCE, the component it references
|
|
33
|
-
|
|
34
|
-
5. For each INSTANCE child, resolve to its source component and check if it has meaningful internal structure (more than 1 visible child layer). If yes, mark it as a **per-child candidate**.
|
|
35
|
-
|
|
36
|
-
6. **Filter out utility sub-components**: Skip elements whose resolved component name matches: `Spacer`, `Divider`, `Separator`, `Gap`, `Padding`. These have no meaningful anatomy to document.
|
|
37
|
-
|
|
38
|
-
### Phase 2: Classify Each Element (AI Reasoning)
|
|
39
|
-
|
|
40
|
-
For each collected element, determine its **role**:
|
|
41
|
-
|
|
42
|
-
| Role | Description | Example |
|
|
43
|
-
|------|-------------|---------|
|
|
44
|
-
| `content-element` | Displays user-facing content | Label text, avatar image |
|
|
45
|
-
| `optional-slot` | Controlled by a boolean toggle, can be hidden | Leading icon, trailing button |
|
|
46
|
-
| `fixed-sub-component` | Always present nested instance | Icon component, badge |
|
|
47
|
-
| `structural` | Layout container, not meaningful to document | Auto-layout wrapper frame |
|
|
48
|
-
| `decorative` | Visual-only, no semantic meaning | Background shape, shadow layer |
|
|
49
|
-
|
|
50
|
-
**Classification rules:**
|
|
51
|
-
- If element has a `componentPropertyReference` to a boolean → `optional-slot`
|
|
52
|
-
- If element is an INSTANCE with ≥2 meaningful children → `fixed-sub-component` or per-child candidate
|
|
53
|
-
- If element is a FRAME/GROUP with only auto-layout purpose → `structural` (skip from table)
|
|
54
|
-
- If element name starts with "." or is named "Background", "Shadow", "Overlay" → `decorative` (skip)
|
|
55
|
-
- Everything else → `content-element`
|
|
56
|
-
|
|
57
|
-
**Write semantic notes for each non-skipped element:**
|
|
58
|
-
- For optional slots: "Optional. Controlled by [boolean-name] toggle. Hidden by default." or "Visible by default."
|
|
59
|
-
- For content elements: Describe the element's purpose in the component context
|
|
60
|
-
- For fixed sub-components: "Fixed sub-component. See [Name] anatomy section." (if per-child exists)
|
|
61
|
-
- For instance swap slots: "Swappable. Accepts [list of allowed instances]."
|
|
62
|
-
|
|
63
|
-
### Phase 3: Determine Per-Child Sections
|
|
64
|
-
|
|
65
|
-
A nested instance warrants its own per-child section when:
|
|
66
|
-
- It has ≥3 internal child layers (not counting structural wrappers)
|
|
67
|
-
- It is NOT a utility component (Spacer, Divider, etc.)
|
|
68
|
-
- It has its own configurable properties (booleans, variants)
|
|
69
|
-
|
|
70
|
-
For qualifying per-child instances, repeat Phase 1 and Phase 2 on the nested component.
|
|
71
|
-
|
|
72
|
-
**Collapsing identical siblings**: If the same component appears N times consecutively (e.g., 5 star icons), collapse into a single row with "(xN)" suffix.
|
|
73
|
-
|
|
74
|
-
### Phase 4: Make Hidden Elements Visible
|
|
75
|
-
|
|
76
|
-
For the artwork instance, unhide all hidden optional elements **through component properties**:
|
|
77
|
-
```
|
|
78
|
-
// DO THIS (property-aware unhide):
|
|
79
|
-
set_component_properties(instance_id, { "Show Leading Icon": true, "Show Badge": true })
|
|
80
|
-
|
|
81
|
-
// DO NOT DO THIS (raw visibility override):
|
|
82
|
-
set_visibility(child_node_id, true) // WRONG — breaks component property binding
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
This ensures the artwork shows the complete anatomy with all optional elements visible, while maintaining proper component property bindings.
|
|
86
|
-
|
|
87
|
-
### Phase 5: Render the Documentation Frame
|
|
88
|
-
|
|
89
|
-
#### Create the main frame
|
|
90
|
-
```
|
|
91
|
-
Main Frame (1440px wide, auto-layout vertical, padding 60px, gap 40px)
|
|
92
|
-
├── Header Section
|
|
93
|
-
│ ├── Title: "[Component Name] — Anatomy" (24px bold)
|
|
94
|
-
│ └── Subtitle: "Component structure and element inventory" (14px, #6B7280)
|
|
95
|
-
├── Artwork + Markers Section (horizontal layout)
|
|
96
|
-
│ ├── Component Instance (all hidden elements visible)
|
|
97
|
-
│ └── Marker Layer (positioned absolutely relative to artwork)
|
|
98
|
-
├── Attribute Table
|
|
99
|
-
│ ├── Header Row: # | Type | Element | Notes
|
|
100
|
-
│ └── Body Rows: One per non-skipped element
|
|
101
|
-
├── Per-Child Section 1 (if applicable)
|
|
102
|
-
│ ├── Section Header: "[Child Name] Anatomy"
|
|
103
|
-
│ ├── Child Artwork + Markers
|
|
104
|
-
│ └── Child Attribute Table
|
|
105
|
-
└── Per-Child Section N...
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
#### Place markers
|
|
109
|
-
For each element in the attribute table:
|
|
110
|
-
1. Get the element's absolute position and bounds within the artwork
|
|
111
|
-
2. Create a marker circle (24px, #D946EF fill, white number text)
|
|
112
|
-
3. Position the marker **outside** the component artwork (to the left, right, top, or bottom — whichever has the most space)
|
|
113
|
-
4. Draw a 1px connector line from the marker center to the nearest edge of the element
|
|
114
|
-
5. Avoid overlapping markers — distribute them evenly with ≥8px gaps
|
|
115
|
-
|
|
116
|
-
#### Build the attribute table
|
|
117
|
-
| Column | Width | Content |
|
|
118
|
-
|--------|-------|---------|
|
|
119
|
-
| # | 48px | Sequential number matching the marker |
|
|
120
|
-
| Type | 48px | Icon indicator: 🔲 for instance, 📝 for text, ⬡ for shape/vector |
|
|
121
|
-
| Element | 200px | Layer name. Append "(hidden)" if element is not visible in default state |
|
|
122
|
-
| Notes | Fill remaining | Semantic notes from Phase 2 classification |
|
|
123
|
-
|
|
124
|
-
### Phase 6: Validate
|
|
125
|
-
|
|
126
|
-
1. Capture a screenshot of the completed frame
|
|
127
|
-
2. Check against this checklist:
|
|
128
|
-
- [ ] All non-structural, non-decorative elements have a marker
|
|
129
|
-
- [ ] Marker numbers match table row numbers
|
|
130
|
-
- [ ] No markers overlap each other
|
|
131
|
-
- [ ] Connector lines point to the correct elements
|
|
132
|
-
- [ ] Hidden elements are labeled "(hidden)" in the table
|
|
133
|
-
- [ ] Per-child sections exist for qualifying nested instances
|
|
134
|
-
- [ ] Cross-references in the main table link to per-child sections
|
|
135
|
-
3. Fix any issues found
|
|
136
|
-
4. Repeat up to 3 times
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## Example Output Structure
|
|
141
|
-
|
|
142
|
-
For a **Text Field** component with: Container, Leading Icon (optional), Label, Input Area, Placeholder Text, Helper Text (optional), Trailing Clear Button (optional):
|
|
143
|
-
|
|
144
|
-
**Main Attribute Table:**
|
|
145
|
-
| # | Type | Element | Notes |
|
|
146
|
-
|---|------|---------|-------|
|
|
147
|
-
| 1 | 🔲 | Container | Root frame. Auto-layout horizontal with nested vertical sections. |
|
|
148
|
-
| 2 | 🔲 | Leading Icon (hidden) | Optional. Controlled by "Show Leading Icon" toggle. Hidden by default. |
|
|
149
|
-
| 3 | 📝 | Label | Required. Displays the field's label text above the input area. |
|
|
150
|
-
| 4 | 📝 | Input Text | Content element. Displays user-entered text or placeholder. |
|
|
151
|
-
| 5 | 📝 | Placeholder Text | Content element. Visible when Input Text is empty. |
|
|
152
|
-
| 6 | 📝 | Helper Text (hidden) | Optional. Controlled by "Show Helper" toggle. Provides guidance below the input. |
|
|
153
|
-
| 7 | 🔲 | Clear Button (hidden) | Optional. Controlled by "Show Clear" toggle. See Clear Button anatomy section. |
|
|
154
|
-
|
|
155
|
-
**Per-child: Clear Button Anatomy:**
|
|
156
|
-
| # | Type | Element | Notes |
|
|
157
|
-
|---|------|---------|-------|
|
|
158
|
-
| 1 | 🔲 | Icon | Fixed sub-component. Displays the clear/close icon. |
|
|
159
|
-
| 2 | ⬡ | Hit Area | Touch target overlay. 44x44px minimum for accessibility compliance. |
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
# API Spec Reference
|
|
2
|
-
|
|
3
|
-
Generate component property documentation with values, defaults, required/optional status, and configuration examples.
|
|
4
|
-
|
|
5
|
-
## What This Spec Produces
|
|
6
|
-
|
|
7
|
-
1. **Main property table** — All top-level properties with values, required status, defaults, and notes
|
|
8
|
-
2. **Sub-component tables** — Separate tables for configurable nested elements
|
|
9
|
-
3. **Configuration examples** — 1–4 annotated instances showing common setups
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Step-by-Step Pipeline
|
|
14
|
-
|
|
15
|
-
### Phase 1: Extract All Properties
|
|
16
|
-
|
|
17
|
-
Properties come from **three sources** in Figma. You must check all three.
|
|
18
|
-
|
|
19
|
-
#### Source 1: Variant Axes
|
|
20
|
-
Read from the component set's variant names:
|
|
21
|
-
```
|
|
22
|
-
get_component_set_variants(node_id)
|
|
23
|
-
```
|
|
24
|
-
Parse variant names (formatted as "Property1=Value1, Property2=Value2") to extract:
|
|
25
|
-
- Property name (e.g., "Size", "Type", "State", "Hierarchy")
|
|
26
|
-
- All possible values (e.g., ["Large", "Medium", "Small", "XSmall"])
|
|
27
|
-
- Default value (the first variant listed, or the one matching the default instance)
|
|
28
|
-
|
|
29
|
-
#### Source 2: Instance (Boolean & Slot) Properties
|
|
30
|
-
Read from `componentPropertyDefinitions` on the component set:
|
|
31
|
-
```
|
|
32
|
-
get_component_property_definitions(node_id)
|
|
33
|
-
```
|
|
34
|
-
This returns:
|
|
35
|
-
- **Boolean properties**: Toggle-controlled elements (e.g., "Show Leading Icon": true/false)
|
|
36
|
-
- **Instance swap properties**: Slots that accept different components (e.g., "Trailing Content": [IconButton, TextButton, None])
|
|
37
|
-
- **Text properties**: Editable text content (e.g., "Label Text": string)
|
|
38
|
-
|
|
39
|
-
#### Source 3: Variable Mode Collections
|
|
40
|
-
Check for variable collections scoped to this component:
|
|
41
|
-
```
|
|
42
|
-
get_local_variable_collections()
|
|
43
|
-
```
|
|
44
|
-
Look for collections named after the component or containing modes like:
|
|
45
|
-
- Shape: `Rounded`, `Square`, `Pill`
|
|
46
|
-
- Density: `Compact`, `Default`, `Spacious`
|
|
47
|
-
- Color/Style: `Default`, `Danger`, `Success`
|
|
48
|
-
|
|
49
|
-
### Phase 2: Classify Properties (AI Reasoning)
|
|
50
|
-
|
|
51
|
-
For each discovered property, determine:
|
|
52
|
-
|
|
53
|
-
| Field | Description |
|
|
54
|
-
|-------|-------------|
|
|
55
|
-
| `name` | Property name as it appears in Figma |
|
|
56
|
-
| `type` | `variant`, `boolean`, `instance-swap`, `text`, `variable-mode` |
|
|
57
|
-
| `values` | All possible values |
|
|
58
|
-
| `default` | The default value |
|
|
59
|
-
| `required` | Whether the property must be explicitly set |
|
|
60
|
-
| `notes` | Description of what this property controls |
|
|
61
|
-
|
|
62
|
-
**Classification rules for required vs. optional:**
|
|
63
|
-
- Variant axes that affect layout/appearance → **Required** (Size, Type)
|
|
64
|
-
- State properties (enabled, disabled, selected) → **Required**
|
|
65
|
-
- Boolean toggles → **Optional** (they have a default on/off state)
|
|
66
|
-
- Instance swap slots → **Optional** (they have a default or "None")
|
|
67
|
-
- Text content properties → Depends on context (Label usually required, Helper Text optional)
|
|
68
|
-
|
|
69
|
-
**Exclude transient interactive states:**
|
|
70
|
-
- `hover`, `pressed`, `focused`, `hovered` → These are runtime states, NOT API properties
|
|
71
|
-
- Only include **persistent** states: `disabled`, `selected`, `loading`, `error`, `active`
|
|
72
|
-
|
|
73
|
-
### Phase 3: Identify Sub-Component Configurations
|
|
74
|
-
|
|
75
|
-
For each instance swap slot or fixed nested component:
|
|
76
|
-
1. Check if the nested component has its own configurable properties
|
|
77
|
-
2. If yes, create a separate sub-component table
|
|
78
|
-
3. In the main table, add a note: "See [Sub-component Name] configuration below"
|
|
79
|
-
|
|
80
|
-
Example: A Section Heading with a trailing slot that accepts IconButton or TextButton:
|
|
81
|
-
- Main table lists "Trailing Content" with values: "Icon Button | Text Button | None"
|
|
82
|
-
- Sub-table for "Icon Button Configuration" lists the icon button's own properties
|
|
83
|
-
- Sub-table for "Text Button Configuration" lists the text button's own properties
|
|
84
|
-
|
|
85
|
-
### Phase 4: Generate Configuration Examples
|
|
86
|
-
|
|
87
|
-
Create 1–4 examples showing common real-world setups:
|
|
88
|
-
|
|
89
|
-
**Example selection strategy:**
|
|
90
|
-
1. **Minimal** — Required properties only, all optionals at defaults
|
|
91
|
-
2. **Common** — The most frequently used configuration
|
|
92
|
-
3. **Full** — All optional elements enabled
|
|
93
|
-
4. **Specialized** — A specific variant (e.g., "Error state with helper text")
|
|
94
|
-
|
|
95
|
-
For each example:
|
|
96
|
-
- Create a component instance with the specific properties set
|
|
97
|
-
- Add a label below: Example name + brief description
|
|
98
|
-
- Add a property callout listing which properties differ from default
|
|
99
|
-
|
|
100
|
-
### Phase 5: Render the Documentation Frame
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
Main Frame (1440px wide, auto-layout vertical, padding 60px, gap 40px)
|
|
104
|
-
├── Header Section
|
|
105
|
-
│ ├── Title: "[Component Name] — API" (24px bold)
|
|
106
|
-
│ └── Subtitle: "Properties and configuration reference" (14px, #6B7280)
|
|
107
|
-
├── Main Property Table
|
|
108
|
-
│ ├── Header: Property | Type | Values | Default | Required | Notes
|
|
109
|
-
│ └── Rows: One per property (grouped by source: variants first, then booleans, then slots)
|
|
110
|
-
├── Sub-Component Table(s) (if applicable)
|
|
111
|
-
│ ├── Section Header: "[Sub-component] Configuration"
|
|
112
|
-
│ └── Table with same column structure
|
|
113
|
-
├── Configuration Examples Section
|
|
114
|
-
│ ├── Section Header: "Configuration Examples"
|
|
115
|
-
│ └── Example Grid (2-column layout)
|
|
116
|
-
│ ├── Example 1: [Instance] + [Label + Property List]
|
|
117
|
-
│ ├── Example 2: [Instance] + [Label + Property List]
|
|
118
|
-
│ └── ...
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
**Main Property Table columns:**
|
|
122
|
-
| Column | Width | Content |
|
|
123
|
-
|--------|-------|---------|
|
|
124
|
-
| Property | 160px | Property name |
|
|
125
|
-
| Type | 100px | `variant` / `boolean` / `slot` / `text` / `mode` |
|
|
126
|
-
| Values | 200px | All possible values, pipe-separated |
|
|
127
|
-
| Default | 120px | Default value, **bold** |
|
|
128
|
-
| Required | 80px | ✓ or — |
|
|
129
|
-
| Notes | Fill | Description of what this property controls |
|
|
130
|
-
|
|
131
|
-
### Phase 6: Validate
|
|
132
|
-
|
|
133
|
-
Checklist:
|
|
134
|
-
- [ ] All variant axes are listed
|
|
135
|
-
- [ ] All boolean properties are listed
|
|
136
|
-
- [ ] All instance swap slots are listed
|
|
137
|
-
- [ ] All variable mode properties are listed
|
|
138
|
-
- [ ] Transient states (hover, pressed) are NOT listed
|
|
139
|
-
- [ ] Default values are correctly identified
|
|
140
|
-
- [ ] Sub-component tables exist for configurable nested components
|
|
141
|
-
- [ ] Configuration examples render correctly with the right property combinations
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Example: Button API
|
|
146
|
-
|
|
147
|
-
**Main Property Table:**
|
|
148
|
-
| Property | Type | Values | Default | Required | Notes |
|
|
149
|
-
|----------|------|--------|---------|----------|-------|
|
|
150
|
-
| Size | variant | Large \| Medium \| Small \| XSmall | Medium | ✓ | Controls button height and padding |
|
|
151
|
-
| Hierarchy | variant | Primary \| Secondary \| Tertiary | Primary | ✓ | Visual emphasis level |
|
|
152
|
-
| State | variant | Enabled \| Disabled \| Loading | Enabled | ✓ | Interaction state |
|
|
153
|
-
| Show Leading Icon | boolean | true \| false | false | — | Displays an icon before the label |
|
|
154
|
-
| Show Trailing Icon | boolean | true \| false | false | — | Displays an icon after the label |
|
|
155
|
-
| Label | text | string | "Button" | ✓ | Button text content |
|
|
156
|
-
| Color | mode | Default \| Danger \| Success | Default | — | Color scheme via variable mode |
|
|
157
|
-
|
|
158
|
-
**Configuration Examples:**
|
|
159
|
-
1. **Default** — Medium, Primary, Enabled, no icons → The basic button
|
|
160
|
-
2. **Icon + Label** — Medium, Primary, Leading Icon visible → Common CTA pattern
|
|
161
|
-
3. **Danger Action** — Medium, Primary, Danger color, "Delete" label → Destructive action
|
|
162
|
-
4. **Loading** — Medium, Primary, Loading state → Async operation in progress
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
# Color Annotation Spec Reference
|
|
2
|
-
|
|
3
|
-
Generate design token specifications mapping every UI element to its color token across states and variants.
|
|
4
|
-
|
|
5
|
-
## What This Spec Produces
|
|
6
|
-
|
|
7
|
-
1. **Color-annotated artwork** — Component instances with numbered markers pointing to color-bearing elements
|
|
8
|
-
2. **Token mapping tables** — Element name → Token name → Resolved hex value, organized by state
|
|
9
|
-
3. **Variant sections** — Separate sections for each color-affecting variant (Default, Danger, etc.)
|
|
10
|
-
4. **Variable mode sections** — Sections for variable-mode-controlled color variants (Tag color, Badge style)
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Step-by-Step Pipeline
|
|
15
|
-
|
|
16
|
-
### Phase 1: Determine Rendering Strategy
|
|
17
|
-
|
|
18
|
-
Before extracting data, analyze which variant axes affect color:
|
|
19
|
-
|
|
20
|
-
**Strategy A — Section-per-variant** (simpler components):
|
|
21
|
-
Use when the component has ≤3 color-affecting variant values (e.g., Default + Danger).
|
|
22
|
-
Render: One section per variant, each containing state tables.
|
|
23
|
-
|
|
24
|
-
**Strategy B — States-as-columns** (complex components):
|
|
25
|
-
Use when the component has many variant combinations (e.g., 4 types × 4 states).
|
|
26
|
-
Render: One table per variant type, with states as columns.
|
|
27
|
-
|
|
28
|
-
**Strategy C — Variable-mode sections**:
|
|
29
|
-
Use when color is controlled by a Figma variable collection (e.g., "Tag Color" with Default, Success, Warning, Error modes).
|
|
30
|
-
Render: One section per mode value.
|
|
31
|
-
|
|
32
|
-
**Decision logic:**
|
|
33
|
-
1. Count variant axes that affect fill/stroke colors
|
|
34
|
-
2. If only "State" axis changes colors → Strategy A (sections for other axes, states within each)
|
|
35
|
-
3. If multiple axes × multiple states → Strategy B (states as columns)
|
|
36
|
-
4. If color comes from variable modes → Strategy C
|
|
37
|
-
|
|
38
|
-
### Phase 2: Extract Color Data
|
|
39
|
-
|
|
40
|
-
For each variant/state combination that needs documentation:
|
|
41
|
-
|
|
42
|
-
1. Create or navigate to the appropriate variant instance
|
|
43
|
-
2. For every child layer (recursive), extract:
|
|
44
|
-
```
|
|
45
|
-
get_node_fills(child_id) → fill color(s)
|
|
46
|
-
get_node_strokes(child_id) → stroke/border color(s)
|
|
47
|
-
get_bound_variables(child_id) → variable bindings (token references)
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
3. For each color-bearing property, collect:
|
|
51
|
-
- **Element name**: Layer name (e.g., "Container", "Label Text", "Icon")
|
|
52
|
-
- **Property**: `fill`, `stroke`, `text-fill`
|
|
53
|
-
- **Token name**: The variable/token name if bound (e.g., `color/button/primary/bg`)
|
|
54
|
-
- **Resolved value**: The actual hex color value (e.g., `#6D28D9`)
|
|
55
|
-
- **Opacity**: If not 100%, include it
|
|
56
|
-
|
|
57
|
-
4. **Enable hidden boolean elements** before extracting:
|
|
58
|
-
```
|
|
59
|
-
set_component_properties(instance_id, { "Show Leading Icon": true, ... })
|
|
60
|
-
```
|
|
61
|
-
Hidden elements may have color bindings that only appear when visible.
|
|
62
|
-
|
|
63
|
-
### Phase 3: Classify Color Roles (AI Reasoning)
|
|
64
|
-
|
|
65
|
-
Group elements by their color role:
|
|
66
|
-
|
|
67
|
-
| Role | Elements | Example Tokens |
|
|
68
|
-
|------|----------|----------------|
|
|
69
|
-
| Background | Container fills, surface fills | `color/bg/primary`, `color/surface/default` |
|
|
70
|
-
| Text | Label, helper text, placeholder | `color/text/primary`, `color/text/secondary` |
|
|
71
|
-
| Icon | Leading icon, trailing icon fills | `color/icon/primary`, `color/icon/on-color` |
|
|
72
|
-
| Border | Container strokes, input outlines | `color/border/default`, `color/border/focus` |
|
|
73
|
-
| State Layer | Hover overlay, pressed overlay | `color/state-layer/hover`, `color/state-layer/pressed` |
|
|
74
|
-
| Indicator | Error icon, success badge | `color/indicator/error`, `color/indicator/success` |
|
|
75
|
-
|
|
76
|
-
### Phase 4: Render the Documentation Frame
|
|
77
|
-
|
|
78
|
-
#### Strategy A Layout (Section-per-variant):
|
|
79
|
-
```
|
|
80
|
-
Main Frame (1440px wide)
|
|
81
|
-
├── Header: "[Component Name] — Color Annotation"
|
|
82
|
-
├── Variant Section: "Default"
|
|
83
|
-
│ ├── State: "Enabled"
|
|
84
|
-
│ │ ├── Annotated Artwork (instance + numbered markers)
|
|
85
|
-
│ │ └── Token Table: Element | Property | Token | Value
|
|
86
|
-
│ ├── State: "Hover"
|
|
87
|
-
│ │ ├── Annotated Artwork
|
|
88
|
-
│ │ └── Token Table (highlight changed values in bold)
|
|
89
|
-
│ ├── State: "Pressed"
|
|
90
|
-
│ │ └── ...
|
|
91
|
-
│ └── State: "Disabled"
|
|
92
|
-
│ └── ...
|
|
93
|
-
├── Variant Section: "Danger"
|
|
94
|
-
│ └── (same structure)
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
#### Strategy B Layout (States-as-columns):
|
|
98
|
-
```
|
|
99
|
-
Main Frame (1440px wide)
|
|
100
|
-
├── Header: "[Component Name] — Color Annotation"
|
|
101
|
-
├── Artwork Strip: [Enabled] [Hover] [Pressed] [Disabled]
|
|
102
|
-
├── Token Table:
|
|
103
|
-
│ Header: Element | Property | Enabled | Hover | Pressed | Disabled
|
|
104
|
-
│ Row: Container | fill | token/bg/default | token/bg/hover | ... | ...
|
|
105
|
-
│ Row: Label | text | token/text/primary | (same) | ... | token/text/disabled
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
#### Strategy C Layout (Variable modes):
|
|
109
|
-
```
|
|
110
|
-
Main Frame (1440px wide)
|
|
111
|
-
├── Header: "[Component Name] — Color Annotation"
|
|
112
|
-
├── Mode Section: "Default"
|
|
113
|
-
│ ├── Annotated Artwork
|
|
114
|
-
│ └── Token Table
|
|
115
|
-
├── Mode Section: "Success"
|
|
116
|
-
│ └── ...
|
|
117
|
-
├── Mode Section: "Warning"
|
|
118
|
-
│ └── ...
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Marker Placement for Color Specs
|
|
122
|
-
|
|
123
|
-
Color markers differ from anatomy markers:
|
|
124
|
-
- Use **same marker style** (24px circle, #D946EF)
|
|
125
|
-
- Place markers pointing to the specific **color-bearing surface** (not the element in general)
|
|
126
|
-
- For elements with both fill and stroke, use two markers (one for each)
|
|
127
|
-
- Number markers per-section (restart numbering for each state/variant section)
|
|
128
|
-
|
|
129
|
-
### Phase 5: Validate
|
|
130
|
-
|
|
131
|
-
Checklist:
|
|
132
|
-
- [ ] All color-bearing elements are documented (fills, strokes, text colors)
|
|
133
|
-
- [ ] Token names match actual Figma variable names
|
|
134
|
-
- [ ] Resolved hex values are correct
|
|
135
|
-
- [ ] All relevant states are covered (enabled, hover, pressed, disabled at minimum)
|
|
136
|
-
- [ ] All relevant variants are covered
|
|
137
|
-
- [ ] Variable mode sections exist for mode-controlled colors
|
|
138
|
-
- [ ] Light/dark themes are NOT duplicated (semantic tokens handle this)
|
|
139
|
-
- [ ] Hidden elements' colors are captured (booleans toggled on during extraction)
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## Notes
|
|
144
|
-
|
|
145
|
-
- **Semantic tokens only**: Document the semantic token names, not raw color primitives. If an element is bound to `color/text/primary` which resolves to `gray/900` which resolves to `#111827`, document `color/text/primary → #111827`.
|
|
146
|
-
- **State layers**: Hover and pressed often use a semi-transparent overlay. Document both the overlay token and its opacity.
|
|
147
|
-
- **Unchanged values**: When a token stays the same across states, you can use "—" or "(same)" in the table to reduce noise. Only highlight values that actually change.
|
|
148
|
-
- **Sub-component reference**: If a nested component (e.g., Icon Button inside Section Heading) has its own color spec, add a note "See [Component] color annotation" rather than duplicating all its tokens.
|