# design-taste-frontend

## 高自主性前端设计技能

### 1. 主动基线配置（ACTIVE BASELINE CONFIGURATION）

- `DESIGN_VARIANCE`: 8（1 = 完美对称，10 = 艺术化混沌）  
- `MOTION_INTENSITY`: 6（1 = 静态无动效，10 = 电影级物理动效）  
- `VISUAL_DENSITY`: 4（1 = 美术馆式留白，10 = 驾驶舱式信息密度）

> ✅ **AI 指令**：所有生成默认严格采用 `(8, 6, 4)` 基线值。**禁止主动提示用户修改此配置文件**。仅当用户在聊天中**明确要求**时，才动态覆盖这些值；覆盖后，该组值将作为全局变量驱动第 3–7 节中的具体逻辑。

### 2. 默认架构与开发约定（DEFAULT ARCHITECTURE & CONVENTIONS）

除非用户显式指定其他技术栈，否则必须遵守以下约束以保障一致性：

- **依赖校验（MANDATORY）**：引入任何第三方库（如 `framer-motion`、`lucide-react`、`zustand`）前，**必须检查 `package.json`**。若缺失，须先输出安装命令（例如 `npm install framer-motion`），再提供代码。**不可假设库已存在**。

- **框架与交互模型**：默认使用 React 或 Next.js，优先采用服务端组件（RSC）。  
  - ✅ **RSC 安全规则**：全局状态（如 `zustand`、`context`）**仅限客户端组件**使用。Next.js 中需用 `'use client'` 显式包裹 Provider。

- **交互隔离原则**：若启用第 4 节（动效）或第 7 节（Liquid Glass），对应交互组件**必须抽离为独立叶组件**，且顶部第一行必须声明 `'use client'`。服务端组件**仅渲染静态布局**。

- **状态管理**：
  - 局部 UI 状态 → 使用 `useState` / `useReducer`；
  - 全局状态 → **仅用于避免深层 prop-drilling**，非必要不引入。

- **样式策略**：90% 场景使用 Tailwind CSS（v3/v4）。  
  - ✅ **版本锁定**：先查 `package.json` 确认版本；**禁止在 v3 项目中使用 v4 语法**。  
  - ✅ **v4 配置守卫（T4 CONFIG GUARD）**：v4 项目中，`postcss.config.js` **不得启用 `tailwindcss` 插件**；应使用 `@tailwindcss/postcss` 或 Vite 插件方案。

- **禁用 Emoji 政策（CRITICAL）**：代码、HTML、文本内容、`alt` 属性中**严禁使用 Emoji**。需替换为高质量图标（Radix / Phosphor）或精简 SVG 原语。

- **响应式与间距规范**：
  - 断点统一：`sm` / `md` / `lg` / `xl`；
  - 页面容器宽度：`max-w-[1400px] mx-auto` 或 `max-w-7xl`；
  - ✅ **视口稳定性（CRITICAL）**：Hero 区域**禁用 `h-screen`**，必须使用 `min-h-[100dvh]`，防止 iOS Safari 等移动端浏览器出现灾难性布局跳动；
  - ✅ **网格优于 Flex 数学计算**：禁用 `w-[calc(33%-1rem)]` 等复杂 flex 百分比计算；**一律使用 CSS Grid**（如 `grid grid-cols-1 md:grid-cols-3 gap-6`）；
  - ✅ **图标规范**：仅允许 `@phosphor-icons/react` 或 `@radix-ui/react-icons`；全局统一 `strokeWidth`（如 `1.5` 或 `2.0`）。

### 3. 设计工程化指令（DESIGN ENGINEERING DIRECTIVES）

针对 LLM 常见 UI 陈规偏见，强制执行以下高端设计规则：

#### 规则 1：确定性排版（Deterministic Typography）
- **标题/Display**：默认 `text-4xl md:text-6xl tracking-tighter leading-none`；  
  - ❌ 禁用 `Inter` 字体表达“高端”或“创意”感；✅ 强制选用 `Geist`、`Outfit`、`Cabinet Grotesk` 或 `Satoshi`；
- **技术型 UI（仪表盘/软件界面）**：❌ 严格禁用衬线字体；✅ 仅允许高端无衬线组合（如 `Geist` + `Geist Mono` 或 `Satoshi` + `JetBrains Mono`）；
- **正文/段落**：默认 `text-base text-gray-600 leading-relaxed max-w-[65ch]`。

#### 规则 2：色彩校准（Color Calibration）
- **主色约束**：最多使用 **1 种强调色**；饱和度需匹配 `DESIGN_VARIANCE` 级别（高 variance → 更克制饱和度）。

#### 规则 3：布局多样化（Layout Diversification）
- ❌ `LAYOUT_VARIANCE > 4` 时，**严格禁用居中 Hero/H1**；✅ 强制采用：
  - 分屏布局（50/50）；
  - 左侧内容 + 右侧资产；
  - 非对称留白结构。

#### 规则 4：材质感、阴影与「反卡片滥用」（Materiality & Anti-Card Overuse）
- **仪表盘强化（DASHBOARD HARDENING）**：`VISUAL_DENSITY > 7` 时，**禁用通用卡片容器**；改用逻辑分组：`border-t`、`divide-y` 或纯负空间；
- ✅ 卡片仅在需表达层级关系（z-index 功能性需求）时使用；阴影须与背景色调同色系微调（tinted shadow）。

#### 规则 5：交互状态完整性（Interactive UI States）
- ✅ **必须实现全生命周期状态**（LLM 易忽略）：
  - **加载态**：按布局尺寸定制骨架屏（禁用通用环形 spinner）；
  - **空状态**：美观、有引导性的空态（说明如何填充数据）；
  - **错误态**：清晰内联报错（如表单字段下方）；
  - **触觉反馈**：`:active` 时使用 `-translate-y-[1px]` 或 `scale-[0.98]` 模拟物理按压感。

#### 规则 6：数据与表单模式（Data & Form Patterns）
- **表单结构**：
  - 标签（Label）必须置于输入框上方；
  - 辅助文本（Helper Text）可选但需存在于 DOM；
  - 错误信息置于输入框下方；
  - 输入区块统一 `gap-2`。

### 4. 创意主动性（CREATIVE PROACTIVITY）

系统性对抗 AI 通用设计（Anti-Slop），将以下高端编码范式设为默认实践：

- **Liquid Glass 折射效果**：启用玻璃态时，不止 `backdrop-blur`，还需添加：
  - `border-white/10`（1px 内边框）；
  - `shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]`（内阴影模拟物理边缘折射）。

- **磁吸微物理（Magnetic Micro-physics）**（`MOTION_INTENSITY > 5` 时启用）：
  - 按钮轻微向鼠标光标吸附；
  - ⚠️ **严禁**在 `useState` 中实现磁吸或连续动画；✅ **必须仅用 Framer Motion 的 `useMotionValue` + `useTransform`**（脱离 React 渲染周期），避免移动端性能崩溃。

- **永续微交互（Perpetual Micro-Interactions）**（`MOTION_INTENSITY > 5`）：
  - 在头像、状态点、背景等常规组件中嵌入无限循环微动画（Pulse / Typewriter / Float / Shimmer / Carousel）；
  - 所有交互元素动效必须使用弹簧物理：`type: "spring", stiffness: 100, damping: 20`（禁用 `ease-in-out` 等线性缓动）。

- **布局过渡（Layout Transitions）**：
  - ✅ 始终使用 Framer Motion 的 `layout` 和 `layoutId` 实现状态变更时的平滑重排、缩放与共享元素过渡。

- **交错编排（Staggered Orchestration）**：
  - 列表/网格**禁止瞬间挂载**；使用 `staggerChildren`（Framer）或 CSS 级联（`animation-delay: calc(var(--index) * 100ms)`）实现瀑布式逐项呈现；
  - ⚠️ `staggerChildren` 要求父/子组件**必须位于同一 Client Component 树中**；异步数据需作为 props 传入集中式 Motion 父容器。

### 5. 性能护栏（PERFORMANCE GUARDRAILS）

- **DOM 开销控制**：噪点/颗粒滤镜**仅限固定定位、无指针事件的伪元素**（如 `fixed inset-0 z-50 pointer-events-none`），**严禁应用于滚动容器**，以防 GPU 持续重绘与移动端性能劣化；
- **硬件加速规范**：❌ 禁止动画 `top` / `left` / `width` / `height`；✅ 仅允许 `transform` 与 `opacity`；
- **z-index 约束**：❌ 禁止随意使用 `z-50` / `z-10`；✅ 仅在系统级层上下文（粘性导航栏、模态框、遮罩层）中按需使用。

### 6. 技术参考：参数定义（TECHNICAL REFERENCE — Dial Definitions）

#### `DESIGN_VARIANCE`（1–10）
| 级别 | 特征 |
|------|------|
| **1–3（可预测）** | Flexbox `justify-center`、标准 12 列对称网格、等距 padding |
| **4–7（偏移）** | `margin-top: -2rem` 重叠、混合图片比例（4:3 + 16:9）、左对齐标题 + 居中数据 |
| **8–10（非对称）** | Masonry 布局、CSS Grid 分数单位（`grid-template-columns: 2fr 1fr 1fr`）、大块留白（`padding-left: 20vw`） |
| **移动端覆盖（MOBILE OVERRIDE）** | `md:` 以上非对称布局，在 `<md` 视口**必须强退为单列**：`w-full px-4 py-8` |

#### `MOTION_INTENSITY`（1–10）
| 级别 | 技术选型 |
|------|----------|
| **1–4（轻量）** | Tailwind `transition` + `animate-*` |
| **5–7（增强）** | Framer Motion（`motion.div`, `useScroll`, `useTransform`） |
| **8–10（高阶）** | GSAP（ScrollTrigger/Parallax）或 Three.js/WebGL（3D/Canvas）；⚠️ **严禁与 Framer Motion 混用同一组件树**；Framer 专用于 UI/Bento 交互；GSAP/Three.js 仅用于全页滚动叙事或 Canvas 背景，且须包裹于带 cleanup 的 `useEffect` 中 |

### 7. 高端 UI 模式速查（Advanced UI Pattern Catalog）

| 类别 | 示例模式 |
|--------|-----------|
| **Hero 与导航** | 非对称 Hero（左/右对齐文案 + 渐变背景图）、Mac OS Dock 缩放导航、磁吸按钮、果冻菜单（Gooey Menu）、动态岛（Dynamic Island）、径向上下文菜单、浮动速度拨号（Speed Dial）、巨型菜单（Mega Menu） |
| **布局与网格** | Bento 网格、Masonry 布局、色度网格（Chroma Grid）、分屏滚动（Split Screen Scroll）、帷幕揭示（Curtain Reveal） |
| **卡片与容器** | 视差倾斜卡（Parallax Tilt）、聚光边框卡（Spotlight Border）、玻璃态面板（Glassmorphism Panel）、全息箔卡（Holographic Foil）、Tinder 卡片堆栈、变形模态框（Morphing Modal） |
| **滚动动画** | 粘性卡片堆叠（Sticky Scroll Stack）、横向滚动劫持（Horizontal Scroll Hijack）、Locomotive 滚动序列、缩放视差（Zoom Parallax）、滚动路径绘制（Scroll Progress Path）、液体擦除过渡（Liquid Swipe Transition） |
| **画廊与媒体** | 穹顶画廊（Dome Gallery）、Coverflow 3D 轮播、拖拽平移网格（Drag-to-Pan Grid）、手风琴图像滑块、鼠标轨迹图像（Hover Image Trail）、故障图像（Glitch Effect） |
| **排版与文字** | 动态跑马灯（Kinetic Marquee）、文字蒙版揭示（Text Mask Reveal）、文字乱码解码（Text Scramble）、环形文字路径（Circular Text Path）、渐变描边动画（Gradient Stroke Animation）、光标避让文字网格（Kinetic Typography Grid） |