Closed
Description
背景
同文主题参多,功能复杂,支持的书写方式繁多,部分参数命名混乱,并且无配套GUI工具。制作和调试需要消耗大量时间。最终成品良莠不齐,结构复杂,可维护性低。
目的
讨论并制定下一代同文主题的设计规范
行动
- 增加一系列新的主题读取方法对应下一代同文主题,同时对原有读取主题的方法也进行重构,旧方法添加
deprecated
标记,新主题中增加trime_version
参数。当trime_version
参数与同文版本一致时,使用新方法,否则弹出消息并使用旧方法;新方法完全不对旧方法做兼容。 - 与目前比较有影响力的主题作者联络,尽量让主题上github,以协作的方式保障这些主题适用于下一代同文。
- 在同文4.0时完全去除旧方法
- 内置键盘配列设计工具,预设按键样式设计工具,以及配色调试工具。
正文
- 调整第一级主要参数列表做如下调整:
原主题:
- style
- fallback_colors
- preset_color_schemes
- liquid_keyboard
- preset_keyboards
- android_keys
- preset_keys
新主题:
- style
- fallback_colors
- preset_color_schemes
- fallback_style #增加按键外观预设组合的fallback表
- preset_key_style #增加按键外观预设组合
- liquid_keyboard
- preset_keyboards #需要移除颜色相关的全部参数,增加class参数
android_keys#android预设key可以作为制作主题的参考资料,没有必要进行预设- preset_keys #需要移除颜色相关的全部参数
- 彻底拆分主题按键样式(preset_key_style)和键盘配列(preset_keyboards)。用分开的工具分别对他们做调整。
- 配列(不是按键preset_key,preset_key只包含按键功能方面的值)包含clss属性。preset_key_style里如果包含preset_key的名称,则使用对应预设样式,否则读取class,class对应的样式也没有就读取默认按键样式。
- 由于yaml不能像css一样,多个选择器共用一套样式。为了减少重复读取参数的次数,增加 fallback_style小节。特别的,针对按键样式,会自动把按压状态按原状态前加前缀来取值。如果没有,或者缺少部分内容,自动读原状态的值而无需fallback
- preset_key_style是预设按键样式的map,其中default必须包含全部属性,其他样式可以简写属性,缺少的属性套用default。全部属性包含背景色,文字颜色,符号颜色,hint颜色,不包含尺寸
- class优先使用预设class名称(待补充)
- 移除原有的function属性和shift的样式属性,改为class。目前shift键状态太多,需要削减为默认、按下2个状态,锁定时使用和按下完全相同的外观。候选栏中的选项、悬浮窗、点击按键弹出字符也抽象地看作具有特殊class的按键。
- 全部配色资源都在preset_color中,其他节点只使用预设名称。也就是说,读取顺序 view ⇨ preset_key_style ⇨ fallback_style ⇨ preset_color
- 除透明外,其他配色和图片都不出现在preset_color以外的地方(这不止利于后续皮肤更新,在加载皮肤时也有更高的效率)
- preset_color使用位置和功能的命名方式,而不是使用颜色、图像内容。原有的通过patch按键颜色的方式,改为patch class
- 纯色>.9图>png/jpg
- 主题如有图片资源,必须指定资源所在目录
- 推荐使用liquidKeyboard代替符号键盘