UI Design System
build dev

FilePreview

预览常见文件及其元信息。中文惯用名:文件预览。
稳定本期新增已接入

元信息

字段值
规范 IDcomponent.file-preview
名称FilePreview
二级分类媒体与内容(media)
用途预览常见文件及其元信息
描述中文惯用名:文件预览。

预览

静态结构:卡片(border rounded-md)= 预览体(bg-muted:image → img max-h-72 object-contain;video / audio → 原生播放器;text → pre max-h-72 滚动;other 或无 src → 居中占位图标)+ 元信息行(类别图标 + 名称 truncate + 格式化大小 + 类型 + 下载链接)。类别按 kind 显式指定或按 fileType / name 扩展名推断(inferKind)。

DSL 结构

DslNode
{
  "type": "FilePreview",
  "props": {
    "name": "月度经营分析.pdf",
    "fileSize": 2485760,
    "fileType": "application/pdf",
    "src": "https://example.com/monthly.pdf"
  }
}

何时用

何时使用

  • 预览常见文件及其元信息:附件列表、审批材料、上传结果确认。
  • 图片 / 视频 / 音频 / 文本的内嵌预览 + 名称 / 大小 / 类型 / 下载。

何时不用

  • 分页文档阅读:使用 DocumentPreview。
  • 纯下载链接列表:用 List / Link 即可。

变体

变体视觉形态适用场景
图片内嵌图片预览设计稿、截图附件
文本等宽文本滚动区日志、markdown、配置文件
视频 / 音频原生播放器录屏、录音附件
其他图标占位 + 元信息压缩包、二进制等不支持内嵌的类型

API 属性

属性类型默认值说明
namestring—文件名(含扩展名,用于推断与展示)
fileSizenumber—文件大小(字节,格式化展示)
fileTypestring—MIME 或扩展名(用于推断)
srcstring—文件地址(内嵌预览与下载)
contentstring—文本文件内容(text 类内嵌展示)
kind`'image''text''video'
className / stylestring / CSSProperties—通用:根节点 class 合并 / 内联样式

使用规范

  • 文本预览的 content 由数据源下发,大文件应截断(如前 100KB)。
  • 提供 src 即出现下载入口,不希望下载时不要传 src。
  • 元信息至少包含名称与大小,类型可省略(图标已表达)。

正例

  • ✓ 审批详情:附件区逐个 FilePreview,图片内嵌、合同 PDF 走元信息 + 下载。
  • ✓ 日志排查:text 类展示截取的应用日志。

反例

  • ✕ 把超大文本全量塞进 content(应服务端截断)。
  • ✕ 用 FilePreview 播放流媒体视频(应使用 Video)。

Design Token 映射

不适用:组件 tokenRefs 为空:样式 Token 数据尚未接入,三层映射(Primitive → Semantic → Component)待样式 Token 接入后回填。