Brutalist Textarea
Source-aligned draft Neo Textarea projection over Base Textarea
Availability:
@proto.ui/prototypes-brutalist@0.2.0is published under npmlatestas part of v0.2.0. Lifecycle: P-BRUTALIST-TEXTAREA and its inherited Base protocol remaindraft; that is historical release information. The preview below is the successor draft recipe and does not claim a new release or an active protocol guarantee.
brutalist-textarea-root is a direct visual composition over Base Textarea. It keeps the same single physical native <textarea> and adds no new interaction, state, event, accessibility, or ownership protocol.
Inherited Behavior
Section titled “Inherited Behavior”All behavior comes from base-textarea-root: defined controlled/uncontrolled value ownership, normalized valueChange and change signals, normalized IME composition events, composition-safe controlled restoration, native textarea prop projection, physical focus/blur methods, and textbox name/description accessibility projection.
The Brutalist prototype therefore retains Base’s contentless ownership boundary. It does not add children, form submission ownership, rich-text editing, status/live-region semantics, or any second physical control.
Visual Delta
Section titled “Visual Delta”The entire delta is visual:
- native resizing remains host- or consumer-owned, with no automatic height measurement
- 5px rounded geometry
- an 80px minimum height, 12px horizontal / 8px vertical padding and text-sm line height
- static main/main-foreground text selection
- a flat neutral surface
- ink text and border
- DM Sans 500 text without an outer shadow
These styles are applied directly to the Base-backed native textarea. They do not create another protocol layer or change the normalized event payloads.
References
Section titled “References”- Prototype: P-BRUTALIST-TEXTAREA
- Base protocol: P-BASE-TEXTAREA
- Source: packages/prototypes/brutalist/src/textarea
The recipe follows Neo 3306a802 Textarea. Placeholder/invalid styling remains outside the current projection; fresh browser pixels and native-host evidence remain pending.