@php $settings = $websiteSettings ?? \App\Models\WebsiteSetting::current(); $adminPrimary = $settings['admin_primary_color'] ?? '#1e84c4'; $adminSecondary = $settings['admin_secondary_color'] ?? '#5d7186'; $adminAccent = $settings['admin_accent_color'] ?? '#23c6c8'; $adminBackground = $settings['admin_background_color'] ?? '#f3f3f5'; $adminText = $settings['admin_text_color'] ?? '#323a46'; $adminSidebar = $settings['admin_sidebar_color'] ?? '#ffffff'; $adminTopbar = $settings['admin_topbar_color'] ?? '#ffffff'; $hexToRgb = function (string $hex, string $fallback) { $hex = ltrim($hex, '#'); if (strlen($hex) !== 6 || ! ctype_xdigit($hex)) { return $fallback; } return hexdec(substr($hex, 0, 2)) . ',' . hexdec(substr($hex, 2, 2)) . ',' . hexdec(substr($hex, 4, 2)); }; $contrast = function (string $hex) { $hex = ltrim($hex, '#'); if (strlen($hex) !== 6 || ! ctype_xdigit($hex)) { return '#ffffff'; } $r = hexdec(substr($hex, 0, 2)); $g = hexdec(substr($hex, 2, 2)); $b = hexdec(substr($hex, 4, 2)); return (($r * 299 + $g * 587 + $b * 114) / 1000) >= 150 ? '#1f2937' : '#ffffff'; }; $primaryRgb = $hexToRgb($adminPrimary, '30,132,196'); $secondaryRgb = $hexToRgb($adminSecondary, '93,113,134'); $accentRgb = $hexToRgb($adminAccent, '35,198,200'); $backgroundRgb = $hexToRgb($adminBackground, '243,243,245'); $textRgb = $hexToRgb($adminText, '50,58,70'); $sidebarRgb = $hexToRgb($adminSidebar, '255,255,255'); $topbarRgb = $hexToRgb($adminTopbar, '255,255,255'); $primaryContrast = $contrast($adminPrimary); $secondaryContrast = $contrast($adminSecondary); $accentContrast = $contrast($adminAccent); $sidebarText = $contrast($adminSidebar); $topbarText = $contrast($adminTopbar); @endphp