先定 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);
}
玻璃拟态的三个要点
backdrop-filter: blur()要有,但别超过 16px,否则文字发虚;- 边框用低透明度亮色,比纯白描边高级;
- 悬停时只提升"光",不改变布局尺寸,避免抖动。
动效克制原则
- 入场动画:一次,
IntersectionObserver触发,不循环; - 背景光晕:慢速漂移,周期 18s 以上,不抢注意力;
- 交互反馈:150-200ms,只动
transform和opacity。