mexitek/phpcolors

一系列方法,让您可以操作颜色。以防您需要即时更改颜色的不同色调。

v1.0.4 2021-11-26 13:19 UTC

This package is auto-updated.

Last update: 2024-08-29 03:26:06 UTC


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 个索引 lightdark 的数组,初始颜色将根据其亮度选择为 lightdark,然后生成另一个颜色。可选参数允许静态变亮或变暗量。
  • 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