页面结构
决定用户先看到什么、接着看到什么,以及一个页面如何讲完一件事。
Single-page Website
产品与体验设计
我把想法变成能上线的网站,用 AI 加速从概念到交付的每一步。
为浩然制作一个单页个人作品网站,页面顺序为 Hero、About、Selected Work、Writing、Contact 和 Footer;顶部导航通过 Anchor Links 跳转到对应区块,使用平滑滚动但尊重 prefers-reduced-motion,每个区块都设置清晰的 id 和语义化标题。
Multi-page Website
把浩然的网站设计为多页网站,包含 Home、Work、Project Detail、About、Journal、Article 和 Contact;所有页面共享统一的 Header 与 Footer,当前导航项显示 active 状态,项目卡片点击后进入独立详情页。
Landing Page
做到能上线
从 0 到上线的 AI 建站服务,帮你省掉 80% 的开发时间。
为浩然的 AI 设计服务制作一个 Landing Page,唯一目标是引导访客预约咨询;页面包含 Hero、服务价值、工作流程、三个案例、客户评价、FAQ 和最终 CTA,所有主要按钮统一使用"预约一次沟通",不要加入与转化目标无关的复杂导航。
Case Study Page
背景
问题
过程
结果
为浩然创建一个项目案例研究页,包含项目概览、背景问题、浩然的职责、设计过程、关键决策、最终方案、结果数据和复盘;顶部使用大封面,正文保持窄阅读宽度,过程图片可全宽穿插,桌面端右侧提供 Sticky Table of Contents。
Hero Section
AI-native experiences.
用 AI 把产品想法变成真实可用的网页体验。
为浩然的个人主页创建一个清晰的 Hero Section,主标题为"浩然 designs and builds AI-native experiences.",副标题控制在两行以内,包含 View Work 和 Contact 两个按钮;右侧使用抽象、低饱和的网页界面意象,不要使用办公桌、家居产品或商业图库人物。
Feature Grid
产品与界面设计,追求清晰与美感。
响应式前端开发,性能与体验并重。
用 AI 快速验证产品想法。
技术写作,把复杂讲清楚。
在浩然的 About 区块下方添加一个四列 Feature Grid,四项内容为 Design、Frontend、AI Prototyping 和 Writing,每项包含一个线性图标、标题和不超过两行的说明;桌面端四列,平板两列,手机单列,避免夸张阴影。
Sticky Storytelling
为浩然的项目详情页设计一个 Sticky Storytelling Section,桌面端左侧 38% 区域保持 Sticky 并展示当前阶段标题和说明,右侧依次滚动展示 Discover、Design、Build 三个内容面板;当前阶段进入视口时更新左侧文字,手机端取消 Sticky 并改为正常纵向排列。
Timeline
专注 AI-native 产品与个人品牌网站。
负责从 0 到 1 的产品体验设计。
探索 vibe coding 与提示词工作流。
在浩然的 About 页面添加一条 Vertical Timeline,每个节点包含年份、事件名称和两行说明;桌面端内容位于时间线右侧,手机端保持单列;使用细绿色线条和圆形节点,不要做成复杂路线地图。
FAQ Section
在浩然的 Contact 页面之前添加 FAQ Section,包含 6 个问题,例如浩然接受什么项目、合作周期多久、是否提供开发、如何开始合作;答案默认折叠,同一时间只允许打开一个问题,使用原生 button 并正确设置 aria-expanded。
Footer
为浩然的个人网站设计一个完整 Footer,左侧显示浩然 Logo 和一句简介,中间分为 Explore、Connect、Elsewhere 三组链接,右侧显示邮箱和 Newsletter 订阅框,底部显示版权与隐私链接;使用深绿色背景和米白文字,与页面主体形成明确收尾。
常用组件
组件是页面中的局部交互单元,回答"点击、输入、展开、关闭和反馈应该如何发生"。
Modal
浩然网站点击 Contact 后打开 Modal,Modal 内包含姓名、邮箱、项目类型和留言;打开时把键盘焦点移动到标题或第一个输入框,关闭后把焦点返回触发按钮;使用原生 dialog 和 showModal(),支持 Esc 关闭,并阻止背景内容被键盘访问。
Drawer
浩然的项目列表点击卡片后,从右侧打开一个 Project Detail Drawer,桌面端宽度为 420px,显示封面、简介、技术栈和访问链接;页面主体仍然可见但不可操作,手机端让 Drawer 从底部打开并接近全屏。
Accordion
为浩然的 FAQ 创建 Accordion,每个标题使用 button,右侧显示加号或箭头,展开时更新 aria-expanded,并通过 aria-controls 关联内容面板;同一时间只展开一个项目,动画控制在 200ms 左右。
Tooltip
在浩然的项目卡片图标上添加 Tooltip,鼠标 hover 或键盘 focus 时显示,内容控制在一句话以内,Tooltip 不获得独立焦点,离开触发元素或按 Esc 后消失;不要只支持 hover,触屏设备需要提供可理解的替代方式。
Toast
浩然后台保存文章后,在右上角显示 Success Toast"文章已保存",Toast 包含状态图标、文字和关闭按钮,4 秒后自动消失;错误 Toast 不要快速自动消失,并提供重试操作;使用 aria-live 向辅助技术宣布状态。
Carousel
在浩然首页添加 Featured Projects Carousel,一次展示 1 个主项目和下一项目的一小部分预览,提供 Previous、Next 按钮和 01 / 05 序号;默认不自动播放,支持触摸滑动和键盘操作,用户启用 reduced motion 时取消滑行动画。
Lightbox
为浩然的 AI Gallery 添加 Lightbox,点击缩略图后全屏显示原图,支持左右切换、Esc 关闭和图片标题,打开后锁定背景滚动;缩略图使用 button 或 link 触发,所有图片提供准确的 alt 文本。
Form
为浩然的 Contact 页面创建一个可访问的联系表单,字段包括 Name、Email、Project Type、Budget Range 和 Message;每个输入框都有可见 label,必填项和错误信息清晰,提交中显示 loading 状态,成功后显示 Toast,并在确认提交成功前保留用户输入内容。
Command Palette
为浩然的网站添加 Command Palette,用户按 Command+K 或 Ctrl+K 后打开,可以搜索并执行 Go to Work、Open About、Read Journal、Toggle Theme 和 Contact 浩然;支持上下方向键选择、Enter 执行、Esc 关闭,并按页面与操作分组显示结果。
Floating Action Button
在浩然的项目后台右下角添加 Floating Action Button,使用加号图标并固定在视口右下角,点击后展开 New Project、New Post 和 Upload Image 三个快捷操作;按钮不能遮挡底部导航或重要内容,并考虑移动端安全区域。
后面的 40 个组件需要付费解锁
你已经看完了免费的 30 个组件(页面结构 / 导航与切换 / 常用组件)。
付费 60 元买断,解锁全部 70 个组件、无限生成 Prompt、AI 顾问。
滚动与动作
决定页面如何"活起来":内容何时出现、滚动时发生什么、怎样在不打断阅读的前提下建立节奏。
Scroll Reveal
为浩然的个人网站添加 Scroll Reveal,标题、正文、项目卡片进入视口时淡入并向上移动 16px,动画时长控制在 400—600ms;同一组卡片使用轻微错峰,不要让整页所有元素同时动画;用户启用 prefers-reduced-motion 时取消位移动画,只保留即时显示或轻微淡入。
Parallax
为浩然的首页 Hero 添加轻量 Parallax,背景抽象山形移动速度最慢,中层半透明网页面板使用中等速度,前景标题保持接近正常滚动速度;移动距离控制在较小范围,禁止大幅缩放和快速位移;移动端降低效果,reduced motion 模式下完全关闭视差。
Scroll Progress
在浩然的长篇文章页顶部添加 Scroll Progress Indicator,使用 3px 深绿色进度线,从左向右反映当前阅读百分比;导航栏保持 Sticky,进度条位于导航底部;不要遮挡内容,并使用 requestAnimationFrame 或 CSS Scroll-driven Animation 实现平滑更新。
Scroll Snap
scroll-snap-align: center
自动对齐到中心
保留自然惯性
像翻页一样
为浩然的精选作品区添加 CSS Scroll Snap,横向容器使用 scroll-snap-type: x mandatory,每个项目卡片使用 scroll-snap-align: center;允许触摸滑动和触控板滚动,保留自然惯性;不要劫持整个页面滚动,桌面端同时提供上一项和下一项按钮。
Horizontal Scroll
为浩然的项目档案创建 Horizontal Scroll,桌面端展示 3.5 张卡片,让下一张卡片露出一部分作为继续浏览提示;支持触控板和触摸滑动,并提供左右箭头;卡片保持键盘可聚焦,手机端使用自然横向滚动。
Infinite Scroll
为浩然的 AI 灵感流实现 Infinite Scroll,每次加载 12 个项目,在列表底部设置 sentinel,并使用 IntersectionObserver 在 sentinel 接近视口时请求下一页;加载期间显示 Skeleton;加载失败时显示 Retry 按钮;保存滚动位置,避免返回页面时丢失当前位置。
Marquee
在浩然首页的 Hero 下方添加一个循环 Marquee,内容为 Design、Frontend、AI Prototyping、Writing、Creative Tools;两组内容无缝衔接,移动速度缓慢;鼠标悬停时暂停;内容必须在动画关闭时仍可阅读,reduced motion 模式下改为普通换行标签列表。
Hover Micro-interaction
为浩然的项目卡片添加 Hover Micro-interaction,鼠标进入时卡片上移 4px,边框由浅灰变为深绿色,封面图轻微放大到 1.03,右下角箭头向右移动 4px;动画使用 180—240ms ease-out;键盘 focus-visible 状态提供同等清晰反馈,不要只依赖 hover。
Staggered Animation
0ms 进入
70ms 进入
140ms 进入
210ms 进入
为浩然的四张能力卡片添加 Staggered Entrance,第一张进入视口后开始动画,其余卡片每隔 70ms 依次淡入并上移 12px;总等待时间不要超过 300ms;重复滚动时不要反复播放;reduced motion 模式下让所有卡片直接显示。
Scroll-driven Animation
滚动到 1/3 点亮
滚动到 2/3 点亮
滚到底点亮
在浩然的项目案例页使用 Scroll-driven Animation,滚动经过 Process 章节时,左侧进度线随章节阅读进度增长,右侧三个原型面板依次从低透明度变为完全可见;优先使用 CSS animation-timeline 和 view(),为不支持的浏览器提供 IntersectionObserver 降级方案,并尊重 reduced motion。
提示与加载
决定用户等待时看到什么、出错时怎么办、操作完成后如何确认。
Skeleton Screen
为浩然的项目列表设计 Skeleton Screen,骨架结构必须与最终卡片尺寸一致,包含封面占位、标题线、两行文字和标签占位;使用低对比度灰绿色,不要显示虚假文字;内容加载完成后使用短暂淡入替换,避免布局位移。
Lazy Loading
为浩然的作品集实现 Lazy Loading,首屏 Hero 图片正常加载,不要设置 lazy;首屏以下的 img 和 iframe 使用 loading="lazy";为图片预先设置 width、height 或 aspect-ratio,避免布局跳动;重要项目封面提供合适的 srcset 和 sizes,不要把所有资源都延迟加载。
Loading Spinner
浩然网站提交短请求时显示 Loading Spinner,Spinner 只出现在正在更新的局部区域,不要遮罩整个页面;同时显示"正在加载项目"文字;超过 8 秒后追加更明确的等待说明和取消入口;动画在 reduced motion 模式下改为静态状态图标。
Progress Bar
为浩然的 AI 图片导出任务添加 Determinate Progress Bar,显示 0—100% 进度、当前阶段名称和取消按钮;进度条只向前移动,不要伪造倒退;完成后切换为 Success State,失败后保留当前进度并显示 Retry;使用 role="progressbar" 提供可访问状态。
Loading Button
浩然的联系表单点击 Send Message 后,把按钮切换为 Loading Button:禁用重复提交,文字改为"Sending…"并显示小型 Spinner;保持按钮宽度不变,避免界面跳动;请求成功后显示"Sent",失败后恢复可点击状态并显示错误原因。
Empty State
创建第一个项目,展示你的作品。
为浩然的新项目页面设计 Empty State,中心显示一个简洁抽象图形、标题"还没有项目"、一句说明和"创建第一个项目"按钮;如果是筛选导致无结果,改为"没有匹配的项目",并提供清除筛选按钮;不要使用消极或责备用户的文案。
Error State
为浩然的项目加载失败设计 Error State,显示清晰标题"项目暂时无法加载"、简短原因、Retry 按钮和返回项目列表链接;保留已经加载的其他内容,不要清空整个页面;错误信息使用图标、文字和颜色共同表达,并通过 role="alert" 或合适的 live region 通知辅助技术。
Retry State
浩然的图片上传失败后显示 Retry State,保留失败文件的缩略图和文件名,标出"上传失败",提供 Retry 和 Remove 两个操作;点击 Retry 后只重新上传该文件,并切换为进度状态;成功后替换为完成状态,不要要求用户重新选择所有文件。
Optimistic UI
浩然的项目收藏按钮使用 Optimistic UI,点击后立刻把图标切换为已收藏并更新计数,同时后台发送请求;请求失败时恢复原状态,显示非阻塞错误提示并提供重试;不要把支付、删除账号等不可逆或高风险操作做成乐观更新。
Inline Validation
为浩然的 Contact Form 添加 Inline Validation,邮箱字段在 blur 后检查格式,错误信息显示在输入框下方并说明如何修正;输入正确后显示简洁确认状态;不要在用户输入第一个字符时立刻报错;提交失败时把焦点移动到第一个错误字段,并在顶部提供错误摘要。
视觉风格
决定页面给人的第一印象:克制还是张扬、像杂志还是像工具、轻盈通透还是厚重直接。
Minimalism
为浩然设计一个 Minimalist Portfolio,使用米白背景、黑色正文和单一深绿色强调色,限制字体、圆角和阴影种类;首页只保留姓名、身份、精选项目和联系入口;通过大留白和清晰排版建立层级,不要加入多余渐变、发光效果或装饰图标。
Editorial Design
能上线的网站
设计与代码之间,藏着把想法落地的路径。这篇文章聊聊我的工作流。
为浩然的 Journal 设计 Editorial Layout,使用超大文章标题、窄正文栏、跨栏图片、章节编号、首字下沉和 pull quote;正文保持舒适行长和行高;不要把每段内容都放进卡片,让页面更接近现代独立杂志。
Swiss Style
为浩然的作品索引使用 Swiss Style,采用严格的 12 列网格、左对齐无衬线字体、明显编号和细分隔线;颜色仅使用米白、黑和深绿色;项目信息按年份、类别和角色对齐排列,避免装饰性手写字体与复杂阴影。
Glassmorphism
backdrop blur 16px 面板
低透明白 + 细亮边框
正文保持高对比度,别全透明
为浩然的 AI 工具首页添加克制的 Glassmorphism,深绿色抽象背景上叠加两到三层半透明面板,使用 backdrop-filter: blur(16px)、低透明白色背景和细亮边框;正文区域保持高对比度,不要让所有卡片都透明,也不要使用过度霓虹发光。
Neo-brutalism
粗黑边框 + 硬阴影,保留原始感
为浩然的实验项目页使用 Neo-brutalist Style,采用粗黑边框、硬阴影、大字号标题和深绿色重点按钮;组件保持清晰网格与可读性,避免装饰性手写字体与复杂阴影。
Dark Mode
背景避免纯黑(#0F172A),正文柔和浅灰,深绿调整为更亮的可见色。
为浩然网站实现完整 Dark Mode,使用 prefers-color-scheme 读取系统偏好,并提供手动切换和本地保存;深色背景避免纯黑,正文使用柔和浅灰,深绿色调整为更亮的可见色;表单、滚动条和原生控件同步 color-scheme;检查两种模式下的对比度和图片表现。
Monochrome / Duotone
为浩然的个人网站使用 Monochrome + Duotone 视觉系统,全站以米白、黑和深绿色构成,项目图片转换为低饱和绿色双色调,鼠标悬停后恢复少量原色;保证文字、边框和按钮层级清楚,不要让所有元素使用相同深浅。
Gradient Mesh
空间感背景
文字区域保持平静,标题对比足够
为浩然首页 Hero 创建低饱和 Gradient Mesh 背景,使用米白、灰绿和深绿色的柔和色团,边缘模糊并缓慢漂移;文字区域保持相对平静,确保标题对比度;动画幅度很小,移动端使用静态背景,reduced motion 模式下关闭。
Grain / Noise Texture
深绿背景上叠加轻噪点,减少塑料感,文字保持清晰。
在浩然网站的米白背景和深绿色 Hero 上添加非常轻的 Grain Texture,噪点透明度保持低,使用可重复的小型纹理或 CSS/SVG filter,不影响文字清晰度;不要给表单和正文区域增加明显颗粒;移动端控制纹理资源大小,避免使用超大背景图片。
Neumorphism / Soft UI
为浩然的实验性音乐控制器使用局部 Neumorphism,仅对播放、音量和模式按钮使用同色亮暗阴影,保留清晰文字、图标和 focus outline;主要导航、表单与长文本不要使用新拟态;按下状态需要通过阴影、位置和颜色共同表达。
高级效果
高级效果不等于更复杂,同时考虑表现力、可访问性、兼容性和性能。
Custom Cursor
为浩然的桌面作品画廊添加 Custom Cursor,默认显示小型绿色圆点,悬停项目图片时扩展并显示"View",进入横向画廊时显示"Drag";保留原生光标作为可用后备,触屏设备不启用;不要让自定义光标产生明显延迟,也不要遮挡表单与正文。
Magnetic Button
为浩然首页的 View Work 按钮添加轻量 Magnetic Effect,只有当光标距离按钮较近时,按钮内容最多偏移 6px,鼠标离开后快速回到原位;按钮本身不能逃离点击区域;触屏和 reduced motion 模式下关闭磁吸,只保留普通 hover 状态。
3D Tilt Card
为浩然的 Featured Project 卡片添加 3D Tilt,光标移动时 rotateX 和 rotateY 最大不超过 5deg,封面、文字和高光使用很小的 Z 轴层次;鼠标离开后平滑归位;移动端和 reduced motion 模式关闭倾斜,卡片点击区域保持稳定。
Spotlight Hover
在浩然的深色功能网格上添加 Spotlight Hover,使用鼠标位置控制径向渐变,光斑范围只覆盖当前卡片附近,亮度克制;焦点进入卡片时提供静态高亮替代;不要使用持续追踪的强烈发光,也不要降低文字对比度。
Image / Text Mask
为浩然首页标题"MAKE IDEAS VISIBLE"添加 Text Mask,低饱和抽象动画只显示在文字内部;在不支持 background-clip: text 的环境中回退为深绿色实心文字;标题必须保持可选择、可读和语义化,不要把重要文字只做成图片。
Clip-path Reveal
为浩然的项目封面添加 Clip-path Reveal,图片进入视口时从 inset(0 100% 0 0) 过渡到完整显示,持续 500ms;动画只播放一次;为不支持或 reduced motion 用户直接显示完整图片;不要同时叠加大幅位移和缩放。
WebGL Hero
为浩然的首页制作一个轻量 Three.js Hero,场景包含一个低多边形抽象球体和三层半透明界面平面,跟随鼠标产生非常轻微视差;限制几何体数量、纹理尺寸和像素比;页面隐藏时暂停渲染;移动端使用简化场景,低性能或 WebGL 不可用时显示静态海报图。
View Transitions
浩然的项目卡片点击后使用 View Transition 进入详情页,卡片封面与详情页 Hero 共享 view-transition-name,让图片从卡片位置自然扩展;过渡控制在 300—450ms;浏览器不支持时正常导航;不要让过渡影响焦点、阅读位置或返回按钮行为,并在 reduced motion 下跳过动画。
Reduced Motion
关闭视差/磁吸/3D/自动跑马灯,功能仍可用
为浩然网站完整支持 prefers-reduced-motion: reduce,关闭 Parallax、磁吸按钮、3D Tilt、自动 Marquee 和大范围页面过渡;Scroll Reveal 改为直接显示或短淡入;Carousel 停止自动播放;所有功能仍可操作,不能因为关闭动画而隐藏内容或丢失状态反馈。
Performance Budget
为浩然的个人网站制定 Performance Budget:移动端首屏 JavaScript 尽量控制在 170KB gzip 以内,首屏关键图片使用现代格式并严格压缩,WebGL 场景延迟到需要时加载,字体不超过两个家族和必要字重;在 CI 中运行 Lighthouse 或等价检查,超过预算时提示优化,不要为了动画牺牲核心内容加载。