Communitygithub.com

文件上传与管理系统的设计框架

设计一个系统的框架,用于上传和管理文件,定义拖放区域、上传队列和文件管理操作的视觉与空间组织,以确保高信任度和高效的用户体验。

文件上传与管理系统的设计框架 是什么?

该技能提供了一个全面的方法论,用于设计从用户设备到服务器的文件传输体验。它涵盖了上传触发(拖放区域)的交互状态、上传队列的空间节奏以及进度、成功和错误等反馈循环,旨在维护用户在高延迟操作中的信心。技能详细说明了如何设计拖放区域的不同状态(空闲、悬停、活跃、禁用),管理上传队列中的文件项(包括缩略图、文件名、进度条和操作),以及提供细粒度的状态反馈。此外,它还涉及上传后的文件管理(如编辑元数据、删除)、响应式布局规划以及关键的决策规则(如即时条目显示、进度可见性、批量操作和冲突管理)。该技能适用于内容管理系统、SaaS应用、项目管理工具和云存储界面,但不适用于小型文本附件、系统自动传输或单输入头像更新等场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/file-upload-management-system

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

文件上传与管理系统

目的

文件上传与管理系统提供了一种方法论,用于设计从用户设备到服务器的完整文件传输体验。它确保该过程透明、可恢复且可访问。该系统定义了上传触发器(拖放区域)的交互状态、上传队列的空间节奏以及维持用户在高延迟操作中信心所需的反馈循环(进度、成功和错误)。

使用场景

  • 内容管理系统: 设计媒体库和资源上传器。
  • SaaS 应用: 实现文档管理、CSV 导入或用户资料附件。
  • 项目管理工具: 在任务或评论中结构化文件附件。
  • 创意工具: 设计用于照片、视频或设计文件的高容量上传器。
  • 云存储界面: 管理复杂的文件夹和文件上传操作。

何时不使用

  • 小型文本附件: 如果“文件”只是很短的文本片段,请使用标准文本区域或 copy-to-clipboard-implementation。
  • 系统自动传输: 用户不触发或监控上传的情况(例如,后台遥测)。
  • 单输入头像照片: 虽然本系统适用,但对于低复杂度的单张图片更新,来自 user-avatar-system 的简单“头像”触发器可能更合适。
  • 静态资源: 对于作为站点代码一部分的资源(例如,图标、主题图片),这些资源通过开发人员工作流程进行管理。

输入

  1. 文件类型和大小限制: 允许什么格式(PDF, JPG, PNG)以及最大大小是多少?
  2. 数量预期: 用户是一次上传一个文件还是批量上传 50 个以上?
  3. 上传上下文: 这是一个独立任务(例如,“导入数据”)还是一个辅助操作(例如,“附加到消息”)?
  4. 元数据需求: 文件在上传过程中是否需要标题、描述或标签?
  5. 系统令牌: 来自父级设计系统的间距、颜色和排版比例。

输出

  1. 拖放区域结构规范: 上传触发器的视觉定义(空闲、悬停、活跃和禁用状态)。
  2. 队列管理蓝图: “待处理”、“上传中”和“已完成”列表项的空间组织。
  3. 进度与反馈矩阵: 进度条、百分比指示器和成功/错误状态的视觉处理。
  4. 操作层级: 文件列表内“取消”、“重试”、“删除”和“编辑”操作的规则。

工作流程

1. 设计上传触发器(拖放区域)

建立清晰的交互邀请:

  • 空闲状态: 使用虚线或实线边框,配以图标(通常是云上传或回形针)和清晰的指示(例如,“拖放或点击上传”)。
  • 拖拽悬停状态: 更改背景颜色或边框样式,以提供该区域已准备好接收文件的即时反馈。
  • 移动端备选方案: 确保拖放区域仍然是一个大的、可点击的按钮(根据 WCAG 2.2 SC 2.5.8 最小 24x24px,建议 44x44px),用于打开原生系统文件选择器。

2. 建立上传队列

管理多个文件而不使界面混乱:

  • 即时反馈: 一旦选择了文件,立即将其添加到触发器下方或内部的列表中。
  • 文件结构: 每个列表项应包括:
    • 缩略图/图标: 帮助用户识别文件类型或内容。
    • 文件名和大小: 确认选择了正确的文件。
    • 进度指示器: 显示上传状态的条或圈。
    • 操作: 取消正在进行的上传或移除已完成上传的方法。

3. 提供细粒度的状态反馈

使用 step-progress-system 和 interactive-state-system 处理文件状态:

  • 上传中: 显示进度条,对于长时间的上传,显示百分比或“已上传 X / Y MB”。
  • 成功: 使用语义化的“成功”颜色(绿色)和勾选图标。提供“查看”或“链接”操作。
  • 错误: 使用语义化的“错误”颜色(红色)。提供明确的原因(例如,“文件太大”)和“重试”按钮。

4. 设计文件管理(上传后)

定义用户如何与其上传的资源交互:

  • 编辑元数据: 如果需要标题或描述,提供行内编辑或“设置”弹窗。
  • 删除: 使用“垃圾桶”图标并附带确认步骤来执行破坏性操作。
  • 网格视图与列表视图: 对于媒体密集型上传,提供缩略图的网格视图;对于文档密集型上传,使用列表视图以获得元数据密度。

5. 规划响应式堆叠

  • 紧凑队列: 在移动端,折叠元数据(如文件大小)并优先显示文件名和进度条。
  • 全屏焦点: 对于复杂的上传器(例如,带有映射的 CSV 导入器),使用全屏覆盖层以排除干扰。

决策规则

  • “即时条目”规则: 文件在被拖放/选择的瞬间必须立即出现在 UI 中,即使实际的服务器请求尚未开始。
  • 进度可见性: 对于任何上传时间超过 1 秒的文件,使用进度条。对于非常快的上传,直接过渡到“成功”状态。
  • 批量操作: 如果用户可以上传 5 个以上文件,提供“全部清除”或“全部上传”操作来集体管理队列。
  • 冲突管理: 定义如果存在同名文件时会发生什么(例如,“保留两者”、“替换”、“跳过”)。
  • 空状态: 如果媒体库为空,使用 empty-state-system 将“上传”按钮作为主要 CTA。

约束条件

  • 可访问性:
    • 拖放区域必须可聚焦,并可通过 Space 或 Enter 键操作。
    • 使用 aria-live="polite" 向屏幕阅读器宣布上传进度和完成(避免用每一个百分比点进行轰炸)。
    • 文件输入必须有一个隐藏但可访问的 <label>。
    • 确保焦点永远不会被卡在拖放区域或进度列表后面(WCAG 2.4.11 焦点不被遮挡)——粘性页眉或提示不得覆盖聚焦的元素。
    • 取消/重试/删除操作的触摸目标必须至少达到 24x24px(WCAG 2.2 SC 2.5.8);主操作建议为 44x44px。
  • 响应式: 拖放区域应是流式的,并且永远不会引起水平溢出。
  • 对比度: 进度条和错误消息必须满足 WCAG AA(4.5:1)对比度比。

常见失败模式

  • “静默失败”: 上传失败,但 UI 未提供任何反馈,导致用户无限期等待。
  • 进度条消失: 在上传实际完成之前,进度条就消失了,导致“后期焦虑”。
  • 拖放区域过小: 创建了一个难以用鼠标或拇指点击的微小目标。
  • 缺少“取消”: 不允许用户停止大型意外上传。
  • 模糊的错误信息: 显示“错误 500”而不是“服务器当前正忙,请稍后再试”。

验证标准

  • 拖放区域具有明显的空闲、悬停和拖拽悬停状态。
  • 队列中的每个文件都显示名称、大小和进度。
  • 成功和错误状态通过颜色和图标指示。
  • 用户可以从队列中取消或移除文件。
  • 使用 ARIA live 区域进行状态更新。
  • 布局响应式,并能优雅地处理长文件名。
  • 所有交互元素满足 WCAG 2.2 24x24px 触摸目标最小值(建议 44x44px)。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for progressive disclosure using accordions, ensuring structural integrity, visual affordances, and accessibility across different content densities and devices.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for long-form content, managing readability, vertical rhythm, and information density to ensure a superior reading experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for informational elements that communicate state (Badges) and categorization (Tags) with clarity and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for non-overlay notifications, managing global announcements and contextual inline alerts to communicate system states without interrupting the user's flow.

coastdigitalgroup/coastai-skills

Design and implement a systematic, asymmetrical bento-grid layout framework to organize diverse content types cohesively while maintaining strict visual hierarchy, logical focus order, and responsive flexibility.

coastdigitalgroup/coastai-skills

Design a responsive, mobile-first bottom navigation bar and persistent action dock system for mobile websites and web applications, establishing spatial anchors, tab bar anatomy, badge indicators, thumb-zone ergonomics, safe area inset handling, active/inactive state contrast, and desktop responsive adaptation rules.

coastdigitalgroup/coastai-skills

Design a mobile-first bottom sheet overlay system with configurable detents, drag affordances, safe area padding, responsive desktop modal/popover adaptation, and WCAG AA accessibility compliance.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for secondary navigation trails that provide orientation, context, and one-click access to parent levels in deep information architectures.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for buttons and interactive triggers, managing visual hierarchy, variant logic, and action grouping to ensure clear intent and accessible interaction.

coastdigitalgroup/coastai-skills

Design a systematic framework for date and time selection, managing calendar grids, range pickers, and scheduling interfaces to ensure precision and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for modular content containers that maintain hierarchy, structural integrity, and action alignment across variable content and responsive viewports.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for horizontal discovery components, managing navigation affordances, scroll behavior, and accessibility to ensure effective content density without compromising usability.

coastdigitalgroup/coastai-skills

Design a systematic, highly accessible, and developer-friendly UI layout framework for code blocks, snippet showcases, multi-file code tabs, line-highlighting, diff views, and syntax token contrast in technical documentation and developer platforms.

coastdigitalgroup/coastai-skills

Design a systematic framework for global command menus (Cmd+K panels) that combines keyboard-driven navigation, command execution, and shortcut discovery into an accessible, responsive overlay.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for threaded conversations, managing nesting depths, action hierarchies, and community signaling to foster engagement and readability.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for side-by-side comparison interfaces, managing high attribute density and responsive complexity to support informed decision-making.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for user privacy, managing consent banners, preference centers, and persistent privacy controls to balance legal compliance with user trust.

coastdigitalgroup/coastai-skills

Design and implement a systematic, highly accessible, and responsive visual layout framework for conversational chat widgets, live chat boxes, and chatbot panels that ensures clear message scannability, native focus flow, and seamless mobile keyboard adaptation.

coastdigitalgroup/coastai-skills

Design a systematic, accessible, and high-conversion framework for custom select dropdowns and comboboxes, defining anatomy, states, search-filtering, and responsive mobile-adaptive patterns.

coastdigitalgroup/coastai-skills

Design and implement a systematic color palette that ensures WCAG 2.2 accessibility compliance. Trigger this skill when asked to define brand colors, create UI themes, or establish a visual system for a website.

相关技能