@iress-oss/ids-mcp-server 6.0.0-alpha.0 → 6.0.0-alpha.1-canary-20251204014525-3f0dce4

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 (108) hide show
  1. package/dist/searchHandlers.test.js +8 -2
  2. package/dist/toolHandler.test.js +9 -9
  3. package/dist/utils.test.js +6 -2
  4. package/package.json +32 -30
  5. package/generated/docs/components-alert-docs.md +0 -702
  6. package/generated/docs/components-autocomplete-docs.md +0 -1433
  7. package/generated/docs/components-autocomplete-recipes-docs.md +0 -104
  8. package/generated/docs/components-badge-docs.md +0 -531
  9. package/generated/docs/components-button-docs.md +0 -1442
  10. package/generated/docs/components-buttongroup-docs.md +0 -748
  11. package/generated/docs/components-card-docs.md +0 -944
  12. package/generated/docs/components-checkbox-docs.md +0 -694
  13. package/generated/docs/components-checkboxgroup-docs.md +0 -1087
  14. package/generated/docs/components-checkboxgroup-recipes-docs.md +0 -119
  15. package/generated/docs/components-col-docs.md +0 -881
  16. package/generated/docs/components-container-docs.md +0 -123
  17. package/generated/docs/components-divider-docs.md +0 -576
  18. package/generated/docs/components-expander-docs.md +0 -594
  19. package/generated/docs/components-field-docs.md +0 -2007
  20. package/generated/docs/components-filter-docs.md +0 -1322
  21. package/generated/docs/components-hide-docs.md +0 -702
  22. package/generated/docs/components-icon-docs.md +0 -816
  23. package/generated/docs/components-image-docs.md +0 -493
  24. package/generated/docs/components-inline-docs.md +0 -2003
  25. package/generated/docs/components-input-docs.md +0 -867
  26. package/generated/docs/components-input-recipes-docs.md +0 -140
  27. package/generated/docs/components-inputcurrency-docs.md +0 -689
  28. package/generated/docs/components-inputcurrency-recipes-docs.md +0 -115
  29. package/generated/docs/components-introduction-docs.md +0 -450
  30. package/generated/docs/components-label-docs.md +0 -562
  31. package/generated/docs/components-link-docs.md +0 -586
  32. package/generated/docs/components-menu-docs.md +0 -1146
  33. package/generated/docs/components-menu-menuitem-docs.md +0 -739
  34. package/generated/docs/components-modal-docs.md +0 -1346
  35. package/generated/docs/components-panel-docs.md +0 -600
  36. package/generated/docs/components-placeholder-docs.md +0 -446
  37. package/generated/docs/components-popover-docs.md +0 -1529
  38. package/generated/docs/components-popover-recipes-docs.md +0 -211
  39. package/generated/docs/components-progress-docs.md +0 -568
  40. package/generated/docs/components-provider-docs.md +0 -160
  41. package/generated/docs/components-radio-docs.md +0 -563
  42. package/generated/docs/components-radiogroup-docs.md +0 -1153
  43. package/generated/docs/components-readonly-docs.md +0 -535
  44. package/generated/docs/components-richselect-docs.md +0 -5836
  45. package/generated/docs/components-row-docs.md +0 -2354
  46. package/generated/docs/components-select-docs.md +0 -940
  47. package/generated/docs/components-skeleton-docs.md +0 -597
  48. package/generated/docs/components-skeleton-recipes-docs.md +0 -76
  49. package/generated/docs/components-skiplink-docs.md +0 -587
  50. package/generated/docs/components-slideout-docs.md +0 -1036
  51. package/generated/docs/components-slider-docs.md +0 -828
  52. package/generated/docs/components-spinner-docs.md +0 -450
  53. package/generated/docs/components-stack-docs.md +0 -923
  54. package/generated/docs/components-table-ag-grid-docs.md +0 -1444
  55. package/generated/docs/components-table-docs.md +0 -2327
  56. package/generated/docs/components-tabset-docs.md +0 -768
  57. package/generated/docs/components-tabset-tab-docs.md +0 -550
  58. package/generated/docs/components-tag-docs.md +0 -548
  59. package/generated/docs/components-text-docs.md +0 -585
  60. package/generated/docs/components-toaster-docs.md +0 -755
  61. package/generated/docs/components-toggle-docs.md +0 -614
  62. package/generated/docs/components-tooltip-docs.md +0 -747
  63. package/generated/docs/components-validationmessage-docs.md +0 -1161
  64. package/generated/docs/contact-us-docs.md +0 -27
  65. package/generated/docs/extensions-editor-docs.md +0 -1181
  66. package/generated/docs/extensions-editor-recipes-docs.md +0 -89
  67. package/generated/docs/foundations-accessibility-docs.md +0 -40
  68. package/generated/docs/foundations-consistency-docs.md +0 -52
  69. package/generated/docs/foundations-content-docs.md +0 -23
  70. package/generated/docs/foundations-grid-docs.md +0 -74
  71. package/generated/docs/foundations-introduction-docs.md +0 -19
  72. package/generated/docs/foundations-principles-docs.md +0 -70
  73. package/generated/docs/foundations-responsive-breakpoints-docs.md +0 -193
  74. package/generated/docs/foundations-tokens-colour-docs.md +0 -564
  75. package/generated/docs/foundations-tokens-elevation-docs.md +0 -155
  76. package/generated/docs/foundations-tokens-introduction-docs.md +0 -190
  77. package/generated/docs/foundations-tokens-radius-docs.md +0 -71
  78. package/generated/docs/foundations-tokens-spacing-docs.md +0 -89
  79. package/generated/docs/foundations-tokens-typography-docs.md +0 -322
  80. package/generated/docs/foundations-user-experience-docs.md +0 -63
  81. package/generated/docs/foundations-visual-design-docs.md +0 -46
  82. package/generated/docs/foundations-z-index-stacking-docs.md +0 -31
  83. package/generated/docs/frequently-asked-questions-docs.md +0 -53
  84. package/generated/docs/get-started-develop-docs.md +0 -209
  85. package/generated/docs/get-started-using-storybook-docs.md +0 -68
  86. package/generated/docs/guidelines.md +0 -2054
  87. package/generated/docs/introduction-docs.md +0 -87
  88. package/generated/docs/news-version-6-docs.md +0 -93
  89. package/generated/docs/patterns-form-docs.md +0 -3902
  90. package/generated/docs/patterns-form-recipes-docs.md +0 -1370
  91. package/generated/docs/patterns-introduction-docs.md +0 -24
  92. package/generated/docs/patterns-loading-docs.md +0 -4043
  93. package/generated/docs/resources-code-katas-docs.md +0 -29
  94. package/generated/docs/resources-introduction-docs.md +0 -38
  95. package/generated/docs/resources-mcp-server-docs.md +0 -27
  96. package/generated/docs/resources-migration-guides-from-v4-to-v5-docs.md +0 -437
  97. package/generated/docs/styling-props-colour-docs.md +0 -172
  98. package/generated/docs/styling-props-elevation-docs.md +0 -88
  99. package/generated/docs/styling-props-radius-docs.md +0 -86
  100. package/generated/docs/styling-props-reference-docs.md +0 -160
  101. package/generated/docs/styling-props-screen-readers-docs.md +0 -71
  102. package/generated/docs/styling-props-sizing-docs.md +0 -627
  103. package/generated/docs/styling-props-spacing-docs.md +0 -2282
  104. package/generated/docs/styling-props-typography-docs.md +0 -121
  105. package/generated/docs/themes-available-themes-docs.md +0 -66
  106. package/generated/docs/themes-introduction-docs.md +0 -121
  107. package/generated/docs/versions-docs.md +0 -17
  108. /package/{LICENSE.txt → LICENSE} +0 -0
@@ -1,2054 +0,0 @@
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. [Tokens](./?path=/docs/foundations-tokens-introduction--docs)
15
- 4. [Breakpoints](./?path=/docs/foundations-breakpoints--docs)
16
- 5. [Consistency](./?path=/docs/foundations-consistency--docs)
17
- 6. [Grid](./?path=/docs/foundations-grid--docs)
18
- 7. [Content](./?path=/docs/foundations-content--docs)
19
- 8. [User Experience](./?path=/docs/foundations-user-experience--docs)
20
- 9. [Visual Design](./?path=/docs/foundations-visual-design--docs)
21
- 10. [Z-index (stacking)](./?path=/docs/foundations-z-index-stacking--docs)
22
-
23
- _This document is a living standard. Revisit and revise regularly to reflect evolving needs, technologies, and user expectations._
24
-
25
- On this page
26
-
27
- ## Principles
28
-
29
- [](#core-design-principles)Core Design Principles
30
- =================================================
31
-
32
- [](#consistency)Consistency
33
- ---------------------------
34
-
35
- * Maintain brand consistency across all applications and experiences
36
- * Use standardised component naming conventions (all components start with `Iress` prefix)
37
- * Leverage shared design tokens for spacing, colours, typography, and interactive states
38
- * Ensure consistent behaviour patterns across similar components
39
-
40
- [](#accessibility-first)Accessibility First
41
- -------------------------------------------
42
-
43
- * Meet or exceed WCAG 2.1 Level AA Accessibility Guidelines
44
- * Provide proper colour contrast ratios (minimum 4.5:1 for AA, 7:1 for AAA)
45
- * Implement comprehensive keyboard navigation support
46
- * Include screen reader compatibility with appropriate ARIA attributes
47
- * Support focus management and skip navigation patterns
48
- * Document accessibility considerations and requirements
49
-
50
- [](#clarity-and-usability)Clarity and Usability
51
- -----------------------------------------------
52
-
53
- * Prioritise clear visual hierarchy through typography scales and spacing systems
54
- * Use progressive disclosure to manage complexity
55
- * Provide immediate feedback for user actions (loading states, validation, etc.)
56
- * Design for touch-friendly interfaces with adequate target sizes
57
-
58
- [](#developer-experience)Developer Experience
59
- ---------------------------------------------
60
-
61
- * Maintain clean component APIs with predictable prop patterns
62
- * Provide comprehensive documentation with usage examples
63
- * Include common patterns and anti-patterns
64
- * Support both controlled and uncontrolled component patterns
65
- * Enable efficient testing strategies with semantic roles and accessible queries
66
- * Maintain up-to-date prop documentation and type definitions
67
-
68
- [](#quality-assurance)Quality assurance
69
- ---------------------------------------
70
-
71
- * Test components across supported browsers and devices
72
- * Validate accessibility compliance with automated and manual testing
73
- * Ensure proper keyboard navigation functionality
74
- * Test with assistive technologies (screen readers, voice control)
75
-
76
- ### [](#code-standards)Code Standards
77
-
78
- * Follow consistent naming conventions for CSS classes and component props
79
- * Use semantic HTML elements where appropriate
80
- * Implement proper TypeScript typing for better developer experience
81
- * Maintain clean separation between presentation and logic
82
-
83
- ### [](#performance-considerations)Performance Considerations
84
-
85
- * Optimise component rendering and re-rendering
86
- * Implement appropriate code splitting strategies
87
- * Use efficient animation and transition patterns
88
- * Consider bundle size impact of component dependencies
89
-
90
- On this page
91
-
92
- * [Consistency](#consistency)
93
- * [Accessibility First](#accessibility-first)
94
- * [Clarity and Usability](#clarity-and-usability)
95
- * [Developer Experience](#developer-experience)
96
- * [Quality assurance](#quality-assurance)
97
- * [Code Standards](#code-standards)
98
- * [Performance Considerations](#performance-considerations)
99
-
100
- ## Accessibility
101
-
102
- [](#accessibility)Accessibility
103
- ===============================
104
-
105
- 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.
106
-
107
- 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.
108
-
109
- [](#interaction-patterns)Interaction Patterns
110
- ---------------------------------------------
111
-
112
- ### [](#keyboard-navigation)Keyboard Navigation
113
-
114
- * Support standard keyboard shortcuts (Tab, Arrow keys, Enter, Space, Escape)
115
- * Implement proper focus order and visual focus indicators
116
- * Provide keyboard alternatives for mouse-only interactions
117
- * Follow established ARIA patterns for complex widgets
118
-
119
- ### [](#touch-interactions)Touch Interactions
120
-
121
- * Provide adequate touch target sizes (minimum 44px)
122
- * Implement touch-friendly spacing between interactive elements
123
- * Support gesture-based interactions where appropriate
124
- * Ensure consistent behaviour across device types
125
-
126
- ### [](#loading-and-feedback)Loading and Feedback
127
-
128
- * Use appropriate loading patterns based on context:
129
- * **Page**: Full page loading states
130
- * **Component**: Local loading within sections
131
- * **Button**: Inline loading for form submissions
132
- * **Validate**: Server-side validation feedback
133
- * Provide clear success and error feedback
134
- * Use progressive enhancement for better perceived performance
135
-
136
- On this page
137
-
138
- * [Interaction Patterns](#interaction-patterns)
139
- * [Keyboard Navigation](#keyboard-navigation)
140
- * [Touch Interactions](#touch-interactions)
141
- * [Loading and Feedback](#loading-and-feedback)
142
-
143
- ## Introduction
144
-
145
- [](#tokens)Tokens
146
- =================
147
-
148
- Design tokens are an integral part of the design system. They help us create consistency across components by sharing common design decisions and simplify our theming ecosystem.
149
-
150
- [](#what-are-tokens)What are tokens?
151
- ------------------------------------
152
-
153
- Tokens are a set of variables that define the design properties of a component. They are used to define the visual properties of a component, such as colours, typography, spacing, and more.
154
-
155
- [](#token-list)Token list
156
- -------------------------
157
-
158
- The table below shows all the new and old tokens in the design system. Use the filters to narrow down the list of tokens.
159
-
160
- Columns: 4 selected
161
-
162
- labelaliasdescriptionreadonly
163
-
164
- * * *
165
-
166
- typedefaultValuedeprecated
167
-
168
- None selected
169
-
170
- Show deprecated tokens
171
-
172
- Tokens (88)
173
- | Name
174
- | Alias
175
-
176
- | Description
177
-
178
- | Themeable
179
-
180
- |
181
- | --- | --- | --- | --- |
182
- | colour.primary.fill | | Used for primary buttons and the active state of form controls such as checkboxes and radio buttons. Also used for the border of tags when they have a custom button. | |
183
- | colour.primary.fillHover | | Used for the hover state of primary buttons as well as hovering over active form controls. | |
184
- | colour.primary.onFill | | Used as the foreground colour on primary buttons and active form controls. | |
185
- | colour.primary.surface | | Used as the background colour for secondary buttons and the focused state of menu and tab items. Also used as the background colour of active buttons. | |
186
- | colour.primary.surfaceHover | | Used for the hover state of secondary buttons, form controls and hovering over focused menu and tab items. Also used when hovering over table rows. | |
187
- | colour.primary.text | | Used for text on primary buttons, active form controls and focused tab and menu items. Also used for the link text colour and tertiary buttons. | |
188
- | colour.neutral.10 | | Used as the default background colour for most components. For tooltips, it is used as the foreground colour for the tooltip content. | |
189
- | colour.neutral.20 | | Used as the alternating background colour for components such as tables. Used as the background colour behind panels and cards for highly interactive screens. | |
190
- | colour.neutral.30 | | Used as the border colour for dividers, and the default divider colour for components with in-built headers and footers such as cards. | |
191
- | colour.neutral.40 | | Used for borders in subtle interactive components, such as checkboxes and radios with hidden controls and the progress bar. | |
192
- | colour.neutral.50 | | Used as the background colour for interactive components such as the slider. | |
193
- | colour.neutral.60 | | Used for placeholder text in form controls and disabled states. | |
194
- | colour.neutral.70 | | Used for muted text such as hints and descriptions to allow for content hierarchy. | |
195
- | colour.neutral.80 | | Used as the default text colour for most components. For tooltips, it is used as the background colour. | |
196
- | colour.accent.brand | | The brand accent is useful for grabbing attention and to support your primary/brand colour. It should be used sparingly to draw attention to key elements. | |
197
- | colour.system.success.fill | | Used for the background colour of primary success buttons, as well as the border of alerts and badges. It is also used for the foreground colour of icons inside toasts and alerts. | |
198
- | colour.system.success.fillHover | | Used for the hover state of primary success buttons. | |
199
- | colour.system.success.onFill | | Used for the foreground colour of primary success buttons and badges. | |
200
- | colour.system.success.surface | | Used for the background colour of success alerts and toasts, and the background of secondary success buttons. | |
201
- | colour.system.success.surfaceHover | | Used for the hover state of secondary success buttons. | |
202
- | colour.system.success.text | | Used for the text colour of success alerts and toasts, and success tertiary buttons. | |
203
- | colour.system.danger.fill | | Used for the background colour of primary danger buttons, as well as the border of alerts and badges. It is also used for the foreground colour of icons inside toasts and alerts. | |
204
- | colour.system.danger.fillHover | | Used for the hover state of primary danger buttons. | |
205
- | colour.system.danger.onFill | | Used for the foreground colour of primary danger buttons and badges. | |
206
- | colour.system.danger.surface | | Used for the background colour of danger alerts and toasts, and the background of secondary danger buttons. | |
207
- | colour.system.danger.surfaceHover | | Used for the hover state of secondary danger buttons. | |
208
- | colour.system.danger.text | | Used for the text colour of danger alerts and toasts, and danger tertiary buttons. | |
209
- | colour.system.warning.fill | | Used for the border of warning alerts and the background of warning badges. | |
210
- | colour.system.warning.onFill | | Used for the foreground colour of warning badges. | |
211
- | colour.system.warning.surface | | Used for the background colour of warning alerts. | |
212
- | colour.system.warning.text | | Used for the text colour of warning alerts. | |
213
- | colour.system.info.fill | | Used for the border of info alerts and toasts and the background of info badges. | |
214
- | colour.system.info.onFill | | Used for the foreground colour of info badges. | |
215
- | colour.system.info.surface | | Used for the background colour of info alerts and toasts. | |
216
- | colour.system.info.text | | Used for the text colour of info alerts and toasts. | |
217
- | colour.system.backdrop.fill | | Used for the background colour of the backdrop. | |
218
- | elevation.raised.shadow | | Shadow for raised elevations | |
219
- | elevation.raised.border | | Border for raised elevations | |
220
- | elevation.floating.shadow | | Shadow for floating elevations | |
221
- | elevation.floating.border | | Border for floating elevations | |
222
- | elevation.overflow.shadow | | Shadow for overflow elevations | |
223
- | elevation.overflow.border | | Border for overflow elevations | |
224
- | elevation.focus.shadow | | Shadow for focus elevations | |
225
- | elevation.focusCompact.shadow | | Shadow for focus compact elevations | |
226
- | elevation.focusCompact.borderColor | | Border color for focus compact elevations | |
227
- | radius.100 | | The base unit for radius. The fallback for all other values will be calculated from this value. | |
228
- | radius.000 | none | No radius | |
229
- | radius.025 | | 25% (0.25x) radius | |
230
- | radius.050 | | 50% (0.5x) radius | |
231
- | radius.075 | | 75% (0.75x) radius | |
232
- | radius.system.badge | | Applies to badges and tags (that have not been designated to be a circle). | |
233
- | radius.system.button | | Applies to buttons and other interactive elements such as the hover state of links. | |
234
- | radius.system.form | | Applies to form inputs and alerts. | |
235
- | radius.system.layout | | Applies to panels, modals and slideouts. | |
236
- | spacing.100 | xs | The base unit for spacing. The fallback for all other values will be calculated from this value. | |
237
- | spacing.150 | | 150% (1.5x) spacing | |
238
- | spacing.200 | sm | 200% (2x) spacing | |
239
- | spacing.250 | | 250% (2.5x) spacing | |
240
- | spacing.300 | | 300% (3x) spacing | |
241
- | spacing.350 | | 350% (3.5x) spacing | |
242
- | spacing.400 | md | 400% (4x) spacing | |
243
- | spacing.500 | | 500% (5x) spacing | |
244
- | spacing.600 | lg | 600% (6x) spacing | |
245
- | spacing.700 | | 700% (7x) spacing | |
246
- | spacing.800 | | 800% (8x) spacing | |
247
- | spacing.900 | | 900% (9x) spacing | |
248
- | spacing.1000 | | 1000% (10x) spacing | |
249
- | spacing.1200 | xl | 1200% (12x) spacing | |
250
- | spacing.000 | none | No spacing | |
251
- | spacing.050 | | 50% (0.5x) spacing | |
252
- | typography.base.size | | This is the base font size, and is used to calculate the font sizes of each token. | |
253
- | typography.base.headingFont | | This is the base font family for headings, used for heading tokens. | |
254
- | typography.base.bodyFont | | This is the base font family for body, used for body tokens. | |
255
- | typography.heading.1 | | Use for the main page title to establish a clear hierarchy. There is only one H1 per screen, emphasising the primary purpose or context of the page. | |
256
- | typography.heading.2 | | Use for \*\*primary section headings\*\* within a page to organise content and guide the user through key areas. Also suitable for large components—such as modals—where space allows and where it pairs well with: body.md or body.lg. | |
257
- | typography.heading.3 | | Use for: sub-sections under H2s to further structure content and maintain a clear visual hierarchy. Ideal for breaking down complex sections into manageable parts. | |
258
- | typography.heading.4 | | Use for: supporting headings within content blocks or small components where space is limited—such as table headers, cards, or side panels. Provides structure without overwhelming the layout. | |
259
- | typography.heading.5 | | Use for: minor labels or titles in compact UI elements, such as cards, sidebars, or inline labels. Best used to emphasise supplementary information without drawing too much attention. Works well with body.sm and is ideal for subtle content like fine print. Use sparingly to preserve typographic hierarchy. | |
260
- | typography.body.sm.regular | | The default small text, most commonly used to display text in small components and compact tables and lists. | |
261
- | typography.body.sm.strong | | Strong text is used to highlight important information in a paragraph of text. | |
262
- | typography.body.sm.em | | Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes. | |
263
- | typography.body.md.regular | | The default medium text, most commonly used to display text across all products. | |
264
- | typography.body.md.strong | | Strong text is used to highlight important information in a paragraph of text. | |
265
- | typography.body.md.em | | Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes. | |
266
- | typography.body.lg.regular | | The default large text, most commonly used to display large text across all products. | |
267
- | typography.body.lg.strong | | Strong text is used to highlight important information in a paragraph of text. | |
268
- | typography.body.lg.em | | Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes. | |
269
- | typography.code | | Used to display code snippets in the product, such as in the API documentation. | |
270
-
271
- * * *
272
-
273
- [](#for-developers)For developers
274
- ---------------------------------
275
-
276
- If you are using the IDS components, the tokens have already been mapped out to their respective components. You can use the tokens in the component props to change the visual properties of the component.
277
-
278
- [
279
-
280
- Learn more about styling props
281
-
282
- ](/?path=/docs/styling-props-reference--docs)
283
-
284
- \[data-radix-scroll-area-viewport\] {
285
- scrollbar-width: none;
286
- -ms-overflow-style: none;
287
- -webkit-overflow-scrolling: touch;
288
- }
289
- \[data-radix-scroll-area-viewport\]::-webkit-scrollbar {
290
- display: none;
291
- }
292
- :where(\[data-radix-scroll-area-viewport\]) {
293
- display: flex;
294
- flex-direction: column;
295
- align-items: stretch;
296
- }
297
- :where(\[data-radix-scroll-area-content\]) {
298
- flex-grow: 1;
299
- }
300
-
301
- import { IressText } from '@iress-oss/ids-components';
302
- <IressText color\="colour.primary.text"\>I am branded text</IressText\>;
303
-
304
- Copy
305
-
306
- If you are not using the IDS components, you can use the tokens directly by using the `cssVars` object from `@iress-oss/ids-tokens`.
307
-
308
- \[data-radix-scroll-area-viewport\] {
309
- scrollbar-width: none;
310
- -ms-overflow-style: none;
311
- -webkit-overflow-scrolling: touch;
312
- }
313
- \[data-radix-scroll-area-viewport\]::-webkit-scrollbar {
314
- display: none;
315
- }
316
- :where(\[data-radix-scroll-area-viewport\]) {
317
- display: flex;
318
- flex-direction: column;
319
- align-items: stretch;
320
- }
321
- :where(\[data-radix-scroll-area-content\]) {
322
- flex-grow: 1;
323
- }
324
-
325
- import { cssVars } from '@iress-oss/ids-tokens';
326
- <div style\={{ color: cssVars.colour.primary.text }}\>I am branded text</div\>;
327
-
328
- Copy
329
-
330
- On this page
331
-
332
- * [What are tokens?](#what-are-tokens)
333
- * [Token list](#token-list)
334
- * [For developers](#for-developers)
335
-
336
- ## Colour
337
-
338
- [](#colour)Colour
339
- =================
340
-
341
- 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).
342
-
343
- The default theme is designed to meet WCAG contrast guidelines. We can't guarantee this when consumer branding is applied, so colour combinations should be checked to ensure conformance.
344
-
345
- [](#primary)Primary
346
- -------------------
347
-
348
- The primary colour is your "brand" colour, and is used across all interactive elements such as buttons, links, inputs, etc. This colour can define the overall feel and can elicit emotion.
349
-
350
- ### Fill
351
-
352
- colour.primary.fill #13213F
353
-
354
- Used for primary buttons and the active state of form controls such as checkboxes and radio buttons. Also used for the border of tags when they have a custom button.
355
-
356
- #### Allowed foregrounds
357
-
358
- * colour.primary.onFill (#ECF2FF)
359
-
360
- 14.2 AAA
361
-
362
-
363
- ### On Fill
364
-
365
- colour.primary.onFill #ECF2FF
366
-
367
- Used as the foreground colour on primary buttons and active form controls.
368
-
369
- #### Allowed foregrounds
370
-
371
- * colour.primary.fill (#13213F)
372
-
373
- 14.2 AAA
374
-
375
-
376
- ### Fill Hover
377
-
378
- colour.primary.fillHover #2B3752
379
-
380
- Used for the hover state of primary buttons as well as hovering over active form controls.
381
-
382
- #### Allowed foregrounds
383
-
384
- * colour.primary.onFill (#ECF2FF)
385
-
386
- 10.6 AAA
387
-
388
-
389
- ### Surface
390
-
391
- colour.primary.surface #D9E5FF
392
-
393
- Used as the background colour for secondary buttons and the focused state of menu and tab items. Also used as the background colour of active buttons.
394
-
395
- #### Allowed foregrounds
396
-
397
- * colour.primary.text (#13213F)
398
-
399
- 12.6 AAA
400
-
401
- * colour.neutral.80 (#393F46)
402
-
403
- 8.4 AAA
404
-
405
-
406
- ### Text
407
-
408
- colour.primary.text #13213F
409
-
410
- Used for text on primary buttons, active form controls and focused tab and menu items. Also used for the link text colour and tertiary buttons.
411
-
412
- #### Allowed foregrounds
413
-
414
- * colour.primary.surface (#D9E5FF)
415
-
416
- 12.6 AAA
417
-
418
-
419
- ### Surface Hover
420
-
421
- colour.primary.surfaceHover #E1EAFF
422
-
423
- Used for the hover state of secondary buttons, form controls and hovering over focused menu and tab items. Also used when hovering over table rows.
424
-
425
- #### Allowed foregrounds
426
-
427
- * colour.primary.text (#13213F)
428
-
429
- 13.2 AAA
430
-
431
- * colour.neutral.80 (#393F46)
432
-
433
- 8.8 AAA
434
-
435
-
436
- * * *
437
-
438
- [](#neutral)Neutral
439
- -------------------
440
-
441
- Neutral colours apply to most backgrounds, text, and shapes in our experiences. They do not typically have a meaning associated with them, though they can imply things like disabled states. **Note:** There are some colour contrasts that are AA Large and are used for placeholders. If WCAG compliance is necessary for your application, please avoid using placeholders to meet this requirement.
442
-
443
- ### 10
444
-
445
- colour.neutral.10 #FFF
446
-
447
- Used as the default background colour for most components. For tooltips, it is used as the foreground colour for the tooltip content.
448
-
449
- #### Allowed foregrounds
450
-
451
- * colour.neutral.80 (#393F46)
452
-
453
- 10.6 AAA
454
-
455
- * colour.neutral.70 (#6D7278)
456
-
457
- 4.9 AA
458
-
459
- * colour.neutral.60 (#878B92)
460
-
461
- 3.4 AA Large
462
-
463
-
464
- ### 20
465
-
466
- colour.neutral.20 #F9F9F9
467
-
468
- Used as the alternating background colour for components such as tables. Used as the background colour behind panels and cards for highly interactive screens.
469
-
470
- #### Allowed foregrounds
471
-
472
- * colour.neutral.80 (#393F46)
473
-
474
- 10.1 AAA
475
-
476
- * colour.neutral.70 (#6D7278)
477
-
478
- 4.6 AA
479
-
480
-
481
- ### 30
482
-
483
- colour.neutral.30 #E4E5E7
484
-
485
- Used as the border colour for dividers, and the default divider colour for components with in-built headers and footers such as cards.
486
-
487
- ### 40
488
-
489
- colour.neutral.40 #D7D8DA
490
-
491
- Used for borders in subtle interactive components, such as checkboxes and radios with hidden controls and the progress bar.
492
-
493
- ### 50
494
-
495
- colour.neutral.50 #AFB2B6
496
-
497
- Used as the background colour for interactive components such as the slider.
498
-
499
- ### 60
500
-
501
- colour.neutral.60 #878B92
502
-
503
- Used for placeholder text in form controls and disabled states.
504
-
505
- #### Allowed foregrounds
506
-
507
- * colour.neutral.10 (#FFF)
508
-
509
- 3.4 AA Large
510
-
511
-
512
- ### 70
513
-
514
- colour.neutral.70 #6D7278
515
-
516
- Used for muted text such as hints and descriptions to allow for content hierarchy.
517
-
518
- #### Allowed foregrounds
519
-
520
- * colour.neutral.10 (#FFF)
521
-
522
- 4.9 AA
523
-
524
- * colour.neutral.20 (#F9F9F9)
525
-
526
- 4.6 AA
527
-
528
-
529
- ### 80
530
-
531
- colour.neutral.80 #393F46
532
-
533
- Used as the default text colour for most components. For tooltips, it is used as the background colour.
534
-
535
- #### Allowed foregrounds
536
-
537
- * colour.neutral.10 (#FFF)
538
-
539
- 10.6 AAA
540
-
541
- * colour.neutral.20 (#F9F9F9)
542
-
543
- 10.1 AAA
544
-
545
-
546
- * * *
547
-
548
- [](#accent)Accent
549
- -----------------
550
-
551
- The accent colour is a colour used to emphasise key parts of the UI. These act as "secondary" or "supporting" colours to you primary colour.
552
-
553
- ### Brand
554
-
555
- colour.accent.brand #FF99A8
556
-
557
- The brand accent is useful for grabbing attention and to support your primary/brand colour. It should be used sparingly to draw attention to key elements.
558
-
559
- * * *
560
-
561
- [](#system-colours)System colours
562
- ---------------------------------
563
-
564
- Along with primary colours, it is helpful to have a selection of system colours to use in components such as pills, alerts and labels. System colours emphasis different semantic states. They are used to provide visual feedback and/or warnings to users as they use your interface.
565
-
566
- ### [](#success-positive)Success (Positive)
567
-
568
- Communicates that an action has been successful and inform a user that the action is a positive action.
569
-
570
- ### Fill
571
-
572
- colour.system.success.fill #02794D
573
-
574
- Used for the background colour of primary success buttons, as well as the border of alerts and badges. It is also used for the foreground colour of icons inside toasts and alerts.
575
-
576
- #### Allowed foregrounds
577
-
578
- * colour.system.success.onFill (#EFFBF2)
579
-
580
- 5.1 AA
581
-
582
-
583
- ### On Fill
584
-
585
- colour.system.success.onFill #EFFBF2
586
-
587
- Used for the foreground colour of primary success buttons and badges.
588
-
589
- #### Allowed foregrounds
590
-
591
- * colour.system.success.fill (#02794D)
592
-
593
- 5.1 AA
594
-
595
-
596
- ### Fill Hover
597
-
598
- colour.system.success.fillHover #01603D
599
-
600
- Used for the hover state of primary success buttons.
601
-
602
- #### Allowed foregrounds
603
-
604
- * colour.system.success.onFill (#EFFBF2)
605
-
606
- 7.2 AAA
607
-
608
-
609
- ### Surface
610
-
611
- colour.system.success.surface #E6F9EB
612
-
613
- Used for the background colour of success alerts and toasts, and the background of secondary success buttons.
614
-
615
- #### Allowed foregrounds
616
-
617
- * colour.system.success.text (#015537)
618
-
619
- 8.1 AAA
620
-
621
- * colour.neutral.80 (#393F46)
622
-
623
- 9.7 AAA
624
-
625
-
626
- ### Text
627
-
628
- colour.system.success.text #015537
629
-
630
- Used for the text colour of success alerts and toasts, and success tertiary buttons.
631
-
632
- #### Allowed foregrounds
633
-
634
- * colour.system.success.surface (#E6F9EB)
635
-
636
- 8.1 AAA
637
-
638
-
639
- ### Surface Hover
640
-
641
- colour.system.success.surfaceHover #D5F6DE
642
-
643
- Used for the hover state of secondary success buttons.
644
-
645
- #### Allowed foregrounds
646
-
647
- * colour.system.success.text (#015537)
648
-
649
- 7.7 AAA
650
-
651
- * colour.neutral.80 (#393F46)
652
-
653
- 9.2 AAA
654
-
655
-
656
- * * *
657
-
658
- ### [](#danger-negative)Danger (Negative)
659
-
660
- Communicates something went wrong or prevents the user from moving forward with their task, as well as inform a potential action is destructive/negative.
661
-
662
- ### Fill
663
-
664
- colour.system.danger.fill #C20A0A
665
-
666
- Used for the background colour of primary danger buttons, as well as the border of alerts and badges. It is also used for the foreground colour of icons inside toasts and alerts.
667
-
668
- #### Allowed foregrounds
669
-
670
- * colour.system.danger.onFill (#FFF6F5)
671
-
672
- 5.9 AA
673
-
674
-
675
- ### On Fill
676
-
677
- colour.system.danger.onFill #FFF6F5
678
-
679
- Used for the foreground colour of primary danger buttons and badges.
680
-
681
- #### Allowed foregrounds
682
-
683
- * colour.system.danger.fill (#C20A0A)
684
-
685
- 5.9 AA
686
-
687
-
688
- ### Fill Hover
689
-
690
- colour.system.danger.fillHover #A50606
691
-
692
- Used for the hover state of primary danger buttons.
693
-
694
- #### Allowed foregrounds
695
-
696
- * colour.system.danger.onFill (#FFF6F5)
697
-
698
- 7.5 AAA
699
-
700
-
701
- ### Surface
702
-
703
- colour.system.danger.surface #FEE8E7
704
-
705
- Used for the background colour of danger alerts and toasts, and the background of secondary danger buttons.
706
-
707
- #### Allowed foregrounds
708
-
709
- * colour.system.danger.text (#970202)
710
-
711
- 7.7 AAA
712
-
713
- * colour.neutral.80 (#393F46)
714
-
715
- 9.1 AAA
716
-
717
-
718
- ### Text
719
-
720
- colour.system.danger.text #970202
721
-
722
- Used for the text colour of danger alerts and toasts, and danger tertiary buttons.
723
-
724
- #### Allowed foregrounds
725
-
726
- * colour.system.danger.surface (#FEE8E7)
727
-
728
- 7.7 AAA
729
-
730
-
731
- ### Surface Hover
732
-
733
- colour.system.danger.surfaceHover #FEDEDC
734
-
735
- Used for the hover state of secondary danger buttons.
736
-
737
- #### Allowed foregrounds
738
-
739
- * colour.system.danger.text (#970202)
740
-
741
- 7.2 AAA
742
-
743
- * colour.neutral.80 (#393F46)
744
-
745
- 8.5 AAA
746
-
747
-
748
- * * *
749
-
750
- ### [](#warning)Warning
751
-
752
- Communicates attention required but does not prevent the user from moving forward with their task.
753
-
754
- ### Fill
755
-
756
- colour.system.warning.fill #F6C84C
757
-
758
- Used for the border of warning alerts and the background of warning badges.
759
-
760
- #### Allowed foregrounds
761
-
762
- * colour.system.warning.onFill (#1A1200)
763
-
764
- 11.8 AAA
765
-
766
-
767
- ### On Fill
768
-
769
- colour.system.warning.onFill #1A1200
770
-
771
- Used for the foreground colour of warning badges.
772
-
773
- #### Allowed foregrounds
774
-
775
- * colour.system.warning.fill (#F6C84C)
776
-
777
- 11.8 AAA
778
-
779
-
780
- ### Surface
781
-
782
- colour.system.warning.surface #FEF4CD
783
-
784
- Used for the background colour of warning alerts.
785
-
786
- #### Allowed foregrounds
787
-
788
- * colour.system.warning.text (#1A1200)
789
-
790
- 16.8 AAA
791
-
792
- * colour.neutral.80 (#393F46)
793
-
794
- 9.6 AAA
795
-
796
-
797
- ### Text
798
-
799
- colour.system.warning.text #1A1200
800
-
801
- Used for the text colour of warning alerts.
802
-
803
- #### Allowed foregrounds
804
-
805
- * colour.system.warning.surface (#FEF4CD)
806
-
807
- 16.8 AAA
808
-
809
-
810
- * * *
811
-
812
- ### [](#information)Information
813
-
814
- Provides additional helpful context.
815
-
816
- ### Fill
817
-
818
- colour.system.info.fill #004FBD
819
-
820
- Used for the border of info alerts and toasts and the background of info badges.
821
-
822
- #### Allowed foregrounds
823
-
824
- * colour.system.info.onFill (#F5FAFF)
825
-
826
- 7.0 AAA
827
-
828
-
829
- ### On Fill
830
-
831
- colour.system.info.onFill #F5FAFF
832
-
833
- Used for the foreground colour of info badges.
834
-
835
- #### Allowed foregrounds
836
-
837
- * colour.system.info.fill (#004FBD)
838
-
839
- 7.0 AAA
840
-
841
-
842
- ### Surface
843
-
844
- colour.system.info.surface #E5F3FF
845
-
846
- Used for the background colour of info alerts and toasts.
847
-
848
- #### Allowed foregrounds
849
-
850
- * colour.system.info.text (#123987)
851
-
852
- 9.5 AAA
853
-
854
- * colour.neutral.80 (#393F46)
855
-
856
- 9.4 AAA
857
-
858
-
859
- ### Text
860
-
861
- colour.system.info.text #123987
862
-
863
- Used for the text colour of info alerts and toasts.
864
-
865
- #### Allowed foregrounds
866
-
867
- * colour.system.info.surface (#E5F3FF)
868
-
869
- 9.5 AAA
870
-
871
-
872
- * * *
873
-
874
- ### [](#backdrop)Backdrop
875
-
876
- Used to cover the page in order to highlight a specific component, such as a modal.
877
-
878
- ### Fill
879
-
880
- colour.system.backdrop.fill #393F46CC
881
-
882
- Used for the background colour of the backdrop.
883
-
884
- #### Allowed foregrounds
885
-
886
- * colour.neutral.10 (#FFF)
887
-
888
- 10.6 AAA
889
-
890
-
891
- On this page
892
-
893
- * [Primary](#primary)
894
- * [Neutral](#neutral)
895
- * [Accent](#accent)
896
- * [System colours](#system-colours)
897
- * [Success (Positive)](#success-positive)
898
- * [Danger (Negative)](#danger-negative)
899
- * [Warning](#warning)
900
- * [Information](#information)
901
- * [Backdrop](#backdrop)
902
-
903
- ## Elevation
904
-
905
- [](#elevation)Elevation
906
- =======================
907
-
908
- Elevation is a design concept that adds depth and hierarchy to user interfaces by using shadows and layers. It helps users understand the relationship between different elements on the page, guiding their attention and interaction.
909
-
910
- Raised
911
- ------
912
-
913
- Raised elevations sit slightly higher than default elevations. They are reserved for cards that can be moved, such as Jira issue cards and Trello cards. In special circumstances, they can be used for cards as a way to provide additional heirarchy or emphasis.
914
-
915
- elevation.raised
916
-
917
- Floating
918
- --------
919
-
920
- Floating is the highest elevation available. It is reserved for a UI that sits over another UI, such as modals, dialogs, dropdown menus, floating toolbars, and floating single-action buttons.
921
-
922
- elevation.floating
923
-
924
- Overflow
925
- --------
926
-
927
- Overflow is a shadow indicating content has scrolled outside a view. It can be used for vertical or horizontal scroll. An example of overflow shadows is the horizontal scroll in tables on a Confluence page.
928
-
929
- elevation.overflow
930
-
931
- Focus
932
- -----
933
-
934
- Focus is an outline indicating that an element is focused, usually via keyboard interaction. It is user when a user cannot interact with the page using a mouse/touch.
935
-
936
- elevation.focus
937
-
938
- Focus Compact
939
- -------------
940
-
941
- Focus compact is a variation of the focus elevation to indicate focus on elements that have restricted space making the default focus not aesthetically pleasing (for example, a search input in a dropdown like rich select). Avoid using where possible, as it makes the focus state less obvious.
942
-
943
- elevation.focusCompact
944
-
945
- Hide code
946
-
947
- \[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; }
948
-
949
- <I\>
950
- <w
951
- gutter\="md"
952
- verticalAlign\="stretch"
953
- \>
954
- <n
955
- span\={{
956
- base: 6,
957
- xl: 3
958
- }}
959
- \>
960
- <I
961
- layerStyle\="elevation.raised"
962
- stretch
963
- \>
964
- <h2\>
965
- Raised </h2\>
966
- <p\>
967
- Raised elevations sit slightly higher than default elevations. They are reserved for cards that can be moved, such as Jira issue cards and Trello cards. In special circumstances, they can be used for cards as a way to provide additional heirarchy or emphasis. </p\>
968
- <p\>
969
- <TokenTag\>
970
- elevation.raised </TokenTag\>
971
- </p\>
972
- </I\>
973
- </n\>
974
- <n
975
- span\={{
976
- base: 6,
977
- xl: 3
978
- }}
979
- \>
980
- <I
981
- layerStyle\="elevation.floating"
982
- stretch
983
- \>
984
- <h2\>
985
- Floating </h2\>
986
- <p\>
987
- Floating is the highest elevation available. It is reserved for a UI that sits over another UI, such as modals, dialogs, dropdown menus, floating toolbars, and floating single-action buttons. </p\>
988
- <p\>
989
- <TokenTag\>
990
- elevation.floating </TokenTag\>
991
- </p\>
992
- </I\>
993
- </n\>
994
- <n
995
- span\={{
996
- base: 6,
997
- xl: 3
998
- }}
999
- \>
1000
- <I
1001
- layerStyle\="elevation.overflow"
1002
- stretch
1003
- \>
1004
- <h2\>
1005
- Overflow </h2\>
1006
- <p\>
1007
- Overflow is a shadow indicating content has scrolled outside a view. It can be used for vertical or horizontal scroll. An example of overflow shadows is the horizontal scroll in tables on a Confluence page. </p\>
1008
- <p\>
1009
- <TokenTag\>
1010
- elevation.overflow </TokenTag\>
1011
- </p\>
1012
- </I\>
1013
- </n\>
1014
- <n
1015
- span\={{
1016
- base: 6,
1017
- xl: 3
1018
- }}
1019
- \>
1020
- <I
1021
- layerStyle\="elevation.focus"
1022
- stretch
1023
- \>
1024
- <h2\>
1025
- Focus </h2\>
1026
- <p\>
1027
- Focus is an outline indicating that an element is focused, usually via keyboard interaction. It is user when a user cannot interact with the page using a mouse/touch. </p\>
1028
- <p\>
1029
- <TokenTag\>
1030
- elevation.focus </TokenTag\>
1031
- </p\>
1032
- </I\>
1033
- </n\>
1034
- <n
1035
- span\={{
1036
- base: 6,
1037
- xl: 3
1038
- }}
1039
- \>
1040
- <I
1041
- layerStyle\="elevation.focusCompact"
1042
- stretch
1043
- \>
1044
- <h2\>
1045
- Focus Compact </h2\>
1046
- <p\>
1047
- Focus compact is a variation of the focus elevation to indicate focus on elements that have restricted space making the default focus not aesthetically pleasing (for example, a search input in a dropdown like rich select). Avoid using where possible, as it makes the focus state less obvious. </p\>
1048
- <p\>
1049
- <TokenTag\>
1050
- elevation.focusCompact </TokenTag\>
1051
- </p\>
1052
- </I\>
1053
- </n\>
1054
- </w\>
1055
- </I\>
1056
-
1057
- Copy
1058
-
1059
- On this page
1060
-
1061
- ## Radius
1062
-
1063
- [](#radius)Radius
1064
- =================
1065
-
1066
- Radius is the curvature of the corners of elements. It is used to soften the appearance of elements and make them more visually appealing.
1067
-
1068
- Radius tokens
1069
- | Token Name | Alias | Description | Visual |
1070
- | --- | --- | --- | --- |
1071
- | radius.000 | none | No radius |
1072
- 0px
1073
-
1074
- |
1075
- | radius.025 | | 25% (0.25x) radius |
1076
-
1077
- 4px
1078
-
1079
- |
1080
- | radius.050 | | 50% (0.5x) radius |
1081
-
1082
- 8px
1083
-
1084
- |
1085
- | radius.075 | | 75% (0.75x) radius |
1086
-
1087
- 12px
1088
-
1089
- |
1090
- | radius.100 | | The base unit for radius. The fallback for all other values will be calculated from this value. |
1091
-
1092
- 16px
1093
-
1094
- |
1095
-
1096
- [](#system)System
1097
- -----------------
1098
-
1099
- Some components have a default radius to better align to a brand. Although usually they inherit from the base units, for some brands you may need to customise this to further emphasise their identity.
1100
-
1101
- ### Badge
1102
-
1103
- Applies to badges and tags (that have not been designated to be a circle).
1104
-
1105
- radius.system.badge
1106
-
1107
- * * *
1108
-
1109
- ### Button
1110
-
1111
- Applies to buttons and other interactive elements such as the hover state of links.
1112
-
1113
- radius.system.button
1114
-
1115
- * * *
1116
-
1117
- ### Form
1118
-
1119
- Applies to form inputs and alerts.
1120
-
1121
- radius.system.form
1122
-
1123
- * * *
1124
-
1125
- ### Layout
1126
-
1127
- Applies to panels, modals and slideouts.
1128
-
1129
- radius.system.layout
1130
-
1131
- On this page
1132
-
1133
- * [System](#system)
1134
-
1135
- ## Spacing
1136
-
1137
- [](#spacing)Spacing
1138
- ===================
1139
-
1140
- Spacing is the distance between elements. It is used to create visual balance and hierarchy in the UI to ensure a cohesive experience for the user.
1141
-
1142
- Spacing tokens
1143
- | Token Name | Alias | Description | Visual |
1144
- | --- | --- | --- | --- |
1145
- | spacing.000 | none | No spacing |
1146
- 0px
1147
-
1148
- |
1149
- | spacing.050 | | 50% (0.5x) spacing |
1150
-
1151
- 2px
1152
-
1153
- |
1154
- | spacing.100 | xs | The base unit for spacing. The fallback for all other values will be calculated from this value. |
1155
-
1156
- 4px
1157
-
1158
- |
1159
- | spacing.150 | | 150% (1.5x) spacing |
1160
-
1161
- 6px
1162
-
1163
- |
1164
- | spacing.200 | sm | 200% (2x) spacing |
1165
-
1166
- 8px
1167
-
1168
- |
1169
- | spacing.250 | | 250% (2.5x) spacing |
1170
-
1171
- 10px
1172
-
1173
- |
1174
- | spacing.300 | | 300% (3x) spacing |
1175
-
1176
- 12px
1177
-
1178
- |
1179
- | spacing.350 | | 350% (3.5x) spacing |
1180
-
1181
- 14px
1182
-
1183
- |
1184
- | spacing.400 | md | 400% (4x) spacing |
1185
-
1186
- 16px
1187
-
1188
- |
1189
- | spacing.500 | | 500% (5x) spacing |
1190
-
1191
- 20px
1192
-
1193
- |
1194
- | spacing.600 | lg | 600% (6x) spacing |
1195
-
1196
- 24px
1197
-
1198
- |
1199
- | spacing.700 | | 700% (7x) spacing |
1200
-
1201
- 28px
1202
-
1203
- |
1204
- | spacing.800 | | 800% (8x) spacing |
1205
-
1206
- 32px
1207
-
1208
- |
1209
- | spacing.900 | | 900% (9x) spacing |
1210
-
1211
- 36px
1212
-
1213
- |
1214
- | spacing.1000 | | 1000% (10x) spacing |
1215
-
1216
- 40px
1217
-
1218
- |
1219
- | spacing.1200 | xl | 1200% (12x) spacing |
1220
-
1221
- 48px
1222
-
1223
- |
1224
-
1225
- On this page
1226
-
1227
- ## Typography
1228
-
1229
- [](#typography)Typography
1230
- =========================
1231
-
1232
- Typography is controlled by the `IressText` component, or the `textStyle` prop on other components. They implement consistent line heights and font weights.
1233
-
1234
- [](#body)Body
1235
- -------------
1236
-
1237
- This is the default text variant, and is designed to be clear and easy to read. This high level token also styles other tags beneath it such as `ul`, `ol`, `em` and `strong`, so that they inherit the same styling as the body text.
1238
-
1239
- Nobis odit nesciunt in, **harum provident** deleniti molestiae dolorum aliquid tempora optio accusamus dolore _porro voluptatibus_. Dolorum, repellat expedita.
1240
-
1241
- * Voluptatem assumenda soluta!
1242
- * Illum et atque alias possimus maiores rem in corrupti consectetur!
1243
- * Dolorum, repellat expedita!
1244
-
1245
- Hide code
1246
-
1247
- \[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; }
1248
-
1249
- <IressText\>
1250
- <p\>
1251
- Nobis odit nesciunt in,{' '}
1252
- <strong\>
1253
- harum provident </strong\>
1254
- {' '}deleniti molestiae dolorum aliquid tempora optio accusamus dolore{' '}
1255
- <em\>
1256
- porro voluptatibus </em\>
1257
- . Dolorum, repellat expedita. </p\>
1258
- <ul\>
1259
- <li\>
1260
- Voluptatem assumenda soluta! </li\>
1261
- <li\>
1262
- Illum et atque alias possimus maiores rem in corrupti consectetur! </li\>
1263
- <li\>
1264
- Dolorum, repellat expedita! </li\>
1265
- </ul\>
1266
- </IressText\>
1267
-
1268
- Copy
1269
-
1270
- ### [](#sizes)Sizes
1271
-
1272
- Body text can be set in a variety of sizes, from small to large. The size of the text should be chosen based on the context and importance of the content.
1273
-
1274
- typography.body.sm Used for small components such as badges and field hints, as well as compact variations of tables and lists.
1275
-
1276
- typography.body.md The most commonly used body text size, used for most text content in the product.
1277
-
1278
- typography.body.lg Used for tag lines, subtitles, and other large text content in the product.
1279
-
1280
- Hide code
1281
-
1282
- \[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; }
1283
-
1284
- <IressStack gap\="md"\>
1285
- <IressText textStyle\="typography.body.sm"\>
1286
- <TokenTag\>
1287
- typography.body.sm </TokenTag\>
1288
- {' '}Used for small components such as badges and field hints, as well as compact variations of tables and lists.
1289
- </IressText\>
1290
- <IressText textStyle\="typography.body.md"\>
1291
- <TokenTag\>
1292
- typography.body.md </TokenTag\>
1293
- {' '}The most commonly used body text size, used for most text content in the product.
1294
- </IressText\>
1295
- <IressText textStyle\="typography.body.lg"\>
1296
- <TokenTag\>
1297
- typography.body.lg </TokenTag\>
1298
- {' '}Used for tag lines, subtitles, and other large text content in the product.
1299
- </IressText\>
1300
- </IressStack\>
1301
-
1302
- Copy
1303
-
1304
- ### [](#variants)Variants
1305
-
1306
- Body text can be combined with bold (strong) and italic (emphasis) text to create emphasis or hierarchy within the content.
1307
-
1308
- * Bold text should be used to **draw attention** to part of a sentence, or to provide a visual label for readonly text.
1309
- * Italic text should be used to add _emphasis_ to content, or to add stress to part of a sentence.
1310
-
1311
- #### Strong
1312
-
1313
- Strong variant is used to draw attention to certain text, making a large block of text easier to scan. This token is used to style the <strong /> tag in a body of text.
1314
-
1315
- typography.body.sm.strongStrong text is used to highlight important information in a paragraph of text.
1316
-
1317
- typography.body.md.strongStrong text is used to highlight important information in a paragraph of text.
1318
-
1319
- typography.body.lg.strongStrong text is used to highlight important information in a paragraph of text.
1320
-
1321
- * * *
1322
-
1323
- #### Emphasis
1324
-
1325
- Emphasis (em) variant is used to emphasise certain text to indicate they make a reference to a standard/legal term. This token is used to style the <em /> tag in a body of text.
1326
-
1327
- typography.body.sm.em Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes.
1328
-
1329
- typography.body.md.em Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes.
1330
-
1331
- typography.body.lg.em Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes.
1332
-
1333
- Hide code
1334
-
1335
- \[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; }
1336
-
1337
- <IressStack gap\="md"\>
1338
- <IressText\>
1339
- <h4\>
1340
- Strong </h4\>
1341
- <p\>
1342
- {\`Strong variant is used to draw attention to certain text, making a large block of text easier to scan. This token is used to style the <strong /> tag in a body of text.\`}
1343
- </p\>
1344
- </IressText\>
1345
- <IressText textStyle\="typography.body.sm.strong"\>
1346
- <TokenTag\>
1347
- typography.body.sm.strong </TokenTag\>
1348
- Strong text is used to highlight important information in a paragraph of text. </IressText\>
1349
- <IressText textStyle\="typography.body.md.strong"\>
1350
- <TokenTag\>
1351
- typography.body.md.strong </TokenTag\>
1352
- Strong text is used to highlight important information in a paragraph of text. </IressText\>
1353
- <IressText textStyle\="typography.body.lg.strong"\>
1354
- <TokenTag\>
1355
- typography.body.lg.strong </TokenTag\>
1356
- Strong text is used to highlight important information in a paragraph of text. </IressText\>
1357
- <IressDivider />
1358
- <IressText\>
1359
- <h4\>
1360
- Emphasis </h4\>
1361
- <p\>
1362
- {\`Emphasis (em) variant is used to emphasise certain text to indicate they make a reference to a standard/legal term. This token is used to style the <em /> tag in a body of text.\`}
1363
- </p\>
1364
- </IressText\>
1365
- <IressText textStyle\="typography.body.sm.em"\>
1366
- <TokenTag\>
1367
- typography.body.sm.em </TokenTag\>
1368
- {' '}Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes.
1369
- </IressText\>
1370
- <IressText textStyle\="typography.body.md.em"\>
1371
- <TokenTag\>
1372
- typography.body.md.em </TokenTag\>
1373
- {' '}Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes.
1374
- </IressText\>
1375
- <IressText textStyle\="typography.body.lg.em"\>
1376
- <TokenTag\>
1377
- typography.body.lg.em </TokenTag\>
1378
- {' '}Emphasised text is used to highlight a term or definition in a paragraph of text. It is used sparingly, usually for legal purposes.
1379
- </IressText\>
1380
- </IressStack\>
1381
-
1382
- Copy
1383
-
1384
- [](#headings)Headings
1385
- ---------------------
1386
-
1387
- 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).
1388
-
1389
- Heading 1 `<h1 />`
1390
- ==================
1391
-
1392
- typography.heading.1
1393
-
1394
- Use for the main page title to establish a clear hierarchy. There is only one H1 per screen, emphasising the primary purpose or context of the page.
1395
-
1396
- Heading 2 `<h2 />`
1397
- ------------------
1398
-
1399
- typography.heading.2
1400
-
1401
- Use for \*\*primary section headings\*\* within a page to organise content and guide the user through key areas. Also suitable for large components—such as modals—where space allows and where it pairs well with: body.md or body.lg.
1402
-
1403
- ### Heading 3 `<h3 />`
1404
-
1405
- typography.heading.3
1406
-
1407
- Use for: sub-sections under H2s to further structure content and maintain a clear visual hierarchy. Ideal for breaking down complex sections into manageable parts.
1408
-
1409
- #### Heading 4 `<h4 />`
1410
-
1411
- typography.heading.4
1412
-
1413
- Use for: supporting headings within content blocks or small components where space is limited—such as table headers, cards, or side panels. Provides structure without overwhelming the layout.
1414
-
1415
- ##### Heading 5 `<h5 />`
1416
-
1417
- typography.heading.5
1418
-
1419
- Use for: minor labels or titles in compact UI elements, such as cards, sidebars, or inline labels. Best used to emphasise supplementary information without drawing too much attention. Works well with body.sm and is ideal for subtle content like fine print. Use sparingly to preserve typographic hierarchy.
1420
-
1421
- An H2 styled as an H3.
1422
- ----------------------
1423
-
1424
- Hide code
1425
-
1426
- \[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; }
1427
-
1428
- <IressStack gap\="lg"\>
1429
- <IressText\>
1430
- <h1\>
1431
- Heading 1{' '}
1432
- <code\>
1433
- {\`<h1 />\`}
1434
- </code\>
1435
- </h1\>
1436
- <IressText
1437
- mb\="sm"
1438
- mt\="\-sm"
1439
- \>
1440
- <TokenTag\>
1441
- typography.heading.1 </TokenTag\>
1442
- </IressText\>
1443
- <p\>
1444
- Use for the main page title to establish a clear hierarchy. There is only one H1 per screen, emphasising the primary purpose or context of the page. </p\>
1445
- </IressText\>
1446
- <IressText\>
1447
- <h2\>
1448
- Heading 2{' '}
1449
- <code\>
1450
- {\`<h2 />\`}
1451
- </code\>
1452
- </h2\>
1453
- <IressText
1454
- mb\="sm"
1455
- mt\="\-xs"
1456
- \>
1457
- <TokenTag\>
1458
- typography.heading.2 </TokenTag\>
1459
- </IressText\>
1460
- <p\>
1461
- Use for \*\*primary section headings\*\* within a page to organise content and guide the user through key areas. Also suitable for large components—such as modals—where space allows and where it pairs well with: body.md or body.lg. </p\>
1462
- </IressText\>
1463
- <IressText\>
1464
- <h3\>
1465
- Heading 3{' '}
1466
- <code\>
1467
- {\`<h3 />\`}
1468
- </code\>
1469
- </h3\>
1470
- <IressText
1471
- mb\="sm"
1472
- mt\="\-xs"
1473
- \>
1474
- <TokenTag\>
1475
- typography.heading.3 </TokenTag\>
1476
- </IressText\>
1477
- <p\>
1478
- Use for: sub-sections under H2s to further structure content and maintain a clear visual hierarchy. Ideal for breaking down complex sections into manageable parts. </p\>
1479
- </IressText\>
1480
- <IressText\>
1481
- <h4\>
1482
- Heading 4{' '}
1483
- <code\>
1484
- {\`<h4 />\`}
1485
- </code\>
1486
- </h4\>
1487
- <IressText
1488
- mb\="sm"
1489
- mt\="\-xs"
1490
- \>
1491
- <TokenTag\>
1492
- typography.heading.4 </TokenTag\>
1493
- </IressText\>
1494
- <p\>
1495
- Use for: supporting headings within content blocks or small components where space is limited—such as table headers, cards, or side panels. Provides structure without overwhelming the layout. </p\>
1496
- </IressText\>
1497
- <IressText\>
1498
- <h5\>
1499
- Heading 5{' '}
1500
- <code\>
1501
- {\`<h5 />\`}
1502
- </code\>
1503
- </h5\>
1504
- <IressText
1505
- mb\="sm"
1506
- mt\="\-xs"
1507
- \>
1508
- <TokenTag\>
1509
- typography.heading.5 </TokenTag\>
1510
- </IressText\>
1511
- <p\>
1512
- Use for: minor labels or titles in compact UI elements, such as cards, sidebars, or inline labels. Best used to emphasise supplementary information without drawing too much attention. Works well with body.sm and is ideal for subtle content like fine print. Use sparingly to preserve typographic hierarchy. </p\>
1513
- </IressText\>
1514
- <IressText
1515
- element\="h2"
1516
- textStyle\="typography.heading.3"
1517
- \>
1518
- An H2 styled as an H3. </IressText\>
1519
- </IressStack\>
1520
-
1521
- Copy
1522
-
1523
- [](#code)Code
1524
- -------------
1525
-
1526
- The code variant is used to display code snippets or other monospaced text. It is designed to be clear and easy to read, with a fixed-width font that makes it easy to distinguish between characters.
1527
-
1528
- typography.code Used to display code snippets in the product, such as in the API documentation.
1529
-
1530
- Hide code
1531
-
1532
- \[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; }
1533
-
1534
- <IressStack gap\="md"\>
1535
- <IressText textStyle\="typography.code"\>
1536
- <TokenTag\>
1537
- typography.code </TokenTag\>
1538
- {' '}Used to display code snippets in the product, such as in the API documentation.
1539
- </IressText\>
1540
- </IressStack\>
1541
-
1542
- Copy
1543
-
1544
- On this page
1545
-
1546
- * [Body](#body)
1547
- * [Sizes](#sizes)
1548
- * [Variants](#variants)
1549
- * [Headings](#headings)
1550
- * [Code](#code)
1551
-
1552
- ## Responsive (breakpoints)
1553
-
1554
- [](#responsive-design)Responsive Design
1555
- =======================================
1556
-
1557
- The Iress Design System (IDS) is built with responsive design principles in mind. This means that our components are designed to adapt to different screen sizes and orientations, ensuring a consistent user experience across devices.
1558
-
1559
- [](#breakpoints)Breakpoints
1560
- ---------------------------
1561
-
1562
- * Implement mobile-first responsive design
1563
- * Use consistent breakpoint values across all components
1564
- * Provide appropriate component variants for different screen sizes
1565
- * Consider content priority and progressive disclosure on smaller screens
1566
-
1567
- ### Breakpoints supported by IDS
1568
-
1569
- | Name | Screen Width | Media Query |
1570
- | --- | --- | --- |
1571
- | xs | 0 - 575px | (min-width: 0) and (max-width: 575px) |
1572
- | sm | 576px - 767px | (min-width: 576px) and (max-width: 767px) |
1573
- | md | 768px - 1023px | (min-width: 768px) and (max-width: 1023px) |
1574
- | lg | 1024px - 1199px | (min-width: 1024px) and (max-width: 1199px) |
1575
- | xl | 1200px - 1499px | (min-width: 1200px) and (max-width: 1499px) |
1576
- | xxl | 1500px and above | (min-width: 1500px) |
1577
-
1578
- [](#adaptive-behaviour)Adaptive Behaviour
1579
- -----------------------------------------
1580
-
1581
- * Reduce option counts on mobile devices where appropriate
1582
- * Implement responsive navigation patterns
1583
- * Adjust spacing and sizing for different contexts
1584
- * Maintain usability across all supported devices
1585
-
1586
- * * *
1587
-
1588
- [](#for-developers)For developers
1589
- ---------------------------------
1590
-
1591
- If you are using the IDS components, the breakpoints have already been mapped out to their respective props. You can use props such as `gap` to change the visual properties of the component at certain breakpoints.
1592
-
1593
- \[data-radix-scroll-area-viewport\] {
1594
- scrollbar-width: none;
1595
- -ms-overflow-style: none;
1596
- -webkit-overflow-scrolling: touch;
1597
- }
1598
- \[data-radix-scroll-area-viewport\]::-webkit-scrollbar {
1599
- display: none;
1600
- }
1601
- :where(\[data-radix-scroll-area-viewport\]) {
1602
- display: flex;
1603
- flex-direction: column;
1604
- align-items: stretch;
1605
- }
1606
- :where(\[data-radix-scroll-area-content\]) {
1607
- flex-grow: 1;
1608
- }
1609
-
1610
- import { IressStack } from '@iress-oss/ids-components';
1611
- <IressStack gap\={{ xs: 'spacing.100', md: 'spacing.200' }} />;
1612
-
1613
- Copy
1614
-
1615
- ### [](#hooks)Hooks
1616
-
1617
- #### [](#usebreakpoint)`useBreakpoint`
1618
-
1619
- We also provide a `useBreakpoint` hook that allows you to access the current breakpoint in your components. This can be useful for conditionally rendering components based on the current screen size.
1620
-
1621
- **Note:** It is best to use media queries for responsive styling. Most props that require responsive values already support breakpoints which map to CSS values. Only use the `useBreakpoint` hook when there is no other way to achieve the desired responsive behavior.
1622
-
1623
- \[data-radix-scroll-area-viewport\] {
1624
- scrollbar-width: none;
1625
- -ms-overflow-style: none;
1626
- -webkit-overflow-scrolling: touch;
1627
- }
1628
- \[data-radix-scroll-area-viewport\]::-webkit-scrollbar {
1629
- display: none;
1630
- }
1631
- :where(\[data-radix-scroll-area-viewport\]) {
1632
- display: flex;
1633
- flex-direction: column;
1634
- align-items: stretch;
1635
- }
1636
- :where(\[data-radix-scroll-area-content\]) {
1637
- flex-grow: 1;
1638
- }
1639
-
1640
- import { useBreakpoint } from '@iress-oss/ids-components';
1641
- const MyComponent \= () \=> {
1642
- const { breakpoint } \= useBreakpoint();
1643
- return (
1644
- <div\>
1645
- {breakpoint \=== 'xs' && <p\>This is extra small screen</p\>}
1646
- {breakpoint \=== 'md' && <p\>This is medium screen</p\>}
1647
- </div\>
1648
- );
1649
- };
1650
-
1651
- Copy
1652
-
1653
- #### [](#useresponsiveprops)`useResponsiveProps`
1654
-
1655
- Another hook is `useResponsiveProps`, which allows you to define responsive properties that change based on the current breakpoint. This is particularly useful for completely changing components at various screen sizes.
1656
-
1657
- **Note:** It is best to use media queries for responsive styling. Most props that require responsive values already support breakpoints which map to CSS values. Only use the `useResponsiveProps` hook when there is no other way to achieve the desired responsive behavior.
1658
-
1659
- `useResponsiveProps`
1660
- --------------------
1661
-
1662
- This example demonstrates a use case for `useResponsiveProps`, for changing the columns on a table based on the breakpoint.
1663
-
1664
- Resize the screen to see the columns change
1665
-
1666
- | Name | Age |
1667
- | --- | --- |
1668
- | Luke Skywalker | 19 |
1669
- | Princess Leia | 19 |
1670
- | Han Solo | 32 |
1671
-
1672
- Hide code
1673
-
1674
- \[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; }
1675
-
1676
- export const ResponsiveTableColumns \= () \=> {
1677
- const { value } \= useResponsiveProps({
1678
- base: \[{ key: 'name', label: 'Name' }\],
1679
- lg: \[
1680
- { key: 'name', label: 'Name' },
1681
- { key: 'age', label: 'Age' },
1682
- \],
1683
- });
1684
- return (
1685
- <IressTable
1686
- caption\={
1687
- <IressText textAlign\="left"\>
1688
- <h2\>
1689
- <code\>useResponsiveProps</code\>
1690
- </h2\>
1691
- <p\>
1692
- This example demonstrates a use case for{' '}
1693
- <code\>useResponsiveProps</code\>, for changing the columns on a table
1694
- based on the breakpoint. </p\>
1695
- <p\>Resize the screen to see the columns change</p\>
1696
- </IressText\>
1697
- }
1698
- columns\={value}
1699
- rows\={\[
1700
- { name: 'Luke Skywalker', age: 19 },
1701
- { name: 'Princess Leia', age: 19 },
1702
- { name: 'Han Solo', age: 32 },
1703
- \]}
1704
- />
1705
- );
1706
- };
1707
-
1708
- Copy
1709
-
1710
- ### [](#constant)Constant
1711
-
1712
- You can also use the breakpoints directly in your CSS or styled components. The breakpoints are defined in the `@iress-oss/ids-components` package.
1713
-
1714
- \[data-radix-scroll-area-viewport\] {
1715
- scrollbar-width: none;
1716
- -ms-overflow-style: none;
1717
- -webkit-overflow-scrolling: touch;
1718
- }
1719
- \[data-radix-scroll-area-viewport\]::-webkit-scrollbar {
1720
- display: none;
1721
- }
1722
- :where(\[data-radix-scroll-area-viewport\]) {
1723
- display: flex;
1724
- flex-direction: column;
1725
- align-items: stretch;
1726
- }
1727
- :where(\[data-radix-scroll-area-content\]) {
1728
- flex-grow: 1;
1729
- }
1730
-
1731
- import { BREAKPOINT\_DETAILS } from '@iress-oss/ids-components';
1732
- const css \= \`
1733
- @media (${BREAKPOINT\_DETAILS.md.mediaQuery}}) {
1734
- .my-class { padding: 20px; } }
1735
- \`;
1736
- <style\>{css}</style\>;
1737
-
1738
- Copy
1739
-
1740
- On this page
1741
-
1742
- * [Breakpoints](#breakpoints)
1743
- * [Adaptive Behaviour](#adaptive-behaviour)
1744
- * [For developers](#for-developers)
1745
- * [Hooks](#hooks)
1746
- * [Constant](#constant)
1747
-
1748
- ## Consistency
1749
-
1750
- [](#using-components-consistently)Using components consistently
1751
- ===============================================================
1752
-
1753
- [](#buttons)Buttons
1754
- -------------------
1755
-
1756
- * **Primary**: Limit to one per view for main call-to-action
1757
- * **Secondary**: Use for secondary actions
1758
- * **Tertiary**: Extra affordance between secondary actions
1759
- * **Link**: Button styled as link (avoid with icon-only content)
1760
- * **Danger**: Destructive actions requiring extra confirmation
1761
- * **Positive/Negative**: Financial transactions (buy/sell)
1762
-
1763
- [](#forms)Forms
1764
- ---------------
1765
-
1766
- * Always use `IressField` wrapper for proper label, hint, and error placement
1767
- * Provide clear validation feedback with appropriate error messages
1768
- * Use consistent input sizing based on expected content length
1769
- * Implement proper form state management and accessibility
1770
-
1771
- [](#navigation)Navigation
1772
- -------------------------
1773
-
1774
- * Use semantic HTML5 navigation elements
1775
- * Provide skip links for keyboard users
1776
- * Implement proper ARIA labelling for navigation sections
1777
- * Ensure consistent navigation patterns across applications
1778
-
1779
- [](#data-display)Data Display
1780
- -----------------------------
1781
-
1782
- * Use semantic table structures with proper headers
1783
- * Provide clear visual hierarchy in data presentations
1784
- * Implement consistent sorting and filtering patterns
1785
- * Use appropriate loading states for data-heavy components
1786
-
1787
- [](#modals-and-overlays)Modals and Overlays
1788
- -------------------------------------------
1789
-
1790
- * Reserve modals for critical tasks requiring full attention
1791
- * Provide multiple dismissal methods (backdrop, escape key, close button)
1792
- * Implement proper focus management and restoration
1793
- * Use slideouts for supplementary tasks where underlying content needs visibility
1794
-
1795
- On this page
1796
-
1797
- * [Buttons](#buttons)
1798
- * [Forms](#forms)
1799
- * [Navigation](#navigation)
1800
- * [Data Display](#data-display)
1801
- * [Modals and Overlays](#modals-and-overlays)
1802
-
1803
- ## Grid
1804
-
1805
- [](#grid)Grid
1806
- =============
1807
-
1808
- The grid is used to evenly place other components across the page to ensure a consistent hierarchy and structure.
1809
-
1810
- [](#reference)Reference
1811
- -----------------------
1812
-
1813
- Grid size: 12
1814
-
1815
- 1
1816
-
1817
- 2
1818
-
1819
- 3
1820
-
1821
- 4
1822
-
1823
- 5
1824
-
1825
- 6
1826
-
1827
- 7
1828
-
1829
- 8
1830
-
1831
- 9
1832
-
1833
- 10
1834
-
1835
- 11
1836
-
1837
- 12
1838
-
1839
- * * *
1840
-
1841
- [](#for-developers)For developers
1842
- ---------------------------------
1843
-
1844
- If you are using the IDS components, you can use `IressContainer`, `IressRow`, and `IressCol` to create a grid layout. These components are designed to work together to create a responsive grid system.
1845
-
1846
- \[data-radix-scroll-area-viewport\] {
1847
- scrollbar-width: none;
1848
- -ms-overflow-style: none;
1849
- -webkit-overflow-scrolling: touch;
1850
- }
1851
- \[data-radix-scroll-area-viewport\]::-webkit-scrollbar {
1852
- display: none;
1853
- }
1854
- :where(\[data-radix-scroll-area-viewport\]) {
1855
- display: flex;
1856
- flex-direction: column;
1857
- align-items: stretch;
1858
- }
1859
- :where(\[data-radix-scroll-area-content\]) {
1860
- flex-grow: 1;
1861
- }
1862
-
1863
- import { IressContainer, IressRow, IressCol } from '@iress-oss/ids-components';
1864
- <IressContainer\>
1865
- <IressRow\>
1866
- <IressCol span\={8}\>Column 1</IressCol\>
1867
- <IressCol span\={4}\>Column 2</IressCol\>
1868
- </IressRow\>
1869
- </IressContainer\>;
1870
-
1871
- Copy
1872
-
1873
- The base grid size is exported as `GRID_SIZE` from the `@iress-oss/ids-components` package, in case you need to reference it in your own code.
1874
-
1875
- On this page
1876
-
1877
- * [Reference](#reference)
1878
- * [For developers](#for-developers)
1879
-
1880
- ## Content
1881
-
1882
- [](#content)Content
1883
- ===================
1884
-
1885
- [](#microcopy-guidelines)Microcopy Guidelines
1886
- ---------------------------------------------
1887
-
1888
- * Use clear, concise language that matches user mental models
1889
- * Provide helpful error messages with actionable guidance
1890
- * Implement consistent tone of voice across all interface text
1891
- * Use progressive disclosure for complex information
1892
-
1893
- [](#iconography)Iconography
1894
- ---------------------------
1895
-
1896
- * Use icons consistently with established meanings
1897
- * Provide screen reader text for meaningful icons
1898
- * Avoid using icons as the sole means of communication
1899
- * Maintain consistent icon sizing and alignment
1900
-
1901
- On this page
1902
-
1903
- * [Microcopy Guidelines](#microcopy-guidelines)
1904
- * [Iconography](#iconography)
1905
-
1906
- ## User Experience
1907
-
1908
- [](#user-experience)User experience
1909
- ===================================
1910
-
1911
- We use heuristic guidelines to assess the usability and user-centred design quality of all Iress products.
1912
-
1913
- [](#system-feedback)System Feedback
1914
- -----------------------------------
1915
-
1916
- * Always show users where they are, what just happened, and what’s possible next.
1917
- * Provide immediate visual and textual feedback for all actions and states.
1918
- * Ensure feedback is clear, contextual, and proportionate to the importance of the action.
1919
-
1920
- [](#language-and-mental-models)Language and Mental Models
1921
- ---------------------------------------------------------
1922
-
1923
- * Use user-centred language and avoid technical jargon.
1924
- * Follow cultural and industry conventions for colour, iconography, terminology, and layout.
1925
- * Align interaction patterns with real-world analogues wherever feasible.
1926
-
1927
- [](#control-and-forgiveness)Control and Forgiveness
1928
- ---------------------------------------------------
1929
-
1930
- * Make actions reversible and provide undo where errors may occur.
1931
- * Let users easily backtrack, edit inputs, or abandon flows.
1932
- * Provide escape hatches from any process without penalty.
1933
-
1934
- [](#standards-and-consistency)Standards and Consistency
1935
- -------------------------------------------------------
1936
-
1937
- * Use consistent layout, labelling, iconography, and grammar.
1938
- * Reinforce expectations by placing similar elements in predictable positions.
1939
- * Apply colour, spacing, and visual patterns consistently across all screens.
1940
-
1941
- [](#error-prevention-and-recovery)Error Prevention and Recovery
1942
- ---------------------------------------------------------------
1943
-
1944
- * Prevent errors by anticipating misuse and validating early.
1945
- * Phrase error messages with clarity, empathy, and constructive suggestions.
1946
- * Where errors occur, explain why and how they can be resolved.
1947
-
1948
- [](#recognition-over-recall)Recognition Over Recall
1949
- ---------------------------------------------------
1950
-
1951
- * Display necessary information at the point of decision.
1952
- * Use visual grouping, spacing, and affordance to reveal hierarchy.
1953
- * Prioritise visual clarity over novelty.
1954
-
1955
- [](#simplicity-and-minimalism)Simplicity and Minimalism
1956
- -------------------------------------------------------
1957
-
1958
- * Remove unnecessary detail—every word, element, or feature should earn its place.
1959
- * Design for clarity of purpose with visually distinct, semantically meaningful UI components.
1960
- * Use whitespace, clean alignment, and simplified flows to reduce cognitive load.
1961
-
1962
- On this page
1963
-
1964
- * [System Feedback](#system-feedback)
1965
- * [Language and Mental Models](#language-and-mental-models)
1966
- * [Control and Forgiveness](#control-and-forgiveness)
1967
- * [Standards and Consistency](#standards-and-consistency)
1968
- * [Error Prevention and Recovery](#error-prevention-and-recovery)
1969
- * [Recognition Over Recall](#recognition-over-recall)
1970
- * [Simplicity and Minimalism](#simplicity-and-minimalism)
1971
-
1972
- ## Visual Design
1973
-
1974
- [](#visual-design-standards)Visual Design Standards
1975
- ===================================================
1976
-
1977
- [](#typography)Typography
1978
- -------------------------
1979
-
1980
- * Use systematic font sizing with heading scales (H1-H6)
1981
- * Implement consistent line heights and font weights
1982
- * Provide text colour hierarchies (primary, muted, success, warning, danger)
1983
- * Support responsive typography scaling
1984
-
1985
- [](#colour-system)Colour System
1986
- -------------------------------
1987
-
1988
- * Maintain semantic colour meanings:
1989
- * **Primary**: Main call-to-action colour with high contrast
1990
- * **Success**: Positive outcomes and confirmations
1991
- * **Warning**: Caution and important notices
1992
- * **Danger**: Errors and destructive actions
1993
- * **Info**: Neutral information and guidance
1994
- * **Positive/Negative**: Financial context (buy/sell actions)
1995
- * Ensure all colour combinations meet accessibility contrast requirements
1996
- * Provide consistent hover and active state colours
1997
-
1998
- [](#spacing-and-layout)Spacing and Layout
1999
- -----------------------------------------
2000
-
2001
- * Use systematic spacing scale (xs, sm, md, lg, xl)
2002
- * Apply consistent gutter systems for layout components
2003
- * Implement responsive breakpoints for adaptive layouts
2004
- * Maintain proper margin and padding relationships
2005
-
2006
- [](#interactive-states)Interactive States
2007
- -----------------------------------------
2008
-
2009
- * Provide clear hover, focus, active, and disabled states
2010
- * Use consistent transition timing and easing
2011
- * Implement proper focus indicators for keyboard navigation
2012
- * Show loading states for asynchronous operations
2013
-
2014
- On this page
2015
-
2016
- * [Typography](#typography)
2017
- * [Colour System](#colour-system)
2018
- * [Spacing and Layout](#spacing-and-layout)
2019
- * [Interactive States](#interactive-states)
2020
-
2021
- ## Z-index (stacking)
2022
-
2023
- [](#z-index-stacking)Z-index (stacking)
2024
- =======================================
2025
-
2026
- The z-index determines the stacking order of elements. Elements with a higher z-index always sit in front of elements with a lower z-index. Each index has been mapped to the appropriate elevation(s).
2027
-
2028
- [](#reference)Reference
2029
- -----------------------
2030
-
2031
- | Name | Usage | Value |
2032
- | --- | --- | --- |
2033
- | DEFAULT | The default z-index used for most elements. Can be combined with raised and floating elevations. | 0 |
2034
- | MODAL | Used for IressModal. Can be combined with floating elevation. | 400 |
2035
- | NAVBAR | Used for navbars. Can be combined with overflow elevation. | 100 |
2036
- | POPOVER | Used for IressPopover. Can be combined with floating elevation. | 200 |
2037
- | SLIDEOUT | Used for IressSlideout. Can be combined with floating elevation. | 300 |
2038
- | TOAST | Used for IressToast. Can be combined with floating elevation. | 500 |
2039
- | TOOLTIP | Used for IressTooltip. Can be combined with floating elevation. | 600 |
2040
-
2041
- * * *
2042
-
2043
- [](#for-developers)For developers
2044
- ---------------------------------
2045
-
2046
- If you are using the IDS components, the z-indexes have already been mapped out to their respective components based on the usage above. They are hardcoded into the components, so you don't need to worry about them.
2047
-
2048
- The mapping is exported as `Z_INDEX` from the `@iress-oss/ids-components` package, in case you need to reference it in your own code.
2049
-
2050
- On this page
2051
-
2052
- * [Reference](#reference)
2053
- * [For developers](#for-developers)
2054
-