components / 05

marked textarea

longer thoughts get room to grow without losing their human edge.

shadcnnpx shadcn@latest add berkantay/cheez/marked-textarea
live

playground

0 / 280
plain text, up to 280 characters0 / 280
size
resize
character
focus mark
hover mark
focus ink
hover ink
behavior
<MarkedTextarea
  label="message"
  placeholder="write something human..."
  textareaSize="medium"
  autoGrow={true}
  resize="vertical"
  maxLength={280}
  showCount={true}
  mark="rounded-box"
  interactionMark="short-underline"
  character="rushed"
  error={undefined}
/>
behavior

states

one native textarea throughout
idle
hover
focus
filled
invalid
add a little more detail
with count
18 / 120
auto grow
disabled
read only
reference

api

all native textarea props are forwarded
partproptypedefaultpurpose
TextarealabelReactNodeconnected visible label
TextareadescriptionReactNodeaccessible helper text
TextareaerrorReactNodepersistent invalid state
Textareavaluestringcontrolled native value
TextareadefaultValuestringuncontrolled initial value
TextareaautoGrowbooleanfalsegrow with content
TextareamaxRowsnumber10auto-grow height cap
Textarearesize"vertical" | "none""vertical"manual resize mode
TextareashowCountbooleanwith maxLengthshow current length
TextareamaxLengthnumbernative length limit
TextareatextareaSize"small" | "medium" | "large""medium"control scale
TextareamarkCheezType"rounded-box"focus mark
TextareainteractionMarkCheezType"short-underline"hover mark
TextareaerrorMarkCheezType"wavy-underline"invalid mark
Textareacharacter"calm" | "rushed" | "chaotic""rushed"drawing personality
Textareadisabledbooleanfalsenative disabled state
TextareareadOnlybooleanfalsenative read-only state

behavior notes

  • the rendered control is always a native textarea
  • auto-grow is optional and capped by maxRows
  • character count follows controlled and uncontrolled values
  • invalid feedback persists until error is removed
  • labels, descriptions, and errors receive connected ids
  • disabled and read-only fields never animate