diff --git a/public/css/style.css b/public/css/style.css index 8b2c7af..d472314 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -314,6 +314,23 @@ tbody tr:last-child td{border-bottom:none} /* ===== Install Page ===== */ #install-steps .card{max-width:640px;margin:0 auto 20px} +.feat-item .card-h{font-size:14px;padding:14px 22px} +.feat-item .card-h .status-dot{font-size:18px;margin-right:8px} +.feat-item .card-b{padding:16px 22px} +.feat-bar{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap} +.feat-vote-btn{min-width:56px;justify-content:center;font-weight:600} +.feat-discuss-btn{width:100%;justify-content:center} +.feat-comments{margin-top:12px;border-top:1px solid var(--g2);padding-top:12px} +.feat-comment-input{flex:1;padding:8px 12px;border:1px solid var(--g2);border-radius:var(--r);font-family:inherit;font-size:13px} +.feat-comment-input:focus{outline:none;border-color:var(--p)} + +.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px} +.dash-stat{background:white;border-radius:var(--rl);padding:22px;box-shadow:var(--sh);border:1px solid var(--g2);display:flex;align-items:center;gap:16px;transition:.2s} +.dash-stat:hover{transform:translateY(-2px);box-shadow:var(--sh-md)} +.dash-stat .ds-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0} +.dash-stat .ds-val{font-size:28px;font-weight:800;line-height:1.1;color:var(--g9)} +.dash-stat .ds-label{font-size:12px;color:var(--g5);margin-top:2px;font-weight:500} + /* ===== Responsive ===== */ @media(max-width:768px){ #sidebar{width:60px;overflow:hidden} diff --git a/public/js/pages/features.js b/public/js/pages/features.js index 0c9280c..b2f53c4 100644 --- a/public/js/pages/features.js +++ b/public/js/pages/features.js @@ -75,25 +75,25 @@ const FeaturesPage = { renderItem(i) { const sc = i.status==='done'?'var(--s)':i.status==='planned'?'var(--p)':'var(--g5)'; const statusLabel = i.status==='done'?'已完成':i.status==='planned'?'计划中':'待定'; - return `
${U.esc(i.description)}
` : ''} -