先定 token,再谈风格

所有颜色、圆角、阴影都收敛成 CSS 变量,浅色主题只覆盖变量:

:root {
  --bg: #05070e;
  --panel: rgba(14, 21, 38, .72);
  --border: rgba(125, 211, 252, .16);
  --accent: #22d3ee;
  --accent-2: #a855f7;
}

[data-theme='light'] {
  --bg: #f4f7fd;
  --panel: rgba(255, 255, 255, .85);
  --border: rgba(15, 43, 82, .12);
}

玻璃拟态的三个要点

  1. backdrop-filter: blur() 要有,但别超过 16px,否则文字发虚;
  2. 边框用低透明度亮色,比纯白描边高级;
  3. 悬停时只提升"光",不改变布局尺寸,避免抖动。

动效克制原则

  • 入场动画:一次,IntersectionObserver 触发,不循环;
  • 背景光晕:慢速漂移,周期 18s 以上,不抢注意力;
  • 交互反馈:150-200ms,只动 transformopacity