SuperAPI AI 工具集

shadcn-syntax-layout-primitives

前端与建站

查看项目

更新于 10-15 22:18

技能介绍

用途:该技能覆盖 shadcn/ui 的四个布局辅助原语——Resizable(拖拽调整分栏)、ScrollArea(自定义滚动区域)、Separator(内容分隔线)、AspectRatio(固定宽高比容器)。它们不持有业务状态、无独立决策逻辑,按布局问题选型并组合使用。

主要能力与选型:需要两个及以上区域由用户拖动调整大小选 Resizable;需要主题化滚动条或始终可见细滚动条选 ScrollArea;在两个内容块之间加视觉分隔线选 Separator;元素可见高度需为宽度的固定比例(视频、图片、iframe、地图嵌入、canvas)选 AspectRatio。

关键约束:四个原语的 v4 源码均以 "use client" 开头,即使 Separator 和 AspectRatio 看似无状态也不可移除,否则 Radix 在水合时抛错。ResizablePanel 必须包在 ResizablePanelGroup 内。ScrollArea 必须显式设置高度或 max-height。水平 flex 行内的 Separator 必须传 orientation="vertical"。AspectRatio 子元素须用 fill、className="size-full object-cover" 或 absolute inset-0 填充。嵌套 ResizablePanelGroup 若要持久化布局,须使用互不相同的 autoSaveId。

使用方式:从 @/components/ui/ 对应模块导入组件,按各原语的属性组合使用;例如 ResizablePanelGroup 使用 orientation、onLayoutChange、autoSaveId 等属性,Panel 使用 defaultSize、minSize、maxSize、collapsible 等属性。

限制与说明:资料未提供具体安装命令以外的收费、价格或平台信息;也不建议把 AspectRatio 用于通用 flex/grid 布局,或把 Resizable 用于单元素 resize 场景。