1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace ComboStrap; 4*04fd306cSNickeau 5*04fd306cSNickeau/** 6*04fd306cSNickeau * Branding colors are the primary and secondary colors of the web site 7*04fd306cSNickeau * (for now) 8*04fd306cSNickeau * 9*04fd306cSNickeau * Don't confuse with {@link Brand} 10*04fd306cSNickeau */ 11*04fd306cSNickeauclass BrandingColors 12*04fd306cSNickeau{ 13*04fd306cSNickeau 14*04fd306cSNickeau /** 15*04fd306cSNickeau * Do we set also the branding color on 16*04fd306cSNickeau * other elements ? 17*04fd306cSNickeau */ 18*04fd306cSNickeau public const BRANDING_COLOR_INHERITANCE_ENABLE_CONF = "brandingColorInheritanceEnable"; 19*04fd306cSNickeau public const BRANDING_COLOR_INHERITANCE_ENABLE_CONF_DEFAULT = 1; 20*04fd306cSNickeau public const PRIMARY_COLOR_CONF = "primaryColor"; 21*04fd306cSNickeau 22*04fd306cSNickeau const CANONICAL = "branding-colors"; 23*04fd306cSNickeau 24*04fd306cSNickeau /** 25*04fd306cSNickeau * The attribute used in the model template data 26*04fd306cSNickeau * (used for css variables and other colors transformation) 27*04fd306cSNickeau */ 28*04fd306cSNickeau const PRIMARY_COLOR_TEMPLATE_ATTRIBUTE = 'primary-color'; 29*04fd306cSNickeau /** 30*04fd306cSNickeau * A color that is derived from the primary color 31*04fd306cSNickeau * where the contrast is good enought for reading 32*04fd306cSNickeau */ 33*04fd306cSNickeau const PRIMARY_COLOR_TEXT_ATTRIBUTE = "primary-color-text"; 34*04fd306cSNickeau /** 35*04fd306cSNickeau * The text color with a little bit more lightness 36*04fd306cSNickeau */ 37*04fd306cSNickeau const PRIMARY_COLOR_TEXT_HOVER_ATTRIBUTE = "primary-color-text-hover"; 38*04fd306cSNickeau public const SECONDARY_COLOR_TEMPLATE_ATTRIBUTE = 'secondary-color'; 39*04fd306cSNickeau 40*04fd306cSNickeau public static function getCssFormControlFocusColor(ColorRgb $primaryColor): string 41*04fd306cSNickeau { 42*04fd306cSNickeau 43*04fd306cSNickeau try { 44*04fd306cSNickeau $colorRgb = ColorSystem::toBackgroundColor($primaryColor); 45*04fd306cSNickeau } catch (ExceptionCompile $e) { 46*04fd306cSNickeau LogUtility::msg("Error on background color calculation"); 47*04fd306cSNickeau return ""; 48*04fd306cSNickeau } 49*04fd306cSNickeau 50*04fd306cSNickeau return <<<EOF 51*04fd306cSNickeau.form-control:focus { 52*04fd306cSNickeau border-color: $colorRgb; 53*04fd306cSNickeau box-shadow: 0 0 0 0.25rem rgb({$primaryColor->getRed()} {$primaryColor->getGreen()} {$primaryColor->getBlue()} / 25%); 54*04fd306cSNickeau} 55*04fd306cSNickeau.form-check-input:focus { 56*04fd306cSNickeau border-color: $colorRgb; 57*04fd306cSNickeau box-shadow: 0 0 0 0.25rem rgb({$primaryColor->getRed()} {$primaryColor->getGreen()} {$primaryColor->getBlue()} / 25%); 58*04fd306cSNickeau} 59*04fd306cSNickeauEOF; 60*04fd306cSNickeau 61*04fd306cSNickeau 62*04fd306cSNickeau } 63*04fd306cSNickeau 64*04fd306cSNickeau 65*04fd306cSNickeau} 66