#color-scheme #configuration #generator #format #base16-builder

app cologen

简单的配色方案配置生成器,灵感来自 base16-builder

1 个不稳定版本

0.1.0 2020年4月2日

#742配置

MIT 许可证

15KB
239

cologen

简单的配色方案配置生成器,灵感来自 base16-builder

安装

  • 从源安装
git clone https://github.com/piutranq/cologen
cargo install --path ./cologen
  • 从 crates.io 安装
cargo install cologen

用法

Usage) 
    [TEMPLATE] | cologen [SCHEME] > [OUTPUT]

    [TEMPLATE]: Template configuration file for target.
                It must be input at stdin.
    [SCHEME]: Path of color scheme file. (YAML format)
    [OUTPUT]: The generated configuration is printed at stdout.

Example)
    cat $XDG_CONFIG_HOME/cologen/templates/rofi.template \
    | cologen $XDG_CONFIG_HOME/cologen/schemes/gruvbox-dark.yaml \
    > $XDG_CONFIG_HOME/rofi/color.rasi

配色方案

配色方案文件遵循 YAML 格式。请参考以下示例,或 example/scheme.yaml

该示例来自 gruvbox

name: "gruvbox-dark"
color:
  # Monochromes
  grey0: [ 0x28, 0x28, 0x28 ] # bg0
  grey1: [ 0x3C, 0x38, 0x36 ] # bg1
  grey2: [ 0x66, 0x5C, 0x54 ] # bg3
  grey3: [ 0xBD, 0xAE, 0x93 ] # fg3
  grey4: [ 0xEB, 0xDB, 0xB2 ] # fg1
  grey5: [ 0xFB, 0xF1, 0xC7 ] # fg0

  # Chromatics
  red:      [ 0xFB, 0x49, 0x34 ] # red (bold)
  green:    [ 0xB8, 0xBB, 0x26 ] # green (bold)
  yellow:   [ 0xFA, 0xBD, 0x2F ] # yellow (bold)
  blue:     [ 0x83, 0xA5, 0x98 ] # blue (bold)
  magenta:  [ 0xD3, 0x86, 0x9B ] # purple (bold)
  cyan:     [ 0x8E, 0xC0, 0x7C ] # aqua (bold)

cologen 没有颜色命名的标准或指南。它只是根据颜色名称将模板中的替代品替换为实际的颜色代码。

格式

模板

  • 模板文件具有与目标配置文件相同的格式,只是颜色代码仅用替代品替换。

  • 替代品的格式如下,@[color_name:color_code_format]

  • 以下文本是 rofi 的模板示例。请参阅 example/template

/* color config example for rofi */
*
{
    /* Monochrome */
    grey0: @[grey0:#%xR%xG%xB];
    grey1: @[grey1:#%xR%xG%xB];
    grey2: @[grey2:#%xR%xG%xB];
    grey3: @[grey3:#%xR%xG%xB];
    grey4: @[grey4:#%xR%xG%xB];
    grey5: @[grey5:#%xR%xG%xB];

    /* Chromatics */
    red: @[red:#%xR%xG%xB];
    green: @[green:#%xR%xG%xB];
    yellow: @[yellow:#%xR%xG%xB];
    blue: @[blue:#%xR%xG%xB];
    magenta: @[magenta:#%xR%xG%xB];
    cyan: @[cyan:#%xR%xG%xB];

    /* Special Purpose */
    empty: rgba(0, 0, 0, 0);
    bg: @[grey0:rgba(%dR, %dG, %dB, %.A)];
    fg: @[grey4:#%xR%xG%xB];
    fgbold: bold underline @[grey5:#%xR%xG%xB];
}
  • 模板示例已转换为以下内容。请参阅 example/output
/* color config example for rofi */
*
{
    /* Monochrome */
    grey0: #282828;
    grey1: #3c3836;
    grey2: #665c54;
    grey3: #bdae93;
    grey4: #ebdbb2;
    grey5: #fbf1c7;

    /* Chromatics */
    red: #fb4934;
    green: #b8bb26;
    yellow: #fabd2f;
    blue: #83a598;
    magenta: #d3869b;
    cyan: #8ec07c;

    /* Special Purpose */
    empty: rgba(0, 0, 0, 0);
    bg: rgba(40, 40, 40, 1.00);
    fg: #ebdbb2;
    fgbold: bold underline #fbf1c7;
}

颜色名称

  • 颜色名称可以使用字符 AZaz09,以及 _
  • 以下为示例
    • Grey2 是有效的(允许使用大写)
    • foreground_highlighted 是有效的(仅允许使用 _ 作为特殊字符)
    • 회색 是无效的(使用了非罗马字符)
    • red-dimmed 是无效的(使用了无效的特殊字符)

颜色代码格式

  • 颜色代码格式使用 % 作为转义字符。未转义的表示式不会被替换。
  • %% 会被替换为 %
  • %dR%dG%dB%dA 会被替换为 0 到 255
  • %pR%pG%pB%pA将被替换为0到100
  • %.R%.G%.B%.A将被替换为0.00到1.00
  • %xR%xG%xB%xA将被替换为00到FF

依赖项

约4-5.5MB
约108K SLoC