ImageGroup 使用手册
v1.1.2 · @snowui-design-system/components
许可阅读:首次阅读组件文档、源码或 npm 使用流程,先读完整 LICENSE;同任务同版本去重。公开 API 配置与内部实现修改分别按许可处理;全部组件使用统一运行包,源码权益以许可为准。
组件介绍
统一组织多张图片的尺寸与排列,并提供成组预览,适合图库、附件和图片集合。
使用选择
用于在共享配置下组织图片。需要全屏查看、缩放或组间导航时配合 ImageViewer;布局与图片加载状态由公开 API 表达。
用 layout 选择组布局、size 统一图片尺寸。
Image 子项自动加入媒体组;子项显式尺寸或 previewMode 优先于组默认配置。
快速开始
以下示例展示推荐的基本组合。更多场景与组合限制见后文。
API
未重新声明的继承能力请查所属基础组件文档;本表只列本组件源码具名公开属性。
使用边界与详细说明
布局模型
主布局模型:复合管理布局。
ImageGroup 的区域结构为 group root / media item collection / preview registration。
子项 Image 保持内禀原子布局;ImageGroup 只管理 row / column / grid 排列、统一尺寸上下文和 Viewer 注册。
previewMode是集合预览策略,不改变子项 Image 的内部布局模型。ImageGroup 不内嵌 ImageViewer;页面级 Viewer 作为独立复合管理组件消费组列表。
功能概览 (User)
统一组内图片尺寸
支持
row / column / grid布局固定默认间距 4px
与页面级
ImageViewer配合承载多图预览索引组内可自动收集
Image媒体并向页面级 Viewer 提供组列表
2. 视觉规则
row / column / grid三种布局的默认间距都固定为4px,对应var(--gap-1),不提供gapprop。不支持
stack布局;布局职责仅限线性排列与网格排列。组内图片默认继承统一
size,子图片显式size优先。grid布局默认使用两列模板,避免在无额外列定义时视觉上退化为单行排列。组内
Image会自动注册自己的src/alt,供页面中的单一ImageViewer打开与切换。组列表快照在打开 Viewer 时直接按稳定引用传递,不再额外复制数组。
组内媒体注册表使用原地
push/splice维护,减少挂载/卸载时的短期数组分配。previewMode会作为组内Image的默认值向下透传;子图片显式previewMode优先。组与图片均省略时,页面存在共享 Viewer 即自动接入,否则回退 window。
3. 使用示例
该组件当前不开放
gapprop;固定间距为 4px。若后续扩展图库选择能力,应继续保持“尺寸统一由 Group 下发”的主链路。
ImageGroup不内嵌ImageViewer;页面根部声明一个自动模式 Viewer 后,未显式设置 previewMode 的组会自动共享该服务。
ImageGroup 样式覆盖
先阅读 完整 LICENSE;同任务、同版本、同范围去重。
优先用组件公开 Props 匹配合适样式,尽可能保留原有视觉。确需改写时按 样式选择与改写顺序 使用自己的 class(含项目已有 Tailwind)或实例 style。以下名称来自源码实际消费的公开 override;先核对目标作用域,不修改私有 DOM。采用 SnowUI Token 时选择正确类别,外部应用不被要求安装一方 utilities。
ImageGroup 类型与状态
必填属性:无具名必填属性。
可双向绑定:本组件未声明具名双向绑定属性;状态更新通过公开回调或所属宿主处理。
继承声明:Omit<FrameProps, "gap">。继承能力以基类公开文档为准;Omit 中的字段已排除,不能按基类原样使用。
以下为公开属性实际引用的类型声明,来自源码;Svelte Snippet 表示内容片段,ComponentProps 表示对应组件的 Props。
ImageGroupSize
来源:components/src/components/ImageGroup.svelte
ResourceSize
来源:components/src/context.ts
ImageGroupLayout
来源:components/src/components/ImageGroup.svelte
PreviewMode
来源:components/src/logic/image-preview.ts