Files
xiaoxia-saas/apps/web/src/components/common/PointsBadge/PointsBadge.css
T
xiaoxia c2997a11c2
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 1s
CI/CD Pipeline / Check push changed paths (push) Successful in 11s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 32s
CI/CD Pipeline / Build Staging API Image (push) Successful in 36s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 33s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 49s
CI/CD Pipeline / Integration Tests (push) Successful in 2m54s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m52s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 3m44s
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 4m2s
CI/CD Pipeline / Validate - Style (push) Successful in 4m8s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 2m31s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m38s
CI/CD Pipeline / Validate - Security (push) Successful in 10m8s
CI/CD Pipeline / Unit Tests (push) Successful in 10m26s
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Failing after 29h7m23s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 29h17m7s
CI/CD Pipeline / PR Build Web Image (push) Failing after 29h17m58s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 29h17m21s
CI/CD Pipeline / PR Build API Image (push) Failing after 29h17m22s
CI/CD Pipeline / Deploy Production (push) Failing after 29h6m41s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 29h6m46s
CI/CD Pipeline / Build Production API Image (push) Failing after 29h6m46s
CI/CD Pipeline / CI Gate (push) Failing after 29h6m46s
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 29h16m30s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Failing after 29h16m30s
CI/CD Pipeline / Canary Release to Production (push) Failing after 29h6m41s
CI/CD Pipeline / Frontend Lint (push) Failing after 29h17m15s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 29h17m22s
feat: #1895 会员+积分系统前端(两档会员 + 积分充值/明细/扣费提示) (#1920)
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-09-15 10:05:44 +08:00

117 lines
2.1 KiB
CSS

/* Header 积分徽章 & Popover 样式 */
.xx-points-badge {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 5px 12px;
border-radius: 999px;
border: 1px solid var(--border-color, #e5e7eb);
background: var(--bg-tertiary, #fafafa);
color: var(--text-secondary, #6b7280);
font-size: 13px;
font-weight: 600;
cursor: pointer;
transition: all 0.15s ease;
line-height: 1;
height: 32px;
}
.xx-points-badge:hover {
border-color: var(--primary-color, #6366f1);
color: var(--primary-color, #6366f1);
background: var(--primary-soft, #eef2ff);
}
.xx-points-badge.zero {
color: #faad14;
border-color: #ffe58f;
background: #fffbe6;
}
.xx-points-badge.low {
color: #fa8c16;
border-color: #ffd591;
background: #fff7e6;
}
.xx-points-badge-icon {
font-size: 14px;
color: #8b5cf6;
}
.xx-points-badge.zero .xx-points-badge-icon,
.xx-points-badge.low .xx-points-badge-icon {
color: inherit;
}
.xx-points-badge-val {
font-variant-numeric: tabular-nums;
}
/* Popover */
.xx-points-popover {
width: 260px;
display: flex;
flex-direction: column;
gap: 12px;
}
.xx-points-popover-top {
display: flex;
align-items: center;
justify-content: space-between;
}
.xx-points-popover-balance {
display: flex;
align-items: baseline;
gap: 6px;
}
.xx-points-icon {
color: #8b5cf6;
font-size: 18px;
}
.xx-points-value {
font-size: 22px;
font-weight: 800;
color: var(--text-primary, #111827);
font-variant-numeric: tabular-nums;
}
.xx-points-unit {
color: var(--text-secondary, #6b7280);
font-size: 12px;
}
.xx-points-warn {
margin: 0 !important;
padding: 8px 10px;
background: #fffbe6;
border-radius: var(--radius-sm, 6px);
font-size: 12px;
}
.xx-points-expire {
font-size: 12px;
display: block;
}
.xx-points-popover-stats {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
padding: 10px;
background: var(--bg-tertiary, #fafafa);
border-radius: var(--radius-sm, 6px);
}
.xx-points-stat-val {
font-size: 16px;
font-weight: 700;
color: var(--text-primary, #111827);
margin-top: 2px;
font-variant-numeric: tabular-nums;
}