Skip to content

Tag 标签 ​

语义色标签,支持镂空、全圆角标记与关闭按钮。

契约源:lh-ui-core/specs/tag.json · 黄金用例:cases/tag.json(6 条,已翻译为 JVM 单测 + Compose UI Test)

类型 ​

六种语义类型决定底色与文字色。

9:41Tag 类型
默认成功
警告危险
信息

HTML 模拟预览(Android / Compose 外观),非真机渲染

kotlin
LhTag(type = LhTagType.success) { Text("成功") }

镂空(plain) ​

plain 为透明底 + 语义色描边与文字。

9:41Tag plain
主要成功
危险

HTML 模拟预览(Android / Compose 外观),非真机渲染

尺寸与标记 ​

三档尺寸映射到 tag.height / tag.paddingHorizontal / tag.fontSize 令牌;mark 取高度一半的全圆角。

9:41Tag 尺寸
smallmediumlarge
标记成功标记

HTML 模拟预览(Android / Compose 外观),非真机渲染

API ​

Props ​

属性说明类型默认值
text标签文字(便捷写法,与 content 二选一)String?null
modifier修饰符ModifierModifier
type语义类型LhTagTypeDefault
size尺寸LhTagSizeMedium
plain是否镂空(透明底 + 语义色描边)Booleanfalse
round是否全圆角(高度一半)Booleanfalse
closable是否显示关闭按钮Booleanfalse
onClose关闭回调;closable 为 false 时不触发(() -> Unit)?null
content标签内容(覆盖 text,spec 的 default 插槽)@Composable (() -> Unit)?null

LhTagType ​

值底色(非 plain)描边/文字(plain)
Defaultcolor.background.default + color.border.base 描边color.text.primary
Primarycolor.primary.defaultcolor.primary.default
Successcolor.success.defaultcolor.success.default
Warningcolor.warning.defaultcolor.warning.default
Dangercolor.danger.defaultcolor.danger.default
Infocolor.info.defaultcolor.info.default

LhTagSize ​

值heightpaddingHorizontalfontSize
Smalltag.height.small(20dp)tag.paddingHorizontal.small(8dp)tag.fontSize.small(12sp)
Mediumtag.height.medium(24dp)tag.paddingHorizontal.medium(10dp)tag.fontSize.medium(14sp)
Largetag.height.large(28dp)tag.paddingHorizontal.large(12dp)tag.fontSize.large(16sp)

令牌对照 ​

令牌用途
tag.height.{small,medium,large}三档高度
tag.paddingHorizontal.{small,medium,large}三档横向内边距
tag.fontSize.{small,medium,large}三档字号
tag.borderRadius / tag.borderWidth圆角与描边宽度
color.{primary,success,warning,danger,info}.default语义底色 / 描边 / 文字
color.onPrimary非纯文字色
color.disabled.{bg,text,border}禁用态三色
spacing.xs关闭按钮与文字间距

黄金用例对照 ​

case id断言本地测试
default-type-renders-text默认类型取中性底 + 主文字色 + 基础描边LhTagDefaultsTest.default_type_uses_neutral_tokens
primary-type-uses-primary-tokens主色类型消费主色令牌LhTagDefaultsTest.primary_type_uses_primary_tokens
plain-uses-bg-tokensplain 消费语义浅底令牌LhTagDefaultsTest.plain_uses_bg_tokens
small-size-uses-small-tokens小号消费 small 令牌(反向断言 large 未应用)LhTagDefaultsTest.small_size_uses_small_tokens
round-makes-radius-half-heightround 圆角取高度一半LhTagDefaultsTest.round_makes_radius_half_height
closable-tap-emits-onclose点击关闭触发 onCloseLhTagTest.closable_tap_emits_onClose(Compose UI Test)
bash
./gradlew :components:tag:test                             # JVM 部分
./gradlew :components:tag:connectedAndroidTest             # 交互部分(需设备)