使用UI属性重构CSS

概述

在CubicWeb中,管理风格逐渐变得困难。引入uiprops是为了解决这个问题。

目标是使在CSS中使用变量成为可能。

这些变量在uiprops.py python文件中定义或计算,并使用python字符串插值语法插入到css中。

举个简单的例子 uiprops.py ::

defaultBgColor = '#eee'

在你的CSS中:

body { background-color: %(defaultBgColor)s; }

良好做法是:

  • 在uiprops中定义变量以避免在css中重复(颜色、边框、字体等)。

  • 当需要计算值(计算调色板等)时,在uiprops中定义变量。

CubicWeb中实现的算法如下:

  • 在访问多维数据集依赖项链时读取uiprops文件:如果多维数据集myblog依赖于多维数据集注释,则myblog中定义的变量将优先于注释中的变量。

  • 替换所有多维数据集的所有CSS中的%(varname)s

请记住,浏览器随后将解释CSS并应用标准级联机制。