使用 React (Vite + TypeScript + Tailwind CSS 4) 根据客户提供的素材(标志、图片、演示文稿等)创建专业机构网站
机构网站建设者是一项面向实际任务的技能,主要用于技能 e specializada em criar sites institucionais de alta 是一项面向实际任务的技能,主要用于O 工作流程 Projetado para exir o máximo dos m.;它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
一项专注于根据客户提供的参考资料,构建高质量机构类网站的专业技能。该工作流旨在最大限度地利用客户交付的素材(Logo、视觉识别系统、演示文稿、PDF 等),将其转化为一个专业的 React 网站,具备交互动画、响应式布局与优化的性能表现。
本项目始终使用以下技术:
@tailwindcss/vite 集成可选依赖(按需安装):
three + @types/three —— 用于实现动态 3D 背景(如 DottedSurface、着色器背景等)react-use-measure —— 支持 InfiniteSlider(例如 Logo Cloud、跑马灯效果)在编写任何代码之前,请全面审视用户提供的所有素材。此阶段至关重要,因为素材将决定网站的整体调性、配色方案、文案内容与图像资源。
请将素材按以下逻辑类别进行心智归类:
| 类别 | 需查找的内容 | 用途说明 |
|---|---|---|
| 视觉识别系统(Identidade Visual) | 色值(十六进制)、字体规范、品牌指南(guidelines) | 用于定义 CSS 中的 @theme 变量,包括主色调、强调色(accent)、渐变等 |
| Logo | 明/暗版本、横/竖版、SVG/PNG 格式 | 导航栏(Navbar)使用横版浅色;页脚(Footer)使用横版浅色;Favicon 使用深色图标 |
| 产品图片(Imagens de Produto) | 截图(screenshots)、设计稿(mockups)、业务场景实拍图 | 用于功能卡片(Feature cards)、首屏背景(hero background)、时间轴(timeline)、滚动媒体(scroll media)等模块 |
| 演示文稿(Apresentações) | PPT、含产品信息的 PDF 文件 | 提取其中的文案、标题(headlines)、要点(bullet points)及章节结构 |
| UI 组件(Componentes UI) | .txt 文件,内含参考用的 React 代码片段 | 适配至当前项目(移除 shadcn、Next.js 等无关依赖) |
| 联系信息(Dados de Contato) | 邮箱、电话、社交媒体账号、物理地址 | 用于页脚(Footer)、联系表单(Contato)以及悬浮 WhatsApp 按钮 |
| 客户 Logo(Logos de Clientes) | 合作伙伴或客户企业的 Logo | 用于“社会证明”(social proof)模块,并以 InfiniteSlider 展示 |
素材探索检查清单:
ls -la完成素材清点后,通过 AskUserQuestion 向用户确认以下问题:
大多数 B2B 类机构网站遵循如下标准页面顺序(可根据实际需求调整):
1. Navbar(固定定位,滚动时启用模糊效果) 2. Hero(价值主张 + CTA) 3. Contexto/Problema(产品存在的原因) 4. Solução(产品具体功能) 5. Pipeline/Processo(运作流程,分步说明) 6. Funcionalidades(带图的功能卡片) 7. Detalhes técnicos(IoT、集成能力等) 8. Benefícios(按类别划分的卡片组) 9. Canais de Entrega(多渠道集成能力) 10. Clientes(Logo Cloud + 社会证明)← CTA 前置 11. CTA Final(冲击力文案 + 按钮) 12. Contato(表单 + 联系信息) 13. Footer(链接、Logo、版权信息) 14. WhatsApp Flutuante(悬浮 WhatsApp 按钮)
npm create vite@latest-- --template react-ts cd npm install npm install -D tailwindcss @tailwindcss/vite --legacy-peer-deps npm install framer-motion lucide-react
配置 vite.config.ts:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [react(), tailwindcss()],
build: {
rollupOptions: {
output: {
manualChunks: {
// 根据重型库的实际使用情况添加
'framer-motion': ['framer-motion'],
},
},
},
},
})
在 src/index.css 中配置客户配色方案:
@import "tailwindcss";
@theme {
/* 从客户视觉识别系统中提取的色值 */
--color-primary-900: #XXXXXX;
--color-primary-800: #XXXXXX;
/* ... 全量映射客户配色方案 ... */
--color-accent: #XXXXXX;
--font-sans: 'Inter', system-ui, sans-serif;
}
配置 index.html:
lang 属性(如 pt-BR 或 en)复制静态资源(assets):
public/images/ 目录,并复制全部产品相关图像public/images/clientes/ 目录对于总行数约 ≤800 行的中小型网站,全部实现在单一 App.tsx 文件中;更大规模的网站,则应在 src/components/ 下拆分为独立组件。
所有图像必须遵守以下强制规范:
必须包含的实用工具组件:
useInView() —— 基于 Intersection Observer 实现进入视口时的动画触发Section —— 封装容器,支持滚动时自动触发动画(opacity + translateY)TextCycle —— 支持滑动向上(slideUp)切换关键词的文本轮播组件每个页面模块开发前,请查阅 references/components.md,其中提供了针对本技术栈(无 shadcn、Next.js 或 cn() 依赖)定制的完整模板。
此阶段必须在向用户交付前完成。
5.1 图像优化 —— 转换为 WebP 格式:
from PIL import Image
import glob, os
for f in glob.glob("public/images/*.png") + glob.glob("public/images/*.jpg"):
if os.path.getsize(f) > 100_000:
img = Image.open(f)
if img.width > 1200:
ratio = 1200 / img.width
img = img.resize((1200, int(img.height * ratio)), Image.LANCZOS)
img.save(f.rsplit('.', 1)[0] + '.webp', 'WEBP', quality=80)
更新代码中所有图像引用路径为 .webp 后缀。
5.2 字体加载 —— 消除渲染阻塞:
在 index.html 中采用 media="print" onload="this.media='all'" 模式。
5.3 JavaScript —— 代码分割(Code splitting):
vite.config.ts 中配置 manualChunks5.4 最低可访问性(Acessibilidade mínima)要求:
role="main"![]()
标签均需提供 alt 属性![]()
标签均需显式声明 width 和 height5.5 基础 SEO 支持:
标签需具描述性 应体现核心产品信息 标签中需设置正确 lang 属性npm run build,确保构建无报错computer:///path/to/projectcd nome-site && npm install && npm run devreferences/components.md —— 全量 23 个组件的分类目录表、Next.js→Vite 迁移速查表(cheat sheet),以及内联可用的完整模板references/components/ —— 23 个原始 .txt 文件,每个文件均含完整 TSX 代码、Demo 示例及所依赖项references/patterns.md —— CSS 设计模式、动画实现、玻璃拟态(glass morphism)、渐变应用、图像优化策略等首屏模块(Heroes): Glassmorphism Trust Hero、3D Hero(Spline)、Scroll Expand Media 背景模块(Backgrounds): Animated Shader(GLSL Aurora)、Flow Field(Canvas 2D)、Dotted Surface(Three.js) 导航模块(Navigation): Tubelight Navbar、Limelight Nav(支持暗色模式) 卡片模块(Cards): Glowing Effect Border、Bauhaus Card、Bento Grid 内容模块(Content): Timeline(基于滚动触发)、Vertical Tabs、DB/API Diagram、Global Map、Logo Cloud(InfiniteSlider) 动画模块(Animations): Text Cycle、Loading Skeleton、Container Scroll 3D、Notification Alert 工具模块(Utility): Page 404、Footer、Password Confirmation
21st.dev 扩展组件: Starfall Portfolio Landing、Parallax Feature Section、Metaball Hero、Rotating Prompts、Collapsible Header、Image Card、Spotlight、Accordion
使用任一组件前,请先阅读 references/components.md 获取组件目录索引,再查阅对应组件的 .txt 文件(位于 references/components/ 目录下为基础组件;references/components/21st-dev/ 下为扩展组件)。
若需进一步检索 21st.dev 的其他组件,请调用其 API:POST /api/prompts,请求体为 {"prompt_type":"extended","demo_id":。完整说明详见 references/components.md。
当用户提供素材时,本技能期望(或推荐)采用如下组织结构:
materiais-projeto/ ├── logos/ ← Logo 各种变体(明/暗、横/竖) ├── identidade-visual/ ← 配色方案、品牌指南、字体规范 ├── imagens/ ← 产品照片、截图、设计稿(mockups) ├── apresentacoes/ ← 含产品信息的 PPT、PDF 文件 ├── clientes/ ← 客户/合作伙伴企业 Logo ├── components/ ← UI 组件参考文件(含 React 代码的 .txt) └── copy/ ← 文案、宣传语、描述性文字(如有单独整理)
若用户提供的素材未按此结构组织,本技能仍会主动遍历并完成归类;但若用户主动询问“如何组织素材?”,请直接推荐上述目录结构。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章