品牌网页宠物 · v0.1
从 logo 里长出来的小家伙。点它会开心,双击会空翻,拖到哪都行,没人理它就睡觉。它是一个原生 Web Component,Vue、React 和普通页面都能直接用。
表情与状态
点任意卡片,上方的星阳会切换到该状态。移动鼠标,所有的小家伙都会看着你。
试一试
say()track()开启“召唤桌宠”后,右下角会出现一只可拖拽的星阳,位置会记在本地。
对应 pet-state-change、pet-click、pet-dblclick、pet-drag-end。
集成
核心是 <xy-pet> 自定义元素,Shadow DOM 隔离样式,不会污染宿主页面。React 和 Vue 包装层只负责把 props 和事件接上,并且 SSR 安全(Next.js、Nuxt 可直接用)。
API
技术选型
造型来自扁平矢量 logo,SVG 能百分百还原,体积小,不依赖任何框架。以后要做更复杂的骨骼动作,可以只替换渲染层,外部 API 保持不变。
| 方案 | 擅长 | 代价 |
|---|---|---|
| SVG + CSS + Custom Elements当前 | 零依赖、框架无关、可换肤、SSR 安全;矢量无损缩放 | 动作靠手写 CSS 关键帧,复杂的形变与骨骼动作不划算 |
| Rive升级首选 | 设计师在编辑器里做骨骼与状态机,代码只切 input;运行时 @rive-app/canvas 开源 (MIT) | 需要用 Rive 编辑器制作 .riv(商业软件,有免费档);运行时 wasm 体积较大 |
| Lottie | AE 导出,lottie-web / dotlottie-web 生态成熟,适合精致的一次性动效 | 交互与状态切换偏弱,多状态要拆多个文件或依赖 dotLottie 状态机 |
| Live2D | 二次元“看板娘”方案,pixi-live2d-display、live2d-widget 很常见 | Cubism SDK 不是开源许可;需要专门的 Live2D 建模,和扁平 logo 风格不搭 |
| Spine / PixiJS | 游戏级骨骼动画与粒子特效 | Spine 运行时需要 Spine 编辑器授权;对网页宠物来说偏重 |