JGuang

标题

Heading · Astryx

交互预览
npm install @astryxdesign/core@0.7.1 @astryxdesign/theme-neutral@0.7.1 @stylexjs/stylex@0.19.0

标题 · Heading

标题用于内容展示场景。下面的官方示例展示原生用法与状态,属性名保持上游 API。

安装与前置条件

npm install @astryxdesign/core@0.7.1 @astryxdesign/theme-neutral@0.7.1 @stylexjs/stylex@0.19.0

需要 React 19+,按顺序导入基础 CSS 和主题,并设置 Theme Provider。参见开始使用。

示例与使用方式

  • 标题 · 综合展示 1:首先体验这个示例,再查看代码理解组件的组合方式。
  • 标题 · 交互示例 2:可交互查看这一用法的行为,复制代码时保留它实际使用的属性与导入。
  • 标题 · 交互示例 3:可交互查看这一用法的行为,复制代码时保留它实际使用的属性与导入。
  • 标题 · 交互示例 4:可交互查看这一用法的行为,复制代码时保留它实际使用的属性与导入。

API 与上游详细参考

优先使用 0.7.1 官方中文说明;上游尚未提供中文的条目保留英文。属性名、类型及默认值保持原生 API,不把示例状态名称当成组件属性。

Heading

语义化标题组件,渲染带主题样式的 h1–h6 元素,支持可选的编辑风格比例和行截断。

属性类型默认值说明
level *1 | 2 | 3 | 4 | 5 | 6标题级别。决定语义 HTML 元素(h1–h6)和来自主题的样式(除非设置了 type)。
type'display-1' | 'display-2' | 'display-3'展示类型变体。用展示级别的大小(更大、更轻的字重、更紧的行高)覆盖来自 level 的视觉样式。主题可以添加自定义视觉类型。level 仍然决定用于无障碍的 HTML 元素。用于英雄横幅、营销标题和数据提示。
weight'normal' | 'medium' | 'semibold' | 'bold'显式字重覆盖。优先于所选视觉类型或标题级别的默认值。
children *ReactNode标题内容。
accessibilityLevel1 | 2 | 3 | 4 | 5 | 6无障碍级别覆盖。当设置且与 level 不同时,应用 aria-level 使文档大纲与视觉样式不同。
color'primary' | 'secondary' | 'disabled' | 'placeholder' | 'accent' | 'inherit''primary'文本颜色。主题可添加自定义颜色。
display'inline' | 'block''block'显示类型。当 maxLines > 0 或 hasCapsize 为 true 时,会静默覆盖为 'block'。
maxLinesnumber0截断前的最大行数。0 表示不截断。设置后,如果内容被截断,悬停时会显示工具提示。
hasTruncateTooltipboolean | 'above' | 'below' | 'start' | 'end'true控制截断文本的工具提示行为。true 在默认位置显示工具提示,false 禁用它,或者放置字符串 ('above' | 'below' | 'start' | 'end') 设置特定位置。
wordBreak'break-word' | 'break-all'截断时的断词行为。单行截断默认为 'break-all',其他情况默认为 'break-word'。
textWrap'wrap' | 'nowrap' | 'balance' | 'pretty'文本换行行为。
justify'start' | 'center' | 'end''start'文本对齐(两端对齐)。使用逻辑值(start/end)以兼容 i18n/RTL。
hasCapsizebooleanfalse使用 text-box-trim 启用光学对齐。强制块级显示。
hasStrikethroughbooleanfalse应用删除线文本装饰。
idstringHTML id 属性。

主题 API

{
  "targets": [
    {
      "className": "astryx-heading",
      "visualProps": [
        "level",
        "color",
        "type",
        "weight"
      ]
    }
  ]
}