ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

FAST Components 的 NumberFieldAppearance 类型:`fast-number-field` 的 filled 与 outline 外观机制详解

FAST Components 的 NumberFieldAppearance 类型:`fast-number-field` 的 filled 与 outline 外观机制详解 前端UI组件【免费下载链接】fastThe adaptive interface system for modern web experiences.项目地址https://gitcode.com/gh_mirrors/fa/fast点击查看免费下载导读本文围绕 FAST 组件体系microsoft/fast-components中NumberFieldAppearance类型展开讲解fast-number-field数字输入组件所支持的filled填充式与outline描边式两种视觉外观的定义、用法与底层实现。你将掌握如何在 DesignSystem 注册与 HTML 标记中切换外观、理解该类型与样式模板、组件选项之间的关联并了解自定义组件时如何继承这一外观机制。一、NumberFieldAppearance 类型定义NumberFieldAppearance是 microsoft/fast-components 包中用于描述fast-number-field组件外观的类型定义非常简单且具约束性它只允许两个字符串字面量取值。export declare type NumberFieldAppearance filled | outline;该类型声明位于 fast-components.numberfieldappearance.md由 API Documenter 从源码自动生成因此它精确反映了组件对外公开的类型契约。两个取值的语义取值说明filled填充式外观输入框以实心底色呈现视觉上更强调输入区域本身outline描边式外观输入框以描边边框勾勒轮廓是组件的默认外观组件文档明确说明fast-number-field支持这两种视觉外观且控制默认使用 outline 外观见 fast-number-field.mdx。为什么要用联合类型而不是布尔值filled | outline这种字符串字面量联合类型是 FAST 组件体系中的常见做法。相比布尔值如filled?: boolean它具备两个优势可扩展性未来若新增第三种外观如underlined只需扩充联合成员不会破坏既有取值自文档化appearance属性直接承载可读的语义字符串便于在模板、样式选择器与开发者工具中识别。二、外观在实际组件中的用法2.1 在 HTML 标记中切换外观外观通过appearance属性作用于fast-number-field元素结合min、max等属性即可得到一个带范围约束的填充式数字输入框fast-number-field appearancefilled min0 max10/fast-number-field该示例来自组件的官方使用文档 fast-number-field.mdx是验证外观切换最直接的方式。2.2 通过 DesignSystem 注册组件在脚本中fastNumberField()函数返回一个组件注册用于将fast-number-field配置进 DesignSystemimport { provideFASTDesignSystem, fastNumberField } from microsoft/fast-components; provideFASTDesignSystem() .register( fastNumberField() );fastNumberField变量被类型化为(overrideDefinition?: OverrideFoundationElementDefinitionNumberFieldOptions) FoundationElementRegistryNumberFieldOptions, ...它实现了numberFieldTemplate并生成fast-number-field元素见 fast-components.fastnumberfield.md。2.3 注册时定制步进图标注册阶段还支持通过NumberFieldOptions覆盖步进按钮spin button的图标provideFASTDesignSystem() .register( fastNumberField({ stepDownGlyph: ...your step down glyph..., stepUpGlyph: ...your setup up glyph..., }) );NumberFieldOptions的完整定义如下export declare type NumberFieldOptions FoundationElementDefinition StartEndOptions { stepDownGlyph?: string | SyntheticViewTemplate; stepUpGlyph?: string | SyntheticViewTemplate; };它继承了FoundationElementDefinition组件基础定义与StartEndOptionsstart/end 插槽配置并额外声明stepDownGlyph、stepUpGlyph两个可选属性二者既可以是字符串内联 SVG 等也可以是SyntheticViewTemplate模板见 fast-foundation.numberfieldoptions.md。三、外观与样式的关联numberFieldStyles外观之所以能产生不同的视觉效果关键在于样式模板numberFieldStyles。它被类型化为FoundationElementTemplateElementStyles, NumberFieldOptions是fast-number-field在 microsoft/fast-components 中的样式实现见 fast-components.numberfieldstyles.md。fast-number-field的组成可以概括为模板来自 fast-foundation 的numberFieldTemplate类型为FoundationElementTemplateViewTemplateNumberField, NumberFieldOptions见 fast-foundation.numberfieldtemplate.md类NumberField继承自FormAssociatedNumberField基于input typenumber语义实现见 fast-foundation.numberfield.md样式microsoft/fast-components 提供的numberFieldStyles。这种fast-foundation 提供类与模板、fast-components 提供样式与注册的分层结构正是外观可切换的架构基础appearance属性在模板中驱动 CSS 类名numberFieldStyles中通过属性选择器如:host([appearancefilled])之类的机制应用不同的填充或描边样式。四、数字输入框的完整属性面要理解两种外观的实际表现还需要了解组件承载的属性全集。下表来自fast-number-field组件文档fast-number-field.mdx中公开的字段清单其中appearance即由NumberFieldAppearance类型约束名称类型默认值说明readOnlyboolean—为 true 时控件不可被用户交互修改autofocusboolean—页面加载完成后自动获得焦点hideStepbooleanfalse为 true 时不渲染步进按钮placeholderstring—占位提示文本liststring—通过 id 关联datalist提供候选项maxlengthnumber—允许输入的最大字符数minlengthnumber—允许输入的最小字符数sizenumber—以字符数设定元素宽度stepnumber1步进按钮每次增减的数值maxnumber—数值上限minnumber—数值下限valueAsNumbernumber—以数字类型访问 value与之对应的公开方法包括stepUp()按 step 增加值、stepDown()按 step 减少值与select()全选文本事件方面会派发自定义的input与change事件见 fast-foundation.numberfield.md。值得注意的是hideStep与appearance相互独立即使外观为filled也仍然可以通过hide-step属性隐藏步进按钮参考 fast-foundation.numberfield.hidestep.md两种配置互不干扰。五、自定义组件时如何保留外观能力若要在自己的设计系统中创建数字输入组件可以基于 fast-foundation 的NumberField类、NumberFieldOptions与numberFieldTemplate组合自定义外观import { NumberField, NumberFieldOptions, numberFieldTemplate as template, } from microsoft/fast-foundation; import { numberFieldStyles as styles } from ./my-number-field.styles; export const myNumberField NumberField.composeNumberFieldOptions({ baseName: number-field, styles, template, shadowOptions: { delegatesFocus: true, }, stepDownGlyph: ...default step down glyph..., stepUpGlyph: ...default setup up glyph..., });这段代码来自官方组件文档fast-number-field.mdx。要点如下NumberField.composeNumberFieldOptions接收NumberFieldOptions作为选项类型因此stepDownGlyph、stepUpGlyph均可作为自定义默认图标传入shadowOptions.delegatesFocus: true表明组件期望把焦点委托给渲染进 shadow DOM 的 input 元素若想让自己的my-number-field支持 filled/outline 外观需要在自定义样式模板中根据appearance属性分别定义填充式与描边式样式沿用NumberFieldAppearance的两个取值语义。六、相关文件索引围绕NumberFieldAppearance的完整资料链如下便于进一步研读类型定义sites/website/src/docs/1.x/api/fast-components.numberfieldappearance.md组件使用指南sites/website/src/docs/1.x/components/fast-number-field.mdx组件类与 APIsites/website/src/docs/1.x/api/fast-foundation.numberfield.md选项类型sites/website/src/docs/1.x/api/fast-foundation.numberfieldoptions.md模板定义sites/website/src/docs/1.x/api/fast-foundation.numberfieldtemplate.md注册函数sites/website/src/docs/1.x/api/fast-components.fastnumberfield.md样式实现sites/website/src/docs/1.x/api/fast-components.numberfieldstyles.md完整组件导出清单sites/website/src/docs/1.x/api/fast-components.md七、小结NumberFieldAppearance以filled | outline两个字符串字面量为fast-number-field提供了清晰、可扩展的外观契约组件默认使用 outline开发者可在标记中通过appearance属性一键切换也可在自定义组件时沿用同一语义。结合 fast-foundation 的类与模板、fast-components 的样式与注册函数这一小型类型构成了数字输入组件视觉定制与设计系统集成的关键一环。赞分享前端UI组件【免费下载链接】fastThe adaptive interface system for modern web experiences.项目地址https://gitcode.com/gh_mirrors/fa/fast点击查看免费下载相关推荐FAST Components 的 fastTextField 注册函数详解从 DesignSystem 注册到 fast-text-field 自定义元素FAST Components 的 fastTextField 注册函数详解从 DesignSystem 注册到 fast text field 自定义元素前端UI组件FAST 1.x 组件库 Anchor 类解析fast-components 中锚点组件的 API 结构、外观体系与自定义扩展FAST 1.x 组件库 Anchor 类解析fast components 中锚点组件的 API 结构、外观体系与自定义扩展 本文基于 FAST 仓库 1.前端UI组件深入解析 FAST 数字输入组件fastNumberField 注册函数与 fast-number-field 实战指南深入解析 FAST 数字输入组件fastNumberField 注册函数与 fast number field 实战指南 导读 本文围绕 microsof前端UI组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表