ProductBrand
Join us
Foundations
  • Introduction
  • Colors
  • Typography
  • Icons
  • Illustrations
  • Logos
  • Shadows
Components
  • Accordion
  • Alert Dialog
  • Avatar
  • Badge
  • Button
  • Calendar
  • Card
  • Chart
  • Checkbox
  • Collapsible
  • Combobox
  • Context Menu
  • Date Picker
  • Dialog
  • Drawer
  • Dropdown Menu
  • Fluid Avatar
  • Hover Scroll Text
  • Input
  • Kbd
  • Popover
  • Progress Bar
  • Radio Group
  • Scroll Area
  • Select
  • Selectors
  • Separator
  • Separator Dot
  • Shimmer Text
  • Skeleton
  • Slider
  • Switch
  • Tabs
  • Textarea
  • Toast
  • Tooltip
Compositions
  • Empty State
  • File Attachment
  • Floating Bar
  • Input Banner
  • Markdown Editor
  • Media Controls
  • Product Feature Banner
  • Panels
  • Sidebar
  • Reasoning Trace
  • Pagination
  • Data Table
  • Breadcrumb
  • Thread Outline
Inline
  • Overview
  • Stat Tile
  • Metric Row
  • Comparison Table
  • Chart Card
  • Trend Tile
  • Cite
  • Custom
  • Agent skill

Textarea

Textareas capture multiline, free-form text such as messages, notes, and prompts.

Examples

With label

Prompt bar

Overview

The Textarea component is a styled native <textarea> that shares the Input's sizes, focus states, and validation styling. Use it whenever content spans more than one line.

tsx
import { Textarea } from "@rogo-technologies/ui/textarea";

<Textarea placeholder="Your message" />;

Usage

Autogrow

Set autoGrow to let the field grow with its content instead of scrolling. Growth is driven by CSS field-sizing: content and animated through a measured height, so it works and transitions smoothly in every browser. Autogrow disables manual resizing.

tsx
<Textarea autoGrow placeholder="Write something long..." />

Cap the growth with a max-h-* class and restore scrolling past the cap:

tsx
<Textarea autoGrow className="max-h-40 overflow-y-auto" />

In input groups

InputGroupTextarea drops a Textarea into an InputGroup, the same way InputGroupInput does for single-line fields. The group owns the border and focus ring; combine it with block-aligned addons for prompt-bar layouts like the example above.

tsx
<InputGroup size="lg">
  <InputGroupTextarea autoGrow rows={1} placeholder="Ask anything..." />
  <InputGroupAddon align="block-end">{/* controls */}</InputGroupAddon>
</InputGroup>

API

Textarea

PropTypeDefaultDescription
size"sm" | "md" | "lg""md"Visual size: text scale, padding, and minimum height.
autoGrowbooleanfalseGrows with content (animated). Disables manual resize.
ghostbooleanfalseMinimal style with no border or background. For inline editing.
noBordersbooleanfalseRemoves border but keeps background and focus ring.
classNamestring-Additional CSS classes.

Additionally, the Textarea accepts all standard HTML <textarea> attributes (placeholder, rows, value, onChange, disabled, aria-invalid, etc.).

InputGroupTextarea

Renders a Textarea configured to blend into an InputGroup (no border, transparent background, no focus ring of its own) and marks itself as the group's control so the group reacts to focus, invalid, and disabled state. Accepts all Textarea props except size, ghost, and noBorders, which the group controls.

Guidelines

Do

  • Use a Textarea whenever input can span multiple lines: messages, descriptions, prompts
  • Use autoGrow for chat and prompt fields so the field tracks its content
  • Cap autogrow fields with max-h-* and overflow-y-auto so long content scrolls
  • Pair textareas with labels for accessibility, and use type-small text-tertiary for label styling

Don't

  • Don't use a Textarea for single-line values. Use an Input instead
  • Don't set a fixed height on an autoGrow field, since it defeats the content sizing
  • Don't use ghost in standard forms, since it lacks the visual boundary users expect
PreviousTabs
NextToast
Made in NYC© 2026 Rogo Technologies Inc.

Design at Rogo

We’re redesigning an entire industry. Come design it with us.

See open roles

Design at Rogo

  • How we workThe mission of design at Rogo, and the open roles
  • About RogoThe company and the product