用途:本技能用于设计随容器宽度变化的 TanStack Charts,让图表适配实测容器、信息优先级、坐标轴与图例边距、SSR 初始宽度以及最终绘图边界;响应式不等于拉伸几何图形。
主要能力:采用 触发→检查→决策→构建→验证 流程。在窄容器中按优先级调整信息:先减少刻度候选与可选标注,再对关键值做稀疏、缩写、旋转或直接标注,接着改变方向或分面布局但保持度量语义不变,必要时聚合,最后在比较不再成立时改用聚焦摘要或可访问表格。比较同一图表的不同尺寸时,保持定义域、阈值、单位与分类颜色稳定。
用法:定义图表时省略宿主宽度,显式选择高度,仅在依赖表面尺寸的决策中使用响应式定义,例如 defineChart(({ width }) => ({ ..., axis: { ticks: { count: width < 420 ? 3 : 6 } } }));挂载时使用 mountChart(element, { definition, height: 320, initialWidth: 640, ariaLabel: '...' })。容器需允许收缩,通常设置 min-width: 0。用响应式构建器上下文处理表面断点与表达方式选择;自定义标记渲染边界用于绘图区几何;host.getScene().chart 用于渲染后的叠加层。
适用场景:窄仪表盘、嵌入式面板等需要在有限宽度内保持可读性与语义稳定的图表。
限制与注意:不要依据 window.innerWidth 判断;不要把表面宽度当作绘图宽度;不要在应用图表中使用固定 width;不要为比例尺手工指定像素 range([0, 640]);边距只把引导元素约束在表面内,并不解决所有标签碰撞;拓扑类布局(华夫、树图、桑基、分面、Delaunay、六边形分箱、密度轮廓、标签适配)在最终边界变化时可能改变成员或排布,需验证语义键与交互状态;响应式重排默认应立即提交,不要为每次尺寸变化做动画。省略 initialWidth 或缺少收缩约束会导致 SSR 或溢出问题。