@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.
Files changed (122) hide show
  1. package/LICENSE.txt +201 -0
  2. package/README.md +29 -159
  3. package/dist/componentHandlers.js +241 -0
  4. package/dist/componentHandlers.test.js +380 -0
  5. package/{build → dist}/config.js +5 -5
  6. package/dist/index.js +53 -0
  7. package/{build → dist}/iressHandlers.js +52 -46
  8. package/dist/iressHandlers.test.js +316 -0
  9. package/{build → dist}/resourceHandlers.js +23 -22
  10. package/dist/resourceHandlers.test.js +352 -0
  11. package/{build → dist}/searchHandlers.js +107 -92
  12. package/dist/searchHandlers.test.js +524 -0
  13. package/{build → dist}/toolHandler.js +13 -13
  14. package/dist/toolHandler.test.js +369 -0
  15. package/dist/tools.js +165 -0
  16. package/{build → dist}/utils.js +11 -15
  17. package/dist/utils.test.js +286 -0
  18. package/{docs/ids → generated/docs}/components-autocomplete-docs.md +3 -3
  19. package/{docs/ids → generated/docs}/components-autocomplete-recipes-docs.md +17 -51
  20. package/{docs/ids → generated/docs}/components-card-recipes-docs.md +1 -1
  21. package/{docs/ids → generated/docs}/components-checkbox-docs.md +6 -19
  22. package/{docs/ids → generated/docs}/components-checkboxgroup-docs.md +18 -18
  23. package/{docs/ids → generated/docs}/components-checkboxgroup-recipes-docs.md +9 -9
  24. package/{docs/ids → generated/docs}/components-col-docs.md +1 -1
  25. package/{docs/ids → generated/docs}/components-combobox-docs.md +4 -4
  26. package/{docs/ids → generated/docs}/components-container-docs.md +8 -42
  27. package/{docs/ids → generated/docs}/components-filter-docs.md +14 -67
  28. package/{docs/ids → generated/docs}/components-form-docs.md +341 -335
  29. package/{docs/ids → generated/docs}/components-form-recipes-docs.md +198 -1
  30. package/{docs/ids → generated/docs}/components-hide-docs.md +16 -70
  31. package/{docs/ids → generated/docs}/components-icon-docs.md +4 -4
  32. package/{docs/ids → generated/docs}/components-input-recipes-docs.md +2 -2
  33. package/{docs/ids → generated/docs}/components-inputcurrency-recipes-docs.md +6 -40
  34. package/{docs/ids → generated/docs}/components-modal-docs.md +3 -113
  35. package/generated/docs/components-popover-docs.md +464 -0
  36. package/{docs/ids → generated/docs}/components-radiogroup-docs.md +21 -21
  37. package/{docs/ids → generated/docs}/components-richselect-docs.md +149 -111
  38. package/{docs/ids → generated/docs}/components-row-docs.md +4 -4
  39. package/{docs/ids → generated/docs}/components-skeleton-docs.md +3 -3
  40. package/{docs/ids → generated/docs}/components-skeleton-recipes-docs.md +1 -1
  41. package/{docs/ids → generated/docs}/components-skiplink-docs.md +1 -1
  42. package/{docs/ids → generated/docs}/components-slideout-docs.md +3 -113
  43. package/{docs/ids → generated/docs}/components-table-ag-grid-docs.md +109 -137
  44. package/{docs/ids → generated/docs}/components-table-docs.md +92 -597
  45. package/{docs/ids → generated/docs}/components-tabset-docs.md +2 -2
  46. package/{docs/ids → generated/docs}/components-tag-docs.md +1 -1
  47. package/{docs/ids → generated/docs}/components-toaster-docs.md +5 -5
  48. package/{docs/ids → generated/docs}/extensions-editor-docs.md +4 -4
  49. package/generated/docs/foundations-accessibility-docs.md +62 -0
  50. package/{docs/ids → generated/docs}/foundations-colours-docs.md +1 -1
  51. package/generated/docs/foundations-consistency-docs.md +52 -0
  52. package/generated/docs/foundations-content-docs.md +23 -0
  53. package/generated/docs/foundations-introduction-docs.md +17 -0
  54. package/generated/docs/foundations-principles-docs.md +70 -0
  55. package/{docs/ids → generated/docs}/foundations-typography-docs.md +7 -2
  56. package/generated/docs/foundations-user-experience-docs.md +63 -0
  57. package/generated/docs/foundations-visual-design-docs.md +46 -0
  58. package/{docs/ids → generated/docs}/get-started-develop-docs.md +3 -3
  59. package/generated/docs/guidelines.md +812 -0
  60. package/{docs/ids → generated/docs}/introduction-docs.md +4 -4
  61. package/{docs/ids → generated/docs}/patterns-loading-docs.md +332 -2
  62. package/generated/docs/resources-migration-guides-from-v4-to-v5-docs.md +437 -0
  63. package/generated/docs/themes-available-themes-docs.md +66 -0
  64. package/generated/docs/themes-tokens-docs.md +1200 -0
  65. package/generated/docs/versions-docs.md +17 -0
  66. package/package.json +42 -14
  67. package/LICENSE +0 -193
  68. package/build/componentHandlers.js +0 -205
  69. package/build/index.js +0 -51
  70. package/build/tools.js +0 -165
  71. package/docs/api-reference.md +0 -0
  72. package/docs/best-practices.md +0 -0
  73. package/docs/configuration.md +0 -0
  74. package/docs/examples.md +0 -0
  75. package/docs/guidelines.md +0 -269
  76. package/docs/ids/components-popover-docs.md +0 -4
  77. package/docs/ids/resources-migration-guides-from-v4-to-v5-docs.md +0 -639
  78. package/docs/ids/themes-available-themes-docs.md +0 -74
  79. package/docs/ids/themes-tokens-docs.md +0 -4580
  80. package/docs/ids/versions-docs.md +0 -27
  81. package/docs/tutorials/basic-integration.md +0 -0
  82. /package/{build → dist}/types.js +0 -0
  83. /package/{docs/ids → generated/docs}/components-alert-docs.md +0 -0
  84. /package/{docs/ids → generated/docs}/components-badge-docs.md +0 -0
  85. /package/{docs/ids → generated/docs}/components-button-docs.md +0 -0
  86. /package/{docs/ids → generated/docs}/components-button-recipes-docs.md +0 -0
  87. /package/{docs/ids → generated/docs}/components-buttongroup-docs.md +0 -0
  88. /package/{docs/ids → generated/docs}/components-card-docs.md +0 -0
  89. /package/{docs/ids → generated/docs}/components-divider-docs.md +0 -0
  90. /package/{docs/ids → generated/docs}/components-expander-docs.md +0 -0
  91. /package/{docs/ids → generated/docs}/components-field-docs.md +0 -0
  92. /package/{docs/ids → generated/docs}/components-inline-docs.md +0 -0
  93. /package/{docs/ids → generated/docs}/components-input-docs.md +0 -0
  94. /package/{docs/ids → generated/docs}/components-inputcurrency-docs.md +0 -0
  95. /package/{docs/ids → generated/docs}/components-label-docs.md +0 -0
  96. /package/{docs/ids → generated/docs}/components-menu-docs.md +0 -0
  97. /package/{docs/ids → generated/docs}/components-menu-menuitem-docs.md +0 -0
  98. /package/{docs/ids → generated/docs}/components-navbar-docs.md +0 -0
  99. /package/{docs/ids → generated/docs}/components-navbar-recipes-docs.md +0 -0
  100. /package/{docs/ids → generated/docs}/components-panel-docs.md +0 -0
  101. /package/{docs/ids → generated/docs}/components-placeholder-docs.md +0 -0
  102. /package/{docs/ids → generated/docs}/components-popover-recipes-docs.md +0 -0
  103. /package/{docs/ids → generated/docs}/components-progress-docs.md +0 -0
  104. /package/{docs/ids → generated/docs}/components-radio-docs.md +0 -0
  105. /package/{docs/ids → generated/docs}/components-readonly-docs.md +0 -0
  106. /package/{docs/ids → generated/docs}/components-select-docs.md +0 -0
  107. /package/{docs/ids → generated/docs}/components-slider-docs.md +0 -0
  108. /package/{docs/ids → generated/docs}/components-spinner-docs.md +0 -0
  109. /package/{docs/ids → generated/docs}/components-stack-docs.md +0 -0
  110. /package/{docs/ids → generated/docs}/components-tabset-tab-docs.md +0 -0
  111. /package/{docs/ids → generated/docs}/components-text-docs.md +0 -0
  112. /package/{docs/ids → generated/docs}/components-toaster-toast-docs.md +0 -0
  113. /package/{docs/ids → generated/docs}/components-toggle-docs.md +0 -0
  114. /package/{docs/ids → generated/docs}/components-tooltip-docs.md +0 -0
  115. /package/{docs/ids → generated/docs}/components-validationmessage-docs.md +0 -0
  116. /package/{docs/ids → generated/docs}/contact-us-docs.md +0 -0
  117. /package/{docs/ids → generated/docs}/extensions-editor-recipes-docs.md +0 -0
  118. /package/{docs/ids → generated/docs}/frequently-asked-questions-docs.md +0 -0
  119. /package/{docs/ids → generated/docs}/get-started-using-storybook-docs.md +0 -0
  120. /package/{docs/ids → generated/docs}/resources-changelog-docs.md +0 -0
  121. /package/{docs/ids → generated/docs}/resources-code-katas-docs.md +0 -0
  122. /package/{docs/ids → generated/docs}/themes-introduction-docs.md +0 -0
@@ -0,0 +1,812 @@
1
+ # Design Guidelines
2
+
3
+ This document contains all design foundations and guidelines for the design system.
4
+
5
+ ## Introduction
6
+
7
+ [](#introduction)Introduction
8
+ =============================
9
+
10
+ The IDS and product design team use the foundations to create a consistent user experience across all Iress products. This includes design principles and guidelines that ensure a cohesive look and feel.
11
+
12
+ 1. [Principles](./?path=/docs/foundations-principles--docs)
13
+ 2. [Accessibility](./?path=/docs/foundations-accessibility--docs)
14
+ 3. [Colours](./?path=/docs/foundations-colours--docs)
15
+ 4. [Typography](./?path=/docs/foundations-typography--docs)
16
+ 5. [Visual Design](./?path=/docs/foundations-visual-design--docs)
17
+ 6. [Consistency](./?path=/docs/foundations-consistency--docs)
18
+ 7. [Content](./?path=/docs/foundations-content--docs)
19
+ 8. [User Experience](./?path=/docs/foundations-user-experience--docs)
20
+
21
+ _This document is a living standard. Revisit and revise regularly to reflect evolving needs, technologies, and user expectations._
22
+
23
+ On this page
24
+
25
+ ## Principles
26
+
27
+ [](#core-design-principles)Core Design Principles
28
+ =================================================
29
+
30
+ [](#consistency)Consistency
31
+ ---------------------------
32
+
33
+ * Maintain brand consistency across all applications and experiences
34
+ * Use standardised component naming conventions (all components start with `Iress` prefix)
35
+ * Leverage shared design tokens for spacing, colours, typography, and interactive states
36
+ * Ensure consistent behaviour patterns across similar components
37
+
38
+ [](#accessibility-first)Accessibility First
39
+ -------------------------------------------
40
+
41
+ * Meet or exceed WCAG 2.1 Level AA Accessibility Guidelines
42
+ * Provide proper colour contrast ratios (minimum 4.5:1 for AA, 7:1 for AAA)
43
+ * Implement comprehensive keyboard navigation support
44
+ * Include screen reader compatibility with appropriate ARIA attributes
45
+ * Support focus management and skip navigation patterns
46
+ * Document accessibility considerations and requirements
47
+
48
+ [](#clarity-and-usability)Clarity and Usability
49
+ -----------------------------------------------
50
+
51
+ * Prioritise clear visual hierarchy through typography scales and spacing systems
52
+ * Use progressive disclosure to manage complexity
53
+ * Provide immediate feedback for user actions (loading states, validation, etc.)
54
+ * Design for touch-friendly interfaces with adequate target sizes
55
+
56
+ [](#developer-experience)Developer Experience
57
+ ---------------------------------------------
58
+
59
+ * Maintain clean component APIs with predictable prop patterns
60
+ * Provide comprehensive documentation with usage examples
61
+ * Include common patterns and anti-patterns
62
+ * Support both controlled and uncontrolled component patterns
63
+ * Enable efficient testing strategies with semantic roles and accessible queries
64
+ * Maintain up-to-date prop documentation and type definitions
65
+
66
+ [](#quality-assurance)Quality assurance
67
+ ---------------------------------------
68
+
69
+ * Test components across supported browsers and devices
70
+ * Validate accessibility compliance with automated and manual testing
71
+ * Ensure proper keyboard navigation functionality
72
+ * Test with assistive technologies (screen readers, voice control)
73
+
74
+ ### [](#code-standards)Code Standards
75
+
76
+ * Follow consistent naming conventions for CSS classes and component props
77
+ * Use semantic HTML elements where appropriate
78
+ * Implement proper TypeScript typing for better developer experience
79
+ * Maintain clean separation between presentation and logic
80
+
81
+ ### [](#performance-considerations)Performance Considerations
82
+
83
+ * Optimise component rendering and re-rendering
84
+ * Implement appropriate code splitting strategies
85
+ * Use efficient animation and transition patterns
86
+ * Consider bundle size impact of component dependencies
87
+
88
+ On this page
89
+
90
+ * [Consistency](#consistency)
91
+ * [Accessibility First](#accessibility-first)
92
+ * [Clarity and Usability](#clarity-and-usability)
93
+ * [Developer Experience](#developer-experience)
94
+ * [Quality assurance](#quality-assurance)
95
+ * [Code Standards](#code-standards)
96
+ * [Performance Considerations](#performance-considerations)
97
+
98
+ ## Accessibility
99
+
100
+ [](#accessibility)Accessibility
101
+ ===============================
102
+
103
+ Accessibility is everyone's responsibility. It ensures that all users, regardless of their abilities or disabilities, can access and interact with our components effectively. This document outlines the key practices for building accessible components we follow within IDS.
104
+
105
+ Please note: The default behaviour of our components is to be accessible, but it is the responsibility of the product to ensure that they are used correctly in accessibile context, or any modifications made to them do not compromise accessibility.
106
+
107
+ [](#interaction-patterns)Interaction Patterns
108
+ ---------------------------------------------
109
+
110
+ ### [](#keyboard-navigation)Keyboard Navigation
111
+
112
+ * Support standard keyboard shortcuts (Tab, Arrow keys, Enter, Space, Escape)
113
+ * Implement proper focus order and visual focus indicators
114
+ * Provide keyboard alternatives for mouse-only interactions
115
+ * Follow established ARIA patterns for complex widgets
116
+
117
+ ### [](#touch-interactions)Touch Interactions
118
+
119
+ * Provide adequate touch target sizes (minimum 44px)
120
+ * Implement touch-friendly spacing between interactive elements
121
+ * Support gesture-based interactions where appropriate
122
+ * Ensure consistent behaviour across device types
123
+
124
+ ### [](#loading-and-feedback)Loading and Feedback
125
+
126
+ * Use appropriate loading patterns based on context:
127
+ * **Page**: Full page loading states
128
+ * **Component**: Local loading within sections
129
+ * **Button**: Inline loading for form submissions
130
+ * **Validate**: Server-side validation feedback
131
+ * Provide clear success and error feedback
132
+ * Use progressive enhancement for better perceived performance
133
+
134
+ * * *
135
+
136
+ [](#responsive-design)Responsive Design
137
+ ---------------------------------------
138
+
139
+ ### [](#breakpoint-strategy)Breakpoint Strategy
140
+
141
+ * Implement mobile-first responsive design
142
+ * Use consistent breakpoint values across all components
143
+ * Provide appropriate component variants for different screen sizes
144
+ * Consider content priority and progressive disclosure on smaller screens
145
+
146
+ ### [](#adaptive-behaviour)Adaptive Behaviour
147
+
148
+ * Reduce option counts on mobile devices where appropriate
149
+ * Implement responsive navigation patterns
150
+ * Adjust spacing and sizing for different contexts
151
+ * Maintain usability across all supported devices
152
+
153
+ On this page
154
+
155
+ * [Interaction Patterns](#interaction-patterns)
156
+ * [Keyboard Navigation](#keyboard-navigation)
157
+ * [Touch Interactions](#touch-interactions)
158
+ * [Loading and Feedback](#loading-and-feedback)
159
+ * [Responsive Design](#responsive-design)
160
+ * [Breakpoint Strategy](#breakpoint-strategy)
161
+ * [Adaptive Behaviour](#adaptive-behaviour)
162
+
163
+ ## Colours
164
+
165
+ [](#colours)Colours
166
+ ===================
167
+
168
+ Colour is an integral aspect of conveying clear concise data. Our colours are optimized across two backgrounds, meeting or exceeding [WCAG 2.1 Level AA Accessibility Guidelines](https://www.w3.org/TR/WCAG21/#contrast-minimum).
169
+
170
+ The Iress themes are designed to meet WCAG contrast guidelines (2.1 AA). We can't guarantee this when consumer branding is applied, so colour combinations should be checked to ensure conformance.
171
+
172
+ [](#backgrounds)Backgrounds
173
+ ---------------------------
174
+
175
+ ### Default Background
176
+
177
+ \--iress-g-background-color
178
+
179
+ Used for the default panel background.
180
+
181
+ #### Allowed foregrounds
182
+
183
+ * \--iress-g-text-color
184
+
185
+ 9.7 AAA
186
+
187
+ * \--iress-g-muted-text-color
188
+
189
+ 5.4 AA
190
+
191
+ * \--iress-g-info-color
192
+
193
+ 5.4 AA
194
+
195
+ * \--iress-g-success-color
196
+
197
+ 5.4 AA
198
+
199
+ * \--iress-g-warning-color
200
+
201
+ 5.6 AA
202
+
203
+ * \--iress-g-danger-color
204
+
205
+ 5.4 AA
206
+
207
+
208
+ ### Page Background
209
+
210
+ \--iress-g-page-background-color
211
+
212
+ The background colour of the page.
213
+
214
+ #### Allowed foregrounds
215
+
216
+ * \--iress-g-text-color
217
+
218
+ 10.4 AAA
219
+
220
+ * \--iress-g-muted-text-color
221
+
222
+ 5.7 AA
223
+
224
+ * \--iress-g-info-color
225
+
226
+ 5.8 AA
227
+
228
+ * \--iress-g-success-color
229
+
230
+ 5.8 AA
231
+
232
+ * \--iress-g-warning-color
233
+
234
+ 6.0 AA
235
+
236
+ * \--iress-g-danger-color
237
+
238
+ 5.8 AA
239
+
240
+
241
+ ### Alt Background
242
+
243
+ \--iress-g-background-color-alt
244
+
245
+ Used for the alt panel background.
246
+
247
+ #### Allowed foregrounds
248
+
249
+ * \--iress-g-text-color
250
+
251
+ 8.2 AAA
252
+
253
+ * \--iress-g-muted-text-color
254
+
255
+ 4.5 AA
256
+
257
+ * \--iress-g-info-color
258
+
259
+ 4.6 AA
260
+
261
+ * \--iress-g-success-color
262
+
263
+ 4.5 AA
264
+
265
+ * \--iress-g-warning-color
266
+
267
+ 4.7 AA
268
+
269
+ * \--iress-g-danger-color
270
+
271
+ 4.5 AA
272
+
273
+
274
+ ### Hover Background
275
+
276
+ \--iress-g-hover-background-color
277
+
278
+ Used for the hover and active state of elements such as tables, button groups, expanders, checkboxes and more.
279
+
280
+ #### Allowed foregrounds
281
+
282
+ * \--iress-g-text-color
283
+
284
+ 9.3 AAA
285
+
286
+ * \--iress-g-muted-text-color
287
+
288
+ 5.1 AA
289
+
290
+ * \--iress-g-info-color
291
+
292
+ 5.2 AA
293
+
294
+ * \--iress-g-success-color
295
+
296
+ 5.1 AA
297
+
298
+ * \--iress-g-warning-color
299
+
300
+ 5.3 AA
301
+
302
+ * \--iress-g-danger-color
303
+
304
+ 5.1 AA
305
+
306
+
307
+ [](#primary)Primary
308
+ -------------------
309
+
310
+ ### Primary
311
+
312
+ \--iress-g-primary-color
313
+
314
+ Used for the background colour of primary buttons, and to highlight other interactive/featured elements.
315
+
316
+ #### Allowed foregrounds
317
+
318
+ * \--iress-g-primary-contrast-color
319
+
320
+ 10.7 AAA
321
+
322
+
323
+ ### Primary Hover
324
+
325
+ \--iress-g-primary-hover-color
326
+
327
+ Used for the hover state of primary buttons.
328
+
329
+ #### Allowed foregrounds
330
+
331
+ * \--iress-g-primary-contrast-color
332
+
333
+ 15.5 AAA
334
+
335
+
336
+ [](#system)System
337
+ -----------------
338
+
339
+ ### Info
340
+
341
+ \--iress-g-info-color
342
+
343
+ Used to indicate an element that provides information, usually an element without an action. Used in alerts and badges.
344
+
345
+ #### Allowed foregrounds
346
+
347
+ * \--iress-g-info-contrast-color
348
+
349
+ 5.8 AA
350
+
351
+
352
+ ### Danger
353
+
354
+ \--iress-g-danger-color
355
+
356
+ Used to indicate an error that requires the user's attention and action. Used in alerts and badges.
357
+
358
+ #### Allowed foregrounds
359
+
360
+ * \--iress-g-danger-contrast-color
361
+
362
+ 5.8 AA
363
+
364
+
365
+ ### Warning
366
+
367
+ \--iress-g-warning-color
368
+
369
+ Used to indicate an action/information that may have consequences. Used in alerts and badges.
370
+
371
+ #### Allowed foregrounds
372
+
373
+ * \--iress-g-warning-contrast-color
374
+
375
+ 6.0 AA
376
+
377
+
378
+ ### Success
379
+
380
+ \--iress-g-success-color
381
+
382
+ Used to indicate a successful action. Used in alerts and badges.
383
+
384
+ #### Allowed foregrounds
385
+
386
+ * \--iress-g-success-contrast-color
387
+
388
+ 5.8 AA
389
+
390
+
391
+ ### Negative
392
+
393
+ \--iress-g-negative-color
394
+
395
+ Used to indicate an element that is below a threshold or limit. Usually used for trading to indicate a loss.
396
+
397
+ #### Allowed foregrounds
398
+
399
+ * \--iress-g-negative-contrast-color
400
+
401
+ 5.8 AA
402
+
403
+
404
+ ### Positive
405
+
406
+ \--iress-g-positive-color
407
+
408
+ Used to indicate an element that is above a threshold or limit. Usually used for trading to indicate a gain.
409
+
410
+ #### Allowed foregrounds
411
+
412
+ * \--iress-g-positive-contrast-color
413
+
414
+ 5.5 AA
415
+
416
+
417
+ On this page
418
+
419
+ * [Backgrounds](#backgrounds)
420
+ * [Primary](#primary)
421
+ * [System](#system)
422
+
423
+ ## Typography
424
+
425
+ [](#typography)Typography
426
+ =========================
427
+
428
+ Typography is set up as part of the theming. Typography is controlled by the `IressText` component and the `iress-u-text` utility class. They implement consistent line heights and font weights.
429
+
430
+ Typography styles are designed to be encapsulated. If you want text to pick up the Iress styling, you'll need to wrap it in an `IressText` component.
431
+
432
+ [](#body)Body
433
+ -------------
434
+
435
+ This is the default text variant, and is designed to be clear and easy to read.
436
+
437
+ Nobis odit nesciunt in, harum provident deleniti molestiae dolorum aliquid tempora optio accusamus dolore porro voluptatibus. Dolorum, repellat expedita.
438
+
439
+ * Voluptatem assumenda soluta!
440
+ * Illum et atque alias possimus maiores rem in corrupti consectetur!
441
+ * Dolorum, repellat expedita!
442
+
443
+ Hide code
444
+
445
+ \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
446
+
447
+ <IressText\>
448
+ <p\>
449
+ Nobis odit nesciunt in, harum provident deleniti molestiae dolorum aliquid tempora optio accusamus dolore porro voluptatibus. Dolorum, repellat expedita. </p\>
450
+ <ul\>
451
+ <li\>
452
+ Voluptatem assumenda soluta! </li\>
453
+ <li\>
454
+ Illum et atque alias possimus maiores rem in corrupti consectetur! </li\>
455
+ <li\>
456
+ Dolorum, repellat expedita! </li\>
457
+ </ul\>
458
+ </IressText\>
459
+
460
+ Copy
461
+
462
+ [](#headings)Headings
463
+ ---------------------
464
+
465
+ Headings form the structure of a web page. They're designed to stand out visually, drawing a user's eye to distinct sections of the document. They can be set in a variety of sizes based on systematic font sizing with native heading scales (H1-H6).
466
+
467
+ Hello, we are a company that puts clients first.
468
+ ================================================
469
+
470
+ Hello, we are a company that puts clients first.
471
+ ------------------------------------------------
472
+
473
+ ### Hello, we are a company that puts clients first.
474
+
475
+ #### Hello, we are a company that puts clients first.
476
+
477
+ ##### Hello, we are a company that puts clients first.
478
+
479
+ An H2 styled as an H3.
480
+ ----------------------
481
+
482
+ Hide code
483
+
484
+ \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
485
+
486
+ <IressStack gutter\="md"\>
487
+ <IressText element\="h1"\>
488
+ Hello, we are a company that puts clients first. </IressText\>
489
+ <IressText element\="h2"\>
490
+ Hello, we are a company that puts clients first. </IressText\>
491
+ <IressText element\="h3"\>
492
+ Hello, we are a company that puts clients first. </IressText\>
493
+ <IressText element\="h4"\>
494
+ Hello, we are a company that puts clients first. </IressText\>
495
+ <IressText element\="h5"\>
496
+ Hello, we are a company that puts clients first. </IressText\>
497
+ <IressText
498
+ element\="h2"
499
+ variant\="h3"
500
+ \>
501
+ An H2 styled as an H3. </IressText\>
502
+ </IressStack\>
503
+
504
+ Copy
505
+
506
+ [](#display)Display
507
+ -------------------
508
+
509
+ Display text is used to draw attention to specific pieces of content, like introductory text on a landing page. It has larger font sizes than the heading variants, and a lighter font weight.
510
+
511
+ Hello, we are a company that puts clients first.
512
+
513
+ Hello, we are a company that puts clients first.
514
+
515
+ Hello, we are a company that puts clients first.
516
+
517
+ Hello, we are a company that puts clients first.
518
+
519
+ Hide code
520
+
521
+ \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
522
+
523
+ <IressStack gutter\="md"\>
524
+ <IressText variant\="display1"\>
525
+ Hello, we are a company that puts clients first. </IressText\>
526
+ <IressText variant\="display2"\>
527
+ Hello, we are a company that puts clients first. </IressText\>
528
+ <IressText variant\="display3"\>
529
+ Hello, we are a company that puts clients first. </IressText\>
530
+ <IressText variant\="display4"\>
531
+ Hello, we are a company that puts clients first. </IressText\>
532
+ </IressStack\>
533
+
534
+ Copy
535
+
536
+ [](#lead)Lead
537
+ -------------
538
+
539
+ Lead text is used to introduce users to a new section, and often gives a brief summary of a section. It has a larger font size than body text, but a lighter font weight so that it doesn't clash with headings.
540
+
541
+ Nobis odit nesciunt in, harum provident deleniti molestiae dolorum aliquid tempora optio accusamus dolore porro voluptatibus. Dolorum, repellat expedita.
542
+
543
+ Hide code
544
+
545
+ \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
546
+
547
+ <IressText
548
+ element\="p"
549
+ variant\="lead"
550
+ \>
551
+ Nobis odit nesciunt in, harum provident deleniti molestiae dolorum aliquid tempora optio accusamus dolore porro voluptatibus. Dolorum, repellat expedita.
552
+ </IressText\>
553
+
554
+ Copy
555
+
556
+ [](#caption)Caption
557
+ -------------------
558
+
559
+ The caption variant is used for small text that provides additional information about a table or image. It has a smaller font size than body text, and a lighter font weight.
560
+
561
+ Example caption
562
+
563
+ Hide code
564
+
565
+ \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
566
+
567
+ <IressText element\="caption"\>
568
+ Example caption
569
+ </IressText\>
570
+
571
+ Copy
572
+
573
+ [](#other-variants)Other variants
574
+ ---------------------------------
575
+
576
+ IDS also includes bold, italic and small text variants.
577
+
578
+ * Bold text should be used to **draw attention** to part of a sentence, or to provide a visual label for readonly text.
579
+ * Italic text should be used to add _emphasis_ to content, or to add stress to part of a sentence.
580
+ * Small text is used for side comments or for text that's secondary to the main content.
581
+ * Muted text is used to de-emphasise content, such as when displaying informative text that is not critical to the user experience.
582
+
583
+ Bold text
584
+
585
+ Italic text
586
+
587
+ Small text
588
+
589
+ Muted text
590
+
591
+ Hide code
592
+
593
+ \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
594
+
595
+ <IressStack gutter\="md"\>
596
+ <IressText variant\="bold"\>
597
+ Bold text </IressText\>
598
+ <IressText variant\="italic"\>
599
+ Italic text </IressText\>
600
+ <IressText variant\="small"\>
601
+ Small text </IressText\>
602
+ <IressText mode\="muted"\>
603
+ Muted text </IressText\>
604
+ </IressStack\>
605
+
606
+ Copy
607
+
608
+ On this page
609
+
610
+ * [Body](#body)
611
+ * [Headings](#headings)
612
+ * [Display](#display)
613
+ * [Lead](#lead)
614
+ * [Caption](#caption)
615
+ * [Other variants](#other-variants)
616
+
617
+ ## Visual Design
618
+
619
+ [](#visual-design-standards)Visual Design Standards
620
+ ===================================================
621
+
622
+ [](#typography)Typography
623
+ -------------------------
624
+
625
+ * Use systematic font sizing with heading scales (H1-H6)
626
+ * Implement consistent line heights and font weights
627
+ * Provide text colour hierarchies (primary, muted, success, warning, danger)
628
+ * Support responsive typography scaling
629
+
630
+ [](#colour-system)Colour System
631
+ -------------------------------
632
+
633
+ * Maintain semantic colour meanings:
634
+ * **Primary**: Main call-to-action colour with high contrast
635
+ * **Success**: Positive outcomes and confirmations
636
+ * **Warning**: Caution and important notices
637
+ * **Danger**: Errors and destructive actions
638
+ * **Info**: Neutral information and guidance
639
+ * **Positive/Negative**: Financial context (buy/sell actions)
640
+ * Ensure all colour combinations meet accessibility contrast requirements
641
+ * Provide consistent hover and active state colours
642
+
643
+ [](#spacing-and-layout)Spacing and Layout
644
+ -----------------------------------------
645
+
646
+ * Use systematic spacing scale (xs, sm, md, lg, xl)
647
+ * Apply consistent gutter systems for layout components
648
+ * Implement responsive breakpoints for adaptive layouts
649
+ * Maintain proper margin and padding relationships
650
+
651
+ [](#interactive-states)Interactive States
652
+ -----------------------------------------
653
+
654
+ * Provide clear hover, focus, active, and disabled states
655
+ * Use consistent transition timing and easing
656
+ * Implement proper focus indicators for keyboard navigation
657
+ * Show loading states for asynchronous operations
658
+
659
+ On this page
660
+
661
+ * [Typography](#typography)
662
+ * [Colour System](#colour-system)
663
+ * [Spacing and Layout](#spacing-and-layout)
664
+ * [Interactive States](#interactive-states)
665
+
666
+ ## Consistency
667
+
668
+ [](#using-components-consistently)Using components consistently
669
+ ===============================================================
670
+
671
+ [](#buttons)Buttons
672
+ -------------------
673
+
674
+ * **Primary**: Limit to one per view for main call-to-action
675
+ * **Secondary**: Use for secondary actions
676
+ * **Tertiary**: Extra affordance between secondary actions
677
+ * **Link**: Button styled as link (avoid with icon-only content)
678
+ * **Danger**: Destructive actions requiring extra confirmation
679
+ * **Positive/Negative**: Financial transactions (buy/sell)
680
+
681
+ [](#forms)Forms
682
+ ---------------
683
+
684
+ * Always use `IressField` wrapper for proper label, hint, and error placement
685
+ * Provide clear validation feedback with appropriate error messages
686
+ * Use consistent input sizing based on expected content length
687
+ * Implement proper form state management and accessibility
688
+
689
+ [](#navigation)Navigation
690
+ -------------------------
691
+
692
+ * Use semantic HTML5 navigation elements
693
+ * Provide skip links for keyboard users
694
+ * Implement proper ARIA labelling for navigation sections
695
+ * Ensure consistent navigation patterns across applications
696
+
697
+ [](#data-display)Data Display
698
+ -----------------------------
699
+
700
+ * Use semantic table structures with proper headers
701
+ * Provide clear visual hierarchy in data presentations
702
+ * Implement consistent sorting and filtering patterns
703
+ * Use appropriate loading states for data-heavy components
704
+
705
+ [](#modals-and-overlays)Modals and Overlays
706
+ -------------------------------------------
707
+
708
+ * Reserve modals for critical tasks requiring full attention
709
+ * Provide multiple dismissal methods (backdrop, escape key, close button)
710
+ * Implement proper focus management and restoration
711
+ * Use slideouts for supplementary tasks where underlying content needs visibility
712
+
713
+ On this page
714
+
715
+ * [Buttons](#buttons)
716
+ * [Forms](#forms)
717
+ * [Navigation](#navigation)
718
+ * [Data Display](#data-display)
719
+ * [Modals and Overlays](#modals-and-overlays)
720
+
721
+ ## Content
722
+
723
+ [](#content)Content
724
+ ===================
725
+
726
+ [](#microcopy-guidelines)Microcopy Guidelines
727
+ ---------------------------------------------
728
+
729
+ * Use clear, concise language that matches user mental models
730
+ * Provide helpful error messages with actionable guidance
731
+ * Implement consistent tone of voice across all interface text
732
+ * Use progressive disclosure for complex information
733
+
734
+ [](#iconography)Iconography
735
+ ---------------------------
736
+
737
+ * Use icons consistently with established meanings
738
+ * Provide screen reader text for meaningful icons
739
+ * Avoid using icons as the sole means of communication
740
+ * Maintain consistent icon sizing and alignment
741
+
742
+ On this page
743
+
744
+ * [Microcopy Guidelines](#microcopy-guidelines)
745
+ * [Iconography](#iconography)
746
+
747
+ ## User Experience
748
+
749
+ [](#user-experience)User experience
750
+ ===================================
751
+
752
+ We use heuristic guidelines to assess the usability and user-centred design quality of all Iress products.
753
+
754
+ [](#system-feedback)System Feedback
755
+ -----------------------------------
756
+
757
+ * Always show users where they are, what just happened, and what’s possible next.
758
+ * Provide immediate visual and textual feedback for all actions and states.
759
+ * Ensure feedback is clear, contextual, and proportionate to the importance of the action.
760
+
761
+ [](#language-and-mental-models)Language and Mental Models
762
+ ---------------------------------------------------------
763
+
764
+ * Use user-centred language and avoid technical jargon.
765
+ * Follow cultural and industry conventions for colour, iconography, terminology, and layout.
766
+ * Align interaction patterns with real-world analogues wherever feasible.
767
+
768
+ [](#control-and-forgiveness)Control and Forgiveness
769
+ ---------------------------------------------------
770
+
771
+ * Make actions reversible and provide undo where errors may occur.
772
+ * Let users easily backtrack, edit inputs, or abandon flows.
773
+ * Provide escape hatches from any process without penalty.
774
+
775
+ [](#standards-and-consistency)Standards and Consistency
776
+ -------------------------------------------------------
777
+
778
+ * Use consistent layout, labelling, iconography, and grammar.
779
+ * Reinforce expectations by placing similar elements in predictable positions.
780
+ * Apply colour, spacing, and visual patterns consistently across all screens.
781
+
782
+ [](#error-prevention-and-recovery)Error Prevention and Recovery
783
+ ---------------------------------------------------------------
784
+
785
+ * Prevent errors by anticipating misuse and validating early.
786
+ * Phrase error messages with clarity, empathy, and constructive suggestions.
787
+ * Where errors occur, explain why and how they can be resolved.
788
+
789
+ [](#recognition-over-recall)Recognition Over Recall
790
+ ---------------------------------------------------
791
+
792
+ * Display necessary information at the point of decision.
793
+ * Use visual grouping, spacing, and affordance to reveal hierarchy.
794
+ * Prioritise visual clarity over novelty.
795
+
796
+ [](#simplicity-and-minimalism)Simplicity and Minimalism
797
+ -------------------------------------------------------
798
+
799
+ * Remove unnecessary detail—every word, element, or feature should earn its place.
800
+ * Design for clarity of purpose with visually distinct, semantically meaningful UI components.
801
+ * Use whitespace, clean alignment, and simplified flows to reduce cognitive load.
802
+
803
+ On this page
804
+
805
+ * [System Feedback](#system-feedback)
806
+ * [Language and Mental Models](#language-and-mental-models)
807
+ * [Control and Forgiveness](#control-and-forgiveness)
808
+ * [Standards and Consistency](#standards-and-consistency)
809
+ * [Error Prevention and Recovery](#error-prevention-and-recovery)
810
+ * [Recognition Over Recall](#recognition-over-recall)
811
+ * [Simplicity and Minimalism](#simplicity-and-minimalism)
812
+