Files
ewoooc/web/static/css/page-dashboard.css
OoO 605250619c
All checks were successful
CD Pipeline / deploy (push) Successful in 1m3s
Frontend V3 responsive production update
2026-05-12 18:27:29 +08:00

272 lines
7.7 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ═══════════════════════════════════════════════════════════
* page-dashboard.css — Dashboard 專屬樣式
* ─────────────────────────────────────────────────────────────
* 從原 dashboard.html 1548 行 inline style 抽出。
* 已移除:
* - 藍紫色硬編碼(#667eea / #764ba2 / #4F46E5 等)
* - 暗藍 navbar 漸層(已由 ewoooc_base 接管)
* - 全局 body 漸層背景
* - 大量 box-shadow / hover translateY
* 改用 ewoooc-tokens.css 的 var(--momo-*) 系統。
* ═══════════════════════════════════════════════════════════ */
/* ──────────────── KPI 卡片 1商品監控概況 ──────────────── */
.momo-app .stat-card {
position: relative;
border: 1px solid var(--momo-border-light);
border-radius: var(--momo-radius-lg);
background: var(--momo-bg-paper);
overflow: hidden;
transition: border-color 0.2s ease;
}
.momo-app .stat-card:hover {
border-color: var(--momo-page-accent-line);
}
/* 取代原本的 .bg-primary text-white改成暖色系 inverse 卡 */
.momo-app .stat-card.bg-primary {
background: var(--momo-page-accent) !important;
color: var(--momo-page-inverse) !important;
border-color: var(--momo-page-accent-dark);
}
.momo-app .stat-card.bg-primary .text-white-50 {
color: rgba(255, 248, 239, 0.78) !important;
font-family: var(--momo-font-display);
font-size: var(--momo-text-label);
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.momo-app .stat-card .card-body {
padding: var(--momo-space-5);
}
.momo-app .stat-card .card-title {
font-family: var(--momo-font-display);
font-size: var(--momo-text-body);
font-weight: 700;
letter-spacing: 0;
text-transform: none;
margin-bottom: var(--momo-space-4);
opacity: 1;
}
.momo-app .stat-card h2 {
font-family: var(--momo-font-mono);
font-size: 2rem;
font-weight: 700;
letter-spacing: 0;
text-shadow: none;
margin-bottom: 0;
}
/* 移除原本貼右下角的巨大裝飾 icon — 過於裝飾,干擾數字閱讀 */
.momo-app .stat-icon {
display: none;
}
/* 卡內 4 格 KPI grid container */
.momo-app .stat-card .row .col-6 > div {
background: rgba(255, 248, 239, 0.12) !important;
border: 1px solid rgba(255, 248, 239, 0.18);
border-radius: var(--momo-radius-md);
transition: background 0.15s ease;
}
.momo-app .stat-card .row .col-6 > div:hover {
background: rgba(255, 248, 239, 0.20) !important;
}
/* ──────────────── KPI 卡片 2今日價格動態 grid ──────────────── */
.momo-app .kpi-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--momo-space-3);
}
.momo-app .kpi-item {
padding: var(--momo-space-4);
border-radius: var(--momo-radius-md);
background: var(--momo-bg-paper);
border: 1px solid var(--momo-border-light);
cursor: pointer;
transition: border-color 0.15s ease, background 0.15s ease;
min-height: 110px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.momo-app .kpi-item:hover {
border-color: var(--momo-page-accent-line);
background: var(--momo-page-accent-soft);
}
.momo-app .kpi-item-label {
font-family: var(--momo-font-display);
font-size: var(--momo-text-label);
font-weight: 600;
color: var(--momo-text-secondary);
letter-spacing: 0.06em;
text-transform: uppercase;
margin-bottom: var(--momo-space-2);
}
.momo-app .kpi-item-value {
font-family: var(--momo-font-mono);
font-size: 1.5rem;
font-weight: 700;
color: var(--momo-text-primary);
letter-spacing: 0;
line-height: 1.1;
}
.momo-app .kpi-item-sub {
font-size: var(--momo-text-label);
color: var(--momo-text-tertiary);
margin-top: var(--momo-space-1);
}
/* KPI 變化色 — 漲價(暖紅)/ 降價(橄欖綠) */
.momo-app .kpi-item.increase .kpi-item-value {
color: var(--momo-tag-rust-text);
}
.momo-app .kpi-item.decrease .kpi-item-value {
color: var(--momo-tag-olive-text);
}
.momo-app .kpi-item.neutral .kpi-item-value {
color: var(--momo-text-primary);
}
/* ──────────────── 表格 ──────────────── */
.momo-app .table-responsive {
border-radius: var(--momo-radius-md);
border: 1px solid var(--momo-border-light);
overflow: hidden;
}
/* 商品縮圖 */
.momo-app .product-thumb {
width: 56px;
height: 56px;
object-fit: cover;
border-radius: var(--momo-radius-sm);
border: 1px solid var(--momo-border-light);
background: var(--momo-bg-subtle);
}
.momo-app .product-info .flex-grow-1 {
margin-left: var(--momo-space-3);
min-width: 0;
}
.momo-app .product-link,
.momo-app .product-name {
color: var(--momo-text-primary);
text-decoration: none;
font-weight: 600;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100%;
}
.momo-app .product-link:hover {
color: var(--momo-page-accent-dark);
text-decoration: underline;
}
.momo-app .product-id {
font-family: var(--momo-font-mono);
font-size: var(--momo-text-label);
color: var(--momo-text-tertiary);
cursor: pointer;
}
.momo-app .product-id:hover {
color: var(--momo-page-accent-dark);
}
/* 排序連結 */
.momo-app .sort-link {
color: inherit;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 4px;
}
.momo-app .sort-link.active {
color: var(--momo-page-accent-dark);
}
.momo-app .sort-link:hover {
color: var(--momo-page-accent-dark);
}
/* 漲跌色 */
.momo-app .price-up {
color: var(--momo-tag-rust-text);
font-weight: 600;
}
.momo-app .price-down {
color: var(--momo-tag-olive-text);
font-weight: 600;
}
.momo-app .price-display {
font-family: var(--momo-font-mono);
font-size: 1.05rem;
color: var(--momo-text-primary);
}
/* status soft badge — 從原本的 bg-danger-soft / bg-success-soft 改用 token */
.momo-app .badge.bg-danger-soft {
background: var(--momo-tag-rust-bg) !important;
color: var(--momo-tag-rust-text) !important;
border: 1px solid var(--momo-tag-rust-border);
}
.momo-app .badge.bg-success-soft {
background: var(--momo-tag-olive-bg) !important;
color: var(--momo-tag-olive-text) !important;
border: 1px solid var(--momo-tag-olive-border);
}
.momo-app .badge.bg-secondary-soft {
background: var(--momo-tag-ink-bg) !important;
color: var(--momo-tag-ink-text) !important;
border: 1px solid var(--momo-tag-ink-border);
}
.momo-app .badge-status {
margin-left: var(--momo-space-2);
font-family: var(--momo-font-mono);
font-size: 11px;
font-weight: 600;
padding: 2px 6px;
}
.momo-app .cursor-pointer {
cursor: pointer;
}
.momo-app .fs-08 {
font-size: 0.8rem;
}
/* ──────────────── Modal 內表格 ──────────────── */
.momo-app .modal-body .table-light {
background: var(--momo-bg-paper);
}
.momo-app .modal-body .table-light th {
background: var(--momo-bg-paper) !important;
color: var(--momo-text-secondary) !important;
}
/* 響應式:手機收成單欄 */
@media (max-width: 768px) {
.momo-app .kpi-grid {
grid-template-columns: repeat(2, 1fr);
}
.momo-app .stat-card h2 {
font-size: 1.6rem;
}
}