Forms and selection · stable · MIT

Field

One labelled control with descriptions, validation, and layout state.

Install editable source

Add Field

Base UI / canonicalnpx shadcn@latest add https://gummyui.dev/r/gummy-field.json

No package dependency beyond React. Shared Gummy material is resolved automatically.

Behavior contract

Semantics before surface

Semantics

Generated IDs associate label, description, and alert feedback.

Keyboard

Follows the composed control.

System support

Light and dark themes, logical RTL layout, reduced motion, responsive content, and forwarded public refs.

Source-derived reference

Anatomy and public API

Exported anatomy

These public React parts are read directly from the canonical source during the documentation build.

  • GummyField

Prop contracts

GummyFieldProps

Composes Omit<React.HTMLAttributes<HTMLDivElement>, "children"> & { children: React.ReactElement<GummyFieldControlProps>; label: React.ReactNode; description?: React.ReactNode; errorMessage?: React.ReactNode; successMessage?: React.ReactNode; required?: boolean; optional?: boolean; disabled?: boolean; readOnly?: boolean; orientation?: "vertical" | "horizontal"; density?: "default" | "compact"; controlId?: string; }

Troubleshooting

Check behavior before surface.

Implementation decisions

When to use Field

Use a field wrapper to keep one form control, its visible label, guidance, requirement, and validation message in a coherent relationship. Do not move essential instructions into a placeholder, and keep server errors attached after submission so recovery is obvious. Decide when help text should be read automatically and when it should remain discoverable on demand. Test optional and required states, multiple errors, autofill, password managers, long translations, zoom, and focus after a failed submit.

Live product source

Inspect the canonical states

The Component Lab exercises real source across default, focus, disabled, responsive, dark, reduced-motion, and RTL contexts.

Open the live Component Lab

Interactive inspection

Try Field in context

Load the real component preview when you are ready to interact with its responsive, theme, and direction controls.

Editable source

Read before you install

Canonical Base UI or native source

The registry payload stays off the initial page request.