Skip to content

布局

@astryxdesign/core v0.7.1 · Layout

Layout Props ​

名称类型默认值说明
contentWidthnumber | string-对齐内容的最大宽度。分隔线仍然拉满。数字按像素处理。百分比、fit-content、max-content、min-content 或裸 var() 走约束宽度。
height'fill' | 'auto''fill'fill 撑满容器,正文在中间滚动。auto 随内容长高。
paddingSpacingStep-只作用于这一层的外缘间距,不传给嵌套的布局。0 表示通栏。
defaultHasDividersboolean-页眉或页脚没有写 hasDivider 时用的默认值。

SpacingStep 的取值是 0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10。

Layout 插槽 ​

名称说明
default正文区域。这里放 LayoutContent。
header顶部区域。这里放 LayoutHeader。
start行起始边。这里放 LayoutPanel。面板可拖拽时,旁边再放 ResizeHandle。
end行结束边。
footer底部区域。这里放 LayoutFooter。

Layout Header Props ​

名称类型默认值说明
hasDividerboolean继承底边分隔线。不传时用 defaultHasDividers;布局也没写时是 false。
heightnumber | string-高度。数字按像素处理,字符串原样使用。
paddingSpacingStep-内边距。0 表示内容自己管边距。
paddingBlockEndSpacingStep-只改底边内边距,方便标签下划线和分隔线贴住。
labelstring-设置了 role 时的无障碍名称。
roleAriaRole-ARIA 地标角色。

LayoutHeader 有一个默认插槽,放页眉内容。

LayoutFooter 接受 hasDivider、height、padding、label、role,含义和页眉相同。hasDivider 画在顶边。它有一个默认插槽。

Layout Content Props ​

名称类型默认值说明
paddingSpacingStep-内边距。0 让 Section 这类子元素铺到边缘。
isScrollablebooleantrue内容超出时在这块里滚动。
labelstring-设置了 role 时的无障碍名称。
roleAriaRole-ARIA 地标角色。

LayoutContent 有一个默认插槽。

Layout Panel Props ​

名称类型默认值说明
hasDividerbooleanfalse朝向正文的那条边。旁边的 ResizeHandle 已经画线时不要再开。
paddingSpacingStep-内边距。不传、而且没有分隔线时,朝向正文的外边距会收起来。
isScrollablebooleantrue内容超出时在面板里滚动。
widthnumber | string-宽度。数字按像素处理。传了 resizable 时以钩子的尺寸为准。
resizableLayoutResizable-useResizable 返回的 props。面板宽度跟着 _size;对象里还带着这块区域的轴 _direction('horizontal' | 'vertical'),要和旁边的 ResizeHandle 一致。
labelstring-设置了 role 时的无障碍名称。
roleAriaRole-ARIA 地标角色,例如 navigation。

LayoutPanel 有一个默认插槽。

原生属性 ​

每一块的根元素都是 <div>。

以下内容落到各自的根上:

  • HTML 属性。
  • aria-* 属性。
  • data-* 属性。
  • class。
  • style。

class 会合并。Layout 写 data-height。