InputReady

Inputs are used to allow users to provide text input when the expected input is short. As well as plain text, Input supports various types of text, including passwords and numbers.

Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
Edit in CodePen
Open in new window
View RTL
<nord-input label="Label" value="Value"></nord-input>

Properties

PropertyAttributeDescriptionTypeDefault
typetype

The type of the input.

| "text" | "email" | "password" | "tel" | "url" | "search" | "number" | "unit" | "button""text"
expandexpand

Controls whether the input expands to fill the width of its container.

booleanfalse
disallowPatterndisallow-pattern

Optionally disallow certain characters from being used inside the input, using a regex pattern.

string | undefinedundefined
sizesize

The size of the component.

"s" | "m" | "l""m"
labellabel

Label for the input.

string""
hinthint

Optional hint text to be displayed with the input. Alternatively use the hint slot.

string | undefinedundefined
hideLabelhide-label

Visually hide the label, but still show it to assistive technologies like screen readers.

booleanfalse
placeholderplaceholder

Placeholder text to display within the input.

string | undefinedundefined
errorerror

Optional error to be shown with the input. Alternatively use the error slot.

string | undefinedundefined
requiredrequired

Determines whether the input is required or not. An input marked as required will be announced as such to users of assistive technology. When using this property you need to also set “novalidate” attribute on a form element to prevent browser from displaying its own validation errors.

booleanfalse
hideRequiredhide-required

Visually hide the required indicator, but still show required attribute to assistive technologies like screen readers.

booleanfalse
autocompleteautocomplete

Specifies the data type of the field, so that the browser may attempt to fill out the field automatically on behalf of the user.

AutocompleteAttribute"off"
readonlyreadonly

Makes the component readonly, so that it is not editable. Readonly differs from disabled in that readonly fields are still focusable and will be submitted with a form.

booleanfalse
selectionStart

Gets or sets the starting position or offset of a text selection.

MDN Reference

undefined
selectionEnd

Gets or sets the end position or offset of a text selection.

MDN Reference

undefined
selectionDirection

Gets or sets the direction in which selection occurred.

MDN Reference

undefined
disableddisabled

Makes the component disabled. This prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies.

booleanfalse
namename

The name of the form component.

string | undefinedundefined
valuevalue

The value of the form component.

string""
formform

Gets the form, if any, associated with the form element. The setter accepts a string, which is the id of the form.

HTMLFormElement | nullundefined

Events

EventDescriptionType
select

Fired when some text has been selected.

NordEvent
input

Fired as the user types into the input.

NordEvent
change

Fired whenever the input's value is changed via user interaction.

NordEvent

Slots

Slot nameDescription
label

Use when a label requires more than plain text.

hint

Optional slot that holds hint text for the input.

error

Optional slot that holds error text for the input.

start

Optional slot used to place an icon or prefix at the start of the input.

end

Optional slot used to place an icon or suffix at the end of the input.

Methods

Method nameParametersDescription
select() => voidN/A

Selects all the text in the text field.

MDN Reference

setSelectionRange(start: number | null, end: number | null, direction?: "forward" | "backward" | "none") => voidstart: The offset into the text field for the start of the selection.
end: The offset into the text field for the end of the selection.
direction: The direction in which the selection is performed.

Sets the start and end positions of a selection in the text field.

MDN Reference

setRangeText(replacement: string, start?: number, end?: number, selectMode: "select" | "start" | "end" | "preserve") => voidreplacement: The string to insert.
start: The 0-based index of the first character to replace. Defaults to the current `selectionStart` value (the start of the user's current selection).
end: The 0-based index of the character after the last character to replace. Defaults to the current `selectionEnd` value (the end of the user's current selection).
selectMode: A string defining how the selection should be set after the text has been replaced.

Replaces a range of text with a new string.

MDN Reference

getNativeElement() => voidN/A

Returns the native <input> or <textarea> element used under the hood.

focus(options?: FocusOptions) => voidoptions: An object which controls aspects of the focusing process.

Programmatically move focus to the component.

blur() => voidN/A

Programmatically remove focus from the component.

click() => voidN/A

Programmatically simulates a click on the component.

CSS Properties

CSS Custom Properties provide more fine grain control over component presentation. We advise utilizing existing properties on the component before using these.

PropertyDescriptionDefault
--n-input-inline-size

Controls the inline size, or width, of the input.

240px
--n-input-background

Controls the background of the input, using our color tokens.

var(--n-color-active)
--n-input-color

Controls the text color of the input, using our color tokens.

var(--n-color-text)
--n-input-border-color

Controls the border color of the input, using our color tokens.

var(--n-color-border-strong)
--n-input-border-radius

Controls how rounded the corners are, using border radius tokens.

var(--n-border-radius-s)
--n-input-text-align

Controls the alignment of text within the input itself.

start
--n-label-color

Controls the text color of the label, using our color tokens.

var(--n-color-text)

Dependencies

This component is internally dependent on the following components:


Usage

This section includes guidelines for designers and developers about the usage of this component in different contexts.

Do

  • Use to provide a text input where the expected input is short.
  • Use to only ask for information that’s really needed. Hide optional fields by default if possible or have them shown with a lower priority.
  • Use help text and placeholder to provide additional, non-critical instructions.
  • Validate input as soon as users have finished interacting with them (but not before).
  • Where necessary, label the input as “Optional” when you need to request input that’s not required.

Don’t

  • Don’t use when the expected text input is long. Use textarea component instead.
  • Don’t use the placeholder to provide information that’s required to use the input. Hint text should be used for this purpose instead.

Content guidelines

Input labels act as a title for the text field. Labels should typically be short and in noun form:

Company name
What is your company name?

When writing input labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):

Company name
Company Name

When an input isn’t part of a form and is placed individually on a page, you could provide the input label as a call to action:

Leave a comment
Comment

Do not use colons in input label:

First name
First name:

Types

This section describes the different input types, their purpose, and when to use each type.

NamePurpose
textThe default and most common variant. Displayed as a single-line text field. Line-breaks are automatically removed from the input value.
emailA field for editing an email address. Looks similar to a text input, but has validation parameters and relevant keyboard for devices with dynamic keyboards.
passwordA single-line text field where the value is obscured. This type will alert user if a site is not secure.
telA field for entering a telephone number. Displays a number keypad on mobile devices.
urlA field variant that is used to let the user enter and edit an URL.
searchA single-line text field for entering search strings.
numberUsed to let the user enter a number.

Icon usage in input

Each input size has a recommended icon size. The medium input uses the s icon size, the small input uses the xs icon size, and the large input uses the m icon size. The icon will adjust size automatically based on the button size, so you will get the correct behavior by default. However, this can be overridden by explicitly setting a size on the icon.


Input masking

We recommend using Maskito for creating an input mask which ensures that users type values according to a predefined format.


Integration

For integration guidelines, please see Web Components documentation. This documentation explains how to implement and use Nord Web Components across different technologies such as Vue.js, React, or Vanilla JavaScript.

Integration Guidelines

Troubleshooting

If you experience any issues while using Nord Web Components, please head over to the Support page for more guidelines and ways to contact us.


Was this page helpful?

YesNo
Send feedback

We use this feedback to improve our documentation.