Form Inputs

FOLIO / P0 · 4 DIRECTIONS

A standardized gb-input / gb-textarea / gb-select set. The --hair-control token (3:1) is the new WCAG 1.4.11 control-border guarantee. All four directions use it. Each shows default / focus / disabled / error states with icon+text on error (no color-only signaling). Same canonical tokens; four incompatible visual treatments.

Direction A — Underline only

A · line

The minimal treatment — a single hairline under the field, no fill, no surrounding box. Maximum paper; minimum chrome. Focus swaps the hairline from --hair-control to --green and bumps its weight 1→2 px. Best for clean forms where the form itself is quiet and the page chrome is loud; weakest where users need strong affordance ("this is editable") at a glance.

Default
Focus (auto)
Disabled
Error (icon + text)
Textarea
Select

Direction B — Boxed with hairline

B · box

A raised field with a 1 px --hair-control border and 4 px radius. Most familiar — a textbook form control. Focus swaps border + adds a 2 px --green ring outside the box. Error swaps border to --err and shows icon+text below. Best general-purpose choice; trades the engraved-paper minimalism of A for unambiguous affordance.

Default
Focus (auto)
Disabled
Error (icon + text)
Textarea
Select

Direction C — Boxed + eyebrow label

C · box-eyebrow

A boxed field with a JetBrains-Mono eyebrow label sitting inside the top edge — "CASE NAME", "REPORTER", etc. The label is part of the field's frame, not above it; required fields get a red * in the eyebrow. Strongest signal that "this is a labeled form field"; uses more vertical space and trades visual lightness for affordance density. Good for dense, vertical-stacked forms.

Default
Case name
Focus (auto)
Reporter citation
Disabled
Citation key
Error (icon + text)
Year
Textarea
Quoted passage
Select
Bluebook edition

Direction D — Sunken (recessed)

D · sunken

A field set inside a --sunken surface, with the input itself on --paper + 1px inset hairline. The form "carves into" the page — most paper-native of the four. Wraps all three controls in a single sunken region with a top-level eyebrow label. Best where the form is part of a larger block of sunken content (a settings card, an integration panel); risks looking "embedded" when the field should feel like a free-standing input.

Citation source
Default
Focus (auto)
Disabled
Error (icon + text)
Textarea
Select

What changes between directions

A · underline: Single hairline under field. Maximum paper, minimum chrome. Familiar to anyone who's filled out a paper form.
B · box: raised field with 4 px radius + 1 px border. Most textbook. Best general-purpose.
C · box-eyebrow: Boxed field with the label sitting inside the top edge as a JetBrains-Mono eyebrow. Highest density / strongest labeled-field affordance.
D · sunken: Fields carved into a --sunken surface. Most paper-native; works best as part of a larger sunken block.

All four use --hair-control (3:1) for the control boundary, --green for the focus ring, and --err + an icon + text for the error state — no color-only signaling. The global :focus-visible baseline from the Phase 5c recommendation is applied throughout. Disabled uses opacity 0.55 (1.4.3-exempt) plus cursor: not-allowed.