Landing Page (首页) UI 设计规范

更新时间: 2026-02-03 页面路径: workbench/NextUI.Workbench.Server/Pages/Index.cshtml 技术栈: ASP.NET Core Razor Pages (非 Blazor)

1. 页面概述

Landing Page 是 NextUI 官网的首页,采用现代化的分屏布局设计,左侧展示产品信息和特性标签,右侧展示大型抽象 UI 插图。页面使用固定的毛玻璃效果 Header 和 Footer,内容区域可滚动穿透。

技术说明: 此页面使用 Razor Pages 实现(服务端渲染),而非 Blazor 组件。因此无法使用 Sx* 组件,但样式必须使用 NextUI Design Tokens 以保持视觉一致性。

2. 页面结构

┌─────────────────────────────────────────────────────────────────────┐
│                    Header (Fixed + Glass Blur)                       │
│  [Logo] [Nav: 文档 | 组件] [Actions: 语言 | 主题 | 登录]             │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ┌─────────────────────────┬───────────────────────────────────┐    │
│  │                         │                                   │    │
│  │      LEFT: Content      │     RIGHT: Illustration           │    │
│  │         (50%)           │           (50%)                   │    │
│  │                         │                                   │    │
│  │   NextUI for Blazor     │    ┌─────────────────────────┐   │    │
│  │   企业级 Blazor UI...    │    │   ┌────────┬──────────┐ │   │    │
│  │                         │    │   │ Card 1 │  Card 2  │ │   │    │
│  │   [快速开始] [浏览组件]   │    │   │ (表单) │  (图表)  │ │   │    │
│  │                         │    │   └────────┴──────────┘ │   │    │
│  │   ╭──────╮ ╭──────╮     │    │   ┌────────┬──────────┐ │   │    │
│  │   │Design│ │ 高性能│     │    │   │ Card 3 │  Card 4  │ │   │    │
│  │   ╰──────╯ ╰──────╯     │    │   │ (输入) │  (列表)  │ │   │    │
│  │   ╭──────╮ ╭──────╮     │    │   └────────┴──────────┘ │   │    │
│  │   │国际化│ │ 100+ │     │    └─────────────────────────┘   │    │
│  │   ╰──────╯ ╰──────╯     │              SVG 插图             │    │
│  │                         │                                   │    │
│  └─────────────────────────┴───────────────────────────────────┘    │
│                                                                      │
├─────────────────────────────────────────────────────────────────────┤
│                    Footer (Fixed + Glass Blur)                       │
│          NextUI © 2026  ·  GitHub · 文档 · 组件                      │
└─────────────────────────────────────────────────────────────────────┘

3. 设计理念

3.1 视觉风格

  • 分屏布局: 左右 50/50 分割,内容与插图平衡
  • 毛玻璃效果: Header 和 Footer 使用 backdrop-filter: blur(12px) 实现半透明模糊
  • 渐变背景: 微妙的三色渐变 (蓝→紫→粉),增加深度感
  • 轻量感: 大量使用半透明白色和轻微阴影,营造轻盈现代感

3.2 颜色系统

元素 颜色 说明
主背景 rgba(59,130,246,0.03)rgba(147,51,234,0.03)rgba(236,72,153,0.03) 三色渐变 135°
Header/Footer rgba(255,255,255,0.8) 半透明白色 + blur
插图区背景 #f8fafc#f1f5f9 浅灰渐变
特性标签 rgba(255,255,255,0.8) 半透明胶囊

4. 组件组成

4.1 布局文件

文件 用途
Pages/Shared/_Layout.cshtml 主布局 (HTML head, body)
Pages/Shared/_Header.cshtml 页头 (固定 + 毛玻璃)
Pages/Shared/_Footer.cshtml 页脚 (固定 + 毛玻璃)
Pages/Index.cshtml 首页内容 (分屏布局)

4.2 样式文件

文件 用途
wwwroot/css/static-pages.css Landing Page 和 Docs 样式
_content/NextUI.Blazor/Styles/sx-tokens.css Design Tokens

5.1 样式规格

属性 说明
定位 position: fixed 固定在顶部
高度 64px --static-header-height
背景 rgba(255,255,255,0.8) 半透明
模糊 backdrop-filter: blur(12px) 毛玻璃效果
边框 1px solid rgba(0,0,0,0.06) 微妙分割线
层级 z-index: 100 置顶

5.2 导航链接

链接 URL 激活条件
文档 /docs Path 以 /docs 开头
组件 /components Path 以 /components 开头

5.3 操作按钮

按钮 功能 当前状态
语言切换 切换 UI 语言 ⚠️ 未实现 (仅 UI)
主题切换 亮色/暗色模式 ⚠️ 未实现 (仅 UI)
登录 跳转认证页面 /authentication/login

6. 分屏布局 (Split Layout)

6.1 结构

<div class="landing-container">
    <div class="landing-split">
        <div class="landing-content"><!-- 左侧内容 --></div>
        <div class="landing-illustration"><!-- 右侧插图 --></div>
    </div>
</div>

6.2 左侧内容区 (landing-content)

属性 说明
宽度 50% flex: 0 0 50%
内边距 var(--sx-spacingVerticalXL) var(--sx-spacingHorizontalXL) 响应式调整
对齐 justify-content: center 垂直居中
左边距 动态计算 宽屏时对齐 max-width

6.3 右侧插图区 (landing-illustration)

属性 说明
宽度 50% flex: 0 0 50%
背景 linear-gradient(135deg, #f8fafc, #f1f5f9) 浅灰渐变
对齐 center 水平垂直居中
溢出 overflow: hidden 裁剪超出部分

7. Hero Section 规格

7.1 内容

元素 类名 内容
标题 .landing-hero__title NextUI for Blazor
副标题 .landing-hero__subtitle 企业级 Blazor UI 组件库...
主按钮 .landing-hero__btn--primary 快速开始 → /docs/getting-started
次按钮 .landing-hero__btn--secondary 浏览组件 → /components

7.2 标题样式

属性
字号 clamp(2rem, 4vw, 3rem)
字重 var(--sx-fontWeightBold)
颜色 var(--sx-colorNeutralForeground1)
行高 1.2
字间距 -0.02em

7.3 副标题样式

属性
字号 clamp(0.95rem, 1.5vw, 1.125rem)
颜色 var(--sx-colorNeutralForeground2)
行高 1.7
最大宽度 480px

7.4 按钮样式

类型 背景 文字 边框
Primary var(--sx-colorBrandBackground) var(--sx-colorNeutralForegroundOnBrand)
Secondary rgba(255,255,255,0.9) var(--sx-colorNeutralForeground1) var(--sx-colorNeutralStroke1)

Hover 效果:

  • transform: translateY(-2px) 上浮
  • box-shadow: 0 4px 12px rgba(0,0,0,0.1) 阴影

8. 特性标签 (Feature Tags)

8.1 设计风格

特性不再使用卡片,而是使用紧凑的胶囊标签形式,带有 SVG 线条图标。

8.2 特性列表

SVG Icon 标题 图标描述
图片图标 Design Tokens 相框/图像
闪电图标 高性能 闪电
地球图标 国际化 经纬线地球
布局图标 100+ 组件 网格布局
图表图标 数据可视化 柱状图
盾牌图标 身份认证 带勾选的盾牌

8.3 标签样式

属性
布局 display: inline-flex
内边距 var(--sx-spacingVerticalXS) var(--sx-spacingHorizontalM)
圆角 100px (完全圆角)
背景 rgba(255,255,255,0.8)
边框 1px solid rgba(0,0,0,0.06)
图标尺寸 16px × 16px
图标颜色 var(--sx-colorBrandForeground1)
文字颜色 var(--sx-colorNeutralForeground1)
字重 500

Hover 效果:

  • 背景变为 white
  • 添加轻微阴影 box-shadow: 0 2px 8px rgba(0,0,0,0.06)

9. SVG 插图规格

9.1 概述

右侧展示一个大型 SVG 插图,包含多个模拟 UI 组件的图形元素,展示产品能力。

9.2 插图内容

元素 位置 描述
Card 1 左上 (80, 120) 带头像、标题、按钮的卡片
Card 2 右上 (420, 80) 带柱状图的数据卡片
Card 3 中左 (150, 380) 表单卡片 (标题 + 3个输入框 + 按钮)
Card 4 中右 (480, 340) 列表卡片 (标题 + 4个列表项)
装饰圆 分散 半透明渐变圆形背景
连接线 卡片间 虚线连接表示组件关系

9.3 配色

元素 颜色
主渐变 #3B82F6#8B5CF6 (蓝→紫)
装饰渐变 #EC4899#F59E0B (粉→橙)
卡片背景 white
卡片阴影 drop-shadow(0 4px 20px rgba(0,0,0,0.08))
占位文本 #E5E7EB, #F3F4F6
强调色 #10B981 (绿色指示器)

10.1 样式规格

属性 说明
定位 position: fixed 固定在底部
高度 56px --static-footer-height
背景 rgba(255,255,255,0.8) 半透明
模糊 backdrop-filter: blur(12px) 毛玻璃效果
边框 1px solid rgba(0,0,0,0.06) 微妙分割线
层级 z-index: 100 置顶

10.2 内容

元素 内容
版权 NextUI © {当前年份}
链接 GitHub (外部) · 文档 · 组件

11. 响应式断点

11.1 断点定义

断点 范围 说明
桌面 > 1200px 完整分屏布局
小桌面 1024px - 1200px 调整左边距
平板 768px - 1024px 垂直堆叠布局
移动 < 768px 紧凑布局,隐藏导航

11.2 响应式变化

断点 变化
≤ 1200px 左侧内容区左边距恢复正常
≤ 1024px 分屏→垂直堆叠, 内容在上, 插图在下 (50vh), 内容居中对齐
≤ 768px 导航隐藏, 插图高度减至 40vh, 标题缩小至 1.75rem

11.3 平板/移动端布局

┌────────────────────────────┐
│          Header            │
├────────────────────────────┤
│                            │
│   NextUI for Blazor        │
│   (居中对齐)                │
│                            │
│   [快速开始] [浏览组件]      │
│                            │
│   ╭──────╮ ╭──────╮        │
│   │ Tag  │ │ Tag  │ ...    │
│   ╰──────╯ ╰──────╯        │
│                            │
├────────────────────────────┤
│                            │
│       SVG 插图 (50vh)       │
│                            │
├────────────────────────────┤
│          Footer            │
└────────────────────────────┘

12. 暗色主题

12.1 变化

元素 亮色 暗色
背景渐变透明度 0.03 0.05
背景基底色 #1a1a1a
Header/Footer rgba(255,255,255,0.8) rgba(26,26,26,0.8)
边框 rgba(0,0,0,0.06) rgba(255,255,255,0.06)
特性标签背景 rgba(255,255,255,0.8) rgba(40,40,40,0.8)
次要按钮背景 rgba(255,255,255,0.9) rgba(40,40,40,0.8)
插图区背景 #f8fafc → #f1f5f9 #1e293b → #0f172a

13. Design Token 使用统计

13.1 颜色 Tokens

Token 用途
--sx-colorNeutralForeground1 主要文字
--sx-colorNeutralForeground2 次要文字
--sx-colorNeutralForeground3 辅助文字
--sx-colorBrandForeground1 品牌色文字/图标
--sx-colorBrandBackground 品牌色背景 (alias)
--sx-colorBrandBackgroundHover 品牌色背景悬停 (alias)
--sx-colorNeutralForegroundOnBrand 品牌背景上的文字 (alias)
--sx-colorNeutralStroke1 边框
--sx-colorNeutralStroke2 次要边框

13.2 间距 Tokens

Token 用途
--sx-spacingVerticalXS 标签内垂直间距
--sx-spacingVerticalS 按钮内垂直间距
--sx-spacingVerticalM 中等垂直间距
--sx-spacingVerticalL 大垂直间距
--sx-spacingVerticalXL 区块垂直间距
--sx-spacingHorizontalXS 标签内图标间距
--sx-spacingHorizontalS 小水平间距
--sx-spacingHorizontalM 按钮内水平间距
--sx-spacingHorizontalL 大水平间距
--sx-spacingHorizontalXL 区块水平间距

13.3 其他 Tokens

Token 用途
--sx-borderRadiusMedium 按钮/链接圆角
--sx-fontWeightSemibold 半粗字体
--sx-fontWeightBold 粗字体
--sx-fontSizeBase200 小字号
--sx-fontSizeBase300 正文字号
--sx-fontSizeBase400 中等字号

13.4 CSS 变量别名

由于 Token 命名差异,在 static-pages.css 中定义了以下别名:

--sx-colorBrandBackground: var(--sx-colorBrandBackground1);
--sx-colorBrandBackgroundHover: var(--sx-colorBrandBackground2);
--sx-colorNeutralForegroundOnBrand: var(--sx-colorOnBrand);
--sx-spacingHorizontalS: var(--sx-spacing-sm);
/* ... 更多别名 */

14. 规范合规检查

14.1 组件使用

检查项 结果 说明
原生 HTML 元素 ⚠️ 豁免 Razor Pages 无法使用 Blazor 组件
<button> 使用 2 处 Header 的语言/主题切换按钮
<a> 使用多处 所有导航链接
SVG 内联 使用 特性图标和大型插图

合规说明: 此页面是 Razor Pages 而非 Blazor,属于规范的豁免情况。

14.2 样式检查

检查项 结果 说明
硬编码颜色 ⚠️ 例外 半透明 rgba 值用于毛玻璃效果
硬编码间距 ✅ 无 使用 token 变量
硬编码圆角 ⚠️ 例外 100px 用于胶囊标签
Design Token 使用 ✅ 正确 文字/背景/间距使用 token

14.3 例外说明

例外 原因
rgba(255,255,255,0.8) 毛玻璃效果需要精确透明度
rgba(0,0,0,0.06) 微妙边框需要精确透明度
100px 圆角 胶囊形状需要超大圆角
clamp() 字号 响应式字号需要精确控制
SVG 内联颜色 插图渐变使用固定品牌色

15. 典型使用场景 (Use Cases)

15.1 UC-1: 访客首次访问

步骤:

  1. 用户访问 /
  2. 看到分屏布局:左侧产品介绍,右侧 UI 插图
  3. 浏览特性标签了解产品能力
  4. 点击 "快速开始"

预期结果: 跳转到 /docs/getting-started

15.2 UC-2: 访客浏览组件

步骤:

  1. 用户访问 /
  2. 点击 "浏览组件" 或导航栏 "组件"

预期结果: 跳转到 /components

15.3 UC-3: 移动端访问

步骤:

  1. 用户在移动设备访问 /

预期结果:

  • 导航栏隐藏
  • 布局变为垂直堆叠(内容在上,插图在下)
  • 内容居中对齐
  • 特性标签自动换行

16. 测试检查点

16.1 必须测试 (E2E)

  • 首页正确加载,显示分屏布局
  • 左侧显示标题、副标题、CTA 按钮、特性标签
  • 右侧显示 SVG 插图
  • "快速开始" 按钮跳转到 /docs/getting-started
  • "浏览组件" 按钮跳转到 /components
  • 导航栏 "文档" 链接正常
  • 导航栏 "组件" 链接正常
  • "登录" 按钮跳转到认证页面
  • Header/Footer 固定且有毛玻璃效果

16.2 响应式测试

  • 桌面端 (>1024px) 显示分屏布局
  • 平板端 (768-1024px) 垂直堆叠,内容居中
  • 移动端 (<768px) 导航隐藏,紧凑布局

16.3 主题测试

  • 亮色主题下颜色正确 (默认)
  • 暗色主题下颜色正确 (需实现主题切换)

17. 已知问题 / TODO

优先级 问题 状态
P2 语言切换按钮无功能 未实现
P2 主题切换按钮无功能 未实现
P3 移动端需要汉堡菜单 未实现
P3 无 SEO meta 标签 未实现
P3 无 Open Graph 标签 未实现

18. 变更历史

日期 变更内容
2026-02-03 初始版本,随 Workbench 重构创建
2026-02-03 重大更新: 分屏布局设计
- 采用左右 50/50 分屏布局
- 固定 Header/Footer 使用毛玻璃效果
- 特性从卡片改为胶囊标签
- 添加大型 SVG 插图展示 UI 组件
- 响应式支持垂直堆叠布局