@sarjallab09/figma-intelligence 1.1.0 → 1.2.0

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 (297) hide show
  1. package/README.md +67 -36
  2. package/dist/bin/cli.js +2 -0
  3. package/dist/design-bridge/bridge.js +2 -0
  4. package/dist/figma-bridge-plugin/bridge-relay.js +2 -0
  5. package/dist/figma-bridge-plugin/code.js +1 -0
  6. package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package-lock.json +0 -3
  7. package/dist/figma-bridge-plugin/ui.html +4970 -0
  8. package/dist/figma-intelligence-layer/dist/index.js +2 -0
  9. package/dist/scripts/clean-existing-chunks.js +2 -0
  10. package/dist/scripts/connect-ai-tool.js +2 -0
  11. package/dist/scripts/convert-hub-pdfs.js +2 -0
  12. package/dist/scripts/figma-mcp-status.js +2 -0
  13. package/dist/scripts/register-codex-mcp.js +2 -0
  14. package/dist/scripts/test-copilot-chat.js +2 -0
  15. package/package.json +11 -8
  16. package/bin/cli.js +0 -859
  17. package/design-bridge/bridge.js +0 -196
  18. package/design-bridge/lib/assets.js +0 -367
  19. package/design-bridge/lib/prompt.js +0 -85
  20. package/design-bridge/lib/server.js +0 -66
  21. package/design-bridge/lib/stitch.js +0 -37
  22. package/design-bridge/lib/tokens.js +0 -82
  23. package/design-bridge/package-lock.json +0 -579
  24. package/figma-bridge-plugin/README.md +0 -97
  25. package/figma-bridge-plugin/anthropic-chat-runner.js +0 -192
  26. package/figma-bridge-plugin/bridge-relay.js +0 -2505
  27. package/figma-bridge-plugin/chat-runner.js +0 -485
  28. package/figma-bridge-plugin/code.js +0 -1534
  29. package/figma-bridge-plugin/codex-runner.js +0 -505
  30. package/figma-bridge-plugin/component-schemas.js +0 -110
  31. package/figma-bridge-plugin/content-context.js +0 -869
  32. package/figma-bridge-plugin/create-button.js +0 -216
  33. package/figma-bridge-plugin/gemini-cli-runner.js +0 -291
  34. package/figma-bridge-plugin/gemini-runner.js +0 -187
  35. package/figma-bridge-plugin/html-to-figma.js +0 -927
  36. package/figma-bridge-plugin/knowledge-hub/.gitkeep +0 -0
  37. package/figma-bridge-plugin/knowledge-hub/uspec-references/anatomy-spec.md +0 -159
  38. package/figma-bridge-plugin/knowledge-hub/uspec-references/api-spec.md +0 -162
  39. package/figma-bridge-plugin/knowledge-hub/uspec-references/color-spec.md +0 -148
  40. package/figma-bridge-plugin/knowledge-hub/uspec-references/full-spec-template.md +0 -314
  41. package/figma-bridge-plugin/knowledge-hub/uspec-references/property-spec.md +0 -175
  42. package/figma-bridge-plugin/knowledge-hub/uspec-references/screen-reader-spec.md +0 -180
  43. package/figma-bridge-plugin/knowledge-hub/uspec-references/structure-spec.md +0 -165
  44. package/figma-bridge-plugin/perplexity-runner.js +0 -188
  45. package/figma-bridge-plugin/references/SKILL.md +0 -178
  46. package/figma-bridge-plugin/references/anatomy-spec.md +0 -159
  47. package/figma-bridge-plugin/references/api-spec.md +0 -162
  48. package/figma-bridge-plugin/references/color-spec.md +0 -148
  49. package/figma-bridge-plugin/references/full-spec-template.md +0 -314
  50. package/figma-bridge-plugin/references/property-spec.md +0 -175
  51. package/figma-bridge-plugin/references/screen-reader-spec.md +0 -180
  52. package/figma-bridge-plugin/references/structure-spec.md +0 -165
  53. package/figma-bridge-plugin/shared-prompt-config.js +0 -645
  54. package/figma-bridge-plugin/spec-helpers/build-table.js +0 -269
  55. package/figma-bridge-plugin/spec-helpers/classify-elements.js +0 -189
  56. package/figma-bridge-plugin/spec-helpers/index.js +0 -35
  57. package/figma-bridge-plugin/spec-helpers/parse-figma-link.js +0 -49
  58. package/figma-bridge-plugin/spec-helpers/position-markers.js +0 -158
  59. package/figma-bridge-plugin/stitch-auth.js +0 -322
  60. package/figma-bridge-plugin/stitch-runner.js +0 -1427
  61. package/figma-bridge-plugin/token-resolver.js +0 -107
  62. package/figma-bridge-plugin/ui.html +0 -4542
  63. package/figma-intelligence-layer/.env.example +0 -39
  64. package/figma-intelligence-layer/docs/local-image-generation.md +0 -60
  65. package/figma-intelligence-layer/examples/comfyui-workflow-template.example.json +0 -101
  66. package/figma-intelligence-layer/jest.config.js +0 -14
  67. package/figma-intelligence-layer/mcp-config.json +0 -19
  68. package/figma-intelligence-layer/package-lock.json +0 -5892
  69. package/figma-intelligence-layer/scripts/setup-comfyui-local.sh +0 -67
  70. package/figma-intelligence-layer/scripts/start-comfyui.sh +0 -33
  71. package/figma-intelligence-layer/src/index.ts +0 -2233
  72. package/figma-intelligence-layer/src/shared/auto-layout-validator.ts +0 -404
  73. package/figma-intelligence-layer/src/shared/cache.ts +0 -187
  74. package/figma-intelligence-layer/src/shared/color-operations.ts +0 -533
  75. package/figma-intelligence-layer/src/shared/color-utils.ts +0 -138
  76. package/figma-intelligence-layer/src/shared/component-script-builder.ts +0 -413
  77. package/figma-intelligence-layer/src/shared/component-templates.ts +0 -2767
  78. package/figma-intelligence-layer/src/shared/concept-taxonomy.ts +0 -694
  79. package/figma-intelligence-layer/src/shared/decision-log.ts +0 -128
  80. package/figma-intelligence-layer/src/shared/design-system-context.ts +0 -568
  81. package/figma-intelligence-layer/src/shared/design-system-intelligence.ts +0 -131
  82. package/figma-intelligence-layer/src/shared/design-system-matcher.ts +0 -184
  83. package/figma-intelligence-layer/src/shared/design-system-normalizers.ts +0 -196
  84. package/figma-intelligence-layer/src/shared/design-system-tokens.ts +0 -295
  85. package/figma-intelligence-layer/src/shared/dtcg-validator.ts +0 -530
  86. package/figma-intelligence-layer/src/shared/enrichment-pipeline.ts +0 -671
  87. package/figma-intelligence-layer/src/shared/figma-bridge.ts +0 -1418
  88. package/figma-intelligence-layer/src/shared/font-config.ts +0 -126
  89. package/figma-intelligence-layer/src/shared/icon-catalog.ts +0 -360
  90. package/figma-intelligence-layer/src/shared/icon-fetch.ts +0 -80
  91. package/figma-intelligence-layer/src/shared/prototype-script-builder.ts +0 -162
  92. package/figma-intelligence-layer/src/shared/response-compression.ts +0 -440
  93. package/figma-intelligence-layer/src/shared/semantic-token-catalog.ts +0 -324
  94. package/figma-intelligence-layer/src/shared/token-binder.ts +0 -505
  95. package/figma-intelligence-layer/src/shared/token-math.ts +0 -427
  96. package/figma-intelligence-layer/src/shared/token-naming.ts +0 -468
  97. package/figma-intelligence-layer/src/shared/token-utils.ts +0 -420
  98. package/figma-intelligence-layer/src/shared/types.ts +0 -346
  99. package/figma-intelligence-layer/src/shared/typography-presets.ts +0 -94
  100. package/figma-intelligence-layer/src/shared/unsplash.ts +0 -165
  101. package/figma-intelligence-layer/src/shared/vision-client.ts +0 -607
  102. package/figma-intelligence-layer/src/shared/vision-provider-anthropic.ts +0 -334
  103. package/figma-intelligence-layer/src/shared/vision-provider-openai.ts +0 -446
  104. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-handler.ts +0 -782
  105. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-renderer.ts +0 -496
  106. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotation-kit.ts +0 -230
  107. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/colorblind-sim.ts +0 -66
  108. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/index.ts +0 -810
  109. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-analyzer.ts +0 -1191
  110. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-figma-page.ts +0 -1346
  111. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-handler.ts +0 -148
  112. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-figma-page.ts +0 -499
  113. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-report.ts +0 -910
  114. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-checker.ts +0 -989
  115. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-criteria.ts +0 -1160
  116. package/figma-intelligence-layer/src/tools/phase1-vision/design-from-ref/index.ts +0 -424
  117. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/component-recognizer.ts +0 -38
  118. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/ds-matcher.ts +0 -111
  119. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/font-matcher.ts +0 -114
  120. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/icon-resolver.ts +0 -103
  121. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/index.ts +0 -1060
  122. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/layout-segmenter.ts +0 -18
  123. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/token-inferencer.ts +0 -39
  124. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/vision-pipeline.ts +0 -58
  125. package/figma-intelligence-layer/src/tools/phase1-vision/sketch-to-design/index.ts +0 -298
  126. package/figma-intelligence-layer/src/tools/phase1-vision/visual-audit/index.ts +0 -197
  127. package/figma-intelligence-layer/src/tools/phase2-accuracy/component-audit/index.ts +0 -494
  128. package/figma-intelligence-layer/src/tools/phase2-accuracy/intent-translator/index.ts +0 -356
  129. package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/container-patterns.ts +0 -123
  130. package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/index.ts +0 -663
  131. package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/built-in-rules.yaml +0 -56
  132. package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/index.ts +0 -614
  133. package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/rule-engine.ts +0 -113
  134. package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/color-theory.ts +0 -178
  135. package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/index.ts +0 -470
  136. package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/index.ts +0 -429
  137. package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/token-override-maps.ts +0 -226
  138. package/figma-intelligence-layer/src/tools/phase3-generation/ai-image-insert/index.ts +0 -535
  139. package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/index.ts +0 -660
  140. package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/pattern-fingerprints.ts +0 -209
  141. package/figma-intelligence-layer/src/tools/phase3-generation/composition-builder/index.ts +0 -540
  142. package/figma-intelligence-layer/src/tools/phase3-generation/figma-animated-build.ts +0 -391
  143. package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/index.ts +0 -2019
  144. package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/screen-templates.ts +0 -131
  145. package/figma-intelligence-layer/src/tools/phase3-generation/prototype-map/index.ts +0 -381
  146. package/figma-intelligence-layer/src/tools/phase3-generation/prototype-wire/index.ts +0 -565
  147. package/figma-intelligence-layer/src/tools/phase3-generation/swarm-build/index.ts +0 -764
  148. package/figma-intelligence-layer/src/tools/phase3-generation/system-drift/index.ts +0 -535
  149. package/figma-intelligence-layer/src/tools/phase3-generation/unsplash-search/index.ts +0 -84
  150. package/figma-intelligence-layer/src/tools/phase3-generation/url-to-frame/index.ts +0 -401
  151. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/css-animations.ts +0 -68
  152. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/framer-motion.ts +0 -78
  153. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/swift-animations.ts +0 -93
  154. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/index.ts +0 -596
  155. package/figma-intelligence-layer/src/tools/phase4-sync/ci-check/index.ts +0 -462
  156. package/figma-intelligence-layer/src/tools/phase4-sync/export-tokens/index.ts +0 -1470
  157. package/figma-intelligence-layer/src/tools/phase4-sync/generate-component-code/index.ts +0 -829
  158. package/figma-intelligence-layer/src/tools/phase4-sync/handoff-spec/index.ts +0 -702
  159. package/figma-intelligence-layer/src/tools/phase4-sync/icon-library-sync/index.ts +0 -483
  160. package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/index.ts +0 -501
  161. package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/storybook-parser.ts +0 -106
  162. package/figma-intelligence-layer/src/tools/phase4-sync/watch-docs/index.ts +0 -676
  163. package/figma-intelligence-layer/src/tools/phase4-sync/webhook-listener/index.ts +0 -560
  164. package/figma-intelligence-layer/src/tools/phase5-governance/apg-doc/index.ts +0 -1043
  165. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/component-detection.ts +0 -620
  166. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/anatomy.ts +0 -331
  167. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/color-tokens.ts +0 -77
  168. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/properties.ts +0 -54
  169. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/snapshot.ts +0 -287
  170. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/spacing.ts +0 -71
  171. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/states.ts +0 -43
  172. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/typography.ts +0 -71
  173. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/index.ts +0 -221
  174. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/_default.ts +0 -166
  175. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/accordion.ts +0 -232
  176. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/alert.ts +0 -234
  177. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar-group.ts +0 -270
  178. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar.ts +0 -249
  179. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/badge.ts +0 -231
  180. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/banner.ts +0 -293
  181. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/breadcrumb.ts +0 -240
  182. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/button.ts +0 -243
  183. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/calendar.ts +0 -307
  184. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/card.ts +0 -143
  185. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/checkbox.ts +0 -227
  186. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/chip.ts +0 -233
  187. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/combobox.ts +0 -282
  188. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/datepicker.ts +0 -276
  189. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/divider.ts +0 -223
  190. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/drawer.ts +0 -255
  191. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/dropdown-menu.ts +0 -289
  192. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/empty-state.ts +0 -261
  193. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/file-uploader.ts +0 -290
  194. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/form.ts +0 -265
  195. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/grid.ts +0 -238
  196. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/icon.ts +0 -255
  197. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/index.ts +0 -128
  198. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-edit.ts +0 -286
  199. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-message.ts +0 -255
  200. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/input.ts +0 -330
  201. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/link.ts +0 -247
  202. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/list.ts +0 -250
  203. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/menu.ts +0 -247
  204. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/modal.ts +0 -144
  205. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navbar.ts +0 -264
  206. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navigation.ts +0 -251
  207. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/number-input.ts +0 -261
  208. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/pagination.ts +0 -248
  209. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/popover.ts +0 -270
  210. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/progress.ts +0 -251
  211. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/radio.ts +0 -142
  212. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/range-slider.ts +0 -282
  213. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/rating.ts +0 -250
  214. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/search.ts +0 -258
  215. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/segmented-control.ts +0 -265
  216. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/select.ts +0 -319
  217. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/skeleton.ts +0 -256
  218. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/slider.ts +0 -232
  219. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/spinner.ts +0 -239
  220. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/status-dot.ts +0 -252
  221. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/stepper.ts +0 -270
  222. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/table.ts +0 -244
  223. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tabs.ts +0 -143
  224. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tag.ts +0 -243
  225. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/textarea.ts +0 -259
  226. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/time-picker.ts +0 -293
  227. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toast.ts +0 -144
  228. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toggle.ts +0 -289
  229. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toolbar.ts +0 -267
  230. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tooltip.ts +0 -232
  231. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/treeview.ts +0 -257
  232. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/typography.ts +0 -319
  233. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/legacy-compat.ts +0 -121
  234. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/anatomy-diagram.ts +0 -430
  235. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/figma-page.ts +0 -312
  236. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/json.ts +0 -129
  237. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/markdown.ts +0 -78
  238. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/visual-doc.ts +0 -2333
  239. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/accessibility.ts +0 -100
  240. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/anatomy.ts +0 -32
  241. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/color-tokens.ts +0 -59
  242. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/content-guidance.ts +0 -18
  243. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/design-tokens.ts +0 -53
  244. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/interaction-rules.ts +0 -19
  245. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/overview.ts +0 -91
  246. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/properties-api.ts +0 -71
  247. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/qa-criteria.ts +0 -19
  248. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/related-components.ts +0 -110
  249. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/responsive.ts +0 -19
  250. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/size-specs.ts +0 -67
  251. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/spacing-structure.ts +0 -58
  252. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/state-specs.ts +0 -79
  253. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/states.ts +0 -50
  254. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/type-hierarchy.ts +0 -33
  255. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/typography.ts +0 -55
  256. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/usage-guidelines.ts +0 -73
  257. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/variants.ts +0 -81
  258. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/types.ts +0 -409
  259. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/index.ts +0 -198
  260. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/renderer.ts +0 -701
  261. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/types.ts +0 -88
  262. package/figma-intelligence-layer/src/tools/phase5-governance/decision-log/index.ts +0 -135
  263. package/figma-intelligence-layer/src/tools/phase5-governance/design-decision-log/index.ts +0 -491
  264. package/figma-intelligence-layer/src/tools/phase5-governance/ds-primitives/index.ts +0 -416
  265. package/figma-intelligence-layer/src/tools/phase5-governance/ds-scaffolder/index.ts +0 -722
  266. package/figma-intelligence-layer/src/tools/phase5-governance/ds-variables/index.ts +0 -449
  267. package/figma-intelligence-layer/src/tools/phase5-governance/health-report/index.ts +0 -393
  268. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/index.ts +0 -406
  269. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/figma-page.ts +0 -292
  270. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/json.ts +0 -24
  271. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/markdown.ts +0 -172
  272. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/naming-guide.ts +0 -409
  273. package/figma-intelligence-layer/src/tools/phase5-governance/token-analytics/index.ts +0 -594
  274. package/figma-intelligence-layer/src/tools/phase5-governance/token-docs/index.ts +0 -710
  275. package/figma-intelligence-layer/src/tools/phase5-governance/token-migrate/index.ts +0 -458
  276. package/figma-intelligence-layer/src/tools/phase5-governance/token-naming/index.ts +0 -134
  277. package/figma-intelligence-layer/tests/apg-doc.test.ts +0 -101
  278. package/figma-intelligence-layer/tests/design-system-context.test.ts +0 -152
  279. package/figma-intelligence-layer/tests/design-system-matcher.test.ts +0 -144
  280. package/figma-intelligence-layer/tests/figma-bridge.test.ts +0 -83
  281. package/figma-intelligence-layer/tests/generate-image-and-insert.test.ts +0 -56
  282. package/figma-intelligence-layer/tests/screen-cloner-regression.test.ts +0 -69
  283. package/figma-intelligence-layer/tests/smoke.test.ts +0 -174
  284. package/figma-intelligence-layer/tests/spec-generator.test.ts +0 -127
  285. package/figma-intelligence-layer/tests/token-migrate.test.ts +0 -21
  286. package/figma-intelligence-layer/tests/token-naming.test.ts +0 -30
  287. package/figma-intelligence-layer/tsconfig.json +0 -19
  288. package/scripts/clean-existing-chunks.js +0 -179
  289. package/scripts/connect-ai-tool.js +0 -490
  290. package/scripts/convert-hub-pdfs.js +0 -425
  291. package/scripts/figma-mcp-status.js +0 -349
  292. package/scripts/register-codex-mcp.js +0 -96
  293. /package/{design-bridge → dist/design-bridge}/.env.example +0 -0
  294. /package/{design-bridge → dist/design-bridge}/package.json +0 -0
  295. /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/manifest.json +0 -0
  296. /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package.json +0 -0
  297. /package/{figma-intelligence-layer → dist/figma-intelligence-layer}/package.json +0 -0
@@ -1,264 +0,0 @@
1
- /**
2
- * navbar.ts — Gold-standard design knowledge for Navbar components
3
- */
4
- import type { ComponentKnowledge } from "../types.js";
5
-
6
- export const navbarKnowledge: ComponentKnowledge = {
7
- description:
8
- "Top-level horizontal navigation bar | Site-wide header and branding | AppBar/Header pattern",
9
-
10
- stateSpecifications: [
11
- {
12
- state: "Default",
13
- visualChange: "Full-width bar with logo, navigation items, and action slots on a solid or transparent background",
14
- opacity: "1",
15
- cursorWeb: "default",
16
- usage: "Resting state — navbar is visible at the top of the viewport with all items accessible",
17
- },
18
- {
19
- state: "Scrolled",
20
- visualChange: "Background becomes opaque (if transparent), elevation shadow appears via $navbar-shadow token",
21
- opacity: "1",
22
- cursorWeb: "default",
23
- usage: "User has scrolled past the initial viewport — navbar gains visual separation from content below",
24
- },
25
- {
26
- state: "Mobile Collapsed",
27
- visualChange: "Navigation items hidden; hamburger menu icon visible; logo and essential actions remain",
28
- opacity: "1",
29
- cursorWeb: "default",
30
- usage: "Viewport is below the mobile breakpoint — full navigation is collapsed into a menu trigger",
31
- },
32
- {
33
- state: "Mobile Expanded",
34
- visualChange: "Drawer or full-height overlay slides in from the side or top; nav items displayed vertically",
35
- opacity: "1",
36
- cursorWeb: "default",
37
- usage: "User has activated the hamburger menu — full navigation is accessible in a mobile-friendly layout",
38
- },
39
- {
40
- state: "Active Item",
41
- visualChange: "Currently active navigation item has a bottom border indicator or filled background highlight",
42
- opacity: "1",
43
- cursorWeb: "default",
44
- usage: "Indicates which top-level section the user is currently viewing",
45
- },
46
- {
47
- state: "Hover Item",
48
- visualChange: "Hovered navigation item shows subtle background tint or underline indicator",
49
- opacity: "1",
50
- cursorWeb: "pointer",
51
- usage: "Mouse cursor enters a navigation item's hit area",
52
- },
53
- {
54
- state: "Focus Item",
55
- visualChange: "2px focus ring offset by 2px from the navigation item, using $focus-ring token",
56
- opacity: "1",
57
- cursorWeb: "pointer",
58
- usage: "A navigation item receives keyboard focus via Tab key",
59
- },
60
- ],
61
-
62
- propertyDescriptions: {
63
- logo: "Brand logo element rendered in the leading position; accepts an image component, SVG, or text logotype",
64
- items: "Array of navigation item entries, each containing a label, href, and optional icon or submenu",
65
- actions: "Trailing slot for action elements — typically search, notifications, user avatar, or CTA buttons",
66
- sticky: "When true the navbar remains fixed at the top of the viewport during scroll (position: sticky or fixed)",
67
- transparent: "When true the navbar has a transparent background in its default state; becomes opaque on scroll",
68
- elevation: "Shadow depth level applied to the navbar — 'none', 'low', 'medium'; overridden by scrolled state",
69
- mobileBreakpoint: "Viewport width threshold below which the navbar collapses to mobile layout (default: 768px)",
70
- onMenuToggle: "Callback fired when the mobile hamburger menu is opened or closed; receives the new open state",
71
- activeItem: "Index or identifier of the currently active navigation item for visual highlighting",
72
- maxWidth: "Maximum content width within the navbar — content is centered and constrained (default: 1280px)",
73
- skipLink: "When true, a visually hidden 'Skip to content' link is rendered as the first focusable element",
74
- position: "Positioning strategy — 'static', 'sticky', or 'fixed' — controls how the navbar behaves during scroll",
75
- },
76
-
77
- sizeSpecifications: [
78
- {
79
- size: "Compact",
80
- height: "48px",
81
- paddingLR: "16px",
82
- fontSize: "13px",
83
- iconSize: "18px",
84
- borderRadius: "0px",
85
- },
86
- {
87
- size: "Default",
88
- height: "56px",
89
- paddingLR: "24px",
90
- fontSize: "14px",
91
- iconSize: "20px",
92
- borderRadius: "0px",
93
- },
94
- {
95
- size: "Large",
96
- height: "64px",
97
- paddingLR: "32px",
98
- fontSize: "16px",
99
- iconSize: "24px",
100
- borderRadius: "0px",
101
- },
102
- ],
103
-
104
- designTokenBindings: [
105
- {
106
- property: "Background",
107
- tokenName: "$navbar-bg",
108
- role: "Navbar surface fill color — typically white or dark depending on theme",
109
- fallback: "#FFFFFF",
110
- },
111
- {
112
- property: "Text Color",
113
- tokenName: "$navbar-text",
114
- role: "Navigation item and brand text color",
115
- fallback: "#1D2939",
116
- },
117
- {
118
- property: "Border Bottom",
119
- tokenName: "$navbar-border",
120
- role: "Subtle 1px bottom border separating navbar from page content",
121
- fallback: "#EAECF0",
122
- },
123
- {
124
- property: "Scroll Shadow",
125
- tokenName: "$navbar-shadow",
126
- role: "Elevation shadow applied when the user scrolls past the top of the page",
127
- fallback: "0 1px 3px rgba(16,24,40,0.1), 0 1px 2px rgba(16,24,40,0.06)",
128
- },
129
- {
130
- property: "Mobile Overlay",
131
- tokenName: "$navbar-mobile-overlay",
132
- role: "Semi-transparent backdrop behind the mobile navigation drawer",
133
- fallback: "rgba(16,24,40,0.6)",
134
- },
135
- {
136
- property: "Focus Ring",
137
- tokenName: "$focus-ring",
138
- role: "Keyboard focus indicator ring for navigation items and action buttons",
139
- fallback: "0 0 0 2px #FFFFFF, 0 0 0 4px #2E90FA",
140
- },
141
- {
142
- property: "Font Family",
143
- tokenName: "$font-family-sans",
144
- role: "Navigation item typeface",
145
- fallback: "Inter, system-ui, sans-serif",
146
- },
147
- {
148
- property: "Active Indicator",
149
- tokenName: "$navbar-active-indicator",
150
- role: "Color of the bottom border or background highlight on the active navigation item",
151
- fallback: "#2563EB",
152
- },
153
- {
154
- property: "Transition",
155
- tokenName: "$transition-interactive",
156
- role: "Smooth transitions for scroll shadow, mobile drawer, and hover states",
157
- fallback: "200ms ease-in-out",
158
- },
159
- ],
160
-
161
- structureRules: [
162
- "Outer wrapper uses role='banner' for the site-wide header; contains a <nav> element for the navigation items",
163
- "Container uses horizontal Auto Layout (flexbox) with space-between distribution and center vertical alignment",
164
- "Logo slot is the first child; navigation items occupy the center; actions slot is the trailing child",
165
- "Navigation items are rendered as an <ul>/<li> list within the <nav> element",
166
- "Mobile hamburger button is visually hidden on desktop and displayed only below the mobile breakpoint",
167
- "Mobile drawer renders as a separate layer with a backdrop overlay that closes on click-outside or Escape",
168
- "Skip-to-content link is the first focusable element in the DOM, visually hidden until focused",
169
- ],
170
-
171
- typeHierarchyRules: [
172
- "Navigation item weight is Medium (500) for default items; Semi-Bold (600) for the active item",
173
- "Text uses sentence case for navigation labels — match section titles exactly",
174
- "Active indicator (bottom border or background) is 2-3px thick using $navbar-active-indicator token",
175
- "Logo text uses the brand typeface or is replaced by an image — never both simultaneously",
176
- "No underline on navigation items — underline is reserved for inline text links",
177
- "Mobile drawer items use a larger font-size (16px minimum) for touch readability",
178
- ],
179
-
180
- interactionRules: [
181
- { event: "Click Nav Item", trigger: "pointerup on a navigation item", action: "Navigate to the section/page; update active item indicator" },
182
- { event: "Hover Nav Item", trigger: "pointerenter on a navigation item", action: "Show subtle background tint or underline indicator" },
183
- { event: "Focus Nav Item", trigger: "Tab key or focus()", action: "Show focus ring; do not trigger navigation" },
184
- { event: "Keydown Enter", trigger: "Enter key while a nav item is focused", action: "Navigate to the section/page (same as click)" },
185
- { event: "Hamburger Click", trigger: "pointerup on mobile menu button", action: "Toggle mobile drawer open/closed; fire onMenuToggle callback" },
186
- { event: "Escape on Drawer", trigger: "Escape key while mobile drawer is open", action: "Close drawer; return focus to hamburger button" },
187
- { event: "Click Overlay", trigger: "pointerup on the mobile backdrop overlay", action: "Close the mobile drawer" },
188
- { event: "Scroll", trigger: "Window scroll passes threshold (default: 10px)", action: "Add elevation shadow and opaque background if transparent" },
189
- ],
190
-
191
- contentGuidance: [
192
- "Limit top-level navigation items to 5-7 for cognitive manageability — use dropdowns for deeper hierarchy",
193
- "Labels should be concise (one to two words) and clearly describe the destination section",
194
- "Place the most important navigation items first (left-to-right in LTR locales)",
195
- "Reserve the actions slot for utility actions (search, profile, settings) — not primary navigation",
196
- "Always include a 'Skip to content' link for keyboard and screen reader users",
197
- "Logo should link to the homepage — this is a universal convention users expect",
198
- "Avoid placing too many action items in the trailing slot — prioritize the top 2-3 actions",
199
- "Mobile drawer should mirror the desktop navigation order for consistency",
200
- ],
201
-
202
- responsiveBehaviour: [
203
- { breakpoint: "Mobile (<768px)", behavior: "Navigation items collapse into hamburger menu; logo and 1-2 essential actions remain visible; drawer opens full-width or as side panel" },
204
- { breakpoint: "Tablet (768-1023px)", behavior: "Navigation items may remain visible if count is 4 or fewer; otherwise collapse to hamburger; compact height used" },
205
- { breakpoint: "Desktop (1024-1439px)", behavior: "Full horizontal navigation visible; all items and actions displayed inline; standard spacing" },
206
- { breakpoint: "Ultra-wide (>=1440px)", behavior: "Navbar content constrained to maxWidth and centered; background extends full width; no proportional scaling" },
207
- ],
208
-
209
- accessibilitySpec: {
210
- intro:
211
- "The navbar is typically the first interactive region users encounter. Proper landmark roles, skip links, and keyboard navigation are essential for an accessible experience.",
212
- requirements: [
213
- { requirement: "Banner Landmark", level: "A", notes: "Use role='banner' on the header wrapper to establish a page-level landmark for assistive technology" },
214
- { requirement: "Navigation Landmark", level: "A", notes: "Wrap navigation items in <nav> with aria-label='Main navigation' to distinguish from other nav regions" },
215
- { requirement: "Skip Link", level: "A", notes: "Provide a 'Skip to main content' link as the first focusable element; visible on focus for keyboard users" },
216
- { requirement: "Keyboard Navigation", level: "A", notes: "All navigation items and actions reachable via Tab; Enter activates links; Escape closes mobile drawer" },
217
- { requirement: "Mobile Drawer Focus Trap", level: "AA", notes: "When mobile drawer is open, focus is trapped within the drawer; Tab cycles through drawer items only" },
218
- { requirement: "Contrast Ratio", level: "AA", notes: "Navigation text to background: 4.5:1; active indicator to background: 3:1 non-text contrast" },
219
- { requirement: "Hamburger Button Label", level: "A", notes: "Mobile menu button must have aria-label='Open menu' and aria-expanded reflecting open/closed state" },
220
- ],
221
- outro: [
222
- "When the mobile drawer closes, return focus to the hamburger button to maintain the user's place",
223
- "Ensure scroll-triggered visual changes (shadow, opacity) do not cause content reflow or layout shifts",
224
- ],
225
- },
226
-
227
- qaAcceptanceCriteria: [
228
- { check: "Visual Regression", platform: "All", expectedResult: "Navbar renders pixel-perfect against baseline for each size and state (default, scrolled, mobile)" },
229
- { check: "Sticky Behavior", platform: "Web", expectedResult: "Navbar remains fixed at top during scroll; content scrolls beneath it without overlap issues" },
230
- { check: "Scroll Shadow", platform: "Web", expectedResult: "Shadow appears smoothly after scrolling past threshold; disappears when scrolled back to top" },
231
- { check: "Active Item", platform: "All", expectedResult: "Active navigation item displays indicator; updates correctly on route change" },
232
- { check: "Hover State", platform: "Web", expectedResult: "Navigation items show background tint or underline on hover with smooth transition" },
233
- { check: "Focus State", platform: "Web", expectedResult: "Focus ring visible on Tab for all interactive elements; hidden on mouse click (focus-visible)" },
234
- { check: "Mobile Collapse", platform: "Mobile", expectedResult: "Navigation items hidden below mobileBreakpoint; hamburger icon visible and functional" },
235
- { check: "Mobile Drawer", platform: "Mobile", expectedResult: "Drawer opens with animation; overlay visible; items navigable; closes on Escape or overlay click" },
236
- { check: "Skip Link", platform: "Web", expectedResult: "Skip link is hidden until focused; on activation, focus moves to main content region" },
237
- { check: "Screen Reader", platform: "Web", expectedResult: "Announces 'banner' landmark, 'Main navigation', item count, and active item designation" },
238
- { check: "Keyboard Navigation", platform: "Web", expectedResult: "Tab moves through items in order; Enter activates; focus trapped in open mobile drawer" },
239
- { check: "RTL Support", platform: "Web", expectedResult: "Logo moves to right; items reverse order; hamburger icon on left in RTL locales" },
240
- { check: "Contrast", platform: "All", expectedResult: "All text and indicator colors pass 4.5:1 text and 3:1 non-text contrast ratios" },
241
- ],
242
-
243
- dos: [
244
- "Use role='banner' for the site-wide header and <nav> with aria-label for the navigation region",
245
- "Always provide a 'Skip to content' link as the first focusable element",
246
- "Keep top-level navigation items to 5-7 entries for scannability",
247
- "Ensure the logo links to the homepage as users universally expect",
248
- "Add elevation (shadow) on scroll to provide visual separation from scrolling content",
249
- "Trap focus within the mobile drawer when it is open to prevent tabbing to obscured content",
250
- "Use the sticky or fixed position for the navbar to maintain persistent access to navigation",
251
- "Mirror the desktop navigation order in the mobile drawer for consistency",
252
- ],
253
-
254
- donts: [
255
- "Do not use the navbar for secondary or contextual navigation — use a sidebar or tabs component instead",
256
- "Do not remove the focus outline on navigation items without providing an equally visible alternative",
257
- "Do not auto-hide the navbar on scroll-down without a clear mechanism to bring it back on scroll-up",
258
- "Do not place more than 3 action items in the trailing slot — prioritize ruthlessly",
259
- "Do not use the navbar background color as the sole indicator of scrolled state — add shadow or border",
260
- "Do not allow the mobile drawer to open without a backdrop overlay to provide context separation",
261
- "Do not make the hamburger menu button smaller than 44x44px touch target",
262
- "Do not use different navigation structures between desktop and mobile — items must match",
263
- ],
264
- };
@@ -1,251 +0,0 @@
1
- /**
2
- * navigation.ts — Gold-standard design knowledge for Navigation Bar / Menu components
3
- */
4
- import type { ComponentKnowledge } from "../types.js";
5
-
6
- export const navigationKnowledge: ComponentKnowledge = {
7
- description:
8
- "Wayfinding structure | Site navigation bar | Primary route controller",
9
-
10
- stateSpecifications: [
11
- {
12
- state: "Default",
13
- visualChange: "Horizontal bar with navigation items displayed as text links or icon+text combinations",
14
- opacity: "1",
15
- cursorWeb: "default",
16
- usage: "Standard navigation bar displaying available routes",
17
- },
18
- {
19
- state: "Item Hover",
20
- visualChange: "Hovered nav item shows subtle background highlight or underline preview",
21
- opacity: "1",
22
- cursorWeb: "pointer",
23
- usage: "Cursor enters a navigation item's hit area",
24
- },
25
- {
26
- state: "Item Active",
27
- visualChange: "Active item has a bold label, accent-colored underline/indicator, and distinct background",
28
- opacity: "1",
29
- cursorWeb: "default",
30
- usage: "The navigation item matches the current page or route",
31
- },
32
- {
33
- state: "Item Focus",
34
- visualChange: "2px focus ring visible around the focused navigation item",
35
- opacity: "1",
36
- cursorWeb: "pointer",
37
- usage: "Navigation item receives keyboard focus via Tab key",
38
- },
39
- {
40
- state: "Mobile Collapsed",
41
- visualChange: "Navigation items hidden; hamburger menu icon visible in the top bar",
42
- opacity: "1",
43
- cursorWeb: "pointer",
44
- usage: "Viewport is below the mobile breakpoint; nav is collapsed to save space",
45
- },
46
- {
47
- state: "Mobile Expanded",
48
- visualChange: "Full-height overlay or slide-out drawer displaying navigation items vertically",
49
- opacity: "1",
50
- cursorWeb: "default",
51
- usage: "User opened the hamburger menu; all nav items are visible in a drawer",
52
- },
53
- {
54
- state: "Submenu Open",
55
- visualChange: "Dropdown panel or flyout appears below/beside the parent nav item with nested links",
56
- opacity: "1",
57
- cursorWeb: "default",
58
- usage: "User hovered or clicked a nav item that has child routes",
59
- },
60
- ],
61
-
62
- propertyDescriptions: {
63
- items: "Array of navigation item objects with label, href/route, icon, and optional children for submenus",
64
- orientation: "Layout direction — Horizontal (top nav bar) or Vertical (sidebar navigation)",
65
- activeItem: "Identifier of the currently active navigation item matching the current route",
66
- collapsible: "When true, the navigation collapses to a hamburger menu below the mobile breakpoint",
67
- logo: "Optional branding slot rendered at the leading edge of the navigation bar",
68
- actions: "Optional trailing slot for utility actions (search, notifications, profile avatar)",
69
- sticky: "When true, the navigation bar remains fixed at the top of the viewport during scroll",
70
- },
71
-
72
- sizeSpecifications: [
73
- {
74
- size: "Compact",
75
- height: "48px",
76
- paddingLR: "16px",
77
- fontSize: "13px",
78
- iconSize: "18px",
79
- borderRadius: "0px",
80
- },
81
- {
82
- size: "Default",
83
- height: "56px",
84
- paddingLR: "24px",
85
- fontSize: "14px",
86
- iconSize: "20px",
87
- borderRadius: "0px",
88
- },
89
- {
90
- size: "Large",
91
- height: "64px",
92
- paddingLR: "32px",
93
- fontSize: "15px",
94
- iconSize: "22px",
95
- borderRadius: "0px",
96
- },
97
- {
98
- size: "Sidebar Item",
99
- height: "40px",
100
- paddingLR: "12px",
101
- fontSize: "14px",
102
- iconSize: "20px",
103
- borderRadius: "8px",
104
- },
105
- {
106
- size: "Mobile Drawer Item",
107
- height: "48px",
108
- paddingLR: "16px",
109
- fontSize: "16px",
110
- iconSize: "22px",
111
- borderRadius: "0px",
112
- },
113
- ],
114
-
115
- designTokenBindings: [
116
- {
117
- property: "Bar Background",
118
- tokenName: "$nav-bg",
119
- role: "Background fill for the navigation bar container",
120
- fallback: "#FFFFFF",
121
- },
122
- {
123
- property: "Item Text",
124
- tokenName: "$nav-item-text",
125
- role: "Default navigation item label color",
126
- fallback: "#4B5563",
127
- },
128
- {
129
- property: "Item Text Active",
130
- tokenName: "$nav-item-text-active",
131
- role: "Active navigation item label color — higher contrast or accent",
132
- fallback: "#111827",
133
- },
134
- {
135
- property: "Active Indicator",
136
- tokenName: "$nav-active-indicator",
137
- role: "Accent color for the active item underline or sidebar highlight",
138
- fallback: "#2563EB",
139
- },
140
- {
141
- property: "Item Hover Bg",
142
- tokenName: "$nav-item-hover",
143
- role: "Subtle background fill on navigation item hover",
144
- fallback: "#F3F4F6",
145
- },
146
- {
147
- property: "Border Bottom",
148
- tokenName: "$nav-border",
149
- role: "Bottom border separating the nav bar from page content",
150
- fallback: "#E5E7EB",
151
- },
152
- {
153
- property: "Focus Ring",
154
- tokenName: "$focus-ring",
155
- role: "Keyboard focus indicator ring for nav items",
156
- fallback: "0 0 0 2px #FFFFFF, 0 0 0 4px #2E90FA",
157
- },
158
- ],
159
-
160
- structureRules: [
161
- "Navigation bar uses a <nav> element with an aria-label (e.g. 'Main navigation')",
162
- "Items are rendered as an unordered list (<ul>) with each item in an <li> containing an <a> or <button>",
163
- "Horizontal layout uses Auto Layout with space-between for logo/items/actions sections",
164
- "Active item indicator (underline or side bar) is a pseudo-element or child element — not a border",
165
- "Mobile hamburger button is positioned in the top-right or top-left of the nav bar",
166
- "Mobile drawer overlay uses a semi-transparent backdrop (z-index above page content, below modals)",
167
- "Submenus are rendered as nested <ul> elements positioned absolutely below or beside the parent item",
168
- ],
169
-
170
- typeHierarchyRules: [
171
- "Navigation item labels use Medium weight (500) for default state and Semi-Bold (600) for active state",
172
- "Text uses sentence case — 'Getting started', not 'Getting Started' or 'GETTING STARTED'",
173
- "Navigation items are single-line only; long labels should be shortened, never wrapped",
174
- "Logo text or branding uses a distinct typeface or weight to differentiate from nav items",
175
- "Submenu items use the same font size as primary items or one step smaller",
176
- ],
177
-
178
- interactionRules: [
179
- { event: "Item Click", trigger: "pointerup on navigation item", action: "Navigate to the associated route; update active state" },
180
- { event: "Submenu Hover", trigger: "pointerenter on parent item with children", action: "Open submenu dropdown after a 150ms delay to prevent flash on pass-through" },
181
- { event: "Hamburger Click", trigger: "pointerup on mobile menu button", action: "Toggle mobile drawer open/closed; trap focus within drawer when open" },
182
- { event: "Escape Key", trigger: "Escape while mobile drawer or submenu is open", action: "Close the drawer/submenu; return focus to the trigger element" },
183
- { event: "Tab Navigation", trigger: "Tab key through nav items", action: "Move focus linearly through visible items; skip hidden submenus" },
184
- { event: "Arrow Keys", trigger: "Arrow keys while nav is focused", action: "Horizontal: Left/Right for top nav; Vertical: Up/Down for sidebar and submenus" },
185
- { event: "Skip Link", trigger: "First Tab press on the page", action: "Reveal 'Skip to main content' link before the navigation" },
186
- ],
187
-
188
- contentGuidance: [
189
- "Limit primary navigation to 5-7 items — more causes cognitive overload and layout issues",
190
- "Use clear, concise labels that describe the destination: 'Products', 'Pricing', 'Documentation'",
191
- "Avoid generic labels like 'More', 'Misc', or 'Other' — they provide no wayfinding value",
192
- "Group related items in submenus rather than overcrowding the primary level",
193
- "Icons should be used consistently — either all items have icons or none do",
194
- "Mobile drawer should show all items including those in submenus, with indentation for hierarchy",
195
- ],
196
-
197
- responsiveBehaviour: [
198
- { breakpoint: "Mobile (<768px)", behavior: "Collapse to hamburger menu with full-height drawer; logo and key actions remain visible" },
199
- { breakpoint: "Tablet (768-1023px)", behavior: "May show priority items inline with overflow in a 'More' dropdown" },
200
- { breakpoint: "Desktop (1024-1439px)", behavior: "Full horizontal navigation with all primary items visible inline" },
201
- { breakpoint: "Ultra-wide (>=1440px)", behavior: "Navigation width capped at max-width container; centered on the page" },
202
- { breakpoint: "Sidebar Mode", behavior: "Vertical navigation docked to the left; may collapse to icon-only rail on narrow viewports" },
203
- ],
204
-
205
- accessibilitySpec: {
206
- intro:
207
- "Navigation is the primary wayfinding mechanism and must be fully accessible via keyboard, screen readers, and assistive technologies.",
208
- requirements: [
209
- { requirement: "Landmark Role", level: "A", notes: "Use <nav> element with aria-label distinguishing multiple nav regions (e.g. 'Main', 'Footer')" },
210
- { requirement: "Skip Navigation", level: "A", notes: "Provide a 'Skip to main content' link as the first focusable element on the page" },
211
- { requirement: "Current Page", level: "A", notes: "Active item uses aria-current='page' to announce the current location" },
212
- { requirement: "Keyboard Navigation", level: "A", notes: "Tab moves through items; arrow keys navigate within menus; Escape closes submenus" },
213
- { requirement: "Submenu Disclosure", level: "A", notes: "Parent items with submenus use aria-expanded and aria-haspopup='menu'" },
214
- { requirement: "Contrast Ratio", level: "AA", notes: "Item text-to-background: 4.5:1; active indicator: 3:1 non-text contrast" },
215
- { requirement: "Focus Trapping", level: "AA", notes: "Mobile drawer traps focus within the drawer until it is closed" },
216
- ],
217
- outro: [
218
- "Ensure mobile drawer close button is the first or last focusable element for easy dismissal",
219
- "Announce route changes to screen readers via an aria-live region or page title update",
220
- ],
221
- },
222
-
223
- qaAcceptanceCriteria: [
224
- { check: "Active Indicator", platform: "All", expectedResult: "Current page item shows accent underline/highlight; other items remain in default state" },
225
- { check: "Mobile Collapse", platform: "Mobile", expectedResult: "Nav collapses to hamburger below breakpoint; drawer opens/closes smoothly" },
226
- { check: "Sticky Behavior", platform: "Web", expectedResult: "Nav bar remains fixed during scroll; no content hidden behind it (scroll padding applied)" },
227
- { check: "Submenu Open/Close", platform: "Web", expectedResult: "Submenu opens on hover/click with delay; closes on mouse leave or Escape" },
228
- { check: "Keyboard Flow", platform: "Web", expectedResult: "Tab traverses all items; arrow keys work within submenus; Escape closes menus" },
229
- { check: "Skip Link", platform: "Web", expectedResult: "Skip link visible on first Tab; activating it moves focus to main content area" },
230
- { check: "Screen Reader", platform: "Web", expectedResult: "Announces nav landmark, current page, expanded/collapsed submenu states" },
231
- ],
232
-
233
- dos: [
234
- "Use a <nav> landmark with a descriptive aria-label for every navigation region",
235
- "Include a 'Skip to main content' link as the first focusable element",
236
- "Mark the active item with aria-current='page' and a visual indicator",
237
- "Collapse to a hamburger menu on mobile with a full-height drawer",
238
- "Use sticky positioning so the nav remains accessible during long page scrolls",
239
- "Group submenus logically and limit nesting to two levels maximum",
240
- ],
241
-
242
- donts: [
243
- "Do not use more than 7 primary navigation items — prioritize and group into submenus",
244
- "Do not remove the active state indicator — users need to know where they are",
245
- "Do not nest menus more than 2 levels deep — it creates confusion and accessibility issues",
246
- "Do not use the navigation bar for non-navigational actions like form submission",
247
- "Do not auto-collapse sidebar navigation without providing a toggle to expand it",
248
- "Do not use different interaction patterns (hover vs click) for submenus across the same nav",
249
- "Do not place the navigation below the fold or in unexpected positions",
250
- ],
251
- };