Skip to content
Components

Field

Form field wrapper for labels, descriptions, errors, and validity state.

Composition

Labeled control

  • <FieldSet>
    • <FieldLegend />
    • <FieldGroup>
      • <Field>
        • <FieldLabel />
        • <FieldControl>
          • render prop
            • <Input />
          </FieldControl>
        • <FieldDescription />
        • <FieldError />
        </Field>
      • <FieldSeparator />
      </FieldGroup>
    </FieldSet>

Choice card

  • <Field>
    • <FieldLabel>
      • <FieldItem>
        • <Checkbox />
        • <FieldContent>
          • <FieldTitle />
          • <FieldDescription />
          </FieldContent>
        </FieldItem>
      </FieldLabel>
    </Field>

Installation

The Control UI source installs this primitive from src/registry/sources/control-ui/ui/field.tsx.

Registry command
See registry manifest

Dependencies

Raw code

Primary installed source

src/registry/sources/control-ui/ui/field.tsx

Knobs

Typed custom properties the recipe paints with. Set one on the root — style, a utility class, or a skin — and every slot inherits it.

--cui-field-* · 15 knobsHow the cascade resolves
--cui-field-radius<length-percentage>var(--nest-radius, var(--radius-control))
--cui-field-background<color>var(--control-fill)
--cui-field-hover-background<color>var(--hover-fill)
--cui-field-affordance-background<color>transparent
--cui-field-affordance-shadow*0 0 transparent
--cui-field-affordance-foreground<color>var(--muted-foreground)
--cui-field-affordance-hover-background<color>var(--hover-fill)
--cui-field-foreground<color>var(--foreground)
--cui-field-border-color<color>var(--control-rim)
--cui-field-border-width<length>var(--control-rim-width)
--cui-field-shadow*var(--shadow-inset)
--cui-field-backdrop-filter*blur(0px)
--cui-field-height<length-percentage>var(--control-h-md)
--cui-field-padding-inline<length-percentage>var(--padding-x)
--cui-field-font-size<length-percentage>var(--text-body)