Brutalist Textarea
基于 Base Textarea 的圆角中性表面投影
可用状态:
@proto.ui/prototypes-brutalist@0.2.0已通过 npmlatest随 v0.2.0 发布。生命周期:P-BRUTALIST-TEXTAREA 及其继承的 Base 协议仍为draft;以上为历史发布信息;下方预览使用后继draft recipe,不代表新版本已发布或active协议保证。
brutalist-textarea-root 是 Base Textarea 上的直接视觉组合。它保留同一个物理原生 <textarea>,不新增 interaction、state、event、accessibility 或 ownership 协议。
全部行为都来自 base-textarea-root:明确的受控/非受控 value 所有权、归一化的 valueChange 与 change signal、归一化的 IME composition event、composition-safe 受控值恢复、原生 textarea props 投影、物理 focus/blur method,以及 textbox name/description 无障碍投影。
因此 Brutalist 原型保留 Base 的 contentless 所有权边界。它不增加 child、form submission 所有权、rich-text editing、status/live-region 语义,也不创建第二个物理控件。
全部差量都属于视觉层:
- 原生尺寸调整仍由 host 或 consumer 拥有,不进行自动高度测量
- 5px 圆角几何
- 最小高80px、水平12px/垂直8px内边距及text-sm行高
- 静态main/main-foreground文字选择
- 平涂中性表面
- ink 文本与边框
- DM Sans 500 文本,无外侧阴影
这些样式直接应用到由 Base 支撑的原生 textarea,不会建立新的协议层,也不会改变归一化事件载荷。
Recipe参考Neo 3306a802 Textarea。Placeholder/invalid样式仍不在当前投射范围;新浏览器像素与原生宿主证据待完成。