diff --git a/brand/css/pipexerp-brand-bar.css b/brand/css/pipexerp-brand-bar.css new file mode 100644 index 0000000..2c64a5a --- /dev/null +++ b/brand/css/pipexerp-brand-bar.css @@ -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; + } +} diff --git a/brand/css/pipexerp-variables.css b/brand/css/pipexerp-variables.css new file mode 100644 index 0000000..a824b51 --- /dev/null +++ b/brand/css/pipexerp-variables.css @@ -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); +} diff --git a/brand/logo/favicon.svg b/brand/logo/favicon.svg new file mode 100644 index 0000000..8a96919 --- /dev/null +++ b/brand/logo/favicon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/brand/logo/pipexerp-aiproj.svg b/brand/logo/pipexerp-aiproj.svg new file mode 100644 index 0000000..68a99bc --- /dev/null +++ b/brand/logo/pipexerp-aiproj.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + PipexERP + + + AI-Proj + diff --git a/brand/logo/pipexerp-dbeaver.svg b/brand/logo/pipexerp-dbeaver.svg new file mode 100644 index 0000000..7aa5c2e --- /dev/null +++ b/brand/logo/pipexerp-dbeaver.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + PipexERP + + + DB Manager + diff --git a/brand/logo/pipexerp-gitea.svg b/brand/logo/pipexerp-gitea.svg new file mode 100644 index 0000000..6ad4afd --- /dev/null +++ b/brand/logo/pipexerp-gitea.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + PipexERP + + + Gitea + diff --git a/brand/logo/pipexerp-icon.svg b/brand/logo/pipexerp-icon.svg new file mode 100644 index 0000000..348d464 --- /dev/null +++ b/brand/logo/pipexerp-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/brand/logo/pipexerp-jenkins.svg b/brand/logo/pipexerp-jenkins.svg new file mode 100644 index 0000000..f3836b8 --- /dev/null +++ b/brand/logo/pipexerp-jenkins.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + PipexERP + + + Jenkins + diff --git a/brand/logo/pipexerp-logo-dark.svg b/brand/logo/pipexerp-logo-dark.svg new file mode 100644 index 0000000..e98a510 --- /dev/null +++ b/brand/logo/pipexerp-logo-dark.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + PipexERP + + diff --git a/brand/logo/pipexerp-logo.svg b/brand/logo/pipexerp-logo.svg new file mode 100644 index 0000000..0d9e564 --- /dev/null +++ b/brand/logo/pipexerp-logo.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + PipexERP + + diff --git a/brand/logo/pipexerp-metabase.svg b/brand/logo/pipexerp-metabase.svg new file mode 100644 index 0000000..ad076f1 --- /dev/null +++ b/brand/logo/pipexerp-metabase.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + PipexERP + + + Metabase + diff --git a/brand/templates/brand-header.html b/brand/templates/brand-header.html new file mode 100644 index 0000000..5379d9c --- /dev/null +++ b/brand/templates/brand-header.html @@ -0,0 +1,58 @@ + + + + +
+ + +
+ + + + + + + + + + + PipexERP + + + diff --git a/nav-home.html b/nav-home.html index e1074e7..30aa1e9 100644 --- a/nav-home.html +++ b/nav-home.html @@ -3,10 +3,11 @@ - Command Center // 控制中心 + PipexERP | Command Center +