Textarea
Yazdıklarınıza göre en az ve en çok satır sayısı arasında akıcı biçimde büyüyen çok satırlı metin; sayaçlar, doğrulama ve gönderme kısayolu içerir.
Grows with your text, then scrolls.
pnpm dlx shadcn@latest add https://hextaui.com/r/textarea.jsonBileşeni, HextaUI tema token'larını ve bileşenin bağımlı olduğu tüm HextaUI bileşenlerini ekler.
Henüz eklemediyseniz tema token'larını global CSS'inize ekleyin.
Bağımlılıkları yükleyin.
pnpm add @base-ui/react class-variance-authority cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/textarea.tsx components/ui/input.tsx components/ui/number-flow.tsx lib/motion.ts İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Kutu metninizle büyür; zıplamak yerine her yeni satıra yumuşayarak minRows'tan maxRows'a kadar, sonra kayar. Yazmak animasyon yüzünden asla gecikmez.
Kısayolla gönder
submitOnShortcut formu ⌘ + Enter veya Ctrl + Enter ile gönderir. Tek başına Enter yine yeni satır başlatır.
Karakter sayısı
Bir Field içinde maxLength ile FieldCounter yazdıkça sayar ve sınıra ulaşınca dürter.
Satırlar
minRows ve maxRows büyümenin nerede başlayıp bittiğini belirler.
Sabit boyut
autoResize={false} dikey yeniden boyutlandırma tutamacıyla sabit yüksekliği korur.
Durumlar
Devre dışı, salt okunur ve geçersiz. Geçersiz textarea'lar form gönderimi başarısız olduğunda sallanır.
Sağdan sola
Metin, yer tutucu ve imleç okuma yönünü izler.
| Tuş | Action |
|---|---|
| Enter | Yeni bir satır başlatır. |
| ⌘Enter | submitOnShortcut ile formu gönderir. Windows ve Linux'ta Ctrl + Enter. |
FieldLabelveyaaria-labelile etiketleyin.- Dokunmatik ekranlarda metin en az 16px'tir, böylece odaklanınca iOS yakınlaştırmaz.
- Bir giriş yöntemi kompozisyon yaparken kısayol bekler; böylece bir Japonca veya Çince sözcüğü onaylamak mesajı asla göndermez.
- Azaltılmış harekette kutu anında yeniden boyutlanır.
| Prop | Tür | Varsayılan |
|---|---|---|
autoResizeSabit yükseklik yerine metinle birlikte büyür. | boolean | true |
minRows | number | 3 |
maxRows | number | 10 |
submitOnShortcutÜst formu ⌘/Ctrl + Enter ile gönderir. | boolean | false |
shakeForm gönderimi onu geçersiz bulduğunda sallanır. | boolean | true |
| Öznitelik | Açıklama |
|---|---|
data-slot="textarea" | Textarea. |
data-autoresize | Metniyle büyüdüğünde bulunur. |
--textarea-min-rows / --textarea-max-rows | minRows ve maxRows değerlerinden ayarlanır. |
- InputÜç boyutlu, geçersiz ve salt okunur durumları, yerel doğrulama stilleri ve telefonların asla yakınlaştırmaması için 16px dokunmatik yazı tipi olan bir metin girişi.
- useAutosizeBir textarea'yı yazdıklarınıza göre en küçük ve en büyük yüksekliği arasında büyütür; metne hiç dokunmadan her değişikliği canlandırır.
- useComposedRefKendi öğenize bir ref tutarken, üst bileşenin ilettiği her ref'e de yönlendirmeyi sürdürür.
- useInvalidShakeGönderme denemesi bir form kontrolünü geçersiz bulduğunda onu sallar; biri hâlâ yazarken asla sallamaz.
- CalendarTekli, aralık ve çoklu seçim için, kayan aylar, aralık önizlemeleri ve dokunmaya uygun boyutta günler içeren bir tarih ızgarası.
- Checkboxİşareti çizilerek beliren, belirsiz üst öğeleri, grupları ve hover durumunu paylaşan etiketleri olan bir onay kutusu.
Kullanıldığı bloklar
Textarea üzerine kurulan bloklar.
- TeamBir yapay zeka ürününün çalışma alanı ayarları için ekip üyeleri ve davetler. Yazdığınız davetleri önizleyen bir koltuk ölçeri, yapıştırılan listeyi denetlenmiş çiplere çeviren bir davet kutusu, rolleri, arama, filtre ve sıralaması olan üyeler, yeniden gönderme bekleme süreli ve kopyalanabilir bağlantılı bekleyen davetler, yazılı onaylı sahiplik devri ve geri alınabilir kaldırma.
- Tool CallsBir ajanın ne yaptığını adım başına bir satırla gösterin. Okuma ve aramalar kısa bir özete katlanırken düzenlemeler, komutlar, onaylar ve hatalar görünür kalır. Her adım gerçek bir görünüme açılır: dosya, fark, terminal ya da sonuçlar. Onay yerine gerekçe verme seçeneği dahil, her AI SDK araç durumu kapsanır.