Skip to main content

What are you looking for?

Try searching for…

Components

Field

Field is a helper component to automatically associate a field with Label, Field.Description, ValidationMessage and Field.Counter.

It is common to get confused between Fieldset and Field. A good rule of thumb is that Fieldset is a set of Field

position
Description

Position of toggle inputs (radio, checkbox, switch) in field

Type
"start" | "end"
Default
start
asChild
Description

Change the default rendered element for the one passed as a child, merging their props and behavior. @deprecated This is not supported anymore, as the element needs to be `ds-field`

Type
boolean
Default
false
NameTypeDefaultDescription
position"start" | "end"start

Position of toggle inputs (radio, checkbox, switch) in field

asChildbooleanfalse

Change the default rendered element for the one passed as a child, merging their props and behavior. @deprecated This is not supported anymore, as the element needs to be `ds-field`

FieldCounter

over
Description

Label template for when `maxCount` is exceeded. Use `%d` to insert the number of characters.

Type
string
Default
'%d tegn for mye'
under
Description

Label template for count. Use `%d` to insert the number of characters.

Type
string
Default
'%d tegn igjen'
hint
Description

@deprecated The hint attribute is deprecated.

Type
string
limit
Description

The maximum allowed characters.

Type
number
Default
undefined
asChild
Description

Change the default rendered element for the one passed as a child, merging their props and behavior.

Type
boolean
Default
false
NameTypeDefaultDescription
overstring'%d tegn for mye'

Label template for when `maxCount` is exceeded. Use `%d` to insert the number of characters.

understring'%d tegn igjen'

Label template for count. Use `%d` to insert the number of characters.

hintstring-

@deprecated The hint attribute is deprecated.

limitnumberundefined

The maximum allowed characters.

asChildbooleanfalse

Change the default rendered element for the one passed as a child, merging their props and behavior.

Usage

Field can be used with Input, Textarea and Select. NOTE: Textfield already has Field built in, and therefore cannot be used in a Field.

Examples

Prefix/Suffix

Prefixes and suffixes are useful for displaying units, currency or other types of information relevant to the field. You should not use these on their own, as screen readers do not read them out. It is important that the same information displayed in the prefix or suffix is ​​also included in the prompt.

Number of characters

Use Field.Counter to inform about the number of characters users can type in the field.

Position

Use position="end" when you want to place, for example, a Switch to the right of Label.

You can change the text by submitting props, which you can see at the top of the page. The language is standard Norwegian Bokmål.

HTML

Add the class name ds-field to the <ds-field> element. <ds-field> links together label, input and validation message.

Number of characters

To get a counter on input and textarea, add a <p> with the attribute data-field="counter" inside the ds-field.

You can control the text in the counter using the following attributes:

attributetypedefaultrequired
data-limitnumberundefinedtrue
data-overstring%d tegn for myefalse
data-understring%d tegn igjenfalse

Indeterminate

To make a checkbox indeterminate, add data-indeterminate="true" on the <input> element.

Position

To change the position of elements in Field, such as a Switch, you can add data-position="end|start" to the same element as ds-field.

CSS variables and data attributes

CSS Variables
NameValue
--dsc-field-content-spacingvar(--ds-size-2)
--dsc-field-counter-over"%d tegn for mye"
--dsc-field-counter-under"%d tegn igjen"
--dsc-field-affix-border-widthvar(--ds-border-width-default)
--dsc-field-affix-border-stylesolid
--dsc-field-affix-border-colorvar(--ds-color-neutral-border-default)
--dsc-field-affix-padding-inlinevar(--ds-size-4)
Data Attributes
NameValue
data-fielddescription, counter
data-stateover
data-clickdelegatefor
data-positionend
Edit this page on github.com (opens in a new tab)