El textarea inteligente que se adapta al contenido
autosize() hace eso: el textarea crece automáticamente mientras escribes.
El problema de rows() fijo
Si pones rows(3) y el usuario escribe 10 líneas, aparece una barra de desplazamiento. Es molesto tener que hacer scroll dentro de un campo pequeño.
💡 autosize() soluciona esto: el campo crece conforme escribes.
Cómo funciona autosize()
El textarea empieza pequeño y se va agrandando automáticamente mientras el usuario escribe. No hay scroll interno, todo el texto siempre es visible.
📍 Archivo: app/Filament/Resources/ArticuloResource.php
📝 ESTE ES EL CÓDIGO QUE VAMOS A APRENDER:
📍 Archivo: app/Filament/Resources/ArticuloResource.php
Textarea::make('contenido')
->label('Contenido del artículo')
->autosize(),
🔍 Vamos a entender línea por línea (como si fuera la primera vez):
Textarea::make('contenido')→ Creamos un textarea para el contenido del artículo. Los artículos pueden ser muy largos.
->label('Contenido del artículo')→ La etiqueta que indica al usuario qué escribir aquí.
->autosize()→ La magia: el textarea crece automáticamente mientras se escribe. No necesitas definir rows().
📊 Sin autosize vs Con autosize:
| Situación | Sin autosize | Con autosize |
|---|---|---|
| Texto corto | Espacio vacío (si rows alto) | Compacto |
| Texto largo | Scroll interno | Crece y muestra todo |
| Experiencia | Puede ser frustrante | Fluida y natural |
👆 autosize() da la mejor experiencia de usuario para texto largo.
Combinar autosize con límites
Puedes combinar autosize() con otros métodos:
Textarea::make('notas')
->autosize()
->minRows(2) // Empieza con 2 líneas mínimo
->maxRows(10), // No crece más de 10 líneas
💡 minRows y maxRows controlan los límites del autosize.
¿Cuándo usar autosize?
Úsalo cuando no sabes cuánto escribirá el usuario: comentarios, descripciones, notas. El campo se adapta a lo que necesiten.
💡 Es especialmente útil en formularios donde el texto varía mucho de un registro a otro.
📁 ¿Quieres ver el código completo del archivo? (opcional)
Esto es solo para que veas dónde va tu código. No necesitas memorizar todo esto:
// app/Filament/Resources/ArticuloResource.php
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('titulo')
->required(),
Textarea::make('contenido')
->label('Contenido del artículo')
->autosize()
->minRows(3)
->maxRows(15),
]);
}
🎉 ¿Qué aprendimos hoy?
->autosize()hace que el textarea crezca automáticamente- No aparece scroll interno, todo el texto es visible
- Puedes combinarlo con
minRows()ymaxRows() - Es la mejor opción para texto de longitud variable
¡Ahora tus textareas son inteligentes! Se adaptan al contenido como por arte de magia. Vamos con RichEditor en la siguiente lección.