feat: 添加 PipexERP 企业统一品牌资源
- 创建品牌资源目录 brand/ - Logo SVG(主Logo、深色模式、图标、favicon) - 各子系统专用 Logo(AI-Proj、Gitea、Jenkins、Metabase、DBeaver) - CSS 变量文件 pipexerp-variables.css - 品牌条样式 pipexerp-brand-bar.css - 品牌 Header 模板 - 更新导航页 nav-home.html - 企业区域配色改为企业绿 #52c41a - 更新标题和 Logo 为 PipexERP - 添加 favicon 引用 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
147
brand/css/pipexerp-brand-bar.css
Normal file
@@ -0,0 +1,147 @@
|
||||
/**
|
||||
* PipexERP Brand Bar
|
||||
* 统一品牌条样式 - 用于在各子系统顶部显示
|
||||
*/
|
||||
|
||||
.pipex-brand-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 48px;
|
||||
padding: 0 24px;
|
||||
background: linear-gradient(135deg, #52c41a 0%, #389e0d 100%);
|
||||
color: white;
|
||||
font-family: var(--pipex-font-family, 'Segoe UI', -apple-system, sans-serif);
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
||||
position: relative;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.pipex-brand-bar--dark {
|
||||
background: linear-gradient(135deg, #135200 0%, #237804 100%);
|
||||
}
|
||||
|
||||
.pipex-brand-bar__logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__title {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__divider {
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: rgba(255, 255, 255, 0.4);
|
||||
margin: 0 12px;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__subtitle {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__link {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
opacity: 0.85;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__link:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 4px 10px;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border-radius: 12px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Footer Brand */
|
||||
.pipex-brand-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 16px;
|
||||
gap: 8px;
|
||||
font-size: 13px;
|
||||
color: var(--pipex-text-tertiary, #999);
|
||||
border-top: 1px solid var(--pipex-border, #e8e8e8);
|
||||
}
|
||||
|
||||
.pipex-brand-footer__logo {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.pipex-brand-footer a {
|
||||
color: var(--pipex-primary, #52c41a);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.pipex-brand-footer a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Compact Brand Tag */
|
||||
.pipex-brand-tag {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 4px 12px;
|
||||
background: var(--pipex-primary-bg, rgba(82, 196, 26, 0.1));
|
||||
border: 1px solid var(--pipex-primary, #52c41a);
|
||||
border-radius: 16px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: var(--pipex-primary, #52c41a);
|
||||
}
|
||||
|
||||
.pipex-brand-tag__icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 768px) {
|
||||
.pipex-brand-bar {
|
||||
padding: 0 16px;
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__title {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__subtitle {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.pipex-brand-bar__nav {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
130
brand/css/pipexerp-variables.css
Normal file
@@ -0,0 +1,130 @@
|
||||
/**
|
||||
* PipexERP Brand CSS Variables
|
||||
* 企业统一品牌色彩系统
|
||||
*/
|
||||
|
||||
:root {
|
||||
/* === Primary Colors (Enterprise Green) === */
|
||||
--pipex-primary: #52c41a;
|
||||
--pipex-primary-hover: #389e0d;
|
||||
--pipex-primary-active: #237804;
|
||||
--pipex-primary-light: #b7eb8f;
|
||||
--pipex-primary-lighter: #d9f7be;
|
||||
--pipex-primary-dark: #135200;
|
||||
--pipex-primary-bg: rgba(82, 196, 26, 0.1);
|
||||
|
||||
/* === Functional Colors === */
|
||||
--pipex-success: #52c41a;
|
||||
--pipex-info: #1890ff;
|
||||
--pipex-warning: #faad14;
|
||||
--pipex-error: #ff4d4f;
|
||||
|
||||
/* === Light Mode Colors === */
|
||||
--pipex-bg-primary: #ffffff;
|
||||
--pipex-bg-secondary: #fafafa;
|
||||
--pipex-bg-tertiary: #f5f5f5;
|
||||
--pipex-text-primary: #333333;
|
||||
--pipex-text-secondary: #666666;
|
||||
--pipex-text-tertiary: #999999;
|
||||
--pipex-border: #d9d9d9;
|
||||
--pipex-border-light: #e8e8e8;
|
||||
--pipex-shadow: rgba(0, 0, 0, 0.08);
|
||||
--pipex-shadow-hover: rgba(0, 0, 0, 0.12);
|
||||
|
||||
/* === Component Specific === */
|
||||
--pipex-header-height: 56px;
|
||||
--pipex-sidebar-width: 240px;
|
||||
--pipex-border-radius: 8px;
|
||||
--pipex-border-radius-sm: 4px;
|
||||
--pipex-border-radius-lg: 12px;
|
||||
--pipex-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
/* === Typography === */
|
||||
--pipex-font-family: 'Segoe UI', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Noto Sans SC', sans-serif;
|
||||
--pipex-font-size-xs: 12px;
|
||||
--pipex-font-size-sm: 14px;
|
||||
--pipex-font-size-base: 16px;
|
||||
--pipex-font-size-lg: 18px;
|
||||
--pipex-font-size-xl: 20px;
|
||||
--pipex-font-size-2xl: 24px;
|
||||
--pipex-font-weight-normal: 400;
|
||||
--pipex-font-weight-medium: 500;
|
||||
--pipex-font-weight-semibold: 600;
|
||||
--pipex-font-weight-bold: 700;
|
||||
|
||||
/* === Spacing === */
|
||||
--pipex-spacing-xs: 4px;
|
||||
--pipex-spacing-sm: 8px;
|
||||
--pipex-spacing-md: 16px;
|
||||
--pipex-spacing-lg: 24px;
|
||||
--pipex-spacing-xl: 32px;
|
||||
--pipex-spacing-2xl: 48px;
|
||||
}
|
||||
|
||||
/* === Dark Mode Colors === */
|
||||
[data-theme="dark"],
|
||||
.dark,
|
||||
.pipex-dark {
|
||||
--pipex-primary: #73d13d;
|
||||
--pipex-primary-hover: #95de64;
|
||||
--pipex-primary-active: #52c41a;
|
||||
--pipex-primary-light: #237804;
|
||||
--pipex-primary-lighter: #135200;
|
||||
--pipex-primary-dark: #b7eb8f;
|
||||
--pipex-primary-bg: rgba(115, 209, 61, 0.15);
|
||||
|
||||
--pipex-bg-primary: #0d1117;
|
||||
--pipex-bg-secondary: #161b22;
|
||||
--pipex-bg-tertiary: #21262d;
|
||||
--pipex-text-primary: #e6edf3;
|
||||
--pipex-text-secondary: #8b949e;
|
||||
--pipex-text-tertiary: #6e7681;
|
||||
--pipex-border: #30363d;
|
||||
--pipex-border-light: #21262d;
|
||||
--pipex-shadow: rgba(0, 0, 0, 0.3);
|
||||
--pipex-shadow-hover: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
/* === Utility Classes === */
|
||||
.pipex-text-primary {
|
||||
color: var(--pipex-primary) !important;
|
||||
}
|
||||
|
||||
.pipex-bg-primary {
|
||||
background-color: var(--pipex-primary) !important;
|
||||
}
|
||||
|
||||
.pipex-border-primary {
|
||||
border-color: var(--pipex-primary) !important;
|
||||
}
|
||||
|
||||
.pipex-btn-primary {
|
||||
background: linear-gradient(135deg, var(--pipex-primary), var(--pipex-primary-hover));
|
||||
color: white;
|
||||
border: none;
|
||||
padding: var(--pipex-spacing-sm) var(--pipex-spacing-md);
|
||||
border-radius: var(--pipex-border-radius);
|
||||
cursor: pointer;
|
||||
transition: var(--pipex-transition);
|
||||
font-weight: var(--pipex-font-weight-medium);
|
||||
}
|
||||
|
||||
.pipex-btn-primary:hover {
|
||||
background: linear-gradient(135deg, var(--pipex-primary-hover), var(--pipex-primary-active));
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 12px rgba(82, 196, 26, 0.3);
|
||||
}
|
||||
|
||||
.pipex-card {
|
||||
background: var(--pipex-bg-primary);
|
||||
border: 1px solid var(--pipex-border);
|
||||
border-radius: var(--pipex-border-radius-lg);
|
||||
padding: var(--pipex-spacing-lg);
|
||||
box-shadow: 0 2px 8px var(--pipex-shadow);
|
||||
transition: var(--pipex-transition);
|
||||
}
|
||||
|
||||
.pipex-card:hover {
|
||||
box-shadow: 0 4px 16px var(--pipex-shadow-hover);
|
||||
border-color: var(--pipex-primary);
|
||||
}
|
||||
13
brand/logo/favicon.svg
Normal file
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||
<defs>
|
||||
<linearGradient id="faviconGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#73d13d"/>
|
||||
<stop offset="50%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<!-- Rounded square background -->
|
||||
<rect x="0" y="0" width="32" height="32" rx="6" ry="6" fill="url(#faviconGradient)"/>
|
||||
<!-- P letter -->
|
||||
<path d="M10 6 L10 26 L14 26 L14 18 L20 18 C24 18 27 15 27 12 C27 9 24 6 20 6 Z M14 10 L19 10 C21.5 10 23 11 23 12 C23 13 21.5 14 19 14 L14 14 Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 657 B |
17
brand/logo/pipexerp-aiproj.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 40">
|
||||
<defs>
|
||||
<linearGradient id="brandGradientAI" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="translate(0, 4)">
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientAI)"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</g>
|
||||
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
|
||||
<tspan fill="url(#brandGradientAI)">Pipex</tspan><tspan fill="#333">ERP</tspan>
|
||||
</text>
|
||||
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
|
||||
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">AI-Proj</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 996 B |
17
brand/logo/pipexerp-dbeaver.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 360 40">
|
||||
<defs>
|
||||
<linearGradient id="brandGradientDB" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="translate(0, 4)">
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientDB)"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</g>
|
||||
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
|
||||
<tspan fill="url(#brandGradientDB)">Pipex</tspan><tspan fill="#333">ERP</tspan>
|
||||
</text>
|
||||
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
|
||||
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">DB Manager</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 999 B |
17
brand/logo/pipexerp-gitea.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 40">
|
||||
<defs>
|
||||
<linearGradient id="brandGradientGitea" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="translate(0, 4)">
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientGitea)"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</g>
|
||||
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
|
||||
<tspan fill="url(#brandGradientGitea)">Pipex</tspan><tspan fill="#333">ERP</tspan>
|
||||
</text>
|
||||
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
|
||||
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">Gitea</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1003 B |
13
brand/logo/pipexerp-icon.svg
Normal file
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||
<defs>
|
||||
<linearGradient id="iconGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#73d13d"/>
|
||||
<stop offset="50%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<!-- Hexagon shape -->
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#iconGradient)"/>
|
||||
<!-- Inner P letter -->
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 636 B |
17
brand/logo/pipexerp-jenkins.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 40">
|
||||
<defs>
|
||||
<linearGradient id="brandGradientJenkins" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="translate(0, 4)">
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientJenkins)"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</g>
|
||||
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
|
||||
<tspan fill="url(#brandGradientJenkins)">Pipex</tspan><tspan fill="#333">ERP</tspan>
|
||||
</text>
|
||||
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
|
||||
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">Jenkins</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1011 B |
19
brand/logo/pipexerp-logo-dark.svg
Normal file
@@ -0,0 +1,19 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 40">
|
||||
<defs>
|
||||
<linearGradient id="brandGradientDark" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#73d13d"/>
|
||||
<stop offset="100%" style="stop-color:#52c41a"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<!-- Logo Icon -->
|
||||
<g transform="translate(0, 4)">
|
||||
<!-- Hexagon shape representing enterprise/tech -->
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientDark)"/>
|
||||
<!-- Inner P letter -->
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="#0d1117"/>
|
||||
</g>
|
||||
<!-- PipexERP Text -->
|
||||
<text x="40" y="28" font-family="'Segoe UI', 'SF Pro Display', -apple-system, sans-serif" font-size="24" font-weight="700">
|
||||
<tspan fill="url(#brandGradientDark)">Pipex</tspan><tspan fill="#e6edf3">ERP</tspan>
|
||||
</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 942 B |
19
brand/logo/pipexerp-logo.svg
Normal file
@@ -0,0 +1,19 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 40">
|
||||
<defs>
|
||||
<linearGradient id="brandGradient" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<!-- Logo Icon -->
|
||||
<g transform="translate(0, 4)">
|
||||
<!-- Hexagon shape representing enterprise/tech -->
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradient)"/>
|
||||
<!-- Inner P letter -->
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</g>
|
||||
<!-- PipexERP Text -->
|
||||
<text x="40" y="28" font-family="'Segoe UI', 'SF Pro Display', -apple-system, sans-serif" font-size="24" font-weight="700" fill="#333333">
|
||||
<tspan fill="url(#brandGradient)">Pipex</tspan><tspan fill="#333333">ERP</tspan>
|
||||
</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 943 B |
17
brand/logo/pipexerp-metabase.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 340 40">
|
||||
<defs>
|
||||
<linearGradient id="brandGradientMeta" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#52c41a"/>
|
||||
<stop offset="100%" style="stop-color:#389e0d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="translate(0, 4)">
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientMeta)"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</g>
|
||||
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
|
||||
<tspan fill="url(#brandGradientMeta)">Pipex</tspan><tspan fill="#333">ERP</tspan>
|
||||
</text>
|
||||
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
|
||||
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">Metabase</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1003 B |
58
brand/templates/brand-header.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<!-- PipexERP Brand Header Template -->
|
||||
<!-- 使用方法: 复制此代码到各子系统的 header 区域 -->
|
||||
|
||||
<!-- 方式1: 完整品牌条 -->
|
||||
<header class="pipex-brand-bar">
|
||||
<a href="https://www.pipexerp.com" class="pipex-brand-bar__logo" target="_blank">
|
||||
<svg class="pipex-brand-bar__icon" viewBox="0 0 32 32">
|
||||
<defs>
|
||||
<linearGradient id="headerIconGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#fff"/>
|
||||
<stop offset="100%" style="stop-color:#d9f7be"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#headerIconGradient)"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="#52c41a"/>
|
||||
</svg>
|
||||
<span class="pipex-brand-bar__title">PipexERP</span>
|
||||
<span class="pipex-brand-bar__divider"></span>
|
||||
<span class="pipex-brand-bar__subtitle"><!-- 子系统名称 --></span>
|
||||
</a>
|
||||
<nav class="pipex-brand-bar__nav">
|
||||
<a href="https://ai.pipexerp.com" class="pipex-brand-bar__link">AI-Proj</a>
|
||||
<a href="https://gitea.pipexerp.com" class="pipex-brand-bar__link">Gitea</a>
|
||||
<a href="https://jenkins.pipexerp.com" class="pipex-brand-bar__link">Jenkins</a>
|
||||
<a href="https://meta.pipexerp.com" class="pipex-brand-bar__link">Metabase</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- 方式2: 页脚品牌标识 -->
|
||||
<footer class="pipex-brand-footer">
|
||||
<svg class="pipex-brand-footer__logo" viewBox="0 0 32 32">
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="#52c41a"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</svg>
|
||||
<span>Powered by <a href="https://www.pipexerp.com">PipexERP</a></span>
|
||||
</footer>
|
||||
|
||||
<!-- 方式3: 紧凑品牌标签 (适用于空间有限的区域) -->
|
||||
<span class="pipex-brand-tag">
|
||||
<svg class="pipex-brand-tag__icon" viewBox="0 0 32 32">
|
||||
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="currentColor"/>
|
||||
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
|
||||
</svg>
|
||||
PipexERP
|
||||
</span>
|
||||
|
||||
<!--
|
||||
CSS 引用说明:
|
||||
1. 在 <head> 中添加:
|
||||
<link rel="stylesheet" href="https://saltthing.top/brand/css/pipexerp-variables.css">
|
||||
<link rel="stylesheet" href="https://saltthing.top/brand/css/pipexerp-brand-bar.css">
|
||||
|
||||
2. 或者通过 JavaScript 动态注入:
|
||||
const link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.href = 'https://saltthing.top/brand/css/pipexerp-brand-bar.css';
|
||||
document.head.appendChild(link);
|
||||
-->
|
||||
@@ -3,10 +3,11 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Command Center // 控制中心</title>
|
||||
<title>PipexERP | Command Center</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&family=Orbitron:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||
<link rel="icon" type="image/svg+xml" href="brand/logo/favicon.svg">
|
||||
<style>
|
||||
:root {
|
||||
--bg-deep: #0a0a0f;
|
||||
@@ -24,9 +25,9 @@
|
||||
--accent-home-dim: #00ff9d33;
|
||||
--accent-home-glow: #00ff9d55;
|
||||
|
||||
--accent-enterprise: #00b4ff;
|
||||
--accent-enterprise-dim: #00b4ff33;
|
||||
--accent-enterprise-glow: #00b4ff55;
|
||||
--accent-enterprise: #52c41a;
|
||||
--accent-enterprise-dim: #52c41a33;
|
||||
--accent-enterprise-glow: #52c41a55;
|
||||
|
||||
--status-online: #00ff9d;
|
||||
--status-offline: #ff4466;
|
||||
@@ -789,8 +790,8 @@
|
||||
|
||||
<div class="container">
|
||||
<header class="header">
|
||||
<h1 class="logo">COMMAND CENTER</h1>
|
||||
<p class="subtitle">Tailscale Network Dashboard</p>
|
||||
<h1 class="logo">PIPEXERP</h1>
|
||||
<p class="subtitle">Command Center // Tailscale Network</p>
|
||||
</header>
|
||||
|
||||
<div class="tab-switcher">
|
||||
|
||||