Ai Input

用来写给 AI 的内容,也可以附上文件。宽度跟着父级走:不到 560px 时文字在上、按钮在下,最窄 374px,最宽 832px。

import 'genv4/ai-input/ai-input.js';

没有文字时发送按钮不可点。点左侧加号可以上传文件。

<md-ai-input></md-ai-input>

出现清除按钮,发送按钮可点。

<md-ai-input value="Help me find travel inspiration for Italy on a budget."></md-ai-input>

文字变高,超过 108px 后在框内滚动。

<md-ai-input listening></md-ai-input>

按钮变为停止,清除禁用,文字不能改。回复结束时由页面把 thinking 设回 false。

<md-ai-input thinking value="Help me find travel inspiration for Italy on a budget."></md-ai-input>

父级窄于 560px 时换成窄布局。

下表适用于 <md-ai-input>。

属性HTML 属性类型默认值说明
valuevaluestring''输入框里的文字。只有空格时视为没有文字。
placeholderplaceholderstring'Ask anything or search...'没有文字时的占位内容。听写中改为 i'm listening...。
disclaimerdisclaimerstring'AI can make mistakes and may not be suitable for some minors.'输入框下方的说明。
thinkingthinkingbooleanfalse发送进行中。按钮变为停止,文字不可改,清除禁用。回复结束时由页面设回 false。
listeninglisteningbooleanfalse听写外观。页面可以设置,麦克风点击也会切换。组件不调用语音接口。
filesreadonly File[]undefined已选择的文件。只读,选择或移除文件时更新。
EventTypeBubblesComposedDescription
sendCustomEventYesYes点击发送。detail 含 value 和 files
interruptCustomEventYesYes发送中点击停止
files-changeCustomEventYesYes已选文件变化。detail 含 files

用组件 CSS 变量覆盖。下面只列出 Sass 里标记为支持的变量。

变量默认值
--md-ai-input-empty-send-colorhsl(from var(--md-sys-color-on-surface, #1c1b1b) h s l / 10%)
--md-ai-input-empty-send-icon-color--md-sys-color-on-surface
--md-ai-input-field-color--md-sys-color-surface
--md-ai-input-field-height48px
--md-ai-input-field-shape24px
--md-ai-input-file-container-color--md-sys-color-secondary-container
--md-ai-input-file-height48px
--md-ai-input-file-icon-background-color--md-sys-color-surface
--md-ai-input-file-label-color--md-sys-color-on-secondary-container
--md-ai-input-file-shape24px
--md-ai-input-file-width162px
--md-ai-input-focus-outline-color--md-sys-color-primary
--md-ai-input-frame-shape--md-sys-shape-corner-medium
--md-ai-input-image-shape--md-sys-shape-corner-medium
--md-ai-input-image-size96px
--md-ai-input-input-text-color--md-sys-color-on-surface
--md-ai-input-input-text-font--md-sys-typescale-body-medium-font
--md-ai-input-input-text-line-height--md-sys-typescale-body-medium-line-height
--md-ai-input-input-text-size--md-sys-typescale-body-medium-size
--md-ai-input-input-text-weight--md-sys-typescale-body-medium-weight
--md-ai-input-listening-field-color--md-sys-color-primary-container
--md-ai-input-listening-outlinelinear-gradient(90deg, #5c8dff, #a079ff, #d06ad6, #eb6296, #ff7257, #eb6296, #d06ad6, #a079ff, #5c8dff)
--md-ai-input-max-width832px
--md-ai-input-menu-container-color--md-sys-color-surface-container
--md-ai-input-mic-backgroundlinear-gradient(90deg, #5c8dff, #a079ff, #d06ad6)
--md-ai-input-mic-icon-color--md-sys-color-surface
--md-ai-input-min-width374px
--md-ai-input-narrow-frame-height112px
--md-ai-input-narrow-send-size40px
--md-ai-input-send-container-color--md-sys-color-primary
--md-ai-input-send-icon-color--md-sys-color-on-primary
--md-ai-input-send-size48px
--md-ai-input-supporting-text-colorhsl(from var(--md-sys-color-on-surface, #1c1b1b) h s l / 38%)
--md-ai-input-supporting-text-font--md-sys-typescale-body-small-font
--md-ai-input-supporting-text-line-height--md-sys-typescale-body-small-line-height
--md-ai-input-supporting-text-size--md-sys-typescale-body-small-size
--md-ai-input-supporting-text-weight--md-sys-typescale-body-small-weight
--md-ai-input-text-max-height108px
开发指南
快速开始主题问题与支持
Components
Ai Input提示横幅 Alert banner按钮 ButtonCheckboxChipsDialogsFloating action button (FAB)图标 Icon图标按钮 Icon ButtonLists菜单 MenuMenus弹窗 Modal步骤条 Process stepperProgress indicatorsRadioRipple搜索栏 Search BarSelectSlidersSwitchTabsText field文本输入 Text Input