Skip to main content
U.S. Flag

An official website of the United States government

CMS Design System

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
ariaLabelstringApply an aria-label to the text field to provide additional context to assistive devices.
defaultValueTextFieldDefaultValueSets the initial value. Use this for an uncontrolled component; otherwise, use the value property.
disabledboolean
fieldClassNamestring
autoFocusboolean
idstringA unique id to be used on the text field.
inputRef(...args: any[]) => anyAccess a reference to the input or textarea element
requirementLabelReactNodeText showing the requirement ("Required", "Optional", etc.). See Required and Optional Fields.
inversedbooleanApplies the "inverse" UI theme
labelMask(rawInput: string, valueOnly?: boolean) => stringApplies 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.
maskTextFieldMaskApply 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.
multilinebooleanWhether or not the text field is a multiline text field
namerequiredstring
numericbooleanSets 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
rowsTextFieldRowsOptionally specify the number of visible text lines for the field. Only applicable if this is a multiline field.
sizeTextFieldSizeSet the max-width of the input either to 'small' or 'medium'.
typestringtextHTML input type attribute. If you are using type=number please use the numeric prop instead.
valueTextFieldValueSets the input's value. Use this in combination with onChange for a controlled component; otherwise, set defaultValue.
classNamestringAdditional classes to be added to the root element.
labelrequiredReactNodeLabel for the field.
errorMessageReactNodeEnable the error state by providing an error message.
errorMessageClassNamestringAdditional classes to be added to the error message
errorIdstringThe ID of the error message applied to this field.
hintReactNodeAdditional hint text to display
textClassNamestringAdditional classes to be added to the label text.
errorPlacement"top" | "bottom"Location of the error message relative to the field input
labelClassNamestringAdditional classes to be added to the field label
labelIdstringA unique id to be used on the field label. If one isn't provided, a unique ID will be generated.

Styles

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

CSS variables for text-input
VariableDefault Core Theme Value
--text-input__line-height1.3
--text-input__background-color--disabledhex value: #d9d9d9--color-border
--text-input__border-width2px
--text-input__border-width--error3px
--text-input__border-width--success3px
--text-input__border-colorhex value: #262626--color-base
--text-input__border-color--disabledhex value: #a6a6a6--color-gray-light
--text-input__border-color--errorhex value: #e31c3d--color-error
--text-input__border-color--error--inversehex value: #f7bbc5--color-error-lighter
--text-input__border-color--inversehex value: #000000--color-black
--text-input__border-color--successhex value: #59ac56--color-secondary-light
--text-input__colorhex value: #262626--color-base
--text-input__divider-colorhex value: #a6a6a6--color-gray-light
--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:

CSS variables for form
VariableDefault Core Theme Value
--form-label__color--inversehex value: #ffffff--color-white
--form__max-width460px
--form__max-width--small6em
--form__max-width--medium12em
--form-hint__colorhex value: #5a5a5a--color-gray-dark
--form-hint__color--inversehex value: #e9ecf1--color-muted-inverse
--form-error__colorhex value: #e31c3d--color-error
--form-error__color--inversehex value: #f7bbc5--color-error-lighter

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