bootstrap_italia-8.x-0.x-dev/src/Helper/Color.php
src/Helper/Color.php
<?php
namespace Drupal\bootstrap_italia\Helper;
/**
* Helper class for colors.
*
* Docs: https://italia.github.io/bootstrap-italia/docs/utilities/colori/
*
* Why isn't it a service? https://www.drupal.org/project/drupal/issues/2002606.
*/
class Color {
/**
* Return all colors name.
*
* Https://getbootstrap.com/docs/5.1/utilities/colors/#variables.
*
* @param bool $withLabel
* Choose from array with label or not.
*
* @return array<int|string>
* All colors.
*/
public static function getAll(bool $withLabel = FALSE): array {
return self::getTheme($withLabel) +
self::getPantone($withLabel) +
self::getGrays($withLabel) +
self::getUtilities($withLabel) +
self::getMode($withLabel) +
self::getMonochromatic($withLabel);
}
/**
* Return Theme colors name.
*
* Https://getbootstrap.com/docs/5.1/utilities/colors/#variables.
*
* @param bool $withLabel
* Choose from array with label or not.
*
* @return array<int|string>
* Theme colors.
*/
public static function getTheme(bool $withLabel = FALSE): array {
if ($withLabel) {
return [
'primary' => 'Primary',
'secondary' => 'Secondary',
'success' => 'Success',
'info' => 'Info',
'warning' => 'Warning',
'danger' => 'Danger',
];
}
return [
'primary', 'secondary', 'success',
'info', 'warning', 'danger',
];
}
/**
* Return extra colors name.
*
* Https://getbootstrap.com/docs/5.1/utilities/colors/#variables.
*
* @param bool $withLabel
* Choose from array with label or not.
*
* @return array<int|string>
* Pantone colors.
*/
public static function getPantone(bool $withLabel = FALSE): array {
if ($withLabel) {
return [
'blue' => 'Blue',
'indigo' => 'Indigo',
'purple' => 'Purple',
'pink' => 'Pink',
'red' => 'Red',
'orange' => 'Orange',
'yellow' => 'Yellow',
'green' => 'Green',
'teal' => 'Teal',
'cyan' => 'Cyan',
];
}
return [
'blue', 'indigo', 'purple', 'pink', 'red',
'orange', 'yellow', 'green', 'teal', 'cyan',
];
}
/**
* Return gray colors name.
*
* Https://getbootstrap.com/docs/5.1/utilities/colors/#variables.
*
* @param bool $withLabel
* Choose from array with label or not.
*
* @return array<int|string>
* Gray colors.
*/
public static function getGrays(bool $withLabel = FALSE): array {
if ($withLabel) {
return [
'gray-100' => 'Gray 100',
'gray-200' => 'Gray 200',
'gray-300' => 'Gray 300',
'gray-400' => 'Gray 400',
'gray-500' => 'Gray 500',
'gray-600' => 'Gray 600',
'gray-700' => 'Gray 700',
'gray-800' => 'Gray 800',
'gray-900' => 'Gray 900',
];
}
return [
'gray-100', 'gray-200', 'gray-300', 'gray-400', 'gray-500',
'gray-600', 'gray-700', 'gray-800', 'gray-900',
];
}
/**
* Return Utilities colors name.
*
* Https://getbootstrap.com/docs/5.1/utilities/colors/#variables.
*
* @param bool $withLabel
* Choose from array with label or not.
*
* @return array<int|string>
* Utilities colors.
*/
public static function getUtilities(bool $withLabel = FALSE): array {
if ($withLabel) {
return ['body' => 'Body', 'muted' => 'Muted'];
}
return ['body', 'muted'];
}
/**
* Return Mode colors name.
*
* Https://getbootstrap.com/docs/5.1/utilities/colors/#variables.
*
* @param bool $withLabel
* Choose from array with label or not.
*
* @return array<int|string>
* Color mode.
*/
public static function getMode(bool $withLabel = FALSE): array {
if ($withLabel) {
return ['light' => 'Light', 'dark' => 'Dark'];
}
return ['light', 'dark'];
}
/**
* Return Utilities colors name.
*
* Https://getbootstrap.com/docs/5.1/utilities/colors/#variables.
*
* @param bool $withLabel
* Choose from array with label or not.
*
* @return array<int|string>
* Monochromatic colors.
*/
public static function getMonochromatic(bool $withLabel = FALSE): array {
if ($withLabel) {
return ['black' => 'Black', 'white' => 'White'];
}
return ['black', 'white'];
}
}
