rax-app
rax-app copied to clipboard
[RFC] 处理 css variable 降级场景
背景
- 部分低端机不支持 css variable (安卓 5)
- 部分业务有兼容低端机的诉求
产生的问题
- 业务自身 css variable 的写法会失效
- 不兼容 fusion mobile 现有的样式方案
方案
- 通过参数控制开发者是否要降级处理 css variable
- 开启降级后,工程内置
postcss-css-variables处理变量和值的映射关系- 开发者可以简单添加映射关系
- fusion 插件注入 fusion 相关的映射关系
fusion 插件在小程序上的做法:https://github.com/lianmin/rax-app/blob/feat/plugin-fusion-mobile/packages/plugin-fusion-mobile/src/utils/removeCssVar.js#L7
方案还要再看下,可能会影响动态换肤(暗黑模式切换),支持 preserve 变量,这样在低端机上降级就好,唯一的问题是部分样式冗余。兼容性上来看,css variable 在端内的支持是 ok 的。
fusion 在小程序上降级处理的原因是:变量映射表比较影响小程序代码体积