forge-orkes 0.3.8 → 0.3.10

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.
@@ -1,92 +1,76 @@
1
1
  ---
2
2
  name: designing
3
- description: "Use when building UI: component selection, visual design, responsive layouts, accessibility, design system consistency. Trigger whenever the deliverable includes visible UI. Reads design system config from .forge/project.yml and component mappings from .forge/design-system.md."
3
+ description: "Build consistent, accessible UIs using the project's design system. Reads config from .forge/project.yml and component mappings from .forge/design-system.md."
4
4
  ---
5
5
 
6
6
  # Designing
7
7
 
8
- Build consistent, accessible UIs by using the project's design system, not fighting it.
9
-
10
8
  ## Step 1: Load Design System Config
11
9
 
12
- Read the project's design system configuration:
13
-
14
10
  ```
15
11
  Read: .forge/project.yml → design_system section
16
12
  Read: .forge/design-system.md (component mapping table)
17
13
  ```
18
14
 
19
- If neither exists, this project hasn't been initialized with a design system. Ask the user:
20
- - *"This project doesn't have a design system configured. Would you like to set one up now, or proceed without design system enforcement?"*
15
+ If neither exists, ask the user: set one up now, or proceed without design system enforcement?
21
16
 
22
- If `design_system.library` is `none`, skip component enforcement and focus on general design principles (accessibility, responsiveness, loading states).
17
+ If `design_system.library` is `none`, skip component enforcement. Focus on accessibility, responsiveness, and loading states.
23
18
 
24
19
  ## Step 2: Component Mapping
25
20
 
26
- The component mapping table in `.forge/design-system.md` is the source of truth. It maps UI needs to specific components from the project's library.
21
+ The mapping table in `.forge/design-system.md` is the source of truth maps UI needs to library components.
27
22
 
28
- **When building any UI element**, check the mapping table first:
29
- 1. Look up the UI need (data table, modal, dropdown, etc.)
30
- 2. Use the mapped component with the documented props
31
- 3. If the UI need isn't in the table → check the library's docs → add to the table
23
+ For every UI element:
24
+ 1. Look up the UI need in the mapping table
25
+ 2. Use the mapped component with documented props
26
+ 3. If unmapped → check library docs → add to the table
32
27
 
33
- **Never build custom HTML/CSS for patterns the design system provides.** This is the single most important rule.
28
+ **Never build custom HTML/CSS for patterns the design system provides.**
34
29
 
35
30
  ## Step 3: Style Rules
36
31
 
37
- These rules adapt based on the configured design system:
38
-
39
- 1. **Use the design system's tokens, NOT custom CSS values**
32
+ 1. **Design system tokens, not custom CSS values**
40
33
  - Read `design_system.theme_approach` from project.yml
41
34
  - Bad: `style={{color: '#3B82F6', padding: '12px'}}`
42
- - Good: Use the library's utility classes or theme tokens
35
+ - Good: Library utility classes or theme tokens
43
36
 
44
- 2. **Use design system components, NOT raw HTML**
37
+ 2. **Design system components, not raw HTML**
45
38
  - Bad: `<table><thead><tr><th>` for data display
46
- - Good: The library's table/data grid component
47
- - Bad: `<div className="modal-overlay">` with absolute positioning
48
- - Good: The library's dialog/modal component
39
+ - Good: Library's table/data grid component
49
40
 
50
- 3. **Use the configured icon set**
51
- - Read `design_system.icon_set` from project.yml
52
- - Use only icons from this set for consistency
41
+ 3. **Configured icon set only** — read `design_system.icon_set` from project.yml
53
42
 
54
- 4. **Use the configured layout system**
55
- - Read `design_system.layout_system` from project.yml
56
- - Use its grid/flex utilities for responsive layouts
57
- - Never hardcode pixel widths for responsive layouts
43
+ 4. **Configured layout system** — read `design_system.layout_system` from project.yml. Never hardcode pixel widths for responsive layouts.
58
44
 
59
- 5. **Theme customization goes in theme files, not inline**
60
- - Override theme variables in the designated theme config
61
- - Never scatter theme overrides across component files
45
+ 5. **Theme overrides in theme files, not inline** — never scatter overrides across component files
62
46
 
63
47
  ## Step 4: General Design Principles
64
48
 
65
- These apply regardless of which design system is used (or if none is used).
49
+ Apply regardless of design system choice.
66
50
 
67
51
  ### Accessibility
68
52
  - Every interactive element needs a label (visible or `aria-label`)
69
- - Color is never the only indicator (use icons + color)
53
+ - Color is never the only indicator pair with icons
70
54
  - Keyboard navigation works for all interactive elements
71
- - Focus indicators are visible
72
- - Most design system components handle a11y by default — don't override it
55
+ - Focus indicators visible
56
+ - Design system components handle a11y by default — don't override
73
57
 
74
58
  ### Responsive Design
75
59
  - Mobile-first: design for small screens, enhance for large
76
60
  - Use the layout system's breakpoints
77
- - Test at 320px, 768px, 1024px, 1440px widths
78
- - Tables should scroll horizontally on mobile
61
+ - Test at 320px, 768px, 1024px, 1440px
62
+ - Tables scroll horizontally on mobile
79
63
 
80
64
  ### Loading States
81
- - Always show loading indicators for async operations
82
- - Use skeleton loaders or spinners during data fetch
65
+ - Show loading indicators for all async operations
66
+ - Skeleton loaders or spinners during data fetch
83
67
  - Disable submit buttons while processing
84
68
 
85
69
  ### Form Patterns
86
- - Labels above inputs, not beside (better for mobile and a11y)
87
- - Validation messages appear near the relevant field
88
- - Submit buttons show loading state during submission
89
- - Forms use the design system's form components
70
+ - Labels above inputs (better for mobile and a11y)
71
+ - Validation messages near the relevant field
72
+ - Submit buttons show loading state
73
+ - Use the design system's form components
90
74
 
91
75
  ## Step 5: Output Checklist
92
76
 
@@ -96,15 +80,13 @@ These apply regardless of which design system is used (or if none is used).
96
80
  - [ ] Configured icon set used for all icons
97
81
  - [ ] Responsive layout using configured layout system
98
82
  - [ ] Keyboard navigation works
99
- - [ ] Loading states present for all async operations
83
+ - [ ] Loading states for all async operations
100
84
  - [ ] Forms use proper labels and validation messages
101
85
 
102
86
  ## Creating a New Design System Config
103
87
 
104
- When setting up a design system during project init (or later), follow this process:
105
-
106
- 1. **Research the library**: Use `researching` skill to pull component docs
107
- 2. **Build the mapping table**: Create `.forge/design-system.md` with this structure:
88
+ 1. Research the library via the `researching` skill
89
+ 2. Build `.forge/design-system.md`:
108
90
 
109
91
  ```markdown
110
92
  # Design System: {Library Name}
@@ -118,7 +100,6 @@ Docs: {docs_url}
118
100
  | Data table | `<ComponentName>` | `prop1`, `prop2` | `<ComponentName prop1={val} />` |
119
101
  | Modal | ... | ... | ... |
120
102
  | Dropdown | ... | ... | ... |
121
- | ... | ... | ... | ... |
122
103
 
123
104
  ## Style Rules
124
105
 
@@ -129,6 +110,6 @@ Docs: {docs_url}
129
110
  {How to use icons from the configured icon set}
130
111
  ```
131
112
 
132
- 3. **Validate with user**: Present the mapping and ask if anything is missing or wrong.
113
+ 3. Present the mapping to the user for validation
133
114
 
134
- Example configs for common libraries are available in `.forge/templates/design-systems/` as starting points.
115
+ Example configs in `.forge/templates/design-systems/`.