front-end-spec-tmpl.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. # <!-- Powered by BMAD™ Core -->
  2. template:
  3. id: frontend-spec-template-v2
  4. name: UI/UX Specification
  5. version: 2.0
  6. output:
  7. format: markdown
  8. filename: docs/front-end-spec.md
  9. title: "{{project_name}} UI/UX Specification"
  10. workflow:
  11. mode: interactive
  12. elicitation: advanced-elicitation
  13. sections:
  14. - id: introduction
  15. title: Introduction
  16. instruction: |
  17. Review provided documents including Project Brief, PRD, and any user research to gather context. Focus on understanding user needs, pain points, and desired outcomes before beginning the specification.
  18. Establish the document's purpose and scope. Keep the content below but ensure project name is properly substituted.
  19. content: |
  20. This document defines the user experience goals, information architecture, user flows, and visual design specifications for {{project_name}}'s user interface. It serves as the foundation for visual design and frontend development, ensuring a cohesive and user-centered experience.
  21. sections:
  22. - id: ux-goals-principles
  23. title: Overall UX Goals & Principles
  24. instruction: |
  25. Work with the user to establish and document the following. If not already defined, facilitate a discussion to determine:
  26. 1. Target User Personas - elicit details or confirm existing ones from PRD
  27. 2. Key Usability Goals - understand what success looks like for users
  28. 3. Core Design Principles - establish 3-5 guiding principles
  29. elicit: true
  30. sections:
  31. - id: user-personas
  32. title: Target User Personas
  33. template: "{{persona_descriptions}}"
  34. examples:
  35. - "**Power User:** Technical professionals who need advanced features and efficiency"
  36. - "**Casual User:** Occasional users who prioritize ease of use and clear guidance"
  37. - "**Administrator:** System managers who need control and oversight capabilities"
  38. - id: usability-goals
  39. title: Usability Goals
  40. template: "{{usability_goals}}"
  41. examples:
  42. - "Ease of learning: New users can complete core tasks within 5 minutes"
  43. - "Efficiency of use: Power users can complete frequent tasks with minimal clicks"
  44. - "Error prevention: Clear validation and confirmation for destructive actions"
  45. - "Memorability: Infrequent users can return without relearning"
  46. - id: design-principles
  47. title: Design Principles
  48. template: "{{design_principles}}"
  49. type: numbered-list
  50. examples:
  51. - "**Clarity over cleverness** - Prioritize clear communication over aesthetic innovation"
  52. - "**Progressive disclosure** - Show only what's needed, when it's needed"
  53. - "**Consistent patterns** - Use familiar UI patterns throughout the application"
  54. - "**Immediate feedback** - Every action should have a clear, immediate response"
  55. - "**Accessible by default** - Design for all users from the start"
  56. - id: changelog
  57. title: Change Log
  58. type: table
  59. columns: [Date, Version, Description, Author]
  60. instruction: Track document versions and changes
  61. - id: information-architecture
  62. title: Information Architecture (IA)
  63. instruction: |
  64. Collaborate with the user to create a comprehensive information architecture:
  65. 1. Build a Site Map or Screen Inventory showing all major areas
  66. 2. Define the Navigation Structure (primary, secondary, breadcrumbs)
  67. 3. Use Mermaid diagrams for visual representation
  68. 4. Consider user mental models and expected groupings
  69. elicit: true
  70. sections:
  71. - id: sitemap
  72. title: Site Map / Screen Inventory
  73. type: mermaid
  74. mermaid_type: graph
  75. template: "{{sitemap_diagram}}"
  76. examples:
  77. - |
  78. graph TD
  79. A[Homepage] --> B[Dashboard]
  80. A --> C[Products]
  81. A --> D[Account]
  82. B --> B1[Analytics]
  83. B --> B2[Recent Activity]
  84. C --> C1[Browse]
  85. C --> C2[Search]
  86. C --> C3[Product Details]
  87. D --> D1[Profile]
  88. D --> D2[Settings]
  89. D --> D3[Billing]
  90. - id: navigation-structure
  91. title: Navigation Structure
  92. template: |
  93. **Primary Navigation:** {{primary_nav_description}}
  94. **Secondary Navigation:** {{secondary_nav_description}}
  95. **Breadcrumb Strategy:** {{breadcrumb_strategy}}
  96. - id: user-flows
  97. title: User Flows
  98. instruction: |
  99. For each critical user task identified in the PRD:
  100. 1. Define the user's goal clearly
  101. 2. Map out all steps including decision points
  102. 3. Consider edge cases and error states
  103. 4. Use Mermaid flow diagrams for clarity
  104. 5. Link to external tools (Figma/Miro) if detailed flows exist there
  105. Create subsections for each major flow.
  106. elicit: true
  107. repeatable: true
  108. sections:
  109. - id: flow
  110. title: "{{flow_name}}"
  111. template: |
  112. **User Goal:** {{flow_goal}}
  113. **Entry Points:** {{entry_points}}
  114. **Success Criteria:** {{success_criteria}}
  115. sections:
  116. - id: flow-diagram
  117. title: Flow Diagram
  118. type: mermaid
  119. mermaid_type: graph
  120. template: "{{flow_diagram}}"
  121. - id: edge-cases
  122. title: "Edge Cases & Error Handling:"
  123. type: bullet-list
  124. template: "- {{edge_case}}"
  125. - id: notes
  126. template: "**Notes:** {{flow_notes}}"
  127. - id: wireframes-mockups
  128. title: Wireframes & Mockups
  129. instruction: |
  130. Clarify where detailed visual designs will be created (Figma, Sketch, etc.) and how to reference them. If low-fidelity wireframes are needed, offer to help conceptualize layouts for key screens.
  131. elicit: true
  132. sections:
  133. - id: design-files
  134. template: "**Primary Design Files:** {{design_tool_link}}"
  135. - id: key-screen-layouts
  136. title: Key Screen Layouts
  137. repeatable: true
  138. sections:
  139. - id: screen
  140. title: "{{screen_name}}"
  141. template: |
  142. **Purpose:** {{screen_purpose}}
  143. **Key Elements:**
  144. - {{element_1}}
  145. - {{element_2}}
  146. - {{element_3}}
  147. **Interaction Notes:** {{interaction_notes}}
  148. **Design File Reference:** {{specific_frame_link}}
  149. - id: component-library
  150. title: Component Library / Design System
  151. instruction: |
  152. Discuss whether to use an existing design system or create a new one. If creating new, identify foundational components and their key states. Note that detailed technical specs belong in front-end-architecture.
  153. elicit: true
  154. sections:
  155. - id: design-system-approach
  156. template: "**Design System Approach:** {{design_system_approach}}"
  157. - id: core-components
  158. title: Core Components
  159. repeatable: true
  160. sections:
  161. - id: component
  162. title: "{{component_name}}"
  163. template: |
  164. **Purpose:** {{component_purpose}}
  165. **Variants:** {{component_variants}}
  166. **States:** {{component_states}}
  167. **Usage Guidelines:** {{usage_guidelines}}
  168. - id: branding-style
  169. title: Branding & Style Guide
  170. instruction: Link to existing style guide or define key brand elements. Ensure consistency with company brand guidelines if they exist.
  171. elicit: true
  172. sections:
  173. - id: visual-identity
  174. title: Visual Identity
  175. template: "**Brand Guidelines:** {{brand_guidelines_link}}"
  176. - id: color-palette
  177. title: Color Palette
  178. type: table
  179. columns: ["Color Type", "Hex Code", "Usage"]
  180. rows:
  181. - ["Primary", "{{primary_color}}", "{{primary_usage}}"]
  182. - ["Secondary", "{{secondary_color}}", "{{secondary_usage}}"]
  183. - ["Accent", "{{accent_color}}", "{{accent_usage}}"]
  184. - ["Success", "{{success_color}}", "Positive feedback, confirmations"]
  185. - ["Warning", "{{warning_color}}", "Cautions, important notices"]
  186. - ["Error", "{{error_color}}", "Errors, destructive actions"]
  187. - ["Neutral", "{{neutral_colors}}", "Text, borders, backgrounds"]
  188. - id: typography
  189. title: Typography
  190. sections:
  191. - id: font-families
  192. title: Font Families
  193. template: |
  194. - **Primary:** {{primary_font}}
  195. - **Secondary:** {{secondary_font}}
  196. - **Monospace:** {{mono_font}}
  197. - id: type-scale
  198. title: Type Scale
  199. type: table
  200. columns: ["Element", "Size", "Weight", "Line Height"]
  201. rows:
  202. - ["H1", "{{h1_size}}", "{{h1_weight}}", "{{h1_line}}"]
  203. - ["H2", "{{h2_size}}", "{{h2_weight}}", "{{h2_line}}"]
  204. - ["H3", "{{h3_size}}", "{{h3_weight}}", "{{h3_line}}"]
  205. - ["Body", "{{body_size}}", "{{body_weight}}", "{{body_line}}"]
  206. - ["Small", "{{small_size}}", "{{small_weight}}", "{{small_line}}"]
  207. - id: iconography
  208. title: Iconography
  209. template: |
  210. **Icon Library:** {{icon_library}}
  211. **Usage Guidelines:** {{icon_guidelines}}
  212. - id: spacing-layout
  213. title: Spacing & Layout
  214. template: |
  215. **Grid System:** {{grid_system}}
  216. **Spacing Scale:** {{spacing_scale}}
  217. - id: accessibility
  218. title: Accessibility Requirements
  219. instruction: Define specific accessibility requirements based on target compliance level and user needs. Be comprehensive but practical.
  220. elicit: true
  221. sections:
  222. - id: compliance-target
  223. title: Compliance Target
  224. template: "**Standard:** {{compliance_standard}}"
  225. - id: key-requirements
  226. title: Key Requirements
  227. template: |
  228. **Visual:**
  229. - Color contrast ratios: {{contrast_requirements}}
  230. - Focus indicators: {{focus_requirements}}
  231. - Text sizing: {{text_requirements}}
  232. **Interaction:**
  233. - Keyboard navigation: {{keyboard_requirements}}
  234. - Screen reader support: {{screen_reader_requirements}}
  235. - Touch targets: {{touch_requirements}}
  236. **Content:**
  237. - Alternative text: {{alt_text_requirements}}
  238. - Heading structure: {{heading_requirements}}
  239. - Form labels: {{form_requirements}}
  240. - id: testing-strategy
  241. title: Testing Strategy
  242. template: "{{accessibility_testing}}"
  243. - id: responsiveness
  244. title: Responsiveness Strategy
  245. instruction: Define breakpoints and adaptation strategies for different device sizes. Consider both technical constraints and user contexts.
  246. elicit: true
  247. sections:
  248. - id: breakpoints
  249. title: Breakpoints
  250. type: table
  251. columns: ["Breakpoint", "Min Width", "Max Width", "Target Devices"]
  252. rows:
  253. - ["Mobile", "{{mobile_min}}", "{{mobile_max}}", "{{mobile_devices}}"]
  254. - ["Tablet", "{{tablet_min}}", "{{tablet_max}}", "{{tablet_devices}}"]
  255. - ["Desktop", "{{desktop_min}}", "{{desktop_max}}", "{{desktop_devices}}"]
  256. - ["Wide", "{{wide_min}}", "-", "{{wide_devices}}"]
  257. - id: adaptation-patterns
  258. title: Adaptation Patterns
  259. template: |
  260. **Layout Changes:** {{layout_adaptations}}
  261. **Navigation Changes:** {{nav_adaptations}}
  262. **Content Priority:** {{content_adaptations}}
  263. **Interaction Changes:** {{interaction_adaptations}}
  264. - id: animation
  265. title: Animation & Micro-interactions
  266. instruction: Define motion design principles and key interactions. Keep performance and accessibility in mind.
  267. elicit: true
  268. sections:
  269. - id: motion-principles
  270. title: Motion Principles
  271. template: "{{motion_principles}}"
  272. - id: key-animations
  273. title: Key Animations
  274. repeatable: true
  275. template: "- **{{animation_name}}:** {{animation_description}} (Duration: {{duration}}, Easing: {{easing}})"
  276. - id: performance
  277. title: Performance Considerations
  278. instruction: Define performance goals and strategies that impact UX design decisions.
  279. sections:
  280. - id: performance-goals
  281. title: Performance Goals
  282. template: |
  283. - **Page Load:** {{load_time_goal}}
  284. - **Interaction Response:** {{interaction_goal}}
  285. - **Animation FPS:** {{animation_goal}}
  286. - id: design-strategies
  287. title: Design Strategies
  288. template: "{{performance_strategies}}"
  289. - id: next-steps
  290. title: Next Steps
  291. instruction: |
  292. After completing the UI/UX specification:
  293. 1. Recommend review with stakeholders
  294. 2. Suggest creating/updating visual designs in design tool
  295. 3. Prepare for handoff to Design Architect for frontend architecture
  296. 4. Note any open questions or decisions needed
  297. sections:
  298. - id: immediate-actions
  299. title: Immediate Actions
  300. type: numbered-list
  301. template: "{{action}}"
  302. - id: design-handoff-checklist
  303. title: Design Handoff Checklist
  304. type: checklist
  305. items:
  306. - "All user flows documented"
  307. - "Component inventory complete"
  308. - "Accessibility requirements defined"
  309. - "Responsive strategy clear"
  310. - "Brand guidelines incorporated"
  311. - "Performance goals established"
  312. - id: checklist-results
  313. title: Checklist Results
  314. instruction: If a UI/UX checklist exists, run it against this document and report results here.