尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Project AIRI 开发日志深度解析:gpuu GPU 工具、品牌视觉迭代与 UI 转场动画实践

Project AIRI 开发日志深度解析:gpuu GPU 工具、品牌视觉迭代与 UI 转场动画实践 Project AIRI 开发日志深度解析gpuu GPU 工具、品牌视觉迭代与 UI 转场动画实践【免费下载链接】airi Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-samas altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi本篇技术指南以 Project AIRIai/airi 仓库2025 年 3 月 5 日的开发日志为主线拆解三个相互独立又彼此呼应的实践主题面向 WebGPU 的gpuu工具包如何接入项目、Project AIRI 品牌标志从初稿到定稿的视觉迭代方法论以及如何将 YouTube 上令人着迷的文字 PV 动画效果移植为可复用的 Vue 转场组件库。读完本文你将掌握gpuu/webgpu的调用方式、标志设计在深浅主题间的配色取舍思路以及proj-airi/ui-transitions中基于vue-router生命周期钩子的转场编排原理与源码结构。从 gpuu 开始面向 WebGPU 的 GPU 工具包日志开篇记录了gpuuGPU 工具包的诞生。这个新包用于帮助 Project AIRI 处理 WebGPU 相关功能作者在日志中说明其当前功能还比较有限但未来或许能借助它与真实的 GPU 设备交互——为后续的图形渲染能力例如 Live2D、MMD、Three.js 舞台渲染留出扩展空间。需要说明的是gpuu是独立于本仓库发布的配套包目前仓库内尚不包含其源码其用法以日志记载为准。日志给出了gpuu的完整调用示例配合 Vue 组件生命周期使用import { check } from gpuu/webgpu import { onMounted } from vue onMounted(async () { const result await check() console.info(result) // 对结果进行一些操作 })从这段代码可以提炼出几个实操要点按子路径导入import { check } from gpuu/webgpu说明该包采用子路径导出subpath exports设计webgpu入口专门暴露 WebGPU 相关能力便于按需加载。异步检测check()返回 Promise在onMounted中调用是因为 WebGPU API 依赖浏览器环境与设备适配器adapter必须在 DOM 挂载、环境就绪后执行。结果即数据result是后续一切操作的基础——检测是否支持 WebGPU、设备能力等级、特性列表等都可围绕它展开日志注释对结果进行一些操作正是指向这一扩展方向。品牌视觉迭代从第一版设计稿到最终方案日志的后半部分用一组连续图片记录了 Project AIRI 标志的完整设计流程这是一次教科书式的由繁入简、随主题演进的视觉迭代。第一版企业设计师提交的初稿上周企业设计师/艺术家提交了 Project AIRI 标志的第一版设计稿缩放友好性重设计与深浅主题适配从设计角度看第一版标志在缩放到主屏幕应用图标大小时过于复杂且不够友好因此作者重新设计了简化版v2并编辑了其他变体。不过这些版本都只适合深色主题于是又补充了浅色主题版本。kwaa 随后提出一个关键建议为两个主题互换配色方案v3即在浅色主题中使用深色主题的配色、反之亦然。作者评价这确实看起来更好——这背后是典型的品牌对比度策略深色背景下需要高亮主体浅色背景下则需要深色主体来维持视觉重量互换配色能让同一套图形在两套主题下都保持辨识度。此后又经历了两轮微调更新字体排版v4与优化背景颜色v5最终定稿如下这条迭代链路复杂度收敛 → 主题适配 → 配色互换 → 字体与背景打磨完整继承了日志的记录可以直接复用到任何需要同时支持深/浅主题的应用图标设计中。最终版标志与配色方案已整合进文档网站。文档网站上线与内容建设当天晚些时候Project AIRI 将文档网站正式上线为开发者与艺术家提供参考和指南。日志明确记录了网站已包含三块内容基础指南、贡献指南以及设计指南。在仓库中这些内容与docs/content/zh-Hans/docs/目录下的文档对应基础指南对应 docs/content/zh-Hans/docs/overview 与 docs/content/zh-Hans/docs/manual 等概览与操作手册贡献指南对应 docs/content/zh-Hans/docs/contributing 目录设计指南对应 docs/content/zh-Hans/docs/contributing/design-guidelines/index.md从路径名即可确认设计指南确实是贡献规范中的一个独立章节。同时日志还提到已将 YouTube 文字 PV 动画的研究资源与网站链接收录进该文档网站供开发者和艺术家查阅。值得一提的是作者还维护了后续的 DevLog-2025.03.06记录了这一系列工作的延续。UI 转场动画研究从文字 PV 到浏览器实现日志记录了一个有趣的技术动机作者花了一整个中午研究 YouTube 上的文字 PVPromotion Video动画效果并对这些动画非常着迷希望能在浏览器中实现类似的过渡效果。幸运的是他认识一位在这方面非常出色的开发者兼艺术家 yui540对方刚发布了一个专门展示精彩过渡效果实现的新仓库。这个兴趣点在当天就转化成了实际产出作者将 yui540 仓库中的大量动画过渡效果移植到了一个在线演示站移植后的效果相当不错这条研究 → 找对人 → 移植 → 演示的路径最终沉淀为仓库中的一个正式包proj-airi/ui-transitions包名为proj-airi/ui-transitions见 packages/ui-transitions/package.json其定位是Project AIRI 使用的一组场景淡入淡出 UI 转场动画集合。proj-airi/ui-transitions 源码剖析转场组件与生命周期编排如果说日志记录的是移植了多少效果那么仓库源码则展示了这套转场系统真正的工程化设计。以下是基于 packages/ui-transitions 源码的完整剖析。七种转场组件包通过 src/components/index.ts 统一导出七种转场组件组件转场名称默认时长SlideTransitionslide2700msSlopeSlideTransitionslope-slide2700msArrowTransitionarrow2700msMultipleBlocksRevealTransitionmultiple-blocks-reveal2800msFantasyFallTransitionfantasy-fall2700msRectanglesRotateTransitionrectangles-rotate2700msBubbleWaveOutTransitionbubble-wave-out1000ms这些时长与注册表定义在 StageTransitionGroup.vue 的transitions对象中。以ArrowTransition为例其 CSS 实现直接使用clip-path多边形动画来制造箭头形状的遮挡/展开效果代码注释明确标注了原作者与出处——Author: yui540 / Source code at: github.com/yui540/css-animations...见 ArrowTransition.vue与日志中移植 yui540 仓库动画的描述完全对应这是移植来源的源码级佐证。每个转场组件都支持统一的样式化参数。以BubbleWaveOutTransition圆形波纹扩散为例BubbleWaveOutTransition.vuecolors?: string[]多层圆环的配色默认[#eee, #ebcb8b, #c56370, #3f3b52]最多四层每层通过 CSS 变量--circle-expansion-color-{n}注入并以 0.15s 递增延迟形成波纹节奏delay?: number整体延迟默认 0duration?: number单层扩散时长默认 0.4szIndex?: number覆盖层层级默认 100。ArrowTransition则提供primaryColor/secondaryColor双色与zIndex参数默认#666/#ccc动画依赖--sharpness: 40%控制箭头锐度。StageTransitionGroup与 vue-router 深度集成的生命周期引擎真正核心的是StageTransitionGroupStageTransitionGroup.vue它将转场系统与vue-router的导航流程打通路由元信息驱动每个页面在路由meta.stageTransition中声明要使用的转场名称例如 playground 中index.vue声明name: slideindex.vue、transition-2.vue声明name: slope-slidetransition-2.vue。全局导航守卫拦截组件通过router.beforeEach读取目标路由的meta.stageTransition并将组件 propsprimaryColor、secondaryColor、tertiaryColor、colors、zIndex合并覆盖到转场参数中然后调用triggerTransition(stageTransition, next)。生命周期阶段钩子系统定义了完整的转场生命周期共七个阶段StageTransitionGroup.vuebefore-enter动画开始前enter-active入场动画已开始navigation执行页面导航的时机由组件决定何时调用next()after-enter入场动画完成before-leave离场动画开始前leave-active离场动画进行中after-leave整个动画循环结束。可插拔 Hook 机制addTransitionHook()注册钩子、triggerHooks()依次异步执行导航动作通过一个临时注册的navigation阶段钩子触发next()默认导航时机为duration / 3也可通过nextDelay配置覆盖StageTransitionGroup.vue。系统还内置了容错即使没有钩子响应也会在超时后强制next()保证导航绝不卡死StageTransitionGroup.vue。Props 开关disableTransitions可一键关闭所有转场usePageSpecificTransitions允许页面使用自定义转场覆盖全局配置。在线演示 Playground包内附带完整可运行的演示应用packages/ui-transitions/playground共 7 个演示页面/、/transition-2至/transition-7通过Buttons.vue中的RouterLink导航网格串联Buttons.vue。切换页面即可逐一体验 7 种转场效果这正是日志中移植工作的成果展示。运行方式为在包目录下执行pnpm play:dev对应vite脚本见 package.json。结语这一篇开发日志的价值在于完整呈现了 Project AIRI 从基础设施到品牌再到体验层的三条并行工作线gpuu为 WebGPU 能力铺路标志迭代沉淀出深浅主题通用的视觉方案并整合进文档网站而对文字 PV 动画的痴迷则直接催生了proj-airi/ui-transitions这个工程化程度颇高的转场组件库——它有清晰的组件注册表、七阶段生命周期钩子、与vue-router的无缝集成以及可运行的 playground 演示。对读者而言无论是想复刻类似的转场系统还是借鉴研究 → 移植 → 产品化的开源协作路径这份日志与其仓库源码都是值得对照研读的完整案例。【免费下载链接】airi Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-samas altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表