From ad38d636265ff442abe50b4922e35c6b4e75284c Mon Sep 17 00:00:00 2001 From: Yif <877193178@qq.com> Date: Mon, 7 Sep 2026 21:18:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(client):=20ellipsize=20the=20composer=20pla?= =?UTF-8?q?ceholder=20=E2=80=94=20one=20docked=20line,=20two=20hero=20line?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A long placeholder wrapped and clipped against the docked composer's 36px floor; the hero's 52px floor fits exactly two lines. --- .../src/client/skeleton/InputBar.module.css | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css b/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css index 1287118622..abd5911c90 100644 --- a/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css +++ b/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css @@ -196,11 +196,16 @@ } /* figma 34:10434: #ADB2B8 light / #81858C dark — the caption pair exactly. - Insets mirror .input's pads (the other right 4px sits on .scroll). */ + Insets mirror .input's pads (the other right 4px sits on .scroll). One + ellipsized line: a wrapped second line would clip against the docked + 36px floor. */ .placeholder { position: absolute; inset: 4px 8px auto 14px; color: var(--dsw-alias-label-caption); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; pointer-events: none; user-select: none; } @@ -220,6 +225,16 @@ min-height: 52px; } +/* The hero's 52px floor fits two lines, so its placeholder clamps at two + instead of the docked single line. */ +.hero .placeholder { + white-space: normal; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + line-clamp: 2; +} + /* Toolbar: attach + Plan + Read-only on the left; model + send on the right (figma Input_Bottom chrome). */ .row {