安装方式
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add MiniMax-AI/skills --skill frontend-dev 全栈前端开发,融合高端UI设计、电影级动画、AI生成媒体资产、有说服力的文案写作和视觉艺术。构建完整、视觉惊艳的网页,包含真实媒体、高级动效和引人入胜的文案。 适用场景:落地页建设、营销网站、产品页、仪表盘、生成媒体资产(图片/视频/音频/音乐)、撰写转化文案、生成式艺术创作、实现电影级滚动动画。
70
下载量
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add MiniMax-AI/skills --skill frontend-dev name: frontend-dev
description: |-
全栈前端开发,融合高端UI设计、电影级动画、AI生成媒体资产、有说服力的文案写作和视觉艺术。构建完整、视觉惊艳的网页,包含真实媒体、高级动效和引人入胜的文案。
适用场景:落地页建设、营销网站、产品页、仪表盘、生成媒体资产(图片/视频/音频/音乐)、撰写转化文案、生成式艺术创作、实现电影级滚动动画。
license: MIT
metadata:
version: "1.0.0"
category: frontend
sources:
- taste-skill by Leonxlnx (https://github.com/Leonxlnx/taste-skill) — Design engineering framework
- canvas-design by Anthropic (https://github.com/anthropics/skills/tree/main/skills/canvas-design) — Static visual art workflow
- algorithmic-art by Anthropic (https://github.com/anthropics/skills/tree/main/skills/algorithmic-art) — Generative art workflow
- Framer Motion documentation
- GSAP / GreenSock documentation
- Three.js documentation
- Tailwind CSS documentation
- React / Next.js documentation
- AIDA Framework (Elmo Lewis)
- p5.js documentation通过编排5种专业能力:设计工程、运动系统、AI生成资产、说服性文案和生成艺术,构建完整的、生产就绪的前端页面。
/frontend-dev <request>
用户以自然语言提供请求(例如:"为一个音乐流媒体应用构建一个落地页")。
frontend-dev/
├── SKILL.md # 核心技能(本文档)
├── scripts/ # 资产生成脚本
│ ├── minimax_tts.py # 文本转语音
│ ├── minimax_music.py # 音乐生成
│ ├── minimax_video.py # 视频生成(异步)
│ └── minimax_image.py # 图片生成
├── references/ # 详细指南(按需阅读)
│ ├── minimax-cli-reference.md # CLI 标志快速参考
│ ├── asset-prompt-guide.md # 资产提示工程规则
│ ├── minimax-tts-guide.md # TTS 用法与声音
│ ├── minimax-music-guide.md # 音乐提示与歌词格式
│ ├── minimax-video-guide.md # 摄像机命令与模型
│ ├── minimax-image-guide.md # 比例与批量生成
│ ├── minimax-voice-catalog.md # 所有声音 ID
│ ├── motion-recipes.md # 动画代码片段
│ ├── env-setup.md # 环境设置
│ └── troubleshooting.md # 常见问题
├── templates/ # 视觉艺术模板
│ ├── viewer.html # p5.js 交互式艺术基础
│ └── generator_template.js # p5.js 代码参考
└── canvas-fonts/ # 静态艺术字体(TTF + 许可证)
所有框架使用相同的资产组织方式:
assets/
├── images/
│ ├── hero-landing-1710xxx.webp
│ ├── icon-feature-01.webp
│ └── bg-pattern.svg
├── videos/
│ ├── hero-bg-1710xxx.mp4
│ └── demo-preview.mp4
└── audio/
├── bgm-ambient-1710xxx.mp3
└── tts-intro-1710xxx.mp3
资产命名: {type}-{descriptor}-{timestamp}.{ext}
| 框架 | 资产位置 | 组件位置 |
|---|---|---|
| 纯 HTML | ./assets/ | 无(内联或 ./js/) |
| React/Next.js | public/assets/ | src/components/ |
| Vue/Nuxt | public/assets/ | src/components/ |
| Svelte/SvelteKit | static/assets/ | src/lib/components/ |
| Astro | public/assets/ | src/components/ |
project/
├── index.html
├── assets/
│ ├── images/
│ ├── videos/
│ └── audio/
├── css/
│ └── styles.css
└── js/
└── main.js # 动画(GSAP/原生)
project/
├── public/assets/ # 静态资产
├── src/
│ ├── components/
│ │ ├── ui/ # Button, Card, Input
│ │ ├── sections/ # Hero, Features, CTA
│ │ └── motion/ # RevealSection, StaggerGrid
│ ├── lib/
│ ├── styles/
│ └── app/ # 页面
└── package.json
project/
├── public/assets/
├── src/ # 或 Nuxt 的根目录
│ ├── components/
│ │ ├── ui/
│ │ ├── sections/
│ │ └── motion/
│ ├── composables/ # 共享逻辑
│ ├── pages/
│ └── assets/ # 处理后的资产(可选)
└── package.json
project/
├── public/assets/
├── src/
│ ├── components/ # .astro, .tsx, .vue, .svelte
│ ├── layouts/
│ ├── pages/
│ └── styles/
└── package.json
组件命名: PascalCase(HeroSection.tsx、HeroSection.vue、HeroSection.astro)
---
本技能中的所有规则均为强制性。违反任何规则都会导致阻塞性错误——请在继续或交付前修复。
---
使用 scripts/ 生成所有图片/视频/音频资产。绝不使用占位符 URL(unsplash、picsum、placeholder.com、via.placeholder、placehold.co 等)或外部 URL。
遵循文案框架(AIDA、PAS、FAB)编写所有文本内容。不要使用 "Lorem ipsum"——编写真实的文案。
搭建项目并根据设计和运动规则构建每个部分。集成生成的资产和文案。所有 <img>、<video>、<source> 和 CSS background-image 必须引用阶段 3 中的本地资产。
运行最终检查清单(参见质量关卡部分)。
---
| 参数 | 默认值 | 范围 |
|---|---|---|
| DESIGN_VARIANCE | 8 | 1=对称,10=非对称 |
| MOTION_INTENSITY | 6 | 1=静态,10=电影级 |
| VISUAL_DENSITY | 4 | 1=通透,10=密集 |
根据用户请求动态调整。
package.json。如果缺失则输出安装命令。"use client" 叶子组件。package.json 中检查版本——绝不混用 v3/v4 语法。min-h-[100dvh] 而非 h-screen。使用 CSS Grid 而非 flex 百分比计算。max-w-[1400px] mx-auto 或 max-w-7xl。| 规则 | 指令 |
|---|---|
| 排版 | 标题:text-4xl md:text-6xl tracking-tighter。正文:text-base leading-relaxed max-w-[65ch]。绝不使用 Inter——使用 Geist/Outfit/Satoshi。绝不在仪表板上使用 Serif。 |
| 颜色 | 最多 1 个强调色,饱和度 < 80%。绝不使用 AI 紫/蓝。坚持一个调色板。 |
| 布局 | 当 VARIANCE > 4 时,绝不使用居中英雄区。强制使用分屏或非对称布局。 |
| 卡片 | 当 DENSITY > 7 时,绝不使用通用卡片。使用 border-t、divide-y 或间距替代。 |
| 状态 | 始终实现:加载(骨架屏)、空状态、错误状态、触觉反馈(scale-[0.98])。 |
| 表单 | 标签位于输入框之上。错误信息位于下方。输入块使用 gap-2。 |
backdrop-blur + border-white/10 + shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]useMotionValue/useTransform——连续动画绝不使用 useStatelayout 和 layoutId 属性staggerChildren 或 CSS animation-delay: calc(var(--index) * 100ms)| 类别 | 禁止项 |
|---|---|
| 视觉 | 霓虹辉光、纯黑 (#000)、过饱和的强调色、标题上的渐变文字、自定义光标 |
| 排版 | Inter 字体、过大的 H1、仪表板上的 Serif |
| 布局 | 3 列等宽卡片行、带有尴尬间隙的浮动元素 |
| 组件 | 未经自定义的默认 shadcn/ui |
| 类别 | 模式 |
|---|---|
| 导航 | Dock 放大、磁性按钮、粘性菜单、动态岛、径向菜单、快速拨号、超级菜单 |
| 布局 | Bento 网格、瀑布流、Chroma 网格、分屏滚动、幕布揭示 |
| 卡片 | 视差倾斜、聚光灯边框、玻璃态、全息箔、滑动堆叠、变形模态 |
| 滚动 | 粘性堆叠、水平劫持、Locomotive 序列、缩放视差、进度路径、液体滑动 |
| 画廊 | 圆顶画廊、Coverflow、拖拽平移、手风琴滑块、悬停轨迹、故障效果 |
| 文字 | 动态跑马灯、文字蒙版揭示、乱序效果、圆形路径、渐变描边、动态网格 |
| 微交互 | 粒子爆炸、下拉刷新、骨架屏闪烁、方向悬停、涟漪点击、SVG 绘制、网格渐变、镜头模糊 |
#f9fafb,卡片纯白色带 border-slate-200/50rounded-[2.5rem],扩散阴影tracking-tight 标题stiffness: 100, damping: 20),无限循环,React.memo 隔离5 种卡片原型:
layoutId 自动排序当品牌样式激活时:
#141413,浅色:#faf9f5,中间色:#b0aea5,微妙色:#e8e6dc#d97757,蓝色 #6a9bcc,绿色 #788c5d---
| 需求 | 工具 |
|---|---|
| UI 进入/退出/布局 | Framer Motion — AnimatePresence、layoutId、弹簧 |
| 滚动叙事(固定、擦除) | GSAP + ScrollTrigger — 帧精确控制 |
| 循环图标 | Lottie — 懒加载(~50KB) |
| 3D/WebGL | Three.js / R3F — 隔离的 <Canvas>,自己的 "use client" 边界 |
| 悬停/聚焦状态 | 仅 CSS — 零 JS 成本 |
| 原生滚动驱动 | CSS — animation-timeline: scroll() |
冲突规则 [强制]:
| 等级 | 技术 |
|---|---|
| 1-2 微妙 | 仅 CSS 过渡,150-300ms |
| 3-4 流畅 | CSS 关键帧 + Framer animate,交错 ≤3 个项目 |
| 5-6 流畅 | whileInView、磁性悬停、视差倾斜 |
| 7-8 电影级 | GSAP ScrollTrigger、固定章节、水平劫持 |
| 9-10 沉浸式 | 完整滚动序列、Three.js 粒子、WebGL 着色器 |
参见 references/motion-recipes.md 获取完整代码。摘要:
| 配方 | 工具 | 用途 |
|---|---|---|
| 滚动揭示 | Framer | 视口进入时淡入+滑动 |
| 交错网格 | Framer | 顺序列表动画 |
| 固定时间线 | GSAP | 带固定的水平滚动 |
| 倾斜卡片 | Framer | 鼠标追踪 3D 透视 |
| 磁性按钮 | Framer | 光标吸引按钮 |
| 文字乱序 | 原生 | 矩阵风格解码效果 |
| SVG 路径绘制 | CSS | 滚动关联路径动画 |
| 水平滚动 | GSAP | 垂直到水平劫持 |
| 粒子背景 | R3F | 装饰性 WebGL 粒子 |
| 布局变形 | Framer | 卡片到模态框扩展 |
仅 GPU 属性(仅动画这些): transform、opacity、filter、clip-path
绝不动画:width、height、top、left、margin、padding、font-size——如果需要这些效果,改用 transform: scale() 或 clip-path。
隔离:
React.memo 叶子组件中will-change: transform 仅在动画期间使用contain: layout style paint移动端:
prefers-reduced-motionpointer: coarse 设备上始终禁用视差/3D清理: 每个带有 GSAP/观察者的 useEffect 必须 return () => ctx.revert()
| 感觉 | Framer 配置 |
|---|---|
| 敏捷 | stiffness: 300, damping: 30 |
| 流畅 | stiffness: 150, damping: 20 |
| 弹性 | stiffness: 100, damping: 10 |
| 沉重 | stiffness: 60, damping: 20 |
| CSS 缓动 | 值 |
|---|---|
| 平滑减速 | cubic-bezier(0.16, 1, 0.3, 1) |
| 平滑加速 | cubic-bezier(0.7, 0, 0.84, 0) |
| 弹性 | cubic-bezier(0.34, 1.56, 0.64, 1) |
prefers-reduced-motion 检查outline 而非 box-shadow)aria-live="polite"npm install framer-motion # UI(保持在顶层)
npm install gsap # 滚动(懒加载)
npm install lottie-react # 图标(懒加载)
npm install three @react-three/fiber @react-three/drei # 3D(懒加载)
---
| 类型 | 脚本 | 模式 |
|---|---|---|
| TTS | scripts/minimax_tts.py | 同步 |
| 音乐 | scripts/minimax_music.py | 同步 |
| 视频 | scripts/minimax_video.py | 异步(创建→轮询→下载) |
| 图片 | scripts/minimax_image.py | 同步 |
环境变量:MINIMAX_API_KEY(必需)。
<project>/public/assets/{images,videos,audio}/ 并命名为 {type}-{descriptor}-{timestamp}.{ext}——必须本地保存| 快捷方式 | 规格 |
|---|---|
hero | 16:9,电影级,文本安全区 |
thumb | 1:1,居中主体 |
icon | 1:1,扁平,干净背景 |
avatar | 1:1,肖像,可圆形裁剪 |
banner | 21:9,OG/社交 |
bg-video | 768P,6秒,[静态镜头] |
video-hd | 1080P,6秒 |
bgm | 30秒,无人声,可循环 |
tts | MiniMax HD,MP3 |
references/minimax-cli-reference.md — CLI 标志references/asset-prompt-guide.md — 提示规则references/minimax-voice-catalog.md — 声音 IDreferences/minimax-tts-guide.md — TTS 用法references/minimax-music-guide.md — 音乐生成(提示、歌词、结构标签)references/minimax-video-guide.md — 摄像机命令references/minimax-image-guide.md — 比例、批量---
AIDA(落地页、电子邮件):
注意力: 大胆的标题(承诺或痛点)
兴趣: 阐述问题("是的,就是我")
渴望: 展示转变
行动: 清晰的 CTA
PAS(痛点驱动型产品):
问题: 清晰陈述
加剧: 制造紧迫感
解决方案: 你的产品
FAB(产品差异化):
特性: 它做了什么
优势: 为什么重要
利益: 客户获得什么
| 公式 | 示例 |
|---|---|
| 承诺 | "30 天内打开率翻倍" |
| 问题 | "还在每周浪费 10 小时?" |
| 操作指南 | "如何自动化你的管道" |
| 数字 | "扼杀转化的 7 个错误" |
| 否定 | "别再流失潜在客户" |
| 好奇心 | "让预订量翻三倍的一个改变" |
| 转变 | "从 50 个到 500 个潜在客户" |
要具体。以结果为导向,而非方法。
糟糕: 提交、点击此处、了解更多
优秀: "开始我的免费试用"、"立即获取模板"、"预约我的战略电话"
公式: [行动动词] + [他们获得什么] + [紧迫感/便利性]
放置位置:首屏之上,价值点之后,长页面多个位置。
| 触发点 | 示例 |
|---|---|
| FOMO(错失恐惧症) | "仅剩 3 个名额" |
| 损失恐惧 | "没有这个,你每天损失 X 元" |
| 地位 | "加入 10,000+ 顶级机构" |
| 便捷 | "一次设置。永远忘记。" |
| 挫败感 | "厌倦了毫无效果的工具?" |
| 希望 | "是的,你也能做到月入 1 万美元 MRR" |
| 异议 | 回应 |
|---|---|
| 太贵 | 展示 ROI:"两周内回本" |
| 对我没用 | 来自类似客户的社会证明 |
| 没时间 | "设置只需 10 分钟" |
| 失败了怎么办 | "30 天退款保证" |
| 需要再想想 | 紧迫感/稀缺性 |
放置在 FAQ、推荐信、CTA 附近。
推荐信(含姓名/职位)、案例研究、数据/指标、社会证明、认证
---
理念先行的工作流程。两种输出模式。
| 模式 | 输出 | 何时使用 |
|---|---|---|
| 静态 | PDF/PNG | 海报、印刷品、设计资产 |
| 交互式 | HTML(p5.js) | 生成艺术、可探索变体 |
命名运动(1-2 个词)。阐述理念(4-6 个段落)涵盖:
识别微妙、小众的参考——精致而非字面。爵士音乐家引用另一首歌。
静态模式:
canvas-fonts/ 的稀疏排版.pdf 或 .png + 理念 .md交互式模式:
templates/viewer.htmlrandomSeed(seed); noiseSeed(seed);精炼而非增添。使其清晰。打磨成杰作。
---
设计:
w-full、px-4)min-h-[100dvh] 而非 h-screen运动:
useEffect 都有清理返回值prefers-reduced-motionReact.memo 叶子组件中通用:
package.json 中验证了依赖unsplash、picsum、placeholder、placehold、via.placeholder、lorem.space、dummyimage。如果发现任何,立即停止并用生成的资产替换后再交付。---
*React 和 Next.js 分别是 Meta Platforms, Inc. 和 Vercel, Inc. 的商标。Vue.js 是 Evan You 的商标。Tailwind CSS 是 Tailwind Labs Inc. 的商标。Svelte 和 SvelteKit 是其各自所有者的商标。GSAP/GreenSock 是 GreenSock Inc. 的商标。Three.js、Framer Motion、Lottie、Astro 以及所有其他产品名称是其各自所有者的商标。*