This is your public display name.
Instalación
npx logic2b@next add fieldUso
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.
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.
<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>Used for release notifications.
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.
Field
ComponenteProps: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
orientation | null | "horizontal" | "vertical" | "responsive" | No | "vertical" | — |
FieldLabel
ComponenteProps: React.ComponentProps<typeof Label>FieldDescription
ComponenteProps: React.ComponentProps<"p">FieldError
ComponenteProps: React.ComponentProps<"div"> & { errors?: Array<{ message?: string } | undefined> }| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
errors | Array<{ message?: string } | undefined> | No | — | — |
FieldGroup
ComponenteProps: React.ComponentProps<"div">FieldSeparator
ComponenteProps: React.ComponentProps<"div">FieldSet
ComponenteProps: React.ComponentProps<"fieldset">FieldLegend
ComponenteProps: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
variant | "legend" | "label" | No | "legend" | — |
FieldContent
ComponenteProps: React.ComponentProps<"div">FieldTitle
ComponenteProps: 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.
- 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.