- SVG 아이콘 대신 favicon-32x32.png 이미지 사용 - 모든 페이지 로고 통일 (favicon + SAM + 서브타이틀) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
59 lines
2.4 KiB
PHP
59 lines
2.4 KiB
PHP
<?php
|
|
/**
|
|
* Global Metadata and Shared Styles
|
|
* This file centralizes Tailwind CSS, Lucide Icons, React, and Babel scripts.
|
|
*/
|
|
|
|
// Base path 계산 (sales 폴더 기준)
|
|
$salesBasePath = '';
|
|
$scriptPath = $_SERVER['SCRIPT_NAME'] ?? '';
|
|
$depth = substr_count(str_replace('/sales/', '', $scriptPath), '/');
|
|
if ($depth > 0) {
|
|
$salesBasePath = str_repeat('../', $depth);
|
|
}
|
|
|
|
// 로고 HTML 컴포넌트 (SAM 스타일 - favicon 이미지 사용)
|
|
$samLogoHtml = '
|
|
<a href="' . $salesBasePath . 'index.php" class="flex items-center gap-3 cursor-pointer">
|
|
<img src="' . $salesBasePath . 'img/favicon-32x32.png" alt="SAM" class="w-10 h-10 rounded-xl">
|
|
<div class="flex flex-col">
|
|
<span class="text-lg font-bold text-slate-800 leading-tight">SAM</span>
|
|
<span class="text-xs text-slate-500 leading-tight">Smart Automation Management</span>
|
|
</div>
|
|
</a>';
|
|
|
|
?>
|
|
<!-- Favicon (디자이너 제작 원본) -->
|
|
<link rel="apple-touch-icon" sizes="180x180" href="<?= $salesBasePath ?>img/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="<?= $salesBasePath ?>img/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="<?= $salesBasePath ?>img/favicon-16x16.png">
|
|
<link rel="shortcut icon" href="<?= $salesBasePath ?>img/favicon.ico">
|
|
|
|
<!-- Core Libraries -->
|
|
<script src="https://cdn.tailwindcss.com?v=3.4.1"></script>
|
|
<script src="https://unpkg.com/lucide@latest"></script>
|
|
<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
|
|
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
|
|
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
|
|
|
|
<script>
|
|
// Ensure Lucide icons are initialized after page load
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
if (window.lucide) {
|
|
window.lucide.createIcons();
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<style type="text/tailwindcss">
|
|
@layer components {
|
|
/* Global Modal Close Button Style */
|
|
.btn-close-modal {
|
|
@apply w-10 h-10 flex items-center justify-center rounded-full bg-white shadow-lg border-2 border-slate-900 transition-all duration-200 hover:bg-red-50 hover:border-red-500 cursor-pointer pointer-events-auto;
|
|
}
|
|
.btn-close-modal span {
|
|
@apply text-xl font-bold text-black group-hover:text-red-600 select-none;
|
|
}
|
|
}
|
|
</style>
|