Align downline rows into a grid (name | contact | date | action)
Each row was an independent flex line, so variable-width emails threw the date column out of alignment across rows. Now a CSS grid with a shared template keeps the date and Message columns lined up; long names/emails truncate; responsive stack on narrow screens. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -806,7 +806,7 @@
|
|||||||
'<div class="lin-lvl"><div class="cap">Level ' + L.level + ' · ' + L.members.length + (L.level === 1 ? ' direct' : '') + '</div>'
|
'<div class="lin-lvl"><div class="cap">Level ' + L.level + ' · ' + L.members.length + (L.level === 1 ? ' direct' : '') + '</div>'
|
||||||
+ L.members.map(m => '<div class="lin-row"><span class="nm">' + esc(m.name) + '</span>'
|
+ L.members.map(m => '<div class="lin-row"><span class="nm">' + esc(m.name) + '</span>'
|
||||||
+ (m.email ? '<span class="em">' + esc(m.email) + '</span>' : '<span class="id">#' + m.memberId + '</span>')
|
+ (m.email ? '<span class="em">' + esc(m.email) + '</span>' : '<span class="id">#' + m.memberId + '</span>')
|
||||||
+ '<span class="id" style="margin-left:auto">' + new Date(m.joined).toLocaleDateString() + '</span>'
|
+ '<span class="dt">' + new Date(m.joined).toLocaleDateString() + '</span>'
|
||||||
+ (m.email ? '<button class="btn sec small chat-msg-btn" type="button" data-cemail="' + esc(m.email) + '" data-cname="' + esc(m.name) + '">Message</button>' : '')
|
+ (m.email ? '<button class="btn sec small chat-msg-btn" type="button" data-cemail="' + esc(m.email) + '" data-cname="' + esc(m.name) + '">Message</button>' : '')
|
||||||
+ '</div>').join('')
|
+ '</div>').join('')
|
||||||
+ '</div>').join('');
|
+ '</div>').join('');
|
||||||
|
|||||||
@@ -397,10 +397,15 @@ textarea{resize:vertical;font:inherit}
|
|||||||
/* ── downline lineage list ── */
|
/* ── downline lineage list ── */
|
||||||
.lin-lvl{margin:10px 0}
|
.lin-lvl{margin:10px 0}
|
||||||
.lin-lvl>.cap{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
|
.lin-lvl>.cap{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
|
||||||
.lin-row{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
|
.lin-row{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(0,2fr) auto auto;gap:6px 14px;
|
||||||
.lin-row .nm{font-weight:700;min-width:120px}
|
align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
|
||||||
.lin-row .em{font-size:12px;color:var(--mint);overflow-wrap:anywhere}
|
.lin-row .nm{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||||
|
.lin-row .em{font-size:12px;color:var(--mint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||||
.lin-row .id{font-family:var(--mono);font-size:11px;color:var(--muted)}
|
.lin-row .id{font-family:var(--mono);font-size:11px;color:var(--muted)}
|
||||||
|
.lin-row .dt{font-size:12px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
|
||||||
|
.lin-row .chat-msg-btn{justify-self:end}
|
||||||
|
@media (max-width:560px){.lin-row{grid-template-columns:1fr auto;gap:2px 10px}
|
||||||
|
.lin-row .em{grid-column:1/2}.lin-row .dt{grid-column:1/2;text-align:left}.lin-row .chat-msg-btn{grid-row:1/3;grid-column:2}}
|
||||||
/* ── solo composer: toolbar + contenteditable editor ── */
|
/* ── solo composer: toolbar + contenteditable editor ── */
|
||||||
.ed-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
|
.ed-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
|
||||||
.ed-bar button{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;
|
.ed-bar button{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;
|
||||||
|
|||||||
+4
-4
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
<title>Member area | InstantAdPay</title>
|
<title>Member area | InstantAdPay</title>
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&display=swap">
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&display=swap">
|
||||||
<link rel="stylesheet" href="/assets/site.css?v=20260907i">
|
<link rel="stylesheet" href="/assets/site.css?v=20260907j">
|
||||||
</head>
|
</head>
|
||||||
<body class="bo-body">
|
<body class="bo-body">
|
||||||
|
|
||||||
@@ -641,9 +641,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="/assets/common.js?v=20260907i"></script>
|
<script src="/assets/common.js?v=20260907j"></script>
|
||||||
<script src="/assets/wallet.js?v=20260907f"></script>
|
<script src="/assets/wallet.js?v=20260907f"></script>
|
||||||
<script src="/assets/my.js?v=20260907i"></script>
|
<script src="/assets/my.js?v=20260907j"></script>
|
||||||
<script src="/assets/chat.js?v=20260907i"></script>
|
<script src="/assets/chat.js?v=20260907j"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user