hananils/colors

此包已被弃用且不再维护。作者建议使用hananils/kirby-colors包。

Kirby 3的颜色字段

安装: 7

依赖项: 0

建议者: 0

安全: 0

星标: 56

关注者: 5

分支: 4

开放问题: 10

类型:kirby-plugin

1.7.3 2023-06-09 09:39 UTC

README

Kirby Colors

Colors 是一个用于 Kirby 3 的字段,允许使用原生的颜色选择器选择颜色。颜色可以以 HEX、RGB 或 HSL 格式查看和编辑。此外,字段会自动计算最易读的对比色。如果您想指定背景颜色并相应地调整文本颜色,这将非常有用。根据 WCAG 无障碍指南,字段显示颜色对比度评级 AA、AALarge、AAA 和 AAALarge。

重要

随着版本 4 的发布,Kirby 现在提供核心颜色字段,它为颜色输入提供类似选项。应将其用作此插件(现已弃用)的替代品。核心字段缺少的功能是颜色对比度检查。为此目的的新插件正在准备中。

安装

下载

下载并将此存储库复制到 /site/plugins/colors

Git 子模块

git submodule add https://github.com/hananils/kirby-colors.git site/plugins/colors

Composer

composer require hananils/kirby-colors

蓝图

该字段在 colors 类型下提供

  • alpha:允许您启用或禁用不透明度小部件,可以是 truefalse
  • contrast:允许您启用或禁用计算最易读对比色的对比度小部件,可以是 truefalse 或插件应从中选择颜色的颜色数组。
  • default:作为默认值使用的颜色,可以是 hex3、hex6、hex8、rgb、rgba、hsl 或 hsla。

动态对比度选项

为了设置对比色,可以查询另一个字段

colors:
    type: colors
    label: Colors
    contrast:
        type: query
        query: site.contrasts

您必须确保引用字段返回单个颜色或颜色数组。使用类似 split 的方法处理逗号分隔的字符串,例如 site.contrasts.split

如果您想引用与您的颜色字段相同的页面上的字段,您必须注意更改以获取实时更新

colors:
    type: colors
    label: Colors
    contrast:
        type: watch
        field: contrasts
contrasts:
    type: text
    label: Contrast colors

如果您需要拆分监视字段的值,您还必须定义拆分字符

colors:
    type: colors
    label: Colors
    contrast:
        type: watch
        field: contrasts
        split: ','
contrasts:
    type: text
    label: Contrast colors

示例

example 1

colors:
    type: colors
    label: Colors

example 2

colors:
    type: colors
    label: Colors (alpha)
    alpha: true

example 3

colors:
    type: colors
    label: Colors (alpha + readable)
    alpha: true
    contrast: true

example 4

colors:
    type: colors
    label: Colors (readable)
    contrast:
        - '#112233'
        - '#778899'

字段方法

$field->isHex()

验证当前颜色是否以十六进制值存储,返回 truefalse

$field->isRgb()

验证当前颜色是否以RGB值存储,返回truefalse

$field->isHsl()

验证当前颜色是否以HSL值存储,返回truefalse

$field->toClass()

返回当前颜色对象,Hananils\Color,见lib\Color.php

$field->toColor($space)

返回当前颜色的字符串形式。接受可选的$space属性来设置输出颜色空间,可以是hexrgbhsl

$field->toSpace()

返回当前颜色空间,可以是hexrgbhsl

$field->toValues()

返回所有颜色值,例如。

[
    'original' => '#ffffff',
    'space' => 'hex',
    'r' => 255,
    'g' => 255,
    'b' => 255,
    'h' => 0,
    's' => 0,
    'l' => 100,
    'a' => 100
];

$field->toReadabilityReport()

返回针对在蓝图定义的对比颜色生成的可读性报告,默认为黑白。

Array
(
    [color] => Hananils\Color Object
        (
            [original:Hananils\Color:private] => #00b7ff
            [space:Hananils\Color:private] => hex
            [r:Hananils\Color:private] => 0
            [g:Hananils\Color:private] => 183
            [b:Hananils\Color:private] => 255
            [h:Hananils\Color:private] => 197
            [s:Hananils\Color:private] => 100
            [l:Hananils\Color:private] => 50
            [a:Hananils\Color:private] => 100
        )

    [combinations] => Array
        (
            [0] => Array
                (
                    [color] => Hananils\Color Object
                        (
                            [original:Hananils\Color:private] => #fff
                            [space:Hananils\Color:private] => hex
                            [r:Hananils\Color:private] => 255
                            [g:Hananils\Color:private] => 255
                            [b:Hananils\Color:private] => 255
                            [h:Hananils\Color:private] => 0
                            [s:Hananils\Color:private] => 0
                            [l:Hananils\Color:private] => 100
                            [a:Hananils\Color:private] => 100
                        )

                    [contrast] => 2.2783010917435
                    [accessibility] => Array
                        (
                        )

                )

            [1] => Array
                (
                    [color] => Hananils\Color Object
                        (
                            [original:Hananils\Color:private] => #000
                            [space:Hananils\Color:private] => hex
                            [r:Hananils\Color:private] => 0
                            [g:Hananils\Color:private] => 0
                            [b:Hananils\Color:private] => 0
                            [h:Hananils\Color:private] => 0
                            [s:Hananils\Color:private] => 0
                            [l:Hananils\Color:private] => 0
                            [a:Hananils\Color:private] => 100
                        )

                    [contrast] => 9.2173945209011
                    [accessibility] => Array
                        (
                            [0] => aaLarge
                            [1] => aaaLarge
                            [2] => aa
                            [3] => aaa
                        )

                )

        )

)

$field->toMostReadable()

返回在蓝图定义的对比颜色中最易读的颜色,默认为黑白。

颜色计算

此插件捆绑了两个类,一个用于JavaScript,一个用于PHP,具有相同的API来执行颜色计算。见lib/Color.phpsrc/lib/color.js

技巧和窍门

  1. 点击左侧的颜色预览以打开颜色选择器。
  2. 点击箭头图标以在颜色空间之间切换。
  3. 在编辑RGB或HSL颜色时,使用上箭头键和下箭头键调整值增加或减少1。
  4. 按住meta键(或shift键)以调整值增加或减少10。
  5. 点击值的灰色单位指示器,然后垂直拖动鼠标以动态调整值。Drag-to-increment feature

替代方案

请注意,还有另一个由Tim Ötting开发的Kirby 3颜色字段,称为Kirby Color,请参阅https://github.com/TimOetting/kirby-color

许可证

此插件由hana+nils · Büro für Gestaltung免费提供,受MIT许可证保护。我们为数字和模拟媒体创建视觉设计。