用CSS写一封情书:两个小球的浪漫飞吻

95 阅读3分钟

“代码不会说谎,它只是把心跳藏进了@keyframes里。”

在程序员的世界里,我们常常用冰冷的逻辑和严谨的语法构建世界。但今天,我想告诉你一个秘密——代码也可以写情书

这封情书没有墨水,没有纸张,它只由一行行CSS构成,却比任何文字都更动人。主角是两个小小的圆球,它们没有名字,却用一场“飞吻”,讲述了一个关于勇气、等待与心动的故事。


🌟 故事开始:两个小球的相遇

在一个淡绿色的背景上(#78e98f),两个白色的小球静静伫立。左边的是她,安静而温柔;右边的是他,带着一丝羞涩与期待。

<div class="container">
  <div class="ball" id="l-ball"> <!-- 她 -->
    <div class="face face-l">
      <div class="eye eye-l"></div>
      <div class="eye eye-r"></div>
      <div class="mouth"></div>
    </div>
  </div>
  <div class="ball" id="r-ball"> <!-- 他 -->
    <div class="face face-r">
      <div class="eye eye-l eye-l-p"></div>
      <div class="eye eye-r eye-r-p"></div>
      <div class="mouth mouth-r"></div>
      <div class="kiss-m">
        <div class="kiss"></div>
        <div class="kiss"></div>
      </div>
    </div>
  </div>
</div>

她们之间隔着238px的距离,像极了现实中那些不敢靠近的人。


💞 情书第一行:她的等待

她没有动,但她的心在跳。她的脸微微晃动,像是在轻轻点头,又像是在无声地回应。

@keyframes face {
  20%, 35% {
    transform: translate(5px) rotate(-2deg);
  }
  28%, 50% {
    transform: translate(0) rotate(0);
  }
}
.face-l {
  animation: face 4s ease infinite;
}

这微小的抖动,是她在说:“我在等你。”


🚀 情书第二行:他的勇气

他终于鼓起勇气,向前一跃。

@keyframes kiss {
  50% {
    transform: translate(30px) rotate(20deg);
  }
  60% {
    transform: translate(-33px);
  }
  77% {
    transform: translate(0);
  }
}
#r-ball {
  animation: kiss 4s ease infinite;
}

那一刻,他旋转着身体,像一颗流星划向她。这不是简单的位移,这是奔赴,是倾尽全力的靠近


💋 情书第三行:飞吻的瞬间

就在他最靠近的一刻,两片小小的“唇印”闪现:

@keyframes kiss-m {
  66% { opacity: 1; }
  66.1%, 100% { opacity: 0; }
}
.kiss-m {
  animation: kiss-m 4s ease infinite;
}

那不是真的吻,却比真吻更动人。因为它短暂、纯粹,像极了青春里那个未曾说出口的告白。

与此同时,他的嘴消失了——那是“闭合”的瞬间,是情感的高潮。

@keyframes mouth-m {
  55% { opacity: 0; }
  66.1% { opacity: 1; }
}
.mouth-r {
  animation: mouth-m 4s ease infinite;
}

✨ 这封情书的密码

这封情书之所以动人,是因为它不只是动画,更是节奏的艺术

  • 66% 是爱的时刻
  • 55% 是心的沉默
  • 20% 是心跳的波动

每一个百分比,都是我反复调试的结果。就像写情书时,斟酌每一个字句。


💌 写给所有写代码的人

也许你正在写一个登录页,也许你在调试一个按钮。但请记住:

代码不仅是工具,它也可以是表达爱的语言。

你可以用它画出星空,可以写一首诗,甚至,可以写出一封情书。

下次当你面对一段复杂的逻辑时,不妨想一想:
如果这段代码是一封信,它想对谁说些什么?


📎 完整效果在下面咯

👉 [点击获取完整HTML+CSS代码


这封用CSS写的情书,或许无法被真正寄出,但它已经在我心里留下了痕迹。
愿每一个写代码的人,都能在逻辑中找到诗意,在函数里遇见爱情。

因为,真正的浪漫,从来都不是偶然。