Skip to content

关于下一代同文主题设计规范的讨论 #732

Closed
@tumuyan

Description

背景
同文主题参多,功能复杂,支持的书写方式繁多,部分参数命名混乱,并且无配套GUI工具。制作和调试需要消耗大量时间。最终成品良莠不齐,结构复杂,可维护性低。

目的
讨论并制定下一代同文主题的设计规范

行动

  1. 增加一系列新的主题读取方法对应下一代同文主题,同时对原有读取主题的方法也进行重构,旧方法添加deprecated标记,新主题中增加trime_version参数。当trime_version参数与同文版本一致时,使用新方法,否则弹出消息并使用旧方法;新方法完全不对旧方法做兼容。
  2. 与目前比较有影响力的主题作者联络,尽量让主题上github,以协作的方式保障这些主题适用于下一代同文。
  3. 在同文4.0时完全去除旧方法
  4. 内置键盘配列设计工具,预设按键样式设计工具,以及配色调试工具。

正文

  1. 调整第一级主要参数列表做如下调整:
    原主题:
  • 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 #需要移除颜色相关的全部参数
  1. 彻底拆分主题按键样式(preset_key_style)和键盘配列(preset_keyboards)。用分开的工具分别对他们做调整。
  2. 配列(不是按键preset_key,preset_key只包含按键功能方面的值)包含clss属性。preset_key_style里如果包含preset_key的名称,则使用对应预设样式,否则读取class,class对应的样式也没有就读取默认按键样式。
  3. 由于yaml不能像css一样,多个选择器共用一套样式。为了减少重复读取参数的次数,增加 fallback_style小节。特别的,针对按键样式,会自动把按压状态按原状态前加前缀来取值。如果没有,或者缺少部分内容,自动读原状态的值而无需fallback
  4. preset_key_style是预设按键样式的map,其中default必须包含全部属性,其他样式可以简写属性,缺少的属性套用default。全部属性包含背景色,文字颜色,符号颜色,hint颜色,不包含尺寸
  5. class优先使用预设class名称(待补充)
  6. 移除原有的function属性和shift的样式属性,改为class。目前shift键状态太多,需要削减为默认、按下2个状态,锁定时使用和按下完全相同的外观。候选栏中的选项、悬浮窗、点击按键弹出字符也抽象地看作具有特殊class的按键。
  7. 全部配色资源都在preset_color中,其他节点只使用预设名称。也就是说,读取顺序 view ⇨ preset_key_style ⇨ fallback_style ⇨ preset_color
  8. 除透明外,其他配色和图片都不出现在preset_color以外的地方(这不止利于后续皮肤更新,在加载皮肤时也有更高的效率)
  9. preset_color使用位置和功能的命名方式,而不是使用颜色、图像内容。原有的通过patch按键颜色的方式,改为patch class
  10. 纯色>.9图>png/jpg
  11. 主题如有图片资源,必须指定资源所在目录
  12. 推荐使用liquidKeyboard代替符号键盘

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions