Skip to main content
U.S. Flag

An official website of the United States government

Masked Field

A masked field is an enhanced input field that improves readability by providing visual and non-visual cues to a user about the expected value.

Examples

A Mask component renders a controlled input field that applies formatting to the input value when the field is blurred.

Loading

Code

React

Passing a mask prop into the TextField component with a valid value will enable formatting to occur when the field is blurred. To "unmask" the value, you can import and call the unmaskValue method.

React Properties Documentation
NameTypeDefaultDescription
ariaLabelstring

Apply an aria-label to the text field to provide additional context to assistive devices.

classNamestring

Additional classes to be added to the root div element

defaultValuestring | number

Sets the initial value. Use this for an uncontrolled component; otherwise, use the value property.

disabledboolean
errorMessageReact.ReactNode
errorMessageClassNamestring

Additional classes to be added to the error message

errorPlacement'top' | 'bottom'

Location of the error message relative to the field input

fieldClassNamestring

Additional classes to be added to the field element

focusTriggerboolean

Used to focus input on componentDidMount()

hintReact.ReactNode

Additional hint text to display

idstring

A unique id to be used on the text field.

inputRef(...args: any[]) => any

Access a reference to the input or textarea element

requirementLabelReact.ReactNode

Text showing the requirement ("Required", "Optional", etc.). See Required and Optional Fields.

inversedboolean

Applies the "inverse" UI theme

labelrequiredReact.ReactNode

Label for the input

labelMask(rawInput: string, valueOnly?: boolean) => string

Applies date format masking to the input value entered and renders to a text field above the input. Passing true to valueOnly will return just the formatted value entered.

labelClassNamestring

Additional classes to be added to the FormLabel.

labelIdstring

A unique id to be used on the label field.

mask'currency' | 'phone' | 'ssn' | 'zip'

Apply formatting to the field that's unique to the value you expect to be entered. Depending on the mask, the field's appearance and functionality may be affected.

multilineboolean

Whether or not the text field is a multiline text field

namerequiredstring
numericboolean

Sets inputMode, type, and pattern to improve accessibility and consistency for number fields. Use this prop instead of type="number", see here for more information.

onBlur(...args: any[]) => any
onChange(...args: any[]) => any
rowsnumber | string

Optionally specify the number of visible text lines for the field. Only applicable if this is a multiline field.

size'small' | 'medium'

Set the max-width of the input either to 'small' or 'medium'.

typestring'text'

HTML input type attribute. If you are using type=number please use the numeric prop instead.

valuestring | number

Sets the input's value. Use this in combination with onChange for a controlled component; otherwise, set defaultValue.

Styles

The following Sass variables can be overridden to customize Input/Form components:

Sass variables for text-input
VariableDefault Core Theme Value
$text-input__line-height1.3
$text-input__background-color--disabled$color-border
$text-input__border-width2px
$text-input__border-width--error3px
$text-input__border-width--success3px
$text-input__border-color$color-base
$text-input__border-color--disabled$color-gray-light
$text-input__border-color--error$color-error
$text-input__border-color--error--inverse$color-error-light
$text-input__border-color--inverse$color-black
$text-input__border-color--success$color-green-light
$text-input__color$color-base
$text-input__padding8px
$text-input__border-radius3px

Form components

This component uses a text field and its styles, which can be customized by the following variables:

Sass variables for form
VariableDefault Core Theme Value
$form-label__color--inverse$color-white
$form__max-width460px
$form__max-width--small6em
$form__max-width--medium12em
$form-hint__color$color-gray
$form-hint__color--inverse$color-muted-inverse
$form-error__color$color-error
$form-error__color--inverse$color-error-light

Component maturity

For more information about how we tested and validated our work for each checklist item, read our component maturity documentation.

Accessibility

  • Color

    Meets AA color contrast standards for accessibility and color blindness.
    Complete
  • Forced Colors Mode (FCM)

    While using FCM the components text is legible and improves readability.
    Complete
  • WCAG 2.1 Level AA Conformance

    All Axe checks for WCAG AA compliance have passed.
    Complete
  • Screen readers

    VoiceOver, NVDA, and JAWS screen readers provide concise communication and interaction.
    Incomplete
  • Keyboard navigation

    Component is fully navigable with a keyboard.
    Complete

Code

  • Storybook

    Component has stories to cover all defined props.
    Complete
  • Responsive

    Component designed to work in all responsive breakpoints.
    Complete
  • Spanish translations

    Includes Spanish translations for default text content.
    Not applicable

Tokens

  • Code

    Tokens implemented in code.
    Complete
  • Design

    Tokens implemented in the Sketch.
    Complete