/v1.0

TextField

TextField renderiza un <input type="text"> de una sola línea dentro de un contenedor estilizado. Es el campo más usado en formularios. Atributos nativos adicionales del input pueden reenviarse via rest-props spread.

Props

| Prop | Tipo | Requerido | Por defecto | Descripción | |------|------|-----------|-------------|-------------| | value | string | Sí | — | Valor de texto actual. | | onChange | (value: string) => void | Sí | — | Llamado con la nueva cadena en cada tecla presionada. | | label | string | No | — | Etiqueta mostrada sobre el input. | | description | string | No | — | Texto de ayuda mostrado debajo del input. | | placeholder | string | No | — | Texto placeholder mostrado dentro del input cuando está vacío. | | disabled | boolean | No | — | Deshabilita el input. | | containerStyle | React.CSSProperties | No | — | Estilos del div contenedor raíz. | | inputWrapperStyle | React.CSSProperties | No | — | Estilos del div wrapper interior que rodea al <input>. | | inputStyle | React.CSSProperties | No | — | Estilos aplicados directamente al elemento <input>. | | labelStyle | React.CSSProperties | No | — | Estilos del elemento de etiqueta. | | descriptionStyle | React.CSSProperties | No | — | Estilos del párrafo de descripción. | | className | string | No | — | Clase CSS del div wrapper interior. | | id | string | No | — | Atributo id del <input>. |

Uso

Básico

import React, { useState } from 'react';
import TextField from '@/components/fields/TextField';

export default function Example() {
  const [name, setName] = useState('');

  return (
    <TextField
      label="Nombre completo"
      value={name}
      onChange={setName}
      placeholder="Ingresá tu nombre completo"
    />
  );
}

Campo deshabilitado con descripción

<TextField
  label="Nombre de usuario"
  value={username}
  onChange={setUsername}
  disabled={true}
  description="El nombre de usuario no puede cambiarse una vez establecido."
/>