Files
TrueGrowth/docs/AI_INPUT_COMPOSER_SHARED_SHELL_LESSONS.md

1.4 KiB
Raw Blame History

AI 输入框共享壳与抽屉复用经验

更新日期2026-05-17

背景

画布底部 AI 输入框和对话抽屉输入框看起来很像,但它们的职责并不一样。

  • 画布侧要承载固定定位、灵感板、选择监听、工作流等上下文。
  • 抽屉侧只需要对话输入、选中内容预览、附件、模型和参数控制。

如果直接复用整块 AIInputBar,会把画布业务一并拖进去,耦合会越来越重。

架构变更

  • 抽出 AIInputComposerShell,只保留输入壳的布局和插槽,不承载业务逻辑。
  • 画布侧继续使用 variant="canvas",保留原有业务能力。
  • 抽屉侧使用 variant="drawer",复用同一套壳和控件层。
  • 抽屉输入框改成纯 textarea不再包一层额外的输入面板。
  • 删除全局 textarea:hover / textarea:focus 橙色描边,避免污染所有输入场景。

经验规则

  • 共享的是布局壳,不是整块业务组件。
  • 同源输入框优先用 variant 区分差异,不要复制两套 wrapper。
  • 全局 textarea 样式不要写 hover / focus 边框,容易制造“内层框”。
  • 需要统一视觉时优先保留单一主容器边界textarea 只保留无边框状态。
  • 结构复用比纯 CSS 修补更稳,后续抽屉和画布都更容易继续收敛。

验证

  • EnhancedChatInput 单测通过
  • drawnix:typecheck 通过
  • 抽屉输入框内层橙色边框已移除