Components

Input

Inputs take a short line of text. In Flint, an input always lives in a form field with a visible label, optional helper text and an error message.

Component tokens

Every value input uses, on every platform. Colors point at semantic tokens, so they follow light and dark on their own. The focus ring is shared by every component.

TokenCSSSwiftPoints atLightDark
input.radius --input-radius Flint.Component.inputRadius radius.control 8px 8px
input.height --input-height Flint.Component.inputHeight control.md 40px 40px
input.bg --input-bg Flint.Component.inputBg semantic.surface.default #ffffff #161b22
input.fg --input-fg Flint.Component.inputFg semantic.text.default #1e293b #c9d1d9
input.placeholder --input-placeholder Flint.Component.inputPlaceholder semantic.text.placeholder #334155 #aeb8c2
input.border --input-border Flint.Component.inputBorder semantic.border.control #64748b #6e7681
input.borderHover --input-border-hover Flint.Component.inputBorderHover semantic.border.controlHover #475569 #9aa4af
input.borderFocus --input-border-focus Flint.Component.inputBorderFocus semantic.border.focus #1550a0 #60a5fa
input.borderError --input-border-error Flint.Component.inputBorderError semantic.border.error #dc2626 #f87171
focus.ring.color --focus-ring-color Flint.Component.focusRingColor semantic.action.focusRing #1550a0 #60a5fa
focus.ring.width --focus-ring-width Flint.Component.focusRingWidth 2 2px 2px
focus.ring.offset --focus-ring-offset Flint.Component.focusRingOffset 2 2px 2px

Contrast

Measured on every build. See Contrast for every pairing.

PairingNeedsLightDark
input text7:114.63:1 Pass11.21:1 Pass
input placeholder7:110.35:1 Pass8.60:1 Pass
input edge3:14.76:1 Pass3.77:1 Pass
input hover edge3:17.58:1 Pass6.84:1 Pass
input focus edge3:17.82:1 Pass6.80:1 Pass
input error edge3:14.83:1 Pass6.25:1 Pass
focus ring on page3:17.47:1 Pass7.44:1 Pass
focus ring on default3:17.82:1 Pass6.80:1 Pass