arieare ds

components / global

input field

InputField wraps a native HTML input in the shared DS single-line container — cream surface, dark ink border, offset shadow, and 2px radius — and adds an optional label above and an optional leading icon slot inside the bar. It is a controlled or uncontrolled primitive that forwards all standard input attributes to the underlying element.

field value
group global
import @arieare/ds
source packages/ds/src/components/input-field/InputField.tsx
packages/ds/src/components/input-field/input-field.css

with label + icon

bare — no label, no icon

component tokens

token source description
--input-field-bg @arieare/ds/input-field.css Input bar background. Defaults to --bkg-2 (cream surface).
--input-field-border @arieare/ds/input-field.css Input bar border color. Defaults to --ink-1 (primary dark ink).
--input-field-shadow @arieare/ds/input-field.css Input bar box-shadow. Defaults to 1px 1px 0px --ink-2 (muted offset shadow).
--input-field-ink @arieare/ds/input-field.css Input value text color. Defaults to --ink-1.
--input-field-placeholder-ink @arieare/ds/input-field.css Placeholder text color. Defaults to --ink-3 (muted).
--input-field-label-ink @arieare/ds/input-field.css Label text color. Defaults to --ink-1.
--input-field-icon-ink @arieare/ds/input-field.css Leading icon color. Defaults to --ink-2.
--btn-h / --rds-interact / --p-size-6 / --p-size-8 @arieare/ds/tokens.css Shared sizing tokens: container height (20px), border-radius (2px), bar padding/gap (6px), label–bar gap (8px).
--type-p-base / --type-p-small / --type-p-base-feature-settings @arieare/ds/tokens.css Input uses --type-p-base (14px/20px); label uses --type-p-small (12px/18px). Both apply the shared OpenType feature settings.

props

prop type default description
label ReactNode Optional label rendered above the input bar and linked via htmlFor.
icon ReactNode Optional leading icon rendered inside the bar before the input text.
id string Input id. Auto-generated via React.useId() when omitted; links the label htmlFor.
placeholder string Placeholder text shown in muted ink when the input has no value.
value / onChange string / ChangeEventHandler Controlled value contract. Use defaultValue for uncontrolled usage.
...input attributes InputHTMLAttributes<HTMLInputElement> All standard input attributes (type, disabled, readOnly, etc.) forwarded to the underlying input element.