Form

Underline field with a floating label that rises to a small caption once the field is active. An optional leading country-code segment (hasCountryCode) prepends a value such as +1 for phone entry, and an optional date affordance (hasDate) turns it into a date field.

Overview

Underline field with a floating label that rises to a small caption once the field is active. An optional leading country-code segment (hasCountryCode) prepends a value such as +1 for phone entry, and an optional date affordance (hasDate) turns it into a date field.

Input label
Variant
Default

The default variant.

Variants and states

default
Input label
focused
Input label
Placeholder
typing
Input label
Placeholder
filled
Input label
Placeholder
disabled
Input label
Placeholder
error
Input label
Placeholder

Anatomy

Input
Input label
+1Placeholder
  1. 1Container.Content  required  Flex column that holds the label and value; it fills the width so the only gap after it is the gap to the trailing icon.
  2. 2Label.Text  required  Inline placeholder at rest, small floating label once the field is active.
  3. 3Container.Value  optional  The value row shown in the active states.
  4. 4Label.CountryCode  optional  The +1 country-code segment, shown when hasCountryCode is on (phone entry).
  5. 5IconTrailing  optional  Trailing chevron, shown when hasIconTrailing is on.

Measurements

Input label
+1Placeholder
Height, padding, gaps, and radius, measured live from the rendered component

Specs

Values resolved live from the token spine. Token names follow the active platform; each links to its page.

Container
#FFFFFF
Horizontal padding
spacingGapPositive2xl
16pt
Vertical padding
spacingGapPositiveLg
10pt
Gap between content and trailing icon
spacingGapPositiveXl
12pt
Underline thickness
strokeMd
1pt
Underline
Underline, default and filled
colorBorderPrimary
#E5E5E8
Underline, focused and typing
colorBorderFocused
#4B56C7
Underline, disabled
colorBorderDisabled
#F3F3F6
Underline, error
colorBorderError
#EB515E
Label
Floated label typography
label.md.regular
Size 12px · typographyFontSizeLabelMdLine height 16px · typographyLineHeightLabelMdWeight 400 · typographyFontWeightRegularTracking 0px · typographyTrackingLabelMdParagraph spacing 0px · typographyParagraphSpacingLabelMdFamily SF Pro Text · typographyFontFamilyText
Resting label and value typography
body.md.regular
Size 17px · typographyFontSizeBodyMdLine height 22px · typographyLineHeightBodyMdWeight 400 · typographyFontWeightRegularTracking -0.41px · typographyTrackingBodyMdParagraph spacing 0px · typographyParagraphSpacingBodyMdFamily SF Pro Text · typographyFontFamilyText
Resting label, placeholder, disabled text, and trailing icon
colorContentTertiary
#8E959D
Label and underline, focused
colorContentAccent
#4B56C7
Floating label to value gap
spacingGapPositiveSm
6pt
Value
Value text and country code
colorContentPrimary
#0C1828
Gap after the country code
spacingGapPositive2xs
2pt
State
Label, value, and icon in the error state
colorContentStatusError
#C91726

Properties

The component’s Figma API, the properties you set on an instance. Useful to designers in Figma and to engineers mapping it to code props.

PropertyTypeValues
statevariantdefault, focused, typing, filled, disabled, error
labelTexttextInput label
labelValuetextPlaceholder
labelCountryCodetext+1
hasCountryCodebooleanFalse
hasDatebooleanFalse
hasIconTrailingbooleanTrue

Accessibility

Associate the label with the field programmatically so it is announced on focus. Surface validation errors as text, not a red underline alone, and keep the field tall enough for a comfortable 44pt touch target.

Reference: Apple Human Interface Guidelines and WCAG 2.5.5 Target Size.