@iress-oss/ids-mcp-server 0.0.1 → 5.14.2
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/LICENSE.txt +201 -0
- package/README.md +29 -159
- package/dist/componentHandlers.js +241 -0
- package/dist/componentHandlers.test.js +380 -0
- package/{build → dist}/config.js +5 -5
- package/dist/index.js +53 -0
- package/{build → dist}/iressHandlers.js +52 -46
- package/dist/iressHandlers.test.js +316 -0
- package/{build → dist}/resourceHandlers.js +23 -22
- package/dist/resourceHandlers.test.js +352 -0
- package/{build → dist}/searchHandlers.js +107 -92
- package/dist/searchHandlers.test.js +524 -0
- package/{build → dist}/toolHandler.js +13 -13
- package/dist/toolHandler.test.js +369 -0
- package/dist/tools.js +165 -0
- package/{build → dist}/utils.js +11 -15
- package/dist/utils.test.js +286 -0
- package/{docs/ids → generated/docs}/components-autocomplete-docs.md +3 -3
- package/{docs/ids → generated/docs}/components-autocomplete-recipes-docs.md +17 -51
- package/{docs/ids → generated/docs}/components-card-recipes-docs.md +1 -1
- package/{docs/ids → generated/docs}/components-checkbox-docs.md +6 -19
- package/{docs/ids → generated/docs}/components-checkboxgroup-docs.md +18 -18
- package/{docs/ids → generated/docs}/components-checkboxgroup-recipes-docs.md +9 -9
- package/{docs/ids → generated/docs}/components-col-docs.md +1 -1
- package/{docs/ids → generated/docs}/components-combobox-docs.md +4 -4
- package/{docs/ids → generated/docs}/components-container-docs.md +8 -42
- package/{docs/ids → generated/docs}/components-filter-docs.md +14 -67
- package/{docs/ids → generated/docs}/components-form-docs.md +341 -335
- package/{docs/ids → generated/docs}/components-form-recipes-docs.md +198 -1
- package/{docs/ids → generated/docs}/components-hide-docs.md +16 -70
- package/{docs/ids → generated/docs}/components-icon-docs.md +4 -4
- package/{docs/ids → generated/docs}/components-input-recipes-docs.md +2 -2
- package/{docs/ids → generated/docs}/components-inputcurrency-recipes-docs.md +6 -40
- package/{docs/ids → generated/docs}/components-modal-docs.md +3 -113
- package/generated/docs/components-popover-docs.md +464 -0
- package/{docs/ids → generated/docs}/components-radiogroup-docs.md +21 -21
- package/{docs/ids → generated/docs}/components-richselect-docs.md +149 -111
- package/{docs/ids → generated/docs}/components-row-docs.md +4 -4
- package/{docs/ids → generated/docs}/components-skeleton-docs.md +3 -3
- package/{docs/ids → generated/docs}/components-skeleton-recipes-docs.md +1 -1
- package/{docs/ids → generated/docs}/components-skiplink-docs.md +1 -1
- package/{docs/ids → generated/docs}/components-slideout-docs.md +3 -113
- package/{docs/ids → generated/docs}/components-table-ag-grid-docs.md +109 -137
- package/{docs/ids → generated/docs}/components-table-docs.md +92 -597
- package/{docs/ids → generated/docs}/components-tabset-docs.md +2 -2
- package/{docs/ids → generated/docs}/components-tag-docs.md +1 -1
- package/{docs/ids → generated/docs}/components-toaster-docs.md +5 -5
- package/{docs/ids → generated/docs}/extensions-editor-docs.md +4 -4
- package/generated/docs/foundations-accessibility-docs.md +62 -0
- package/{docs/ids → generated/docs}/foundations-colours-docs.md +1 -1
- package/generated/docs/foundations-consistency-docs.md +52 -0
- package/generated/docs/foundations-content-docs.md +23 -0
- package/generated/docs/foundations-introduction-docs.md +17 -0
- package/generated/docs/foundations-principles-docs.md +70 -0
- package/{docs/ids → generated/docs}/foundations-typography-docs.md +7 -2
- package/generated/docs/foundations-user-experience-docs.md +63 -0
- package/generated/docs/foundations-visual-design-docs.md +46 -0
- package/{docs/ids → generated/docs}/get-started-develop-docs.md +3 -3
- package/generated/docs/guidelines.md +812 -0
- package/{docs/ids → generated/docs}/introduction-docs.md +4 -4
- package/{docs/ids → generated/docs}/patterns-loading-docs.md +332 -2
- package/generated/docs/resources-migration-guides-from-v4-to-v5-docs.md +437 -0
- package/generated/docs/themes-available-themes-docs.md +66 -0
- package/generated/docs/themes-tokens-docs.md +1200 -0
- package/generated/docs/versions-docs.md +17 -0
- package/package.json +42 -14
- package/LICENSE +0 -193
- package/build/componentHandlers.js +0 -205
- package/build/index.js +0 -51
- package/build/tools.js +0 -165
- package/docs/api-reference.md +0 -0
- package/docs/best-practices.md +0 -0
- package/docs/configuration.md +0 -0
- package/docs/examples.md +0 -0
- package/docs/guidelines.md +0 -269
- package/docs/ids/components-popover-docs.md +0 -4
- package/docs/ids/resources-migration-guides-from-v4-to-v5-docs.md +0 -639
- package/docs/ids/themes-available-themes-docs.md +0 -74
- package/docs/ids/themes-tokens-docs.md +0 -4580
- package/docs/ids/versions-docs.md +0 -27
- package/docs/tutorials/basic-integration.md +0 -0
- /package/{build → dist}/types.js +0 -0
- /package/{docs/ids → generated/docs}/components-alert-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-badge-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-button-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-button-recipes-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-buttongroup-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-card-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-divider-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-expander-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-field-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-inline-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-input-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-inputcurrency-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-label-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-menu-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-menu-menuitem-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-navbar-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-navbar-recipes-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-panel-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-placeholder-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-popover-recipes-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-progress-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-radio-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-readonly-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-select-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-slider-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-spinner-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-stack-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-tabset-tab-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-text-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-toaster-toast-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-toggle-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-tooltip-docs.md +0 -0
- /package/{docs/ids → generated/docs}/components-validationmessage-docs.md +0 -0
- /package/{docs/ids → generated/docs}/contact-us-docs.md +0 -0
- /package/{docs/ids → generated/docs}/extensions-editor-recipes-docs.md +0 -0
- /package/{docs/ids → generated/docs}/frequently-asked-questions-docs.md +0 -0
- /package/{docs/ids → generated/docs}/get-started-using-storybook-docs.md +0 -0
- /package/{docs/ids → generated/docs}/resources-changelog-docs.md +0 -0
- /package/{docs/ids → generated/docs}/resources-code-katas-docs.md +0 -0
- /package/{docs/ids → generated/docs}/themes-introduction-docs.md +0 -0
package/build/tools.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool definitions for the IDS MCP Server
|
|
3
|
-
*/
|
|
4
|
-
export const toolDefinitions = [
|
|
5
|
-
{
|
|
6
|
-
name: "find_component",
|
|
7
|
-
description: "Find IDS components by name or functionality. Perfect for discovering which component to use for specific UI needs.",
|
|
8
|
-
inputSchema: {
|
|
9
|
-
type: "object",
|
|
10
|
-
properties: {
|
|
11
|
-
query: {
|
|
12
|
-
type: "string",
|
|
13
|
-
description: "Component name (e.g., 'button', 'input') or functionality (e.g., 'form submission', 'navigation')",
|
|
14
|
-
},
|
|
15
|
-
category: {
|
|
16
|
-
type: "string",
|
|
17
|
-
description: "Optional: filter by category (components, foundations, resources)",
|
|
18
|
-
enum: ["components", "foundations", "resources"],
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
required: ["query"],
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: "get_component_props",
|
|
26
|
-
description: "Get detailed prop information and usage examples for IDS components. Essential for implementing components correctly.",
|
|
27
|
-
inputSchema: {
|
|
28
|
-
type: "object",
|
|
29
|
-
properties: {
|
|
30
|
-
component: {
|
|
31
|
-
type: "string",
|
|
32
|
-
description: "Component name (e.g., 'button', 'input', 'table')",
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
required: ["component"],
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "get_usage_examples",
|
|
40
|
-
description: "Get code examples and implementation patterns for IDS components. Shows real-world usage in React applications.",
|
|
41
|
-
inputSchema: {
|
|
42
|
-
type: "object",
|
|
43
|
-
properties: {
|
|
44
|
-
component: {
|
|
45
|
-
type: "string",
|
|
46
|
-
description: "Component name to get examples for",
|
|
47
|
-
},
|
|
48
|
-
pattern: {
|
|
49
|
-
type: "string",
|
|
50
|
-
description: "Optional: specific usage pattern (e.g., 'form', 'modal', 'table')",
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
required: ["component"],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: "search_ids_docs",
|
|
58
|
-
description: "Search across all IDS documentation for specific terms, patterns, or implementation details.",
|
|
59
|
-
inputSchema: {
|
|
60
|
-
type: "object",
|
|
61
|
-
properties: {
|
|
62
|
-
query: {
|
|
63
|
-
type: "string",
|
|
64
|
-
description: "Search term (component names, props, CSS classes, implementation patterns)",
|
|
65
|
-
},
|
|
66
|
-
case_sensitive: {
|
|
67
|
-
type: "boolean",
|
|
68
|
-
description: "Whether to perform case-sensitive search",
|
|
69
|
-
default: false,
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
required: ["query"],
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
name: "list_components",
|
|
77
|
-
description: "List all available IDS components, organized by category. Great for component discovery.",
|
|
78
|
-
inputSchema: {
|
|
79
|
-
type: "object",
|
|
80
|
-
properties: {
|
|
81
|
-
category: {
|
|
82
|
-
type: "string",
|
|
83
|
-
description: "Filter by category: components, foundations, or resources",
|
|
84
|
-
enum: ["components", "foundations", "resources", "all"],
|
|
85
|
-
default: "all",
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
name: "get_design_tokens",
|
|
92
|
-
description: "Get information about IDS design tokens (colors, spacing, typography) for consistent UI implementation.",
|
|
93
|
-
inputSchema: {
|
|
94
|
-
type: "object",
|
|
95
|
-
properties: {
|
|
96
|
-
type: {
|
|
97
|
-
type: "string",
|
|
98
|
-
description: "Type of design token to search for",
|
|
99
|
-
enum: ["colors", "spacing", "typography", "breakpoints", "all"],
|
|
100
|
-
default: "all",
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
name: "get_iress_component_info",
|
|
107
|
-
description: "Get comprehensive information about Iress components mentioned by their full name (e.g., IressButton, IressInput, IressTable). Perfect for when components are mentioned with the Iress prefix.",
|
|
108
|
-
inputSchema: {
|
|
109
|
-
type: "object",
|
|
110
|
-
properties: {
|
|
111
|
-
component_name: {
|
|
112
|
-
type: "string",
|
|
113
|
-
description: "Full Iress component name (e.g., 'IressButton', 'IressInput', 'IressTable')",
|
|
114
|
-
},
|
|
115
|
-
include_examples: {
|
|
116
|
-
type: "boolean",
|
|
117
|
-
description: "Whether to include usage examples in the response",
|
|
118
|
-
default: true,
|
|
119
|
-
},
|
|
120
|
-
include_props: {
|
|
121
|
-
type: "boolean",
|
|
122
|
-
description: "Whether to include prop information in the response",
|
|
123
|
-
default: true,
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
required: ["component_name"],
|
|
127
|
-
},
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
name: "analyze_component_mentions",
|
|
131
|
-
description: "Analyze text to find all Iress component mentions (e.g., IressButton, IressInput) and provide information about each one.",
|
|
132
|
-
inputSchema: {
|
|
133
|
-
type: "object",
|
|
134
|
-
properties: {
|
|
135
|
-
text: {
|
|
136
|
-
type: "string",
|
|
137
|
-
description: "Text content to analyze for Iress component mentions",
|
|
138
|
-
},
|
|
139
|
-
detailed: {
|
|
140
|
-
type: "boolean",
|
|
141
|
-
description: "Whether to provide detailed information for each component found",
|
|
142
|
-
default: false,
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
required: ["text"],
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
name: "get_design_guidelines",
|
|
150
|
-
description: "Get IDS design guidelines covering core principles, visual standards, accessibility requirements, and best practices for consistent design implementation.",
|
|
151
|
-
inputSchema: {
|
|
152
|
-
type: "object",
|
|
153
|
-
properties: {
|
|
154
|
-
section: {
|
|
155
|
-
type: "string",
|
|
156
|
-
description: "Optional: specific guideline section (e.g., 'principles', 'typography', 'accessibility', 'layout', 'colors')",
|
|
157
|
-
},
|
|
158
|
-
query: {
|
|
159
|
-
type: "string",
|
|
160
|
-
description: "Optional: search for specific guidelines or best practices",
|
|
161
|
-
},
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
];
|
package/docs/api-reference.md
DELETED
|
File without changes
|
package/docs/best-practices.md
DELETED
|
File without changes
|
package/docs/configuration.md
DELETED
|
File without changes
|
package/docs/examples.md
DELETED
|
File without changes
|
package/docs/guidelines.md
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
# Iress Design System Guidelines
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The Iress Design System (IDS) serves as a shared visual language, working code, design tools and resources, human interface guidelines, and a community of contributors. It supports designers and developers building digital products for both B2B (Financial Advisors, Paraplanners) and B2B2C (client customers) segments.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Core Design Principles
|
|
10
|
-
|
|
11
|
-
### Consistency
|
|
12
|
-
|
|
13
|
-
- Maintain brand consistency across all applications and experiences
|
|
14
|
-
- Use standardised component naming conventions (all components start with `Iress` prefix)
|
|
15
|
-
- Leverage shared design tokens for spacing, colours, typography, and interactive states
|
|
16
|
-
- Ensure consistent behaviour patterns across similar components
|
|
17
|
-
|
|
18
|
-
### Accessibility First
|
|
19
|
-
|
|
20
|
-
- Meet or exceed WCAG 2.1 Level AA Accessibility Guidelines
|
|
21
|
-
- Provide proper colour contrast ratios (minimum 4.5:1 for AA, 7:1 for AAA)
|
|
22
|
-
- Implement comprehensive keyboard navigation support
|
|
23
|
-
- Include screen reader compatibility with appropriate ARIA attributes
|
|
24
|
-
- Support focus management and skip navigation patterns
|
|
25
|
-
|
|
26
|
-
### Clarity and Usability
|
|
27
|
-
|
|
28
|
-
- Prioritise clear visual hierarchy through typography scales and spacing systems
|
|
29
|
-
- Use progressive disclosure to manage complexity
|
|
30
|
-
- Provide immediate feedback for user actions (loading states, validation, etc.)
|
|
31
|
-
- Design for touch-friendly interfaces with adequate target sizes
|
|
32
|
-
|
|
33
|
-
### Developer Experience
|
|
34
|
-
|
|
35
|
-
- Maintain clean component APIs with predictable prop patterns
|
|
36
|
-
- Provide comprehensive documentation with usage examples
|
|
37
|
-
- Support both controlled and uncontrolled component patterns
|
|
38
|
-
- Enable efficient testing strategies with semantic roles and accessible queries
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Visual Design Standards
|
|
43
|
-
|
|
44
|
-
### Typography
|
|
45
|
-
|
|
46
|
-
- Use systematic font sizing with heading scales (H1-H6)
|
|
47
|
-
- Implement consistent line heights and font weights
|
|
48
|
-
- Provide text colour hierarchies (primary, muted, success, warning, danger)
|
|
49
|
-
- Support responsive typography scaling
|
|
50
|
-
|
|
51
|
-
### Colour System
|
|
52
|
-
|
|
53
|
-
- Maintain semantic colour meanings:
|
|
54
|
-
- **Primary**: Main call-to-action colour with high contrast
|
|
55
|
-
- **Success**: Positive outcomes and confirmations
|
|
56
|
-
- **Warning**: Caution and important notices
|
|
57
|
-
- **Danger**: Errors and destructive actions
|
|
58
|
-
- **Info**: Neutral information and guidance
|
|
59
|
-
- **Positive/Negative**: Financial context (buy/sell actions)
|
|
60
|
-
- Ensure all colour combinations meet accessibility contrast requirements
|
|
61
|
-
- Provide consistent hover and active state colours
|
|
62
|
-
|
|
63
|
-
### Spacing and Layout
|
|
64
|
-
|
|
65
|
-
- Use systematic spacing scale (xs, sm, md, lg, xl)
|
|
66
|
-
- Apply consistent gutter systems for layout components
|
|
67
|
-
- Implement responsive breakpoints for adaptive layouts
|
|
68
|
-
- Maintain proper margin and padding relationships
|
|
69
|
-
|
|
70
|
-
### Interactive States
|
|
71
|
-
|
|
72
|
-
- Provide clear hover, focus, active, and disabled states
|
|
73
|
-
- Use consistent transition timing and easing
|
|
74
|
-
- Implement proper focus indicators for keyboard navigation
|
|
75
|
-
- Show loading states for asynchronous operations
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Component Guidelines
|
|
80
|
-
|
|
81
|
-
### Buttons
|
|
82
|
-
|
|
83
|
-
- **Primary**: Limit to one per view for main call-to-action
|
|
84
|
-
- **Secondary**: Use for secondary actions
|
|
85
|
-
- **Tertiary**: Extra affordance between secondary actions
|
|
86
|
-
- **Link**: Button styled as link (avoid with icon-only content)
|
|
87
|
-
- **Danger**: Destructive actions requiring extra confirmation
|
|
88
|
-
- **Positive/Negative**: Financial transactions (buy/sell)
|
|
89
|
-
|
|
90
|
-
### Forms
|
|
91
|
-
|
|
92
|
-
- Always use `IressField` wrapper for proper label, hint, and error placement
|
|
93
|
-
- Provide clear validation feedback with appropriate error messages
|
|
94
|
-
- Use consistent input sizing based on expected content length
|
|
95
|
-
- Implement proper form state management and accessibility
|
|
96
|
-
|
|
97
|
-
### Navigation
|
|
98
|
-
|
|
99
|
-
- Use semantic HTML5 navigation elements
|
|
100
|
-
- Provide skip links for keyboard users
|
|
101
|
-
- Implement proper ARIA labelling for navigation sections
|
|
102
|
-
- Ensure consistent navigation patterns across applications
|
|
103
|
-
|
|
104
|
-
### Data Display
|
|
105
|
-
|
|
106
|
-
- Use semantic table structures with proper headers
|
|
107
|
-
- Provide clear visual hierarchy in data presentations
|
|
108
|
-
- Implement consistent sorting and filtering patterns
|
|
109
|
-
- Use appropriate loading states for data-heavy components
|
|
110
|
-
|
|
111
|
-
### Modals and Overlays
|
|
112
|
-
|
|
113
|
-
- Reserve modals for critical tasks requiring full attention
|
|
114
|
-
- Provide multiple dismissal methods (backdrop, escape key, close button)
|
|
115
|
-
- Implement proper focus management and restoration
|
|
116
|
-
- Use slideouts for supplementary tasks where underlying content needs visibility
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Interaction Patterns
|
|
121
|
-
|
|
122
|
-
### Keyboard Navigation
|
|
123
|
-
|
|
124
|
-
- Support standard keyboard shortcuts (Tab, Arrow keys, Enter, Space, Escape)
|
|
125
|
-
- Implement proper focus order and visual focus indicators
|
|
126
|
-
- Provide keyboard alternatives for mouse-only interactions
|
|
127
|
-
- Follow established ARIA patterns for complex widgets
|
|
128
|
-
|
|
129
|
-
### Touch Interactions
|
|
130
|
-
|
|
131
|
-
- Provide adequate touch target sizes (minimum 44px)
|
|
132
|
-
- Implement touch-friendly spacing between interactive elements
|
|
133
|
-
- Support gesture-based interactions where appropriate
|
|
134
|
-
- Ensure consistent behaviour across device types
|
|
135
|
-
|
|
136
|
-
### Loading and Feedback
|
|
137
|
-
|
|
138
|
-
- Use appropriate loading patterns based on context:
|
|
139
|
-
- **Page**: Full page loading states
|
|
140
|
-
- **Component**: Local loading within sections
|
|
141
|
-
- **Button**: Inline loading for form submissions
|
|
142
|
-
- **Validate**: Server-side validation feedback
|
|
143
|
-
- Provide clear success and error feedback
|
|
144
|
-
- Use progressive enhancement for better perceived performance
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Responsive Design
|
|
149
|
-
|
|
150
|
-
### Breakpoint Strategy
|
|
151
|
-
|
|
152
|
-
- Implement mobile-first responsive design
|
|
153
|
-
- Use consistent breakpoint values across all components
|
|
154
|
-
- Provide appropriate component variants for different screen sizes
|
|
155
|
-
- Consider content priority and progressive disclosure on smaller screens
|
|
156
|
-
|
|
157
|
-
### Adaptive Behaviour
|
|
158
|
-
|
|
159
|
-
- Reduce option counts on mobile devices where appropriate
|
|
160
|
-
- Implement responsive navigation patterns
|
|
161
|
-
- Adjust spacing and sizing for different contexts
|
|
162
|
-
- Maintain usability across all supported devices
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
## Content Strategy
|
|
167
|
-
|
|
168
|
-
### Microcopy Guidelines
|
|
169
|
-
|
|
170
|
-
- Use clear, concise language that matches user mental models
|
|
171
|
-
- Provide helpful error messages with actionable guidance
|
|
172
|
-
- Implement consistent tone of voice across all interface text
|
|
173
|
-
- Use progressive disclosure for complex information
|
|
174
|
-
|
|
175
|
-
### Iconography
|
|
176
|
-
|
|
177
|
-
- Use icons consistently with established meanings
|
|
178
|
-
- Provide screen reader text for meaningful icons
|
|
179
|
-
- Avoid using icons as the sole means of communication
|
|
180
|
-
- Maintain consistent icon sizing and alignment
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## Quality Assurance
|
|
185
|
-
|
|
186
|
-
### Testing Standards
|
|
187
|
-
|
|
188
|
-
- Test components across supported browsers and devices
|
|
189
|
-
- Validate accessibility compliance with automated and manual testing
|
|
190
|
-
- Ensure proper keyboard navigation functionality
|
|
191
|
-
- Test with assistive technologies (screen readers, voice control)
|
|
192
|
-
|
|
193
|
-
### Documentation Requirements
|
|
194
|
-
|
|
195
|
-
- Provide clear usage examples for all components
|
|
196
|
-
- Document accessibility considerations and requirements
|
|
197
|
-
- Include common patterns and anti-patterns
|
|
198
|
-
- Maintain up-to-date prop documentation and type definitions
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## Implementation Guidelines
|
|
203
|
-
|
|
204
|
-
### Code Standards
|
|
205
|
-
|
|
206
|
-
- Follow consistent naming conventions for CSS classes and component props
|
|
207
|
-
- Use semantic HTML elements where appropriate
|
|
208
|
-
- Implement proper TypeScript typing for better developer experience
|
|
209
|
-
- Maintain clean separation between presentation and logic
|
|
210
|
-
|
|
211
|
-
### Performance Considerations
|
|
212
|
-
|
|
213
|
-
- Optimise component rendering and re-rendering
|
|
214
|
-
- Implement appropriate code splitting strategies
|
|
215
|
-
- Use efficient animation and transition patterns
|
|
216
|
-
- Consider bundle size impact of component dependencies
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
# UX Heuristic Foundations
|
|
221
|
-
|
|
222
|
-
These principles serve as a lens to assess the usability and user-centred design quality of all Iress products.
|
|
223
|
-
|
|
224
|
-
## System Feedback
|
|
225
|
-
|
|
226
|
-
- Always show users where they are, what just happened, and what’s possible next.
|
|
227
|
-
- Provide immediate visual and textual feedback for all actions and states.
|
|
228
|
-
- Ensure feedback is clear, contextual, and proportionate to the importance of the action.
|
|
229
|
-
|
|
230
|
-
## Language and Mental Models
|
|
231
|
-
|
|
232
|
-
- Use user-centred language and avoid technical jargon.
|
|
233
|
-
- Follow cultural and industry conventions for colour, iconography, terminology, and layout.
|
|
234
|
-
- Align interaction patterns with real-world analogues wherever feasible.
|
|
235
|
-
|
|
236
|
-
## Control and Forgiveness
|
|
237
|
-
|
|
238
|
-
- Make actions reversible and provide undo where errors may occur.
|
|
239
|
-
- Let users easily backtrack, edit inputs, or abandon flows.
|
|
240
|
-
- Provide escape hatches from any process without penalty.
|
|
241
|
-
|
|
242
|
-
## Standards and Consistency
|
|
243
|
-
|
|
244
|
-
- Use consistent layout, labelling, iconography, and grammar.
|
|
245
|
-
- Reinforce expectations by placing similar elements in predictable positions.
|
|
246
|
-
- Apply colour, spacing, and visual patterns consistently across all screens.
|
|
247
|
-
|
|
248
|
-
## Error Prevention and Recovery
|
|
249
|
-
|
|
250
|
-
- Prevent errors by anticipating misuse and validating early.
|
|
251
|
-
- Phrase error messages with clarity, empathy, and constructive suggestions.
|
|
252
|
-
- Where errors occur, explain why and how they can be resolved.
|
|
253
|
-
|
|
254
|
-
## Recognition Over Recall
|
|
255
|
-
|
|
256
|
-
- Display necessary information at the point of decision.
|
|
257
|
-
- Use visual grouping, spacing, and affordance to reveal hierarchy.
|
|
258
|
-
- Prioritise visual clarity over novelty.
|
|
259
|
-
|
|
260
|
-
## Simplicity and Minimalism
|
|
261
|
-
|
|
262
|
-
- Remove unnecessary detail—every word, element, or feature should earn its place.
|
|
263
|
-
- Design for clarity of purpose with visually distinct, semantically meaningful UI components.
|
|
264
|
-
- Use whitespace, clean alignment, and simplified flows to reduce cognitive load.
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
_This document is a living standard. Revisit and revise regularly to reflect evolving needs, technologies, and user expectations._
|
|
269
|
-
|