Image 设计文档

图片:加载态机(loading 骨架/自定义占位 → success → error 降级图/自定义/默认破图),success 且 preview 时 hover 蒙层 + 点击进全屏预览。预览浮层(ImagePreview)对齐 Semi:底部工具栏含上一张/页码/下一张、缩放 Slider、放大/缩小、原始尺寸↔适应页面切换、旋转、下载,支持鼠标滚轮以指针为锚缩放、超出容器拖拽平移、无限循环、预加载、无操作自动隐藏工具栏、renderHeader/renderPreviewMenu(menuItems)/renderCloseIcon/renderLeftIcon/renderRightIcon 自定义槽。ImagePreview 既可包裹多个 <Image> 做组预览,也可独立传 src 编程式控制。

← API 文档

使用建议

图片:加载态机(loading 骨架/自定义占位 → success → error 降级图/自定义/默认破图),success 且 preview 时 hover 蒙层 + 点击进全屏预览。预览浮层(ImagePreview)对齐 Semi:底部工具栏含上一张/页码/下一张、缩放 Slider、放大/缩小、原始尺寸↔适应页面切换、旋转、下载,支持鼠标滚轮以指针为锚缩放、超出容器拖拽平移、无限循环、预加载、无操作自动隐藏工具栏、renderHeader/renderPreviewMenu(menuItems)/renderCloseIcon/renderLeftIcon/renderRightIcon 自定义槽。ImagePreview 既可包裹多个 <Image> 做组预览,也可独立传 src 编程式控制。

Accessibility

ARIA role:img

  • img 必传 alt 语义;默认破图占位用 role=img + aria-label
  • 预览遮罩 role=dialog、aria-modal=true,portal 到 getPopupContainer/body;useFocusTrap 锁定焦点、Esc 关闭、useScrollLock 锁背景滚动
  • 组/独立预览左右切换:中部 ← → 按钮 + 键盘左右箭头(到边界按钮隐藏,infinite 时循环)
  • 翻页经 LiveAnnouncer polite 播报「第 m 张,共 n 张」

设计变量

变量默认值用法
--cd-image-bg var(--cd-color-fill-0)图片占位背景
--cd-image-header-close-bg rgba(0, 0, 0, 0.75)$color-image_header_close-bg:header 关闭 icon hover 背景(Semi 明暗一致)
--cd-image-mask-bg var(--cd-color-overlay-bg)$color-image_mask-bg:图片 hover 预览蒙层背景
--cd-image-mask-color var(--cd-color-white)图片操作遮罩文字颜色
--cd-image-mask-hover-bg rgba(255, 255, 255, 0.15)预览工具条/切换按钮 hover 时的浅色高亮叠层(浮在深色遮罩上)
--cd-image-mask-info-text var(--cd-color-white)$color-image_mask_info_text:蒙层「预览」文字颜色
--cd-image-placeholder-color var(--cd-color-text-3)图片占位/错误文字颜色
--cd-image-preview-bg var(--cd-color-overlay-bg)$color-image_preview-bg:预览浮层遮罩背景
--cd-image-preview-disabled-color rgba(249, 249, 249, 0.35)$color-image_preview_disabled:禁用 icon 颜色(Semi 明暗一致)
--cd-image-preview-divider-bg rgba(255, 255, 255, 0.5)$color-image-preview_divider-bg:footer 分割线颜色(Semi 明暗一致)