feat: add profile/feed/chart CSS styles
This commit is contained in:
120
static/style.css
120
static/style.css
@@ -386,3 +386,123 @@ form button[type="submit"]:hover {
|
|||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---- Activity feed ---- */
|
||||||
|
.feed-meta {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
margin-top: 0.25rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
.feed-user {
|
||||||
|
color: var(--primary);
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.feed-user:hover { text-decoration: underline; }
|
||||||
|
.feed-time { opacity: 0.6; }
|
||||||
|
|
||||||
|
/* ---- Users list ---- */
|
||||||
|
.users-list { display: flex; flex-direction: column; gap: 0.75rem; }
|
||||||
|
.page-title { font-size: 1.2rem; font-weight: 700; margin-bottom: 1rem; opacity: 0.9; }
|
||||||
|
.user-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
background: rgba(255,255,255,0.07);
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 0.75rem 1rem;
|
||||||
|
}
|
||||||
|
.user-avatar {
|
||||||
|
width: 40px; height: 40px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: rgba(74,158,255,0.2);
|
||||||
|
display: flex; align-items: center; justify-content: center;
|
||||||
|
font-size: 1.1rem; font-weight: 700;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
.user-info { flex: 1; }
|
||||||
|
.user-name { font-weight: 600; font-size: 0.95rem; }
|
||||||
|
.user-meta { font-size: 0.8rem; opacity: 0.6; margin-top: 0.1rem; }
|
||||||
|
.btn-secondary {
|
||||||
|
color: var(--primary);
|
||||||
|
font-size: 0.85rem;
|
||||||
|
text-decoration: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.btn-secondary:hover { text-decoration: underline; }
|
||||||
|
|
||||||
|
/* ---- Profile stats header ---- */
|
||||||
|
.profile { display: flex; flex-direction: column; gap: 1rem; }
|
||||||
|
.stats-header {
|
||||||
|
background: rgba(255,255,255,0.06);
|
||||||
|
border-radius: 14px;
|
||||||
|
padding: 1rem 1.25rem;
|
||||||
|
}
|
||||||
|
.profile-name { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.75rem; }
|
||||||
|
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; }
|
||||||
|
.stat-tile {
|
||||||
|
background: rgba(255,255,255,0.06);
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 0.6rem 0.5rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.stat-value { font-size: 1.1rem; font-weight: 700; color: var(--primary); }
|
||||||
|
.stat-label { font-size: 0.7rem; opacity: 0.5; margin-top: 0.1rem; }
|
||||||
|
|
||||||
|
/* ---- View tabs ---- */
|
||||||
|
.view-tabs { display: flex; gap: 0.4rem; flex-wrap: wrap; }
|
||||||
|
.view-tab {
|
||||||
|
padding: 0.3rem 0.75rem;
|
||||||
|
border-radius: 8px;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
text-decoration: none;
|
||||||
|
color: rgba(255,255,255,0.7);
|
||||||
|
background: rgba(255,255,255,0.08);
|
||||||
|
transition: background 0.15s;
|
||||||
|
}
|
||||||
|
.view-tab:hover { background: rgba(255,255,255,0.14); }
|
||||||
|
.view-tab.active { background: var(--primary); color: #fff; font-weight: 600; }
|
||||||
|
|
||||||
|
/* ---- History heatmap ---- */
|
||||||
|
.heatmap-section { background: rgba(255,255,255,0.06); border-radius: 12px; padding: 1rem; }
|
||||||
|
.heatmap-label { font-size: 0.8rem; opacity: 0.5; margin-bottom: 0.6rem; }
|
||||||
|
.heatmap { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; }
|
||||||
|
.heatmap-cell {
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 0.4rem 0.2rem;
|
||||||
|
text-align: center;
|
||||||
|
min-height: 48px;
|
||||||
|
display: flex; flex-direction: column; align-items: center; justify-content: center;
|
||||||
|
}
|
||||||
|
.heatmap-count { font-size: 0.85rem; font-weight: 700; }
|
||||||
|
.heatmap-month { font-size: 0.65rem; opacity: 0.6; margin-top: 2px; }
|
||||||
|
|
||||||
|
/* ---- History month sections ---- */
|
||||||
|
.history-month { margin-top: 1rem; }
|
||||||
|
.month-heading { font-size: 0.95rem; font-weight: 600; margin-bottom: 0.5rem; opacity: 0.8; }
|
||||||
|
.month-count { font-size: 0.8rem; opacity: 0.5; font-weight: 400; }
|
||||||
|
|
||||||
|
/* ---- Trends charts ---- */
|
||||||
|
.trends-section { display: flex; flex-direction: column; gap: 1.25rem; }
|
||||||
|
.chart-block { background: rgba(255,255,255,0.06); border-radius: 12px; padding: 1rem; }
|
||||||
|
.chart-label { font-size: 0.8rem; opacity: 0.5; margin-bottom: 0.75rem; }
|
||||||
|
|
||||||
|
.bar-chart {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
|
gap: 4px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
.bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 3px; }
|
||||||
|
.bar-fill { width: 100%; background: var(--primary); border-radius: 3px 3px 0 0; min-height: 4px; opacity: 0.8; }
|
||||||
|
.bar-month { font-size: 0.65rem; opacity: 0.5; }
|
||||||
|
|
||||||
|
.director-chart { display: flex; flex-direction: column; gap: 6px; }
|
||||||
|
.director-row { display: flex; align-items: center; gap: 0.6rem; }
|
||||||
|
.director-name { font-size: 0.85rem; width: 140px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||||
|
.director-bar { flex: 1; background: rgba(255,255,255,0.08); border-radius: 4px; height: 10px; overflow: hidden; }
|
||||||
|
.director-bar-fill { height: 100%; background: var(--primary); border-radius: 4px; opacity: 0.8; }
|
||||||
|
.director-count { font-size: 0.8rem; opacity: 0.5; width: 20px; text-align: right; }
|
||||||
|
|||||||
Reference in New Issue
Block a user