Skip to content

Latest commit

 

History

History
742 lines (439 loc) · 6.37 KB

File metadata and controls

742 lines (439 loc) · 6.37 KB

UI_DESIGN.md

JFX SSH Client UI设计规范


文档目的

本文件用于统一项目UI设计风格。

所有Agent在开发界面前必须阅读本文件。

目标:

  • 保持界面一致性
  • 保持用户体验统一
  • 避免UI风格混乱
  • 避免重复设计

设计原则

整体风格

定位:

专业工具型软件

参考:

  • XShell
  • FinalShell
  • MobaXterm
  • VS Code
  • JetBrains IDE

关键词:

  • 简洁
  • 高效
  • 专业
  • 现代化

禁止:

  • 花哨动画
  • 渐变背景
  • 大面积圆角
  • 游戏化风格

主题系统

必须支持:

Light Theme

适用于:

白天办公环境


Dark Theme

适用于:

夜间开发环境


主题切换后:

无需重启软件

实时生效


主窗口

使用:

BorderPane

布局:

┌─────────────────────────────────────────────┐
│ MenuBar                                     │
├────────────┬────────────────────────────────┤
│            │                                │
│            │                                │
│ Connection │                                │
│ Tree       │ Terminal Tabs                  │
│            │                                │
│            │                                │
├────────────┴────────────────────────────────┤
│ Status Bar                                  │
└─────────────────────────────────────────────┘

MenuBar

位置:

Top

结构:

File

Connection

Tools

View

Help

File

菜单:

New Connection
Import
Export
Settings
Exit

Connection

菜单:

Connect

Disconnect

Reconnect

Close Session

Tools

菜单:

SFTP

Port Forward

Active Forwards

View

菜单:

Light Theme

Dark Theme

Reset Layout

Help

菜单:

About

Documentation

菜单可见性(最终形态)

Tools 菜单全部启用:

Tools → SFTP             已启用
Tools → Port Forward     已启用
Tools → Active Forwards  已启用(查看 / 停止后台转发)

说明:

早期预留的 Plugin Manager(插件管理)不在产品需求内,菜单占位项已移除。


左侧导航区域

组件:

TreeView

名称:

ConnectionTree

宽度:

250px

允许调整大小


连接树结构

Connections

├── Production
│    ├── Server01
│    └── Server02
│
├── Testing
│    ├── Test01
│    └── Test02
│
└── Local

连接树右键菜单

分组:

Add Group
Rename Group
Delete Group

连接:

Connect

Edit

Duplicate

Delete

主工作区

组件:

TabPane

名称:

TerminalTabs


Tab规范

一个Tab对应:

一个SSH连接

结构:

Tab

└── TerminalView

禁止:

多个SSH连接共享同一个Tab


Tab标题

取值规则:

优先使用连接 name。

name 为空时,回退使用 host。

格式:

name 或 host

示例:

web01

db01

192.168.1.100

Tab状态

连接成功:

● web01

断开:

○ web01

重连中:

◐ web01

Terminal区域

占据主工作区全部空间


Terminal设计

支持:

  • ANSI颜色
  • UTF-8
  • VT100
  • 鼠标复制
  • 粘贴

必须:

自动滚动

支持快捷键


Terminal字体

优先:

Windows

Consolas

Linux

JetBrains Mono

macOS

SF Mono

字体大小:

默认:

14px

允许用户修改

范围:

10~24

状态栏

位置:

Bottom

高度:

24px


状态栏显示内容

左侧:

Connected

中间:

UTF-8

右侧:

SSH

示例:

Connected | UTF-8 | SSH

新建连接窗口

形式:

Dialog


布局

GridPane

Name

Host

Port

Username

Authentication

认证方式

下拉框:

Password

Private Key

Password模式

显示:

Password

Key模式

显示:

Private Key Path

支持:

Browse

按钮


高级设置区域

折叠面板

内容:

KeepAlive

Connect Timeout

Read Timeout

Proxy

设置窗口

采用:

TabPane


General

内容:

Language

Theme

Auto Save

Language:

切换界面语言,实时生效、无需重启(见 I18N.md)。


Terminal

内容:

Font

Font Size

Cursor Style

SSH

内容:

KeepAlive

Timeout

Host Key Verify

SFTP界面(V2)

布局:

┌──────────────┬──────────────┐
│ Local        │ Remote       │
├──────────────┼──────────────┤
│ File List    │ File List    │
└──────────────┴──────────────┘

支持:

  • 上传
  • 下载
  • 删除
  • 重命名

Port Forward界面(V3)

表格形式:

Name

Local Port

Remote Host

Remote Port

Status

Docker管理界面(V4)

布局:

Container List

↓

Container Details

↓

Logs

AI助手界面(V5)

位置:

右侧可折叠面板

宽度:

350px

结构:

Question

↓

Chat Area

↓

Input Box

图标规范

统一使用:

Lucide Icons

FontAwesome

禁止混用多套图标库


间距规范

组件间距:

8px

区域间距:

12px

窗口边距:

16px

Agent开发要求

新增UI前:

必须检查本文件。

修改UI前:

必须确认是否符合本文件规范。

禁止:

擅自改变主布局结构。

禁止:

随意新增复杂导航模式。

禁止:

引入不一致的UI风格。

禁止:

硬编码界面文案(所有可见文字必须用资源 ID,见 I18N.md)。

所有新增界面必须遵循本规范。