Repository navigation
cn hx components Data Attributes
github-actions[bot] edited this page Sep 28, 2026
·
7 revisions
所有 Hx 组件使用 data-hx-* 属性进行样式和状态管理(非 CSS-in-JS)。这些属性是保留的——你不能将它们作为自定义 data-hx-* props
传递给组件,它们会被静默丢弃。少数属性是留给使用方指定的(例如 data-hx-first-element),这类属性不受此限制,直接作为 prop 传入即可。
但你可以将它们用作 CSS 选择器,来实现自定义样式。
| 属性 | 使用组件 | 用途 | 取值 |
|---|---|---|---|
data-hx-root |
应用根元素 | 根元素标记 | "" |
data-hx-portal-root |
Overlay 系统 | Portal 挂载点 | "" |
data-hx-theme |
应用根元素 | 主题标识 | 主题名称 |
data-hx-language |
应用根元素 | 当前语言 | 语言代码 |
data-hx-reset-styles |
html / body 元素 | 全局重置开关 |
""(存在即重置);由 HxContextProvider 的 resetHtmlStyles / resetBodyStyles 控制 |
data-hx-model-path |
所有响应式组件 | 绑定到此元素的模型字段路径 | 路径字符串(如 "user.name") |
DOMUtils.exposePropsToDOM 在写入 DOM 前会归一化取值,因此 boolean prop 与属性形式可以互换:
-
data-hx-visible:true/''/ 任何非false值输出'';只有false输出'no' -
data-hx-disabled/data-hx-readonly:true/''输出'';其他任何值(包括false)都会移除该属性 - 这就是为什么内部元素上可以直接写
data-hx-disabled={disabled}传 boolean——由 computer 转换,而不是 React 渲染出="true"|data-hx-visible| 所有组件 | 可见性切换 |""(可见)或"no"(隐藏) | |data-hx-disabled| 表单组件 | 禁用状态 |""(禁用)或不存在/undefined| |data-hx-readonly| Input、Textarea | 只读状态 |""(只读)或不存在 | |data-hx-focus| Input、Textarea | 焦点状态 |""(聚焦)或不存在 | |data-hx-hover| Actions、Select、Radio、Checkbox、DateTimePicker | 悬停元素标记 |""(悬停中)或不存在 | |data-hx-color| Button、Badge、Upload、Callout、Separator | 颜色主题 |"primary"、"success"、"warn"、"danger"、"info"、"waive"| |data-hx-min-width| 宽度约束组件 | 最小宽度 | 尺寸令牌 | |data-hx-width| 宽度约束组件 | 固定宽度 | 尺寸令牌 | |data-hx-max-width| 宽度约束组件 | 最大宽度 | 尺寸令牌 | |data-hx-min-height| 高度约束组件 | 最小高度 | 尺寸令牌 | |data-hx-height| 高度约束组件 | 固定高度 | 尺寸令牌 | |data-hx-max-height| 高度约束组件 | 最大高度 | 尺寸令牌 | |data-hx-margin-x| 布局组件 | 水平外边距 |"none"、"xs"、"sm"、"md"、"lg"、"xl"| |data-hx-margin-y| 布局组件 | 垂直外边距 | 同上 | |data-hx-margin-t| 布局组件、图标 | 顶部外边距 | 同上 | |data-hx-margin-r| 布局组件、图标 | 右侧外边距 | 同上 | |data-hx-margin-b| 布局组件、图标 | 底部外边距 | 同上 | |data-hx-margin-l| 布局组件、图标 | 左侧外边距 | 同上 | |data-hx-padding-x| 布局组件 | 水平内边距 |"none"、"xs"、"sm"、"md"、"lg"、"xl"| |data-hx-padding-y| 布局组件 | 垂直内边距 | 同上 | |data-hx-padding-t| 布局组件 | 顶部内边距 | 同上 | |data-hx-padding-b| 布局组件 | 底部内边距 | 同上 | |data-hx-border| 布局组件 | 边框开关 |""(有边框)或不存在 | |data-hx-border-radius| 布局组件、Badge | 圆角 |"none"、"xs"、"sm"、"md"、"lg"、"xl"、"round"(仅 Badge,高度的一半) | |data-hx-cell-gap-x| Flex、Grid | 水平间距 |"none"、"xs"、"sm"、"md"、"lg"、"xl"| |data-hx-cell-gap-y| Flex、Grid | 垂直间距 | 同上 | |data-hx-justify-items| Grid | 网格项行轴对齐 | CSS 值 | |data-hx-justify-content| Flex、Grid | 容器行轴对齐 |"start"、"end"、"center"、"space-between"、"space-around"、"space-evenly"、"normal"| |data-hx-align-items| Flex、Grid | 容器列轴对齐 |"start"、"end"、"center"、"baseline"、"stretch"、"normal"| |data-hx-align-content| Flex、Grid | 多行对齐 | 同上 | |data-hx-first-element| Overlay | 用户指定首个获得焦点元素 |""或不存在 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-button |
组件类型标识 | "" |
data-hx-button-variant |
视觉变体 |
"solid"、"outline"、"ghost"、"link"
|
data-hx-button-text-uppercase |
文本大写变换 |
"" 或不存在 |
data-hx-button-input-embed |
按钮嵌入在输入框内 |
"" 或不存在 |
data-hx-button-svg-icon |
按钮包含 SVG 图标子元素 |
"" 或不存在 |
data-hx-button-icon |
按钮有图标元素 |
"" 或不存在 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-badge |
组件类型标识 | "" |
data-hx-badge-variant |
视觉样式 |
"solid"、"outline"、"dashed"
|
data-hx-badge-size |
尺寸变体 |
"sm"、"std"
|
data-hx-border-radius |
圆角 |
"round" 表示胶囊形(高度的一半),其余取值同布局组件 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-label |
组件类型标识 | "" |
data-hx-label-text |
文本内容标记 | "" |
data-hx-label-opaque |
不透明背景 |
"" 或不存在 |
data-hx-label-clickable |
可点击光标样式 |
"" 或不存在 |
data-hx-label-hoverable |
启用悬停样式 |
"" 或不存在 |
data-hx-label-active |
激活/按下状态 |
"" 或不存在 |
data-hx-label-input-placeholder |
Label 用作输入框占位符 |
"" 或不存在 |
data-hx-label-input-embed |
Label 嵌入在输入框内 |
"" 或不存在 |
data-hx-label-svg-icon |
Label 包含 SVG 图标 |
"" 或不存在 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-input |
组件类型标识 | "" |
data-hx-format-input |
FormatInput 标识 | "" |
data-hx-input-box |
HxInputBox 外层包装 | "" |
data-hx-input-inbox |
内层输入区域 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-textarea |
组件类型标识 | "" |
data-hx-textarea-box |
外层包装 | "" |
data-hx-textarea-rows |
可见行数 | 数字 |
data-hx-textarea-max-rows |
自动增高的最大行数 | 存在即启用(autoRows 为数字或 true) |
data-hx-textarea-resize |
调整大小行为 |
"none"、"dir-x"、"dir-y"、"both"
|
data-hx-textarea-placeholder |
已设置占位文本 |
"" 或不存在 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-checkbox |
组件类型标识 | "" |
data-hx-checkbox-checked |
选中状态 |
"" 或不存在 |
data-hx-checkbox-curtain |
选中指示器视觉遮罩 |
"" 或不存在 |
data-hx-checkbox-icon |
勾选图标 |
"" 或不存在 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-radio |
组件类型标识 | "" |
data-hx-radio-checked |
选中状态 |
"" 或不存在 |
data-hx-radio-curtain |
选中指示器视觉遮罩 |
"" 或不存在 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-m-checkbox |
组件类型标识 | "" |
data-hx-m-checkbox-direction |
布局方向 |
"dir-x"、"dir-y"
|
data-hx-m-checkbox-lanes |
网格列数 | 数字,1–10 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-m-radio |
组件类型标识 | "" |
data-hx-m-radio-direction |
布局方向 |
"dir-x"、"dir-y"
|
data-hx-m-radio-lanes |
网格列数 | 数字,1–10 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-select |
组件类型标识 | "" |
data-hx-select-icon |
下拉三角图标 | "" |
data-hx-select-options |
选项列表容器 | "" |
data-hx-select-option |
单个选项 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-actions |
组件类型标识 | "" |
data-hx-actions-options |
下拉选项容器 | "" |
data-hx-actions-option |
单个操作项 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-upload |
组件类型标识 | "" |
data-hx-upload-trigger |
上传触发按钮/区域 | "" |
data-hx-upload-error-msg |
上传级别错误消息 | "" |
data-hx-upload-dnd-icon |
拖拽区域图标 | "" |
data-hx-upload-dnd-label |
拖拽上传文本 | "" |
data-hx-upload-dnd-desc |
拖拽区域描述文本 | "" |
data-hx-upload-dnd-bottom-border |
拖拽区域底部边框 | "" |
data-hx-upload-files |
文件列表容器 | "" |
data-hx-upload-file |
单个文件行 | "" |
data-hx-upload-file-error |
文件有错误 | "" |
data-hx-upload-file-details |
文件详情区域 | "" |
data-hx-upload-file-name |
文件名展示 | "" |
data-hx-upload-file-ext-name |
文件扩展名展示 | "" |
data-hx-upload-file-size |
文件大小展示 | "" |
data-hx-upload-file-upload |
重试上传按钮 | "" |
data-hx-upload-file-download |
下载按钮 | "" |
data-hx-upload-file-preview |
预览按钮 | "" |
data-hx-upload-file-delete |
删除按钮 | "" |
data-hx-upload-file-uploading |
文件上传中状态 | "" |
data-hx-upload-file-percentage |
上传进度百分比 | "" |
data-hx-upload-file-error-msg |
单文件错误消息 | "" |
data-hx-upload-file-thumbnail |
缩略图容器 | "" |
data-hx-upload-file-icon |
非图片文件占位图标 | "" |
data-hx-upload-file-image |
缩略图图片 | "" |
data-hx-upload-gallery-icon |
画廊触发器图标 | "" |
data-hx-upload-gallery-label |
画廊触发器文本 | "" |
data-hx-upload-preview-backdrop |
画廊预览遮罩 | "" |
data-hx-upload-preview-state |
预览动画状态 | 状态字符串 |
data-hx-upload-preview-content |
预览图片容器 | "" |
data-hx-upload-preview-ratio |
预览缩放比例 | 比例值 |
data-hx-upload-preview-rect |
图片显示矩形 | "" |
data-hx-upload-preview-rect-image |
被缩放的图片元素 | "" |
data-hx-upload-color 已移除:upload 现在通过 computer 写共享的 data-hx-color(来自 color prop);data-hx-upload-variant 仍由 variant prop 写入。
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-separator |
组件类型标识 | "" |
data-hx-separator-direction |
方向 |
"dir-x"、"dir-y"
|
data-hx-separator-size |
线条尺寸 | 长度或高度 |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-callout |
组件类型标识 | "" |
data-hx-callout-background |
背景层 | "" |
data-hx-callout-content |
内容区 | "" |
data-hx-callout-icon |
图标区 | "" |
颜色不单独设属性:kind 解析成调色板颜色后,组件把它写成内层背景元素上的 data-hx-color。
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-box |
Box 组件标识 | "" |
data-hx-flex |
Flex 组件标识 | "" |
data-hx-flex-direction |
Flex 方向 |
"dir-x"、"dir-y"
|
data-hx-flex-wrap |
Flex 换行开关 |
""(换行)或 "no"
|
data-hx-grid |
Grid 组件标识 | "" |
data-hx-grid-columns |
Grid 列数 |
12、15、16
|
data-hx-flex-cell-grow |
Flex 子元素增长因子 | 数字 |
data-hx-align-self |
Flex / Grid 子元素自身对齐 |
"auto"、"start"、"end"、"center"、"baseline"、"stretch"
|
data-hx-grid-cell-row |
Grid 子元素行起始 | 数字 |
data-hx-grid-cell-rows |
Grid 子元素行跨度 | 数字 |
data-hx-grid-cell-col |
Grid 子元素列起始 | 数字 |
data-hx-grid-cell-cols |
Grid 子元素列跨度 | 数字 |
data-hx-justify-self |
Grid 子元素自身对齐 |
"stretch"、"start"、"end"、"center"
|
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-panel |
组件类型标识 | "" |
data-hx-panel-collapsible |
启用折叠切换 |
"" 或不存在 |
data-hx-panel-collapsed |
当前已折叠 |
"" 或不存在 |
data-hx-panel-header |
标题栏元素 | "" |
data-hx-panel-title |
标题文本元素 | "" |
data-hx-panel-collapse-button |
折叠切换按钮 | "" |
data-hx-panel-body |
内容容器 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-tabs |
组件类型标识 | "" |
data-hx-tabs-active-mark |
当前激活标签页标记名 | mark 字符串 |
data-hx-tabs-active-index |
当前激活标签页索引 | 数字 |
data-hx-tab-active |
标签页为激活状态 |
"" 或不存在 |
data-hx-tabs-header |
标签页标题行 | "" |
data-hx-tab-header |
单个标签页标题 | "" |
data-hx-tabs-body |
标签页内容容器 | "" |
data-hx-tab-body |
单个标签页内容 | "" |
data-hx-tab-mark |
标签页标识 | mark 字符串 |
data-hx-tab-index |
标签页位置索引 | 数字 |
data-hx-tabs-header-active-indicator |
激活标签页下划线指示器 | "" |
data-hx-tabs-header-more-tab |
溢出"更多"标签页 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-pagination |
组件类型标识 | "" |
data-hx-pagination-total-pages |
总页数展示 | 数字 |
data-hx-pagination-total-items |
总条数展示 | 数字 |
data-hx-pagination-total-items-key1 |
"条" i18n 键名(前半) | i18n 键名 |
data-hx-pagination-total-items-key2 |
"条" i18n 键名(后半) | i18n 键名 |
data-hx-pagination-page-size |
每页条数选择器 | "" |
data-hx-pagination-page-number |
当前页码 | "" |
data-hx-pagination-page-number-slash |
页码分隔符 i18n 键名 | i18n 键名 |
data-hx-pagination-total-comma-key |
总条数与每页条数间逗号键名 | i18n 键名 |
data-hx-pagination-page-size-value |
已选每页条数 | 数字 |
data-hx-pagination-per-page-key |
每页条数后缀 i18n 键名 | i18n 键名 |
data-hx-pagination-total-items-value |
总条数数值 | 数字 |
data-hx-pagination-previous-page |
上一页按钮 | "" |
data-hx-pagination-next-page |
下一页按钮 | "" |
data-hx-pagination-loading |
加载遮罩层 | "" |
data-hx-pagination-loading-position |
旋转指示位置 |
"start"、"end"
|
data-hx-pagination-loading-state |
回调执行中的激活状态 | "on" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-overlay |
Overlay 组件标识 | "" |
data-hx-dialog |
Dialog 遮罩标识 | "" |
data-hx-drawer |
Drawer 遮罩标识 | "" |
data-hx-alert |
Alert 标识 | "" |
data-hx-toast |
Toast 标识 | "" |
data-hx-overlay-backdrop |
遮罩背景元素 | "" |
data-hx-overlay-state |
生命周期状态 |
"entering"、"entered"、"exiting"、"exited"
|
data-hx-toast-container |
Toast 内容容器 | "" |
data-hx-toast-content |
图标 + 消息行 | "" |
data-hx-toast-content-icon |
类型图标 | "" |
data-hx-toast-content-message |
消息文本 | "" |
data-hx-toast-buttons |
底部按钮行 | "" |
data-hx-toast-dismiss-bar |
自动关闭进度条 | "" |
data-hx-toast-dismiss |
手动关闭按钮 | "" |
data-hx-alert-container |
Alert 内容容器 | "" |
data-hx-alert-content |
图标 + 消息行 | "" |
data-hx-alert-content-icon |
类型图标 | "" |
data-hx-alert-content-message |
消息文本 | "" |
data-hx-alert-buttons |
底部按钮行 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-popup |
组件类型标识 | "" |
data-hx-popup-state |
生命周期状态 |
"prepare"、"active"、"hide"
|
data-hx-popup-avoid-transition |
抑制 CSS 过渡 | "" |
data-hx-popup-for-select |
Popup 属于 Select | "" |
data-hx-popup-for-actions |
Popup 属于 Actions | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-with-check |
组件类型标识 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-button-bar |
组件类型标识 | "" |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-svg-icon |
图标组件标识 | "" |
data-hx-svg-icon-name |
图标名称(用于样式) | 图标名称字符串(如 "check"、"calendar") |
| 属性 | 用途 | 取值 |
|---|---|---|
data-hx-select-option-temporary-display |
内部:临时展示状态 | "" |
因为所有设计令牌都通过 data-* 属性暴露,可以直接在 CSS 中精确选择特定状态:
/* 选择红色实心按钮 */
[data-hx-button][data-hx-color="danger"][data-hx-button-variant="solid"] {
/* 自定义样式 */
}
/* 选择已选中的复选框 */
[data-hx-checkbox][data-hx-checkbox-checked] {
/* 自定义样式 */
}
/* 选择当前激活的标签页标题 */
[data-hx-tab-header][data-hx-tab-active] {
/* 自定义样式 */
}
/* 选择折叠面板的内容区 */
[data-hx-panel-body][data-hx-panel-collapsed] {
display: none;
}组件类型标识(data-hx-button、data-hx-input 等)始终设置在每个组件的根元素上,是可靠的 CSS 选择器。
- Overview
- Common Concepts
- I18n
- Data Attributes
- Form Components
- Layout Components
- Display Components
- Overlay Components
- Structure Components
- Validation
- Hooks
- Utilities