Skip to content

12SSL WHMCS 证书配置页表单设计改进说明

任务背景

需要优化 WHMCS nicsrs_ssl 证书配置页的表单设计,使其符合当前 12SSL 客户区设计体系。

页面示例:

text
clientarea.php?action=productdetails&id=...

当前页面属于“表单 + 表格式 SAN 列表”,主要问题包括:

  • 分隔线过多,页面视觉噪音明显。
  • 主标题、区块标题和字段标签的层级不够清楚。
  • 输入控件和按钮尺寸偏大。
  • Order Type、CSR 和 SAN Domains 使用不同的对齐方式。
  • SAN 表头、编号、输入框和选择框没有形成稳定的列结构。
  • 页面纵向空间利用率较低。

实施范围

只调整 HTML 结构和 CSS,不修改:

  • 字段名称和字段 ID。
  • Smarty 变量。
  • 表单提交逻辑。
  • 客户端及服务器端验证逻辑。
  • JavaScript 使用的选择器。
  • CSR、DCV、证书配置及保存草稿功能。

优先修改 modules/servers/nicsrs_ssl 自身的模板或模块 CSS。

所有样式应限定在模块根容器内,例如:

css
.page-clientareaproductdetails #sslContent

不要使用不带作用域的 .form-control.btntable 等全局选择器覆盖其他客户区页面。

一、总体设计原则

  1. 只保留最外层 ssl-product-main-card 一个主容器。
  2. 不新增卡片套卡片、胶囊字段或大面积色块。
  3. 内部层级通过标题、字重、间距和必要的细分隔线表达。
  4. 减少连续、重复的通栏横线。
  5. 保持轻量,不引入新的 JavaScript 或 CSS 框架。
  6. 与 Account Details、Services、Invoices 等现有 12SSL 客户区页面保持一致。

二、标题体系

主标题

主标题示例:Single IP SSL

  • 保留盾牌图标。
  • 字号:16px
  • 字重:600
  • 图标尺寸:16px
  • 图标与文字间距:8px
  • 左右内边距:16px
  • 只保留一条底部边框:1px solid var(--ssl-line)

内部区块标题

内部标题包括:

  • Order Type
  • CSR
  • SAN Domains

统一要求:

  • 字号:15px
  • 字重:600
  • 上间距:18px
  • 下间距:8px
  • 不增加独立背景、边框或卡片容器。
  • 不在标题上下同时绘制通栏横线。
  • 只在不同的大功能区块之间保留一条细分隔线。

三、表单密度

输入框和选择框统一为:

css
min-height: 38px;
padding: 6px 10px;
font-size: 14px;
line-height: 1.4;
border: 1px solid var(--ssl-line);
border-radius: 6px;
box-shadow: none;

字段说明文字统一为:

css
font-size: 14px;
line-height: 1.55;
color: var(--ssl-muted);
margin: 0 0 10px;

不要让单个说明段落占据过大的上下空间。

四、Order Type

建议结构:

text
Order Type    ○ New Order    ○ Renewal

要求:

  • 标签宽度自适应,不设置过宽的固定列。
  • Radio 与文字间距为 6px
  • 两组选项之间保持 24px 间距。
  • 整行内容垂直居中。
  • 下方说明文字与 Order Type 标签左侧对齐。
  • 保留 radio 原有的字段属性和交互逻辑。

五、CSR 区域

建议结构:

text
CSR
CSR and Private Key will be automatically generated...

Use your own CSR (NOT recommended)                  [switch]

要求:

  • 开关固定靠右。
  • 标签和开关垂直居中。
  • 开关行整体高度约为 42px
  • 不要在说明文字和开关行的上下分别重复绘制横线。
  • 保持现有开关交互逻辑。

六、SAN Domains 列表

这是本页面最需要改进的区域。

桌面端结构

text
    Domain / IP                              DCV Method
1   [ Domain / IP                         ] [ Please Select ▼ ]

推荐使用 CSS Grid:

css
grid-template-columns: 40px minmax(0, 1fr) minmax(220px, 1fr);
column-gap: 16px;

具体要求:

  • 编号列固定为 40px
  • 编号水平居中。
  • 表头与输入框严格使用相同的列宽定义。
  • 表头字号为 13px
  • 表头字重为 600
  • 表头颜色使用 var(--ssl-muted)
  • 表头、编号、输入框和选择框形成稳定的列结构。
  • 删除编号背后的灰色方块,编号只使用普通文本。
  • 每条 SAN 记录上下内边距为 10px
  • 多行 SAN 之间只使用 1px 细分隔线。
  • 不使用斑马纹、阴影或胶囊背景。
  • 输入框与 select 高度统一为 38px

移动端结构

  • 隐藏桌面表头。
  • 每条 SAN 改为单栏布局。
  • Domain/IP 与 DCV Method 分别显示简短字段标签。
  • 编号显示在该组左上方,不再占用独立空白列。
  • 页面不能出现横向滚动。

七、操作按钮

SubmitSave Draft 应统一使用客户区标准按钮尺寸:

css
min-height: 32px;
padding: 6px 12px;
font-size: 13px;
font-weight: 500;
border-radius: 6px;

布局要求:

  • 两个按钮放在同一个操作区。
  • 操作区右对齐。
  • 按钮之间保持 8px 间距。
  • Submit 使用主题主绿色。
  • Save Draft 使用白底、绿色文字和绿色细边框。
  • 操作区上方保留一条细分隔线。
  • 操作区内边距使用 12px 16px

八、对齐规范

主内容区统一采用两条水平对齐轴:

  • 图标起点:距容器左侧 16px
  • 标题及正文主要文字起点:距容器左侧 48px

内部表单内容统一使用:

css
padding-left: 16px;
padding-right: 16px;

不要给不同小节设置互不相同的左缩进。

SAN 区域可以使用自身的三列网格,但网格整体左边缘必须与其他正文内容对齐。

九、响应式要求

需要至少检查以下宽度:

  • 大屏桌面:1440px 及以上。
  • 普通桌面或平板横屏:992px–1439px
  • 平板及手机:小于 768px
  • 窄屏手机:小于 576px

移动端要求:

  • Order Type 允许自然换行。
  • CSR 标签和开关不能相互覆盖。
  • SAN 记录切换为单栏。
  • 操作按钮可以保持右对齐;空间不足时允许换行,但不能变成无必要的通栏按钮。

十、代码限制

  • 优先修改模块自身模板和模块 CSS。
  • 避免继续向全局 design-system.css 堆积大量模块专用补丁。
  • 不删除任何表单字段。
  • 不更改字段顺序和提交参数。
  • 不改变现有证书配置业务流程。
  • 不引入新的 JavaScript 库。
  • 除非覆盖模块已有内联样式或高权重规则,否则避免使用 !important
  • 保留 Smarty 模板语法及 WHMCS 升级兼容性。
  • 使用现有 WHMCS 语言变量;只有官方不存在对应变量时才增加自定义语言变量。

十一、验收标准

  • 页面只存在一个最外层主容器。
  • 不再出现连续、重复的通栏横线。
  • 主标题和各区块标题的层级清楚。
  • 所有输入框和选择框高度一致。
  • Order Type 的标签、radio 和说明文字对齐。
  • CSR 开关与标签垂直居中并固定靠右。
  • SAN 表头与数据列严格对齐。
  • SAN 多行数据不会出现不同列宽。
  • 操作按钮尺寸与客户区其他页面一致。
  • 英文与中文环境均能正常显示。
  • 桌面端和移动端均无横向滚动或内容覆盖。
  • 页面整体比当前版本更加紧凑、清楚且易读。
  • 不影响其他客户区页面和现有模块功能。

十二、交付要求

完成后请提供:

  1. 修改的本地文件绝对路径。
  2. 修改的远程文件绝对路径。
  3. 主要结构和样式变化摘要。
  4. PHP、Smarty、CSS 或 JavaScript 的相关检查结果。
  5. 桌面端和移动端实际页面验证结果。
  6. 确认未改变字段、提交参数和业务逻辑。