我复刻了一个“会避嫌”的登录页,还把它开源了

我复刻了一个"会避嫌"的登录页,还把它开源了

先说结论:这是一个我会建议前端同学都试一次的小项目。

你不需要复杂业务,也不需要后端配合,只靠登录页这一个场景,就能把「动效细节、状态管理、交互心理」三件事练明白。

Peek-Free Login演示

事情的起因

最近我在体验一个网站时,原本只是想快速看下产品,结果在登录页停了下来:

👉 CareerCompass 登录页

吸引我的不是表单,而是页面里的角色动效:

鼠标移动时眼球会跟随,输入密码时角色状态会变化。

这种"小而精"的交互,不会打断流程,但会明显提升页面记忆点。

于是我决定:自己实现一版,不照搬业务,只复刻交互思路,并且开源出来。


我做了什么

我做的项目叫 Peek-Free Login(捂眼登录),核心目标是:

  • 保留"眼神跟随"的趣味性
  • 增加"隐私友好"的设计表达
  • 做成可直接二次开发的模板

项目地址:

👉 https://github.com/liuqingsong1528/Peek-Free-Login


演示效果(建议先看视频)

仓库里已放演示视频:demo.mp4

建议你在文章平台开头直接插视频,按这个顺序展示:

  1. 鼠标移动,四个角色眼球同步跟随
  2. 点击密码框,角色统一看向左上(防偷看模式)
  3. 密码框失焦后,恢复正常联动

这个顺序非常适合做"前 10 秒抓注意力"。


项目简介

Peek-Free Login 是一个基于 Vue 3 + TypeScript + Vite + GSAP + Ant Design Vue 的登录页动效项目。

你可以把它当成:

  • 一个可直接套用的登录页模板
  • 一个前端动效工程化实践案例
  • 一个"如何用细节提升产品质感"的微交互样板

这个项目为什么有价值

很多登录页都只关注"能不能提交",但忽略了"用户是不是愿意输入"。

我在这个项目里重点做的是:用交互细节改善信任感

最有代表性的就是"防偷看模式":

  • 用户点击/聚焦密码框时
    角色统一看向左上,传达"我不看你的密码"
  • 用户失焦后
    动画回到正常状态,不干扰流程

这类反馈不会增加操作成本,但会显著提升"被尊重感"和"品牌好感"。


核心代码讲解(可讲给前端同学听)

下面这三段,基本就是整个交互的关键。

1) 由密码框状态驱动动画模式

ts 复制代码
const passwordFocused = ref(false);
const isPasswordGuardMode = computed(() => passwordFocused.value);

const onPasswordClick = () => {
  passwordFocused.value = true;
};

const onPasswordFocus = () => {
  passwordFocused.value = true;
};

const onPasswordBlur = () => {
  passwordFocused.value = false;
};

这一步把"DOM 事件"翻译成了"可维护的状态"。


2) 把状态透传给动画组件

vue 复制代码
<AnimatedCharacters
  :is-typing="isTyping"
  :show-password="showPassword"
  :password-length="passwordValue.length"
  :is-password-guard-mode="isPasswordGuardMode"
/>

这样做的好处是:

业务层只关心"什么时候进入防偷看",动画层只关心"进入后怎么表现"。


3) 在动画循环里设置优先级

ts 复制代码
const tick = () => {
  if (state.isPasswordGuardMode) {
    applyPasswordGuardMode();
    requestAnimationFrame(tick);
    return;
  }

  // 普通模式:鼠标跟随 / 面部偏移 / 眨眼
  updateFollowMouse();
  updateBlink();
  requestAnimationFrame(tick);
};

这里的关键不是"多写一个动画",而是明确了状态优先级

否则很容易出现多个动画同时抢控制权,导致抖动和不自然。


我做这个项目后的体会

  1. 动效不是装饰,它可以承担"沟通"角色(例如隐私感)
  2. 好交互不一定复杂,关键是反馈是否贴近用户心理
  3. 登录页这种高频入口,最适合做"低成本高感知"的优化

可以怎么二次开发

  • 换成你的品牌色和 logo
  • 把角色形状改成品牌吉祥物
  • 接入真实登录 API 和鉴权流程
  • 增加暗黑模式 / 多语言

开源地址(欢迎 Star)

如果这个思路对你有启发,欢迎去看代码、提 issue、提 PR:

👉 https://github.com/liuqingsong1528/Peek-Free-Login

也欢迎你基于这个项目做自己的"有记忆点的登录页"。

相关推荐
Hommy8810 小时前
【开源剪映小助手】项目概述
开源·剪映小助手·视频剪辑自动化
CJH(本人账号)10 小时前
AI Agent 安全危机:当你的“智能助手“变成攻击者的“远程武器“
网络·人工智能·安全·ai·开源·github
henrylin999910 小时前
开源量化软件功能介绍
python·开源
AI_零食11 小时前
鸿蒙原生 ArkTS:margin 溢出、Row 弹性分配与 alignItems 的交互
学习·华为·开源·harmonyos·鸿蒙·鸿蒙系统
爱上纯净的蓝天11 小时前
30 分钟上手 AtomCode:用它写一个 Python 批量整理文件/改名/生成报告小工具(新手教程)
python·开源·自动化脚本·atomcode·ai 编码助手
GitCode官方11 小时前
AtomGit 5月:下载中心上线;AtomCode Air 新品发布会顺利开展;AtomGit AI 荣获「昇腾开源合作杰出团队奖」
人工智能·开源·atomgit
m0_7373025812 小时前
OpenClaw:让AI从对话走向落地的开源智能体新范式
人工智能·开源
xixixi7777712 小时前
英伟达 Cosmos3 开源物理世界模型、国内具身智能评测标准落地、宇树冲刺人形机器人第一股|具身智能进入技术、标准、商业化三重爆发期
大数据·人工智能·ai·机器人·开源·英伟达·人形机器人
该昵称用户已存在12 小时前
技术栈无关化设计:MyEMS 能源中台的兼容层架构与开源
架构·开源·能源
咖啡星人k13 小时前
MonkeyCode 开源安全审计:第三方依赖风险管理与供应链安全
安全·开源·monkeycode