mexitek / phpcolors
一系列方法,让您可以操作颜色。以防您需要即时更改颜色的不同色调。
v1.0.4
2021-11-26 13:19 UTC
Requires
- php: ^7.2|^8.0
Requires (Dev)
- nette/tester: ^2.3
- squizlabs/php_codesniffer: ^3.5
README
一系列方法,让您可以操作颜色。以防您需要即时更改颜色的不同色调。
要求
PHPColors 需要 PHP 版本 7.2.0 或更高版本。
安装
Composer
只需将 mexitek/phpcolors
添加到 composer.json
中,使用 dev-master
。
composer require mexitek/phpcolors:dev-master
工作原理
使用十六进制颜色字符串实例化颜色类对象 $foo = new Color("336699")
。就这样!现在,调用您需要的不同颜色变体的方法。
可用方法
- darken( [$amount] ) : 允许您获得颜色的较暗色调。您可以选择以所需百分比变暗。
- lighten( [$amount] ) : 允许您获得颜色的较亮色调。您可以选择以所需百分比变亮。
- mix($hex, [$amount] ) : 允许您将另一种颜色混合到您的颜色中。您可以选择设置第二种颜色的百分比或原始颜色量的范围在 -100...0...100。
- isLight( [$hex] ) : 判断您的颜色(或提供的参数)是否被认为是“亮”颜色。如果是亮颜色,则返回
TRUE
。 - isDark( [$hex] ) : 判断您的颜色(或提供的参数)是否被认为是“暗”颜色。如果是暗颜色,则返回
TRUE
。 - makeGradient( [$amount] ) : 返回一个具有 2 个索引
light
和dark
的数组,初始颜色将根据其亮度选择为light
或dark
,然后生成另一个颜色。可选参数允许静态变亮或变暗量。 - complementary() : 返回与您的颜色相对或互补的颜色。
- getHex() : 返回原始的十六进制颜色。
- getHsl() : 返回您的颜色的 HSL 数组。
- getRgb() : 返回您的颜色的 RGB 数组。
自动变亮/变暗 10%,以实现优雅的细微渐变
/** * Using The Class */ use Mexitek\PHPColors\Color; // Initialize my color $myBlue = new Color("#336699"); echo $myBlue->darken(); // 1a334d echo $myBlue->lighten(); // 8cb3d9 echo $myBlue->isLight(); // false echo $myBlue->isDark(); // true echo $myBlue->complementary(); // 996633 echo $myBlue->getHex(); // 336699 print_r( $myBlue->getHsl() ); // array( "H"=> 210, "S"=> 0.5, "L"=>0.4 ); print_r( $myBlue->getRgb() ); // array( "R"=> 51, "G"=> 102, "B"=>153 ); print_r($myBlue->makeGradient()); // array( "light"=>"8cb3d9" ,"dark"=>"336699" )
静态方法
- hslToHex( $hsl ) : 将 HSL 数组转换为 HEX 字符串。
- hexToHsl( $hex ) : 将 HEX 字符串转换为 HSL 数组。
- hexToRgb( $hex ) : 将 HEX 字符串转换为 RGB 数组。
- rgbToHex( $rgb ) : 将 RGB 数组转换为 HEX 字符串。
/** * On The Fly Custom Calculations */ use Mexitek\PHPColors\Color; // Convert my HEX $myBlue = Color::hexToHsl("#336699"); // Get crazy with the HUE $myBlue["H"] = 295; // Gimme my new color!! echo Color::hslToHex($myBlue); // 913399
CSS 辅助工具
- getCssGradient( [$amount] [, $vintageBrowsers] ) : 为 safari、chrome、opera、firefox 和 IE10 生成 CSS3 渐变。可选百分比量用于变亮/变暗色调。可选布尔值用于旧版渐变 CSS 支持。
希望添加自定义渐变停止支持
use Mexitek\PHPColors\Color; // Initialize my color $myBlue = new Color("#336699"); // Get CSS echo $myBlue->getCssGradient(); /* - Actual output doesn't have comments and is single line // fallback background background: #336699; // IE Browsers filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8cb3d9', endColorstr='#336699'); // Safari 5.1+, Mobile Safari, Chrome 10+ background-image: -webkit-linear-gradient(top, #8cb3d9, #336699); // Standards background-image: linear-gradient(to bottom, #8cb3d9, #336699); */
但是,如果您想支持古老的浏览器(市场份额微乎其微,几乎已经灭绝),可以将第二个参数设置为 TRUE
。这将输出
use Mexitek\PHPColors\Color; $myBlue = new Color("#336699"); // Get CSS echo $myBlue->getCssGradient(10, TRUE); /* - Actual output doesn't have comments and is single line background: #336699; // fallback background filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8cb3d9', endColorstr='#336699'); // IE Browsers background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#8cb3d9), to(#336699)); // Safari 4+, Chrome 1-9 background-image: -webkit-linear-gradient(top, #8cb3d9, #336699); // Safari 5.1+, Mobile Safari, Chrome 10+ background-image: -moz-linear-gradient(top, #8cb3d9, #336699); // Firefox 3.6+ background-image: -o-linear-gradient(top, #8cb3d9, #336699); // Opera 11.10+ background-image: linear-gradient(to bottom, #8cb3d9, #336699); // Standards */
Github 贡献者
- mexitek
- danielpataki
- alexmglover
- intuxicated
- pborreli
- curtisgibby
- matthewpatterson
- there4
- alex-humphreys
- zaher
- primozcigler
- thedavidmeister
- tylercd100
- Braunson
许可证
查看 LICENSE 文件或 arlo.mit-license.org