今天主要给小窝新版 Nuxt 前端做了一个巨大的改动(虽然代码之前已经断断续续写了很久了),支持切换多套配色主题!和小窝后台一样了属于是(但技术实现有差异),主要借助 CSS 变量来实现,现代浏览器也对此增加了很多新特性,比如 color-mix
函数等,但我还尚未用起来。
右下角原先用于切换夜间模式的「功能按钮」,改成了一个设置小弹层,这里我用了 AI 抽离成了一个独立的组件模块。期间遇到一个计算宽高的问题,发现是动画引起的,动画播放开始时元素尺寸较小,我问 AI 为什么 Radix UI 没有这个问题,它说是因为 Radix UI 在正式渲染之前有一个占位符,尺寸和实际显示的一样,先计算宽高,再插入正式显示的元素,这样就能保证宽高计算正确,能正确设置小弹层的坐标。