@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,2007 +0,0 @@
1
- [](#field)Field
2
- ===============
3
-
4
- Overview
5
- --------
6
-
7
- The field component is used to place label, hint and error information around form controls.
8
-
9
- * * *
10
-
11
- Updated
12
-
13
- **Recently updated**
14
-
15
- This component has been recently updated with new props. The props have been marked as beta. Please tell us if there are any issues.
16
-
17
- First name
18
-
19
- Hide code
20
-
21
- \[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; }
22
-
23
- <IressField label\="First name"\>
24
- <IressInput
25
- id\="name"
26
- name\="input1"
27
- required
28
- type\="text"
29
- />
30
- </IressField\>
31
-
32
- Copy
33
-
34
- [](#props)Props
35
- ---------------
36
-
37
- | Name | Description | Default | Control |
38
- | --- | --- | --- | --- |
39
- | bg |
40
- **`bg`** sets the background color of an element using the `background-color` css property using the color tokens in the design system.
41
-
42
- We recommend using the following token values for best background contrast:
43
-
44
- * `colour.primary.fill` for primary backgrounds that need to stand out
45
- * `colour.primary.surface` for primary backgrounds that need to be less prominent
46
- * `colour.neutral.10` for the base background color, normally white in light mode or shade of grey in dark mode
47
- * `colour.neutral.20` for a slightly darker background color, used in neutral state components
48
- * `colour.system.danger.fill` for error backgrounds that need to stand out
49
- * `colour.system.danger.surface` for error backgrounds that need to be less prominent
50
- * `colour.system.success.fill` for success backgrounds that need to stand out
51
- * `colour.system.success.surface` for success backgrounds that need to be less prominent
52
- * `colour.system.warning.fill` for warning backgrounds that need to stand out
53
- * `colour.system.warning.surface` for warning backgrounds that need to be less prominent
54
- * `colour.system.info.fill` for info backgrounds that need to stand out
55
- * `colour.system.info.surface` for info backgrounds that need to be less prominent
56
-
57
- ResponsiveProp<ColorToken> | undefined
58
-
59
- | \- | Set object |
60
- | borderRadius |
61
-
62
- The **`border-radius`** CSS property rounds the corners of an element's outer border edge using the radius tokens in the design system.
63
-
64
- | Chrome | Firefox | Safari | Edge | IE |
65
- | --- | --- | --- | --- | --- |
66
- | **4** | **4** | **5** | **12** | **9** |
67
- | 1 _\-x-_ | | 3 _\-x-_ | | |
68
-
69
- ResponsiveProp<RadiusToken> | undefined
70
-
71
- | \- | Set object |
72
- | children |
73
-
74
- \-
75
-
76
- | \- | \- |
77
- | color |
78
-
79
- The **`color`** CSS property sets the foreground color value of an element's text and text decorations using the colour tokens from the design system. It also sets the `currentcolor` value. `currentcolor` may be used as an indirect value on _other_ properties and is the default for other color properties, such as `border-color`.
80
-
81
- We recommend using the following token values for best color contrast:
82
-
83
- * `colour.primary.onFill` used on top of `colour.primary.fill` for primary text that needs to stand out
84
- * `colour.primary.text` used on top of `colour.primary.surface` or `colour.neutral.10` for primary text that needs to be less prominent
85
- * `colour.neutral.70` used on top of `colour.neutral.10` or `colour.neutral.20` for muted text
86
- * `colour.neutral.80` used on top of `colour.neutral.10` or `colour.neutral.20` for standard text
87
- * `colour.system.danger.onFill` used on top of `colour.system.danger.fill` for error text that needs to stand out
88
- * `colour.system.danger.text` used on top of `colour.system.danger.surface` for error text that needs to be less prominent
89
- * `colour.system.success.onFill` used on top of `colour.system.success.fill` for success text that needs to stand out
90
- * `colour.system.success.text` used on top of `colour.system.success.surface` for success text that needs to be less prominent
91
- * `colour.system.warning.onFill` used on top of `colour.system.warning.fill` for warning text that needs to stand out
92
- * `colour.system.warning.text` used on top of `colour.system.warning.surface` for warning text that needs to be less prominent
93
- * `colour.system.info.onFill` used on top of `colour.system.info.fill` for informative text that needs to stand out
94
- * `colour.system.info.text` used on top of `colour.system.info.surface` for informative text that needs to be less prominent
95
-
96
- ResponsiveProp<ColorToken> | undefined
97
-
98
- | \- | Set object |
99
- | error |
100
-
101
- Validation error to be displayed above the field.
102
-
103
- ReactNode
104
-
105
-
106
-
107
- | \- | Set object |
108
- | errorMessages |
109
-
110
- Validation errors to be displayed above the field, an array of validation messages to be displayed in `IressValidationSummary`.
111
-
112
- ValidationMessageObj\[\] | undefined
113
-
114
- | \- | Set object |
115
- | focusable |
116
-
117
- The `focusable` prop is used to apply the focus elevation when focused. It can be set to `true` to apply focus styles on focus, or `'within'` to apply focus styles when the element or any of its children are focused.
118
-
119
- "true""within"undefined
120
-
121
-
122
-
123
- | \- | Set object |
124
- | hiddenLabel |
125
-
126
- Visually hides the label text, but still available to screen readers.
127
-
128
- booleanundefined
129
-
130
-
131
-
132
- | \- | Set object |
133
- | hide |
134
-
135
- Set **`hide`** to hide an element completely using `display: none`. It can also be set to an object of breakpoints to hide the element at specific breakpoints.
136
-
137
- Hide on all breakpoints: `hide: true` Hide on specific breakpoints: `hide: { xs: false, sm: true, md: false, lg: true, xl: false, xxl: true }`
138
-
139
- Notes:
140
-
141
- * If you need to hide an element but allow it to be visible to screen readers, use the `srOnly` prop instead.
142
- * Consider if you can conditionally render the element instead of hiding it.
143
-
144
- ResponsiveProp<boolean> | undefined
145
-
146
- | \- | Set object |
147
- | hint |
148
-
149
- Text to be displayed as supporting field description.
150
-
151
- ReactNode
152
-
153
-
154
-
155
- | \- | Set object |
156
- | horizontal |
157
-
158
- Displays the label and input field inline instead of stacked vertically.
159
-
160
- booleanundefined
161
-
162
-
163
-
164
- | \- | Set object |
165
- | htmlFor |
166
-
167
- Used to connect it to the input element, it should be the input's id. If provided, the label will be rendered as a `<label>` element, otherwise it will be rendered as a `<strong>` element.
168
-
169
- [Learn more](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/for)
170
-
171
- stringundefined
172
-
173
-
174
-
175
- | \- | Set object |
176
- | label\* |
177
-
178
- Text to be displayed in the label.
179
-
180
- ReactNode
181
-
182
-
183
-
184
- | \- |
185
-
186
- "First name"
187
-
188
- |
189
- | labelWidth |
190
-
191
- Controls the width of the label container when in horizontal mode. Can be any valid CSS width value (e.g., '200px', '20%', 'auto'). Only applies when `horizontal` is true.
192
-
193
- stringundefined
194
-
195
-
196
-
197
- | \- | Set object |
198
- | layerStyle |
199
-
200
- Elevate a layer by using a **`layerStyle`**. These are connected to the elevation tokens in the design system. They can be combined to create hierarchy and structure.
201
-
202
- * `elevation.raised`: Raised elevations sit slightly higher than other content. 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.
203
- * `elevation.floating`: 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.
204
- * `elevation.overflow`: 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.
205
-
206
- ResponsiveProp<"elevation.raised" | "elevation.floating" | "elevation.overflow" | "elevation.focus" | "elevation.focusCompact"> | undefined
207
-
208
- | \- | Set object |
209
- | m |
210
-
211
- The **`m`** property is short for `margin`, and sets the margin area on all four sides of an element.
212
-
213
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
214
-
215
- | Chrome | Firefox | Safari | Edge | IE |
216
- | --- | --- | --- | --- | --- |
217
- | **1** | **1** | **1** | **12** | **3** |
218
-
219
- ResponsiveProp<SpacingToken | "auto"> | undefined
220
-
221
- | \- | Set object |
222
- | maxWidth |
223
-
224
- The **`max-width`** CSS property sets the maximum width of an element. It prevents the used value of the `width` property from becoming larger than the value specified by `max-width`.
225
-
226
- | Chrome | Firefox | Safari | Edge | IE |
227
- | --- | --- | --- | --- | --- |
228
- | **1** | **1** | **1** | **12** | **7** |
229
-
230
- ResponsiveProp<"auto" | SizeToken | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | ... 8 more ... | "11/12"> | undefined
231
-
232
- | \- | Set object |
233
- | mb |
234
-
235
- The **`mb`** property is short for `margin-bottom` and sets the margin area on the bottom side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
236
-
237
- It uses the spacing tokens in the design system.
238
-
239
- | Chrome | Firefox | Safari | Edge | IE |
240
- | --- | --- | --- | --- | --- |
241
- | **1** | **1** | **1** | **12** | **3** |
242
-
243
- ResponsiveProp<SpacingToken | "auto"> | undefined
244
-
245
- | \- | Set object |
246
- | ml |
247
-
248
- The **`ml`** property is short for `margin-left` and sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
249
-
250
- It uses the spacing tokens in the design system.
251
-
252
- | Chrome | Firefox | Safari | Edge | IE |
253
- | --- | --- | --- | --- | --- |
254
- | **1** | **1** | **1** | **12** | **3** |
255
-
256
- ResponsiveProp<SpacingToken | "auto"> | undefined
257
-
258
- | \- | Set object |
259
- | mr |
260
-
261
- The **`mr`** property is short for `margin-right` and sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
262
-
263
- It uses the spacing tokens in the design system.
264
-
265
- | Chrome | Firefox | Safari | Edge | IE |
266
- | --- | --- | --- | --- | --- |
267
- | **1** | **1** | **1** | **12** | **3** |
268
-
269
- ResponsiveProp<SpacingToken | "auto"> | undefined
270
-
271
- | \- | Set object |
272
- | mt |
273
-
274
- The **`mt`** property is short for `margin-top` and sets the margin area on the top side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
275
-
276
- It uses the spacing tokens in the design system.
277
-
278
- | Chrome | Firefox | Safari | Edge | IE |
279
- | --- | --- | --- | --- | --- |
280
- | **1** | **1** | **1** | **12** | **3** |
281
-
282
- ResponsiveProp<SpacingToken | "auto"> | undefined
283
-
284
- | \- | Set object |
285
- | mx |
286
-
287
- The **`mx`** property is short for `margin-inline`. It is a shorthand property that defines both the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
288
-
289
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
290
-
291
- | Chrome | Firefox | Safari | Edge | IE |
292
- | --- | --- | --- | --- | --- |
293
- | **1** | **1** | **1** | **12** | **3** |
294
-
295
- ResponsiveProp<SpacingToken | "auto"> | undefined
296
-
297
- | \- | Set object |
298
- | my |
299
-
300
- The **`my`** property is short for `margin-block`. It defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
301
-
302
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
303
-
304
- | Chrome | Firefox | Safari | Edge | IE |
305
- | --- | --- | --- | --- | --- |
306
- | **1** | **1** | **1** | **12** | **3** |
307
-
308
- ResponsiveProp<SpacingToken | "auto"> | undefined
309
-
310
- | \- | Set object |
311
- | noGutter |
312
-
313
- The **`noGutter`** property is used to remove the bottom margin from the last child of a component. This is useful when you want to avoid extra spacing at the end of a layout.
314
-
315
- booleanundefined
316
-
317
-
318
-
319
- | \- | Set object |
320
- | p |
321
-
322
- The **`p`** property is short for `padding`, and sets the padding area on all four sides of an element at once.
323
-
324
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
325
-
326
- | Chrome | Firefox | Safari | Edge | IE |
327
- | --- | --- | --- | --- | --- |
328
- | **1** | **1** | **1** | **12** | **3** |
329
-
330
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
331
-
332
- | \- | Set object |
333
- | pb |
334
-
335
- The **`pb`** property is short for `padding-bottom` and sets the padding area on the bottom side of an element.
336
-
337
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
338
-
339
- | Chrome | Firefox | Safari | Edge | IE |
340
- | --- | --- | --- | --- | --- |
341
- | **1** | **1** | **1** | **12** | **3** |
342
-
343
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
344
-
345
- | \- | Set object |
346
- | pl |
347
-
348
- The **`pl`** property is short for `padding-left` and sets the padding area on the left side of an element.
349
-
350
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
351
-
352
- | Chrome | Firefox | Safari | Edge | IE |
353
- | --- | --- | --- | --- | --- |
354
- | **1** | **1** | **1** | **12** | **3** |
355
-
356
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
357
-
358
- | \- | Set object |
359
- | pr |
360
-
361
- The **`pr`** property is short for `padding-right` and sets the padding area on the right side of an element.
362
-
363
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
364
-
365
- | Chrome | Firefox | Safari | Edge | IE |
366
- | --- | --- | --- | --- | --- |
367
- | **1** | **1** | **1** | **12** | **3** |
368
-
369
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
370
-
371
- | \- | Set object |
372
- | pt |
373
-
374
- The **`pt`** property is short for `padding-top` and sets the padding area on the top side of an element.
375
-
376
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
377
-
378
- | Chrome | Firefox | Safari | Edge | IE |
379
- | --- | --- | --- | --- | --- |
380
- | **1** | **1** | **1** | **12** | **3** |
381
-
382
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
383
-
384
- | \- | Set object |
385
- | px |
386
-
387
- The **`px`** property is short for `padding-inline`. It is a shorthand property that defines both the logical inline start and end paddings of an element, which maps to physical paddings depending on the element's writing mode, directionality, and text orientation.
388
-
389
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
390
-
391
- | Chrome | Firefox | Safari | Edge | IE |
392
- | --- | --- | --- | --- | --- |
393
- | **1** | **1** | **1** | **12** | **3** |
394
-
395
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
396
-
397
- | \- | Set object |
398
- | py |
399
-
400
- The **`py`** property is short for `padding-block`. It defines the logical block start and end paddings of an element, which maps to physical paddings depending on the element's writing mode, directionality, and text orientation.
401
-
402
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
403
-
404
- | Chrome | Firefox | Safari | Edge | IE |
405
- | --- | --- | --- | --- | --- |
406
- | **1** | **1** | **1** | **12** | **3** |
407
-
408
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
409
-
410
- | \- | Set object |
411
- | readOnly |
412
-
413
- Renders the group in a read-only state (no asterisk symbol).
414
-
415
- booleanundefined
416
-
417
-
418
-
419
- | \- | Set object |
420
- | removeErrorMargin |
421
-
422
- Removes the reserved space for error messages, allowing fields to stack with narrower gaps. When true, no margin is reserved for potential error messages.
423
-
424
- booleanundefined
425
-
426
-
427
-
428
- | \- | Set object |
429
- | required |
430
-
431
- When set to true, the 'required asterisk (\*)' is displayed next to the label text.
432
-
433
- booleanundefined
434
-
435
-
436
-
437
- | \- | Set object |
438
- | rowGap |
439
-
440
- The **`row-gap`** CSS property sets the size of the gap (gutter) between an element's rows.
441
-
442
- Note: It only has an effect when used as a direct child of a layout component, such as IressRow, IressStack or IressInline.
443
-
444
- | Chrome | Firefox | Safari | Edge | IE |
445
- | --- | --- | --- | --- | --- |
446
- | **47** | **52** | **10.1** | **16** | No |
447
-
448
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
449
-
450
- | \- | Set object |
451
- | srOnly |
452
-
453
- Set **`srOnly`** to hide an element visually but still make it accessible to screen readers. It can also be set to an object of breakpoints to hide the element at specific breakpoints.
454
-
455
- Hide on all breakpoints: `srOnly: true` Hide on specific breakpoints: `srOnly: { xs: false, sm: true, md: false, lg: true, xl: false, xxl: true }`
456
-
457
- ResponsiveProp<boolean> | undefined
458
-
459
- | \- | Set object |
460
- | stretch |
461
-
462
- The **`stretch`** property is used to stretch an element to fill the available space in its parent container. It sets the `height` property to `100%` and `alignSelf` to `stretch`, allowing the element to expand and contract based on the size of its parent.
463
-
464
- booleanundefined
465
-
466
-
467
-
468
- | \- | Set object |
469
- | supplementary |
470
-
471
- Supplementary content to be displayed below the field. Is only shown when the field is not in an error state.
472
-
473
- ReactNode
474
-
475
-
476
-
477
- | \- | Set object |
478
- | textAlign |
479
-
480
- The **`text-align`** CSS property sets the horizontal alignment of the inline-level content inside a block element or table-cell box.
481
-
482
- | Chrome | Firefox | Safari | Edge | IE |
483
- | --- | --- | --- | --- | --- |
484
- | **1** | **1** | **1** | **12** | **3** |
485
-
486
- ResponsiveProp<"center" | "left" | "right" | "inherit" | "justify"> | undefined
487
-
488
- | \- | Set object |
489
- | textStyle |
490
-
491
- Select the typography to be used using the **`textStyle`** prop. These are connected to the typography tokens in the design system.'
492
-
493
- * `typography.body.sm` - Use for small components such as badges and disclaimers, as well as compact variations of tables and lists.
494
- * `typography.body.md` - The most commonly used body text size, used for most text content in the product and the default state of all components in the design system.
495
- * `typography.body.lg` - Use for tag lines, subtitles, and other large text content in the product.
496
- * `typography.heading.1` - Use for the main page title to establish a clear hierarchy. There is typically only one H1 per screen, emphasising the primary purpose or context of the page.
497
- * `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.
498
- * `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.
499
- * `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.
500
- * `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.
501
- * `typography.code` - Used to display code snippets in the product, such as in the API documentation.
502
-
503
- ResponsiveProp<"typography.heading.1" | "typography.heading.2" | "typography.heading.3" | "typography.heading.4" | "typography.heading.5" | "typography.body.sm" | "typography.body.sm.regular" | ... 10 more ... | "typography.code"> | undefined
504
-
505
- | \- | Set object |
506
- | width |
507
-
508
- The **`width`** CSS property sets an element's width. By default, it sets the width of the content area, but if `box-sizing` is set to `border-box`, it sets the width of the border area.
509
-
510
- This prop only allows widths available throughout the component library. To use a custom width, you need to use the `style` prop, or add a custom class to the element and use CSS.
511
-
512
- | Chrome | Firefox | Safari | Edge | IE |
513
- | --- | --- | --- | --- | --- |
514
- | **1** | **1** | **1** | **12** | **4** |
515
-
516
- ResponsiveProp<"auto" | SizeToken | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | ... 8 more ... | "11/12"> | undefined
517
-
518
- | \- | Set object |
519
- | Show Storybook only itemsStorybook only | Show Storybook only items |
520
-
521
- [](#examples)Examples
522
- ---------------------
523
-
524
- ### [](#label)Label
525
-
526
- The `label` prop is required to describe the field.
527
-
528
- Find your address
529
-
530
- Hide code
531
-
532
- \[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; }
533
-
534
- <IressField label\={<span\><IressIcon name\="home" />{' '}Find your address</span\>}\>
535
- <IressInput
536
- id\="name"
537
- name\="input1"
538
- required
539
- type\="text"
540
- />
541
- </IressField\>
542
-
543
- Copy
544
-
545
- ### [](#hint)Hint
546
-
547
- Extra information on the field can be provided using the `hint` prop. It can accept any React node, so you can add your own custom mark up (eg. external links) to the hint text.
548
-
549
- Email address
550
-
551
- For us to be able to contact you in the future
552
-
553
- Hide code
554
-
555
- \[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; }
556
-
557
- <IressField
558
- hint\="For us to be able to contact you in the future"
559
- label\="Email address"
560
- \>
561
- <IressInput
562
- id\="email"
563
- name\="email"
564
- required
565
- type\="email"
566
- />
567
- </IressField\>
568
-
569
- Copy
570
-
571
- ### [](#error-message)Error message
572
-
573
- To display error messages associated with the field, you can use the `errorMessages` prop. This prop accepts an array of `ValidationMessageObj`, and will display each error message in a separate paragraph.
574
-
575
- **Note:** `IressField` requires validation to be handled by the consumer. If you want out-of-the-box validation, use [`IressFormField` alongside `IressForm` instead](./?path=/docs/components-form--docs#fields).
576
-
577
- Error message
578
-
579
- * This field is required
580
-
581
-
582
- Hide code
583
-
584
- \[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; }
585
-
586
- <IressField
587
- errorMessages\={\[
588
- {
589
- message: 'This field is required'
590
- }
591
- \]}
592
- label\="Error message"
593
- \>
594
- <IressInput
595
- append\={<IressButton data-testid\="show-password-icon" mode\="tertiary" prepend\={<IressIcon name\="eye" screenreaderText\="Show"/>}/>}
596
- id\="name"
597
- name\="name"
598
- required
599
- />
600
- </IressField\>
601
-
602
- Copy
603
-
604
- ### [](#custom-error)Custom error
605
-
606
- For more control over the formatting of the error, you can use the `error` prop. This prop accepts any React node, so you can add your own custom mark up (eg. icons) to the error message.
607
-
608
- **Note:** `IressField` requires validation to be handled by the consumer. If you want out-of-the-box validation, use [`IressFormField` alongside `IressForm` instead](./?path=/docs/components-form--docs#fields).
609
-
610
- Custom error
611
-
612
- * This is a custom error message
613
-
614
-
615
- Hide code
616
-
617
- \[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; }
618
-
619
- <IressField
620
- error\={<IressText color\="colour.system.danger.text" element\="small"\>This is a custom error message</IressText\>}
621
- label\="Custom error"
622
- \>
623
- <IressInput
624
- id\="name"
625
- name\="name"
626
- required
627
- />
628
- </IressField\>
629
-
630
- Copy
631
-
632
- ### [](#hidden-label)Hidden label
633
-
634
- There may be certain situations where you might want to (accessibly) hide the field label (in a search field for instance). This can be done by setting the `hiddenLabel` prop.
635
-
636
- This label is hidden
637
-
638
- This hint text is hidden
639
-
640
- Hide code
641
-
642
- \[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; }
643
-
644
- <IressField
645
- hiddenLabel
646
- hint\="This hint text is hidden"
647
- label\="This label is hidden"
648
- \>
649
- <IressInput
650
- id\="name"
651
- name\="input1"
652
- required
653
- type\="text"
654
- />
655
- </IressField\>
656
-
657
- Copy
658
-
659
- This label is hidden
660
-
661
- This hint text is hidden
662
-
663
- * Even fields with hidden labels will show their validation message
664
-
665
-
666
- Hide code
667
-
668
- \[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; }
669
-
670
- <IressField
671
- error\={<IressText color\="colour.system.danger.text" element\="small"\>Even fields with hidden labels will show their validation message</IressText\>}
672
- hiddenLabel
673
- hint\="This hint text is hidden"
674
- label\="This label is hidden"
675
- \>
676
- <IressInput
677
- id\="name"
678
- name\="input1"
679
- required
680
- type\="text"
681
- />
682
- </IressField\>
683
-
684
- Copy
685
-
686
- ### [](#required)Required
687
-
688
- Fields marked as `required` will have an asterisk prepended to the label.
689
-
690
- \*RequiredThis field is required
691
-
692
- Hide code
693
-
694
- \[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; }
695
-
696
- <IressField
697
- label\="This field is required"
698
- required
699
- \>
700
- <IressInput
701
- id\="name"
702
- name\="input1"
703
- required
704
- type\="text"
705
- />
706
- </IressField\>
707
-
708
- Copy
709
-
710
- ### [](#readonly-data)Readonly data
711
-
712
- Fields can be used to display read-only data. This is useful when you want to display data that the user can't change, but you still want to display it in a form-like layout.
713
-
714
- You can also pass `readOnly` prop to remove the asterisk symbol (\*) even when the field is `required`.
715
-
716
- First name
717
-
718
- This field is readonly
719
-
720
- Luke Skywalker
721
-
722
- Hide code
723
-
724
- \[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; }
725
-
726
- <IressField
727
- hint\="This field is readonly"
728
- label\="First name"
729
- readOnly
730
- required
731
- \>
732
- <IressReadonly
733
- id\="name"
734
- name\="input1"
735
- required
736
- type\="text"
737
- value\="Luke Skywalker"
738
- />
739
- </IressField\>
740
-
741
- Copy
742
-
743
- ### [](#supplementary)Supplementary
744
-
745
- The `supplementary` prop can be used to display additional information about the field.
746
-
747
- This is used to display some metadata based on the value of the field in context. Examples include:
748
-
749
- * A trading share field that displays the current price of the share.
750
- * A commission percentage field that displays the expected commission based on the value of multiple fields.
751
-
752
- #### [](#notes)Notes
753
-
754
- * The `supplementary` prop is not a replacement for the `hint` prop. The `hint` prop should be used to provide additional information about the field itself, while the `supplementary` prop should be used to display additional information about the value of the field.
755
- * The `supplementary` prop will only be displayed if the field is not in an error state. If the field is in an error state, the `error` and `errorMessages` prop will be displayed instead.
756
-
757
- Show error
758
-
759
- First name
760
-
761
- I only show if there is no error
762
-
763
- Hide code
764
-
765
- \[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; }
766
-
767
- <IressStack gap\="spacing.500"\>
768
- <IressToggle
769
- onChange\={(checked) \=> setError(checked ? "This field is required" : void 0)}
770
- \>
771
- Show error </IressToggle\>
772
- <IressField
773
- label\="First name"
774
- supplementary\="I only show if there is no error"
775
- \>
776
- <IressInput
777
- id\="name"
778
- name\="input1"
779
- required
780
- type\="text"
781
- />
782
- </IressField\>
783
- </IressStack\>
784
-
785
- Copy
786
-
787
- ### [](#horizontal-layout)Horizontal layout
788
-
789
- Fields can be displayed with a horizontal layout where the label and input are on the same line, which can save vertical space in forms. Use the `horizontal` prop to enable this layout. In horizontal mode, hint text is displayed as a tooltip when hovering over the info icon, rather than being shown below the label as in the default vertical layout.
790
-
791
- #### [](#avoid-using-horizontal-mode-for-majority-of-cases)Avoid using horizontal mode for majority of cases
792
-
793
- Vertical layout is preferred, it is more accessible in more scenarios by ensuring a consistent layout on different devices and keep the label closer to the input ensuring its relationship and making forms easier to scan. There are studies showing [vertical layouts can be faster to fill out](https://content-and-marketing.com/blog/10-mobile-form-design-best-practices-2024). Here are a few cases where you may use a horizontal layout:
794
-
795
- * On dashboards where space is limited, it may be necessary to display fields in a horizontal layout to make use of the space and give prominence to dashboard visuals.
796
- * Collaborative visual tools that require real-time editing and previews, such as Styler, Miro, Figma, where fields are less prominent to give prominence to the intended output.
797
-
798
- Email address
799
-
800
- We will not share your email with third parties (Supplementary text)
801
-
802
- Hide code
803
-
804
- \[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; }
805
-
806
- <IressField
807
- hint\="Enter your email address for contact"
808
- horizontal
809
- label\="Email address"
810
- labelWidth\="250px"
811
- supplementary\="We will not share your email with third parties (Supplementary text)"
812
- \>
813
- <IressInput
814
- id\="email"
815
- name\="email"
816
- placeholder\="john.doe@example.com"
817
- required
818
- type\="email"
819
- />
820
- </IressField\>
821
-
822
- Copy
823
-
824
- #### [](#horizontal-with-error)Horizontal with error
825
-
826
- Error messages in horizontal layout are displayed below both the label and input field, spanning the full width.
827
-
828
- Email address
829
-
830
- * Please enter a valid email address
831
-
832
-
833
- Hide code
834
-
835
- \[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; }
836
-
837
- <IressField
838
- errorMessages\={\[
839
- {
840
- message: 'Please enter a valid email address'
841
- }
842
- \]}
843
- hint\="Enter your email address for contact"
844
- horizontal
845
- label\="Email address"
846
- labelWidth\="250px"
847
- supplementary\="We will not share your email with third parties (Supplementary text)"
848
- \>
849
- <IressInput
850
- id\="email"
851
- name\="email"
852
- placeholder\="john.doe@example.com"
853
- required
854
- type\="email"
855
- />
856
- </IressField\>
857
-
858
- Copy
859
-
860
- #### [](#horizontal-label-width)Horizontal label width
861
-
862
- In horizontal layout, you can control the width of the label using the `labelWidth` prop. This accepts CSS width values like pixels, percentages, or `auto`.
863
-
864
- labelWidth: 100px
865
-
866
- labelWidth: 200px
867
-
868
- labelWidth: 25%
869
-
870
- labelWidth: auto
871
-
872
- Default (no labelWidth)
873
-
874
- Hide code
875
-
876
- \[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; }
877
-
878
- <IressStack gap\="spacing.500"\>
879
- <IressField
880
- horizontal
881
- label\="labelWidth: 100px"
882
- labelWidth\="100px"
883
- \>
884
- <IressInput
885
- id\="name"
886
- name\="input1"
887
- placeholder\="Label width: 100px"
888
- required
889
- type\="text"
890
- />
891
- </IressField\>
892
- <IressField
893
- horizontal
894
- label\="labelWidth: 200px"
895
- labelWidth\="200px"
896
- \>
897
- <IressInput
898
- id\="name"
899
- name\="input1"
900
- placeholder\="Label width: 200px"
901
- required
902
- type\="text"
903
- />
904
- </IressField\>
905
- <IressField
906
- horizontal
907
- label\="labelWidth: 25%"
908
- labelWidth\="25%"
909
- \>
910
- <IressInput
911
- id\="name"
912
- name\="input1"
913
- placeholder\="Label width: 25%"
914
- required
915
- type\="text"
916
- />
917
- </IressField\>
918
- <IressField
919
- horizontal
920
- label\="labelWidth: auto"
921
- labelWidth\="auto"
922
- \>
923
- <IressInput
924
- id\="name"
925
- name\="input1"
926
- placeholder\="Label width: auto"
927
- required
928
- type\="text"
929
- />
930
- </IressField\>
931
- <IressField
932
- horizontal
933
- label\="Default (no labelWidth)"
934
- \>
935
- <IressInput
936
- id\="name"
937
- name\="input1"
938
- placeholder\="Default horizontal layout"
939
- required
940
- type\="text"
941
- />
942
- </IressField\>
943
- </IressStack\>
944
-
945
- Copy
946
-
947
- ### [](#remove-error-margin)Remove error margin
948
-
949
- By default, fields reserve space for error messages to maintain consistent spacing. Use the `removeErrorMargin` prop to remove this reserved space, creating tighter field spacing when stacking multiple fields.
950
-
951
- This is particularly useful in dense forms or when you want to minimize vertical space usage.
952
-
953
- **Note:** When `removeErrorMargin` is enabled, subsequent fields will be pushed down when error or supplementary messages appear, as no space is reserved for these messages. You can use the `IressStack` component to control field gaps and spacing as needed.
954
-
955
- Remove error margin (tighter field spacing)
956
-
957
- Show error message
958
-
959
- ### Vertical Label Layout
960
-
961
- First Name
962
-
963
- Last Name
964
-
965
- This is always-displayed supplementary text
966
-
967
- Email Address
968
-
969
- ### Horizontal Label Layout
970
-
971
- First Name
972
-
973
- Last Name
974
-
975
- This is always-displayed supplementary text
976
-
977
- Email Address
978
-
979
- Hide code
980
-
981
- \[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; }
982
-
983
- <IressStack gap\="spacing.500"\>
984
- <IressInline gap\="spacing.400"\>
985
- <IressToggle
986
- onChange\={(checked) \=> setRemoveErrorMargin(checked)}
987
- \>
988
- Remove error margin (tighter field spacing) </IressToggle\>
989
- <IressToggle
990
- onChange\={(checked) \=> setShowError(checked)}
991
- \>
992
- Show error message </IressToggle\>
993
- </IressInline\>
994
- <IressRow gutter\="spacing.600"\>
995
- <IressCol span\="6"\>
996
- <IressStack gap\="spacing.200"\>
997
- <IressText
998
- element\="h3"
999
- textStyle\="typography.body.lg.strong"
1000
- \>
1001
- Vertical Label Layout </IressText\>
1002
- <IressStack gap\="spacing.000"\>
1003
- <IressField
1004
- label\="First Name"
1005
- \>
1006
- <IressInput
1007
- id\="name"
1008
- name\="input1"
1009
- placeholder\="Enter first name"
1010
- required
1011
- type\="text"
1012
- />
1013
- </IressField\>
1014
- <IressField
1015
- label\="Last Name"
1016
- supplementary\="This is always-displayed supplementary text"
1017
- \>
1018
- <IressInput
1019
- id\="name"
1020
- name\="input1"
1021
- placeholder\="Enter last name"
1022
- required
1023
- type\="text"
1024
- />
1025
- </IressField\>
1026
- <IressField
1027
- label\="Email Address"
1028
- \>
1029
- <IressInput
1030
- id\="name"
1031
- name\="input1"
1032
- placeholder\="Enter email"
1033
- required
1034
- type\="email"
1035
- />
1036
- </IressField\>
1037
- </IressStack\>
1038
- </IressStack\>
1039
- </IressCol\>
1040
- <IressCol span\="6"\>
1041
- <IressStack gap\="spacing.200"\>
1042
- <IressText
1043
- element\="h3"
1044
- textStyle\="typography.body.lg.strong"
1045
- \>
1046
- Horizontal Label Layout </IressText\>
1047
- <IressStack gap\="spacing.000"\>
1048
- <IressField
1049
- horizontal
1050
- label\="First Name"
1051
- labelWidth\="120px"
1052
- \>
1053
- <IressInput
1054
- id\="name"
1055
- name\="input1"
1056
- placeholder\="Enter first name"
1057
- required
1058
- type\="text"
1059
- />
1060
- </IressField\>
1061
- <IressField
1062
- horizontal
1063
- label\="Last Name"
1064
- labelWidth\="120px"
1065
- supplementary\="This is always-displayed supplementary text"
1066
- \>
1067
- <IressInput
1068
- id\="name"
1069
- name\="input1"
1070
- placeholder\="Enter last name"
1071
- required
1072
- type\="text"
1073
- />
1074
- </IressField\>
1075
- <IressField
1076
- horizontal
1077
- label\="Email Address"
1078
- labelWidth\="120px"
1079
- \>
1080
- <IressInput
1081
- id\="name"
1082
- name\="input1"
1083
- placeholder\="Enter email"
1084
- required
1085
- type\="email"
1086
- />
1087
- </IressField\>
1088
- </IressStack\>
1089
- </IressStack\>
1090
- </IressCol\>
1091
- </IressRow\>
1092
- </IressStack\>
1093
-
1094
- Copy
1095
-
1096
- [](#iressfieldgroup)`IressFieldGroup`
1097
- -------------------------------------
1098
-
1099
- The `IressFieldGroup` component is used to group multiple `Field` components together. This is useful when you have multiple fields that are related to each other, and you want to display them together.
1100
-
1101
- Under the hood it uses a `fieldset` and `legend` element to group the fields together, improving the semantics of your form if you use multiple inputs (eg. in the case of a checkbox group) and making it more accessible.
1102
-
1103
- Full name
1104
-
1105
- Title
1106
-
1107
- \*RequiredFirst name
1108
-
1109
- \*RequiredLast name
1110
-
1111
- Hide code
1112
-
1113
- \[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; }
1114
-
1115
- <IressFieldGroup label\="Full name"\>
1116
- <IressField
1117
- htmlFor\="title"
1118
- label\="Title"
1119
- \>
1120
- <IressInput
1121
- id\="title"
1122
- name\="title"
1123
- type\="text"
1124
- width\="2"
1125
- />
1126
- </IressField\>
1127
- <IressField
1128
- htmlFor\="firstName"
1129
- label\="First name"
1130
- required
1131
- \>
1132
- <IressInput
1133
- id\="firstName"
1134
- name\="firstName"
1135
- required
1136
- type\="text"
1137
- />
1138
- </IressField\>
1139
- <IressField
1140
- htmlFor\="lastName"
1141
- label\="Last name"
1142
- required
1143
- \>
1144
- <IressInput
1145
- id\="lastName"
1146
- name\="lastName"
1147
- required
1148
- type\="text"
1149
- />
1150
- </IressField\>
1151
- </IressFieldGroup\>
1152
-
1153
- Copy
1154
-
1155
- #### [](#field-group-api)Props
1156
-
1157
- | Name | Description | Default | Control |
1158
- | --- | --- | --- | --- |
1159
- | bg |
1160
- **`bg`** sets the background color of an element using the `background-color` css property using the color tokens in the design system.
1161
-
1162
- We recommend using the following token values for best background contrast:
1163
-
1164
- * `colour.primary.fill` for primary backgrounds that need to stand out
1165
- * `colour.primary.surface` for primary backgrounds that need to be less prominent
1166
- * `colour.neutral.10` for the base background color, normally white in light mode or shade of grey in dark mode
1167
- * `colour.neutral.20` for a slightly darker background color, used in neutral state components
1168
- * `colour.system.danger.fill` for error backgrounds that need to stand out
1169
- * `colour.system.danger.surface` for error backgrounds that need to be less prominent
1170
- * `colour.system.success.fill` for success backgrounds that need to stand out
1171
- * `colour.system.success.surface` for success backgrounds that need to be less prominent
1172
- * `colour.system.warning.fill` for warning backgrounds that need to stand out
1173
- * `colour.system.warning.surface` for warning backgrounds that need to be less prominent
1174
- * `colour.system.info.fill` for info backgrounds that need to stand out
1175
- * `colour.system.info.surface` for info backgrounds that need to be less prominent
1176
-
1177
- ResponsiveProp<ColorToken> | undefined
1178
-
1179
- | \- | Set object |
1180
- | borderRadius |
1181
-
1182
- The **`border-radius`** CSS property rounds the corners of an element's outer border edge using the radius tokens in the design system.
1183
-
1184
- | Chrome | Firefox | Safari | Edge | IE |
1185
- | --- | --- | --- | --- | --- |
1186
- | **4** | **4** | **5** | **12** | **9** |
1187
- | 1 _\-x-_ | | 3 _\-x-_ | | |
1188
-
1189
- ResponsiveProp<RadiusToken> | undefined
1190
-
1191
- | \- | Set object |
1192
- | children |
1193
-
1194
- Should contain multiple `IressField`, or other elements supported in field group such as `IressButton`.
1195
-
1196
- ReactNode
1197
-
1198
-
1199
-
1200
- | \- | \- |
1201
- | color |
1202
-
1203
- The **`color`** CSS property sets the foreground color value of an element's text and text decorations using the colour tokens from the design system. It also sets the `currentcolor` value. `currentcolor` may be used as an indirect value on _other_ properties and is the default for other color properties, such as `border-color`.
1204
-
1205
- We recommend using the following token values for best color contrast:
1206
-
1207
- * `colour.primary.onFill` used on top of `colour.primary.fill` for primary text that needs to stand out
1208
- * `colour.primary.text` used on top of `colour.primary.surface` or `colour.neutral.10` for primary text that needs to be less prominent
1209
- * `colour.neutral.70` used on top of `colour.neutral.10` or `colour.neutral.20` for muted text
1210
- * `colour.neutral.80` used on top of `colour.neutral.10` or `colour.neutral.20` for standard text
1211
- * `colour.system.danger.onFill` used on top of `colour.system.danger.fill` for error text that needs to stand out
1212
- * `colour.system.danger.text` used on top of `colour.system.danger.surface` for error text that needs to be less prominent
1213
- * `colour.system.success.onFill` used on top of `colour.system.success.fill` for success text that needs to stand out
1214
- * `colour.system.success.text` used on top of `colour.system.success.surface` for success text that needs to be less prominent
1215
- * `colour.system.warning.onFill` used on top of `colour.system.warning.fill` for warning text that needs to stand out
1216
- * `colour.system.warning.text` used on top of `colour.system.warning.surface` for warning text that needs to be less prominent
1217
- * `colour.system.info.onFill` used on top of `colour.system.info.fill` for informative text that needs to stand out
1218
- * `colour.system.info.text` used on top of `colour.system.info.surface` for informative text that needs to be less prominent
1219
-
1220
- ResponsiveProp<ColorToken> | undefined
1221
-
1222
- | \- | Set object |
1223
- | error |
1224
-
1225
- Validation error to be displayed above the field.
1226
-
1227
- ReactNode
1228
-
1229
-
1230
-
1231
- | \- | Set object |
1232
- | errorMessages |
1233
-
1234
- Validation errors to be displayed above the field, an array of validation messages to be displayed in `IressValidationSummary`.
1235
-
1236
- ValidationMessageObj\[\] | undefined
1237
-
1238
- | \- | Set object |
1239
- | focusable |
1240
-
1241
- The `focusable` prop is used to apply the focus elevation when focused. It can be set to `true` to apply focus styles on focus, or `'within'` to apply focus styles when the element or any of its children are focused.
1242
-
1243
- "true""within"undefined
1244
-
1245
-
1246
-
1247
- | \- | Set object |
1248
- | hiddenLabel |
1249
-
1250
- Visually hides the label text, but still available to screen readers.
1251
-
1252
- booleanundefined
1253
-
1254
-
1255
-
1256
- | \- | Set object |
1257
- | hide |
1258
-
1259
- Set **`hide`** to hide an element completely using `display: none`. It can also be set to an object of breakpoints to hide the element at specific breakpoints.
1260
-
1261
- Hide on all breakpoints: `hide: true` Hide on specific breakpoints: `hide: { xs: false, sm: true, md: false, lg: true, xl: false, xxl: true }`
1262
-
1263
- Notes:
1264
-
1265
- * If you need to hide an element but allow it to be visible to screen readers, use the `srOnly` prop instead.
1266
- * Consider if you can conditionally render the element instead of hiding it.
1267
-
1268
- ResponsiveProp<boolean> | undefined
1269
-
1270
- | \- | Set object |
1271
- | hint |
1272
-
1273
- Text to be displayed as supporting field description.
1274
-
1275
- ReactNode
1276
-
1277
-
1278
-
1279
- | \- | Set object |
1280
- | horizontal |
1281
-
1282
- Displays the label and input field inline instead of stacked vertically.
1283
-
1284
- booleanundefined
1285
-
1286
-
1287
-
1288
- | \- | Set object |
1289
- | htmlFor |
1290
-
1291
- Used to connect it to the input element, it should be the input's id. If provided, the label will be rendered as a `<label>` element, otherwise it will be rendered as a `<strong>` element.
1292
-
1293
- [Learn more](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/for)
1294
-
1295
- undefined
1296
-
1297
-
1298
-
1299
- | \- | Set object |
1300
- | inline |
1301
-
1302
- Displays multiple children inline rather than stacked, with a small gap.
1303
-
1304
- booleanundefined
1305
-
1306
-
1307
-
1308
- | \- | Set object |
1309
- | join |
1310
-
1311
- Displays multiple children inline and removes column gap.
1312
-
1313
- booleanundefined
1314
-
1315
-
1316
-
1317
- | \- | Set object |
1318
- | label\* |
1319
-
1320
- Text to be displayed in the label.
1321
-
1322
- ReactNode
1323
-
1324
-
1325
-
1326
- | \- |
1327
-
1328
- "Full name"
1329
-
1330
- |
1331
- | labelWidth |
1332
-
1333
- Controls the width of the label container when in horizontal mode. Can be any valid CSS width value (e.g., '200px', '20%', 'auto'). Only applies when `horizontal` is true.
1334
-
1335
- stringundefined
1336
-
1337
-
1338
-
1339
- | \- | Set object |
1340
- | layerStyle |
1341
-
1342
- Elevate a layer by using a **`layerStyle`**. These are connected to the elevation tokens in the design system. They can be combined to create hierarchy and structure.
1343
-
1344
- * `elevation.raised`: Raised elevations sit slightly higher than other content. 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.
1345
- * `elevation.floating`: 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.
1346
- * `elevation.overflow`: 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.
1347
-
1348
- ResponsiveProp<"elevation.raised" | "elevation.floating" | "elevation.overflow" | "elevation.focus" | "elevation.focusCompact"> | undefined
1349
-
1350
- | \- | Set object |
1351
- | m |
1352
-
1353
- The **`m`** property is short for `margin`, and sets the margin area on all four sides of an element.
1354
-
1355
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
1356
-
1357
- | Chrome | Firefox | Safari | Edge | IE |
1358
- | --- | --- | --- | --- | --- |
1359
- | **1** | **1** | **1** | **12** | **3** |
1360
-
1361
- ResponsiveProp<SpacingToken | "auto"> | undefined
1362
-
1363
- | \- | Set object |
1364
- | maxWidth |
1365
-
1366
- The **`max-width`** CSS property sets the maximum width of an element. It prevents the used value of the `width` property from becoming larger than the value specified by `max-width`.
1367
-
1368
- | Chrome | Firefox | Safari | Edge | IE |
1369
- | --- | --- | --- | --- | --- |
1370
- | **1** | **1** | **1** | **12** | **7** |
1371
-
1372
- ResponsiveProp<"auto" | SizeToken | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | ... 8 more ... | "11/12"> | undefined
1373
-
1374
- | \- | Set object |
1375
- | mb |
1376
-
1377
- The **`mb`** property is short for `margin-bottom` and sets the margin area on the bottom side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
1378
-
1379
- It uses the spacing tokens in the design system.
1380
-
1381
- | Chrome | Firefox | Safari | Edge | IE |
1382
- | --- | --- | --- | --- | --- |
1383
- | **1** | **1** | **1** | **12** | **3** |
1384
-
1385
- ResponsiveProp<SpacingToken | "auto"> | undefined
1386
-
1387
- | \- | Set object |
1388
- | ml |
1389
-
1390
- The **`ml`** property is short for `margin-left` and sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
1391
-
1392
- It uses the spacing tokens in the design system.
1393
-
1394
- | Chrome | Firefox | Safari | Edge | IE |
1395
- | --- | --- | --- | --- | --- |
1396
- | **1** | **1** | **1** | **12** | **3** |
1397
-
1398
- ResponsiveProp<SpacingToken | "auto"> | undefined
1399
-
1400
- | \- | Set object |
1401
- | mr |
1402
-
1403
- The **`mr`** property is short for `margin-right` and sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
1404
-
1405
- It uses the spacing tokens in the design system.
1406
-
1407
- | Chrome | Firefox | Safari | Edge | IE |
1408
- | --- | --- | --- | --- | --- |
1409
- | **1** | **1** | **1** | **12** | **3** |
1410
-
1411
- ResponsiveProp<SpacingToken | "auto"> | undefined
1412
-
1413
- | \- | Set object |
1414
- | mt |
1415
-
1416
- The **`mt`** property is short for `margin-top` and sets the margin area on the top side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
1417
-
1418
- It uses the spacing tokens in the design system.
1419
-
1420
- | Chrome | Firefox | Safari | Edge | IE |
1421
- | --- | --- | --- | --- | --- |
1422
- | **1** | **1** | **1** | **12** | **3** |
1423
-
1424
- ResponsiveProp<SpacingToken | "auto"> | undefined
1425
-
1426
- | \- | Set object |
1427
- | mx |
1428
-
1429
- The **`mx`** property is short for `margin-inline`. It is a shorthand property that defines both the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
1430
-
1431
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
1432
-
1433
- | Chrome | Firefox | Safari | Edge | IE |
1434
- | --- | --- | --- | --- | --- |
1435
- | **1** | **1** | **1** | **12** | **3** |
1436
-
1437
- ResponsiveProp<SpacingToken | "auto"> | undefined
1438
-
1439
- | \- | Set object |
1440
- | my |
1441
-
1442
- The **`my`** property is short for `margin-block`. It defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
1443
-
1444
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
1445
-
1446
- | Chrome | Firefox | Safari | Edge | IE |
1447
- | --- | --- | --- | --- | --- |
1448
- | **1** | **1** | **1** | **12** | **3** |
1449
-
1450
- ResponsiveProp<SpacingToken | "auto"> | undefined
1451
-
1452
- | \- | Set object |
1453
- | noGutter |
1454
-
1455
- The **`noGutter`** property is used to remove the bottom margin from the last child of a component. This is useful when you want to avoid extra spacing at the end of a layout.
1456
-
1457
- booleanundefined
1458
-
1459
-
1460
-
1461
- | \- | Set object |
1462
- | p |
1463
-
1464
- The **`p`** property is short for `padding`, and sets the padding area on all four sides of an element at once.
1465
-
1466
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
1467
-
1468
- | Chrome | Firefox | Safari | Edge | IE |
1469
- | --- | --- | --- | --- | --- |
1470
- | **1** | **1** | **1** | **12** | **3** |
1471
-
1472
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1473
-
1474
- | \- | Set object |
1475
- | pb |
1476
-
1477
- The **`pb`** property is short for `padding-bottom` and sets the padding area on the bottom side of an element.
1478
-
1479
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
1480
-
1481
- | Chrome | Firefox | Safari | Edge | IE |
1482
- | --- | --- | --- | --- | --- |
1483
- | **1** | **1** | **1** | **12** | **3** |
1484
-
1485
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1486
-
1487
- | \- | Set object |
1488
- | pl |
1489
-
1490
- The **`pl`** property is short for `padding-left` and sets the padding area on the left side of an element.
1491
-
1492
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
1493
-
1494
- | Chrome | Firefox | Safari | Edge | IE |
1495
- | --- | --- | --- | --- | --- |
1496
- | **1** | **1** | **1** | **12** | **3** |
1497
-
1498
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1499
-
1500
- | \- | Set object |
1501
- | pr |
1502
-
1503
- The **`pr`** property is short for `padding-right` and sets the padding area on the right side of an element.
1504
-
1505
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
1506
-
1507
- | Chrome | Firefox | Safari | Edge | IE |
1508
- | --- | --- | --- | --- | --- |
1509
- | **1** | **1** | **1** | **12** | **3** |
1510
-
1511
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1512
-
1513
- | \- | Set object |
1514
- | pt |
1515
-
1516
- The **`pt`** property is short for `padding-top` and sets the padding area on the top side of an element.
1517
-
1518
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
1519
-
1520
- | Chrome | Firefox | Safari | Edge | IE |
1521
- | --- | --- | --- | --- | --- |
1522
- | **1** | **1** | **1** | **12** | **3** |
1523
-
1524
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1525
-
1526
- | \- | Set object |
1527
- | px |
1528
-
1529
- The **`px`** property is short for `padding-inline`. It is a shorthand property that defines both the logical inline start and end paddings of an element, which maps to physical paddings depending on the element's writing mode, directionality, and text orientation.
1530
-
1531
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
1532
-
1533
- | Chrome | Firefox | Safari | Edge | IE |
1534
- | --- | --- | --- | --- | --- |
1535
- | **1** | **1** | **1** | **12** | **3** |
1536
-
1537
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1538
-
1539
- | \- | Set object |
1540
- | py |
1541
-
1542
- The **`py`** property is short for `padding-block`. It defines the logical block start and end paddings of an element, which maps to physical paddings depending on the element's writing mode, directionality, and text orientation.
1543
-
1544
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
1545
-
1546
- | Chrome | Firefox | Safari | Edge | IE |
1547
- | --- | --- | --- | --- | --- |
1548
- | **1** | **1** | **1** | **12** | **3** |
1549
-
1550
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1551
-
1552
- | \- | Set object |
1553
- | readOnly |
1554
-
1555
- Renders the group in a read-only state (no asterisk symbol).
1556
-
1557
- booleanundefined
1558
-
1559
-
1560
-
1561
- | \- | Set object |
1562
- | removeErrorMargin |
1563
-
1564
- Removes the reserved space for error messages, allowing fields to stack with narrower gaps. When true, no margin is reserved for potential error messages.
1565
-
1566
- booleanundefined
1567
-
1568
-
1569
-
1570
- | \- | Set object |
1571
- | required |
1572
-
1573
- When set to true, the 'required asterisk (\*)' is displayed next to the label text.
1574
-
1575
- booleanundefined
1576
-
1577
-
1578
-
1579
- | \- | Set object |
1580
- | rowGap |
1581
-
1582
- The **`row-gap`** CSS property sets the size of the gap (gutter) between an element's rows.
1583
-
1584
- Note: It only has an effect when used as a direct child of a layout component, such as IressRow, IressStack or IressInline.
1585
-
1586
- | Chrome | Firefox | Safari | Edge | IE |
1587
- | --- | --- | --- | --- | --- |
1588
- | **47** | **52** | **10.1** | **16** | No |
1589
-
1590
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
1591
-
1592
- | \- | Set object |
1593
- | srOnly |
1594
-
1595
- Set **`srOnly`** to hide an element visually but still make it accessible to screen readers. It can also be set to an object of breakpoints to hide the element at specific breakpoints.
1596
-
1597
- Hide on all breakpoints: `srOnly: true` Hide on specific breakpoints: `srOnly: { xs: false, sm: true, md: false, lg: true, xl: false, xxl: true }`
1598
-
1599
- ResponsiveProp<boolean> | undefined
1600
-
1601
- | \- | Set object |
1602
- | stretch |
1603
-
1604
- The **`stretch`** property is used to stretch an element to fill the available space in its parent container. It sets the `height` property to `100%` and `alignSelf` to `stretch`, allowing the element to expand and contract based on the size of its parent.
1605
-
1606
- booleanundefined
1607
-
1608
-
1609
-
1610
- | \- | Set object |
1611
- | supplementary |
1612
-
1613
- Supplementary content to be displayed below the field. Is only shown when the field is not in an error state.
1614
-
1615
- ReactNode
1616
-
1617
-
1618
-
1619
- | \- | Set object |
1620
- | textAlign |
1621
-
1622
- The **`text-align`** CSS property sets the horizontal alignment of the inline-level content inside a block element or table-cell box.
1623
-
1624
- | Chrome | Firefox | Safari | Edge | IE |
1625
- | --- | --- | --- | --- | --- |
1626
- | **1** | **1** | **1** | **12** | **3** |
1627
-
1628
- ResponsiveProp<"center" | "left" | "right" | "inherit" | "justify"> | undefined
1629
-
1630
- | \- | Set object |
1631
- | textStyle |
1632
-
1633
- Select the typography to be used using the **`textStyle`** prop. These are connected to the typography tokens in the design system.'
1634
-
1635
- * `typography.body.sm` - Use for small components such as badges and disclaimers, as well as compact variations of tables and lists.
1636
- * `typography.body.md` - The most commonly used body text size, used for most text content in the product and the default state of all components in the design system.
1637
- * `typography.body.lg` - Use for tag lines, subtitles, and other large text content in the product.
1638
- * `typography.heading.1` - Use for the main page title to establish a clear hierarchy. There is typically only one H1 per screen, emphasising the primary purpose or context of the page.
1639
- * `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.
1640
- * `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.
1641
- * `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.
1642
- * `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.
1643
- * `typography.code` - Used to display code snippets in the product, such as in the API documentation.
1644
-
1645
- ResponsiveProp<"typography.heading.1" | "typography.heading.2" | "typography.heading.3" | "typography.heading.4" | "typography.heading.5" | "typography.body.sm" | "typography.body.sm.regular" | ... 10 more ... | "typography.code"> | undefined
1646
-
1647
- | \- | Set object |
1648
- | width |
1649
-
1650
- The **`width`** CSS property sets an element's width. By default, it sets the width of the content area, but if `box-sizing` is set to `border-box`, it sets the width of the border area.
1651
-
1652
- This prop only allows widths available throughout the component library. To use a custom width, you need to use the `style` prop, or add a custom class to the element and use CSS.
1653
-
1654
- | Chrome | Firefox | Safari | Edge | IE |
1655
- | --- | --- | --- | --- | --- |
1656
- | **1** | **1** | **1** | **12** | **4** |
1657
-
1658
- ResponsiveProp<"auto" | SizeToken | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | ... 8 more ... | "11/12"> | undefined
1659
-
1660
- | \- | Set object |
1661
- | Show Storybook only itemsStorybook only | Show Storybook only items |
1662
-
1663
- ### [](#inline)Inline
1664
-
1665
- Multiple fields can be displayed inline using the `inline` prop. On smaller screens, inline elements will wrap on to a new line if there's not enough space for everything on one line.
1666
-
1667
- Full name
1668
-
1669
- Title
1670
-
1671
- \*RequiredFirst name
1672
-
1673
- \*RequiredLast name
1674
-
1675
- Hide code
1676
-
1677
- \[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; }
1678
-
1679
- <IressFieldGroup
1680
- inline
1681
- label\="Full name"
1682
- \>
1683
- <IressField
1684
- htmlFor\="title"
1685
- label\="Title"
1686
- \>
1687
- <IressInput
1688
- id\="title"
1689
- name\="title"
1690
- type\="text"
1691
- width\="2"
1692
- />
1693
- </IressField\>
1694
- <IressField
1695
- htmlFor\="firstName"
1696
- label\="First name"
1697
- required
1698
- \>
1699
- <IressInput
1700
- id\="firstName"
1701
- name\="firstName"
1702
- required
1703
- type\="text"
1704
- />
1705
- </IressField\>
1706
- <IressField
1707
- htmlFor\="lastName"
1708
- label\="Last name"
1709
- required
1710
- \>
1711
- <IressInput
1712
- id\="lastName"
1713
- name\="lastName"
1714
- required
1715
- type\="text"
1716
- />
1717
- </IressField\>
1718
- </IressFieldGroup\>
1719
-
1720
- Copy
1721
-
1722
- Full name
1723
-
1724
- Emoji
1725
-
1726
- Title
1727
-
1728
- MrMrsMiss
1729
-
1730
- \*RequiredFirst name
1731
-
1732
- \*RequiredLast name
1733
-
1734
- Submit
1735
-
1736
- Settings goes here
1737
-
1738
- Hide code
1739
-
1740
- \[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; }
1741
-
1742
- <form\>
1743
- <IressFieldGroup
1744
- inline
1745
- label\="Full name"
1746
- \>
1747
- <IressField
1748
- htmlFor\="emoji"
1749
- label\="Emoji"
1750
- \>
1751
- <IressRichSelect
1752
- container\={document.body}
1753
- id\="emoji"
1754
- options\={\[
1755
- {
1756
- label: '🐶',
1757
- value: 'dog'
1758
- },
1759
- {
1760
- label: '🐱',
1761
- value: 'cat'
1762
- },
1763
- {
1764
- label: '🐭',
1765
- value: 'mouse'
1766
- }
1767
- \]}
1768
- width\="2"
1769
- />
1770
- </IressField\>
1771
- <IressField
1772
- htmlFor\="title"
1773
- label\="Title"
1774
- \>
1775
- <IressSelect
1776
- id\="title"
1777
- width\="2"
1778
- \>
1779
- <option value\="mr"\>
1780
- Mr </option\>
1781
- <option value\="mrs"\>
1782
- Mrs </option\>
1783
- <option value\="miss"\>
1784
- Miss </option\>
1785
- </IressSelect\>
1786
- </IressField\>
1787
- <IressField
1788
- htmlFor\="firstName"
1789
- label\="First name"
1790
- required
1791
- \>
1792
- <IressInput
1793
- id\="firstName"
1794
- required
1795
- />
1796
- </IressField\>
1797
- <IressField
1798
- htmlFor\="lastName"
1799
- label\="Last name"
1800
- required
1801
- \>
1802
- <IressInput
1803
- id\="lastName"
1804
- required
1805
- />
1806
- </IressField\>
1807
- <IressButton type\="submit"\>
1808
- Submit </IressButton\>
1809
- <IressPopover activator\={<IressButton\><IressIcon name\="cog" /></IressButton\>}\>
1810
- <IressPanel\>
1811
- Settings goes here </IressPanel\>
1812
- </IressPopover\>
1813
- </IressFieldGroup\>
1814
- </form\>
1815
-
1816
- Copy
1817
-
1818
- ### [](#join)Join
1819
-
1820
- Elements can also be joined together using the `join` prop. Joined elements won't wrap on to a new line, so make sure you test your designs on small screens; depending on the use case, you may be better off with a standard inline layout (or two separate fields!).
1821
-
1822
- **Note:** The `join` prop works out of the box with IDS components. To enable your custom components to work with the `join` prop, you need to ensure the direct child of `IressFieldGroup` has the class `GlobalCSSClass.FormElement`. If the direct child is not the element with the border, add the class `GlobalCSSClass.FormElementInner` to the element with the border.
1823
-
1824
- Full name
1825
-
1826
- Title
1827
-
1828
- \*RequiredFirst name
1829
-
1830
- \*RequiredLast name
1831
-
1832
- Hide code
1833
-
1834
- \[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; }
1835
-
1836
- <IressFieldGroup
1837
- join
1838
- label\="Full name"
1839
- \>
1840
- <IressField
1841
- htmlFor\="title"
1842
- label\="Title"
1843
- \>
1844
- <IressInput
1845
- id\="title"
1846
- name\="title"
1847
- type\="text"
1848
- width\="2"
1849
- />
1850
- </IressField\>
1851
- <IressField
1852
- htmlFor\="firstName"
1853
- label\="First name"
1854
- required
1855
- \>
1856
- <IressInput
1857
- id\="firstName"
1858
- name\="firstName"
1859
- required
1860
- type\="text"
1861
- />
1862
- </IressField\>
1863
- <IressField
1864
- htmlFor\="lastName"
1865
- label\="Last name"
1866
- required
1867
- \>
1868
- <IressInput
1869
- id\="lastName"
1870
- name\="lastName"
1871
- required
1872
- type\="text"
1873
- />
1874
- </IressField\>
1875
- </IressFieldGroup\>
1876
-
1877
- Copy
1878
-
1879
- Full name
1880
-
1881
- Emoji
1882
-
1883
- Title
1884
-
1885
- MrMrsMiss
1886
-
1887
- \*RequiredFirst name
1888
-
1889
- \*RequiredLast name
1890
-
1891
- Submit
1892
-
1893
- Settings goes here
1894
-
1895
- Hide code
1896
-
1897
- \[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; }
1898
-
1899
- <form\>
1900
- <IressFieldGroup
1901
- inline
1902
- join
1903
- label\="Full name"
1904
- \>
1905
- <IressField
1906
- htmlFor\="emoji"
1907
- label\="Emoji"
1908
- \>
1909
- <IressRichSelect
1910
- container\={document.body}
1911
- id\="emoji"
1912
- options\={\[
1913
- {
1914
- label: '🐶',
1915
- value: 'dog'
1916
- },
1917
- {
1918
- label: '🐱',
1919
- value: 'cat'
1920
- },
1921
- {
1922
- label: '🐭',
1923
- value: 'mouse'
1924
- }
1925
- \]}
1926
- width\="2"
1927
- />
1928
- </IressField\>
1929
- <IressField
1930
- htmlFor\="title"
1931
- label\="Title"
1932
- \>
1933
- <IressSelect
1934
- id\="title"
1935
- width\="2"
1936
- \>
1937
- <option value\="mr"\>
1938
- Mr </option\>
1939
- <option value\="mrs"\>
1940
- Mrs </option\>
1941
- <option value\="miss"\>
1942
- Miss </option\>
1943
- </IressSelect\>
1944
- </IressField\>
1945
- <IressField
1946
- htmlFor\="firstName"
1947
- label\="First name"
1948
- required
1949
- \>
1950
- <IressInput
1951
- id\="firstName"
1952
- required
1953
- />
1954
- </IressField\>
1955
- <IressField
1956
- htmlFor\="lastName"
1957
- label\="Last name"
1958
- required
1959
- \>
1960
- <IressInput
1961
- id\="lastName"
1962
- required
1963
- />
1964
- </IressField\>
1965
- <IressButton type\="submit"\>
1966
- Submit </IressButton\>
1967
- <IressPopover activator\={<IressButton\><IressIcon name\="cog" /></IressButton\>}\>
1968
- <IressPanel\>
1969
- Settings goes here </IressPanel\>
1970
- </IressPopover\>
1971
- </IressFieldGroup\>
1972
- </form\>
1973
-
1974
- Copy
1975
-
1976
- [](#iressform-integration)`IressForm` integration
1977
- -------------------------------------------------
1978
-
1979
- As of version 5, `IressField` is a standalone component and does not handle validation.
1980
-
1981
- If you want out-of-the-box validation, use the `IressFormField` inside an `IressForm`. This will handle validation for you, and provide a consistent way to handle form state.
1982
-
1983
- [
1984
-
1985
- View forms documentation for fields
1986
-
1987
- ](/?path=/docs/components-form--docs#fields)
1988
-
1989
- On this page
1990
-
1991
- * [Overview](#overview)
1992
- * [Props](#props)
1993
- * [Examples](#examples)
1994
- * [Label](#label)
1995
- * [Hint](#hint)
1996
- * [Error message](#error-message)
1997
- * [Custom error](#custom-error)
1998
- * [Hidden label](#hidden-label)
1999
- * [Required](#required)
2000
- * [Readonly data](#readonly-data)
2001
- * [Supplementary](#supplementary)
2002
- * [Horizontal layout](#horizontal-layout)
2003
- * [Remove error margin](#remove-error-margin)
2004
- * [IressFieldGroup](#iressfieldgroup)
2005
- * [Inline](#inline)
2006
- * [Join](#join)
2007
- * [IressForm integration](#iressform-integration)