components / 04

marked input

the field stays native. cheez draws intent, focus, and correction.

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

playground

0 characters
we only use this for replies
size
type
character
focus mark
hover mark
focus ink
hover ink
field
<MarkedInput
  type="email"
  label="email"
  placeholder="you@example.com"
  inputSize="medium"
  mark="rounded-box"
  interactionMark="short-underline"
  character="rushed"
  markColor="#8f74ff"
  interactionColor="#35d9ff"
  revealable={false}
  error={undefined}
/>
behavior

states

native behavior, human feedback
idle
hover
focus
filled
invalid
enter a valid email
disabled
read only
adornments
large
patterns

common fields

ready for real forms
browser email autofill stays available
use show or hide without losing focus
composition

small form

labels and messages wire themselves
used for project updates
reference

api

all native input props are forwarded
partproptypedefaultpurpose
InputlabelReactNodeconnected visible label
InputdescriptionReactNodeaccessible helper text
InputerrorReactNodepersistent invalid state
Inputvaluestring | numbercontrolled native value
InputdefaultValuestring | numberuncontrolled initial value
InputonChangefunctionnative change handler
InputinputSize"small" | "medium" | "large""medium"control scale
InputmarkCheezType"rounded-box"focus mark
InputinteractionMarkCheezType"short-underline"hover mark
InputerrorMarkCheezType"wavy-underline"invalid mark
InputmarkColorstring"#ff4f2e"focus ink
InputinteractionColorstringmarkColorhover ink
InputerrorColorstring"#ff5fa2"invalid ink
Inputcharacter"calm" | "rushed" | "chaotic""rushed"drawing personality
Inputmarkedbooleanundefinedcontrolled mark preview
Inputfilledbooleanautooverride filled presentation
InputleadingReactNodedecorative leading content
InputtrailingReactNodedecorative trailing content
Inputrevealablebooleanfalseadd a password visibility toggle
InputshowPasswordLabelstring"show password"accessible reveal label
InputhidePasswordLabelstring"hide password"accessible conceal label
Inputdisabledbooleanfalsenative disabled state
InputreadOnlybooleanfalsenative read-only state

behavior notes

  • the rendered control is always a native input
  • hover uses a brief low-priority mark
  • focus draws a complete enclosure
  • invalid feedback persists until the error is removed
  • labels, descriptions, and errors receive connected ids
  • disabled and read-only fields never animate
  • controlled and uncontrolled values are both supported
  • password reveal keeps pointer focus in the native field
  • email, URL, and password autocomplete remains native