Skip to content

Icon 图标 ​

图标组件。按本地图形体系把图标名解析为字形渲染,支持尺寸与语义色调。

契约源:lh-ui-core/specs/icon.json · 黄金用例:lh-ui-core/cases/icon.json(5 条,已翻译为 hypium 测试)

端侧落点说明

鸿蒙端当前用 unicode 字形占位(LhIconTokens.glyphFor),生产环境应替换为 SymbolGlyph / 矢量资产;这与 button 的 Text('◆') 占位策略一致。已登记图标名见下方「图标名」一节。

尺寸 ​

三档尺寸映射到 icon.size 令牌。

9:41Icon 尺寸
⌕⌕⌕

HTML 模拟预览(鸿蒙 / ArkUI 外观),非真机渲染

typescript
LhIcon({ name: 'search', size: LhIconSize.Large })

色调 ​

tone 决定字形颜色,与语义色令牌一一对应;默认色调取 color.text.primary。

9:41Icon 色调
✓ 默认✓ 主色✓ 成功
⚠ 警告✕ 危险ℹ 信息
✓ 常规✓ 次要

HTML 模拟预览(鸿蒙 / ArkUI 外观),非真机渲染

图标名 ​

glyphFor 当前登记的图标名与字形:search ⌕、refresh ↻、check ✓、close ✕、 warning ⚠、info ℹ、back ←、more ⋯、star ★、edit ✎、delete ⌫、 plus +、minus -、arrow →。未登记名回退 ◆。

9:41已登记图标
⌕↻✓✕⚠ℹ←⋯
★✎⌫+-→

HTML 模拟预览(鸿蒙 / ArkUI 外观),非真机渲染

API ​

Props ​

属性说明类型默认值
name图标名(本地图形体系解析,未登记名回退 ◆)string''
size图标尺寸,映射到 icon.size 令牌LhIconSizeMedium
tone语义色调,决定字形颜色LhIconToneDefault
onClick点击回调() => void空函数

LhIconSize ​

值size
Smallicon.size.small(16vp)
Mediumicon.size.medium(20vp)
Largeicon.size.large(24vp)

LhIconTone ​

值字形色
Defaultcolor.text.primary
Primarycolor.primary.default
Successcolor.success.default
Warningcolor.warning.default
Dangercolor.danger.default
Infocolor.info.default
Regularcolor.text.regular
Secondarycolor.text.secondary

令牌对照 ​

令牌用途
icon.size.{small,medium,large}三档尺寸
color.text.primary默认色调
color.text.regular / color.text.secondary常规 / 次要色调
color.{primary,success,warning,danger,info}.default语义色调

黄金用例对照 ​

cases/icon.json 的 5 条断言与 hypium 测试的对应关系(entry/src/test/Icon.test.ets):

case id断言本地测试
click-emits-onclick点击触发回调(端侧为 onClick 属性)glyph_maps_registered_name(端侧按声明式回调对齐)
default-tone-uses-text-primary默认色调取主文字色default_tone_uses_text_primary
primary-tone-uses-primary-token主色调取主色令牌primary_tone_uses_primary_token
small-size-uses-small-token小号取 small 尺寸令牌small_size_uses_small_token
render-emits-icon-command渲染发射图标命令端侧无对应命令(声明式渲染,字形映射见 glyph_maps_registered_name / glyph_falls_back_for_unknown_name)

另有暗色专项:dark_colors_come_from_dark_tokens / dimensions_are_identical_in_dark_mode。 运行:DevEco Studio 右键 entry/src/test → Run Tests。