Saltar al contenido
Logic2BUI

Buscar en la documentación

Busca componentes y documentación

Nuevo
Menú

Campo de formulario

Primitivas componibles para distribuir un campo de formulario sin depender de react-hook-form.

This is your public display name.

Instalación

npx logic2b@next add field

Uso

import { Field, FieldDescription, FieldError, FieldGroup, FieldLabel } from "@/components/ui/field"

<FieldGroup>
  <Field>
    <FieldLabel htmlFor="username">Nombre de usuario</FieldLabel>
    <Input id="username" placeholder="logic2b" />
    <FieldDescription>Este será tu nombre público.</FieldDescription>
  </Field>
  <Field>
    <FieldLabel htmlFor="email">Correo electrónico</FieldLabel>
    <Input id="email" type="email" aria-invalid />
    <FieldError>Introduce una dirección de correo válida.</FieldError>
  </Field>
</FieldGroup>

Usa field en formularios sencillos o para envolver un único control sin react-hook-form. Si necesitas conectar la validación mediante esquemas con el estado de los campos, usa el componente formulario, basado en react-hook-form y zod.

Ejemplos

Horizontal

Sitúa un control junto a su etiqueta y descripción.

Require a second step when signing in.

Conjunto de campos

Agrupa campos relacionados bajo un FieldLegend.

Shipping address

Where should we send your order?

Playground interactivo

Edita las propiedades del componente y revisa el JSX exacto antes de copiarlo. La vista previa se carga solo cuando esta sección entra en pantalla.

JSX generado
<FieldGroup>
  <Field
    orientation="vertical"
  >
    <FieldLabel
      htmlFor="playground-email"
    >Email</FieldLabel>
    <input
      id="playground-email"
      type="email"
      defaultValue="team@logic2b.com"
      className="h-9 rounded-md border bg-background px-3 text-sm"
     />
    <FieldDescription>Used for release notifications.</FieldDescription>
  </Field>
</FieldGroup>

Referencia de API

Generada a partir de las exportaciones públicas de TypeScript en src/ui/field.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.

Ver JSON

Field

Componente
Props: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>
PropiedadTipoObligatoriaValor predeterminadoDescripción
orientationnull | "horizontal" | "vertical" | "responsive"No"vertical"—

FieldLabel

Componente
Props: React.ComponentProps<typeof Label>

FieldDescription

Componente
Props: React.ComponentProps<"p">

FieldError

Componente
Props: React.ComponentProps<"div"> & { errors?: Array<{ message?: string } | undefined> }
PropiedadTipoObligatoriaValor predeterminadoDescripción
errorsArray<{ message?: string } | undefined>No——

FieldGroup

Componente
Props: React.ComponentProps<"div">

FieldSeparator

Componente
Props: React.ComponentProps<"div">

FieldSet

Componente
Props: React.ComponentProps<"fieldset">

FieldLegend

Componente
Props: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }
PropiedadTipoObligatoriaValor predeterminadoDescripción
variant"legend" | "label"No"legend"—

FieldContent

Componente
Props: React.ComponentProps<"div">

FieldTitle

Componente
Props: React.ComponentProps<"div">

Contrato de accesibilidad

Comportamiento legible por máquinas y responsabilidades de quien integra field. Los detalles normativos conservan el texto canónico del registro.

Ver JSON
Soporte
Comportamiento implementado
Patrón
labelled form field
HTML fieldset/label

Semántica incorporada

  • Field labels, descriptions and validation messages can be associated with the nested native control.

Responsabilidades de integración

  • Connect help and error text with aria-describedby and set aria-invalid only while the value is invalid.