当前位置: 首页 > news >正文

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

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

先说结论:这是一个我会建议前端同学都试一次的小项目。
你不需要复杂业务,也不需要后端配合,只靠登录页这一个场景,就能把「动效细节、状态管理、交互心理」三件事练明白。

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) 由密码框状态驱动动画模式

constpasswordFocused=ref(false);constisPasswordGuardMode=computed(()=>passwordFocused.value);constonPasswordClick=()=>{passwordFocused.value=true;};constonPasswordFocus=()=>{passwordFocused.value=true;};constonPasswordBlur=()=>{passwordFocused.value=false;};

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


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

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

这样做的好处是:
业务层只关心“什么时候进入防偷看”,动画层只关心“进入后怎么表现”。


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

consttick=()=>{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

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

http://www.cnnetsun.cn/news/1503692.html

相关文章:

  • Unity Scroll View进阶:打造丝滑翻页效果的实战指南
  • 孤能子视角:数字时代,“社会生产关系“[3],关系回到现实
  • 工业大模型:小白也能懂的AI新风口,收藏学习必备!
  • Eclipse Hawkbit OTA客户端嵌入式实现指南
  • 企业商业分析系统 v4.0 - 企业级数据分析与网站安全管理平台
  • 嵌入式逻辑回归推理库:MCU端轻量级二分类部署方案
  • SlimLoRa:面向AVR的轻量级LoRaWAN协议栈
  • Avalonia UI的演进逻辑与Qt生态深度对比
  • 如何快速掌握ComfyUI BiRefNet背景移除:从新手到专家的完整教程
  • Java面试突击版!快速拿下offer的神技!面试题分享!
  • Go Mutex 与 RWMutex 性能对比
  • PFC(6.0)基于GBM模型的矿物晶体岩石单轴压缩模拟与裂纹监测分析
  • hongzh0Xstream历史漏洞审计
  • 域环境基础知识
  • MySQL技巧(八) :死锁解决与实战案例
  • 基于单片机的汽车智能胎压监测预警系统设计
  • 还在到处找免费云服务器?2026年最新白嫖攻略,亲测可用!
  • GetQzonehistory完整教程:如何轻松备份QQ空间历史说说的终极指南
  • Python爬虫避坑指南:用httpx和Crypto库破解有道翻译API的常见问题与解决方案
  • 【机械臂路径规划】基于RRT星算法规划 Lynx 机械臂从起始位姿到目标位姿的最短无碰撞路径附matlab代码
  • 3步攻克科研数据提取难关:WebPlotDigitizer开源工具实战指南
  • 别再混淆了!5分钟搞懂光学设计中的‘快轴’、‘慢轴’与波片选型核心参数
  • 别再被路径搞晕了!详解YOLOv8中settings.yaml与data.yaml的‘双YAML’配置哲学
  • ROS Noetic + RealSense D435i:从驱动安装到RVIZ点云显示的完整工作流解析
  • 嵌入式天文时间服务库:日出日落计算与事件调度
  • Modbus通信协议详解:原理、实现与应用
  • Vivado仿真避坑指南:从D触发器到RAM/ROM,新手最容易搞错的时序逻辑仿真细节
  • MayeNano
  • 紧迫感陷阱:时间压力作为网络钓鱼攻击核心向量的机制分析与防御策略
  • FreeCAD 1.1 (Linux, macOS, Windows) - 开源的参数化 3D 建模软件