feat: apply B-147 visual tokens to remaining market data pages

Unify ladder, themes, rotation, auction, dragon-tiger and popularity with shared tokens, left-aligned first columns, and table density.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
MS-01-Codex
2026-08-20 04:34:36 +08:00
co-authored by Cursor multica-agent
parent 6ab910eeea
commit ad08d309c6
16 changed files with 279 additions and 215 deletions
+46 -37
View File
@@ -22,11 +22,11 @@
}
.popularity-source-tag.dual {
border-color: rgb(230, 199, 115);
border-color: var(--warn);
background: var(--amber-soft);
color: rgb(118, 83, 20);
color: var(--warn);
}
.popularity-concepts {
@@ -44,21 +44,21 @@
}
#popularityView .data-table {
font-size: 12px;
font-size: var(--font-size-table);
}
#popularityView .data-table thead th {
height: 32px;
height: 36px;
padding: 6px 9px;
padding: 0 12px;
font-size: 11.5px;
font-size: var(--font-size-caption);
}
#popularityView .data-table tbody td {
height: 39px;
height: 40px;
padding: 5px 9px;
padding: 0 12px;
}
.redesigned-popularity-view {
@@ -93,6 +93,10 @@
margin: 0px;
color: var(--r2-ink);
font-size: var(--font-size-page-title);
font-weight: var(--font-weight-semibold);
}
.popularity-title-v2 > span {
@@ -140,7 +144,7 @@
align-items: center;
min-height: 34px;
min-height: 32px;
padding: 3px;
@@ -152,19 +156,19 @@
}
.popularity-source-tabs-v2 button {
min-height: 27px;
min-height: 26px;
padding: 0px 13px;
border: 0px;
border-radius: 5px;
border-radius: 6px;
background: transparent;
color: var(--r2-sub);
font-size: 11px;
font-size: var(--font-size-label);
cursor: pointer;
}
@@ -190,11 +194,15 @@
}
.popularity-refresh-v2 {
min-height: 34px;
min-height: 32px;
padding: 0px 11px;
height: 32px;
border-radius: 7px;
padding: 0px 12px;
border-radius: 8px;
font-size: var(--font-size-label);
}
.popularity-refresh-v2 .lucide {
@@ -244,15 +252,15 @@
width: 3px;
background: rgb(199, 216, 251);
background: var(--accent-soft);
}
.popularity-glance-v2 article:nth-child(2)::before {
background: rgb(183, 221, 207);
background: var(--down-soft);
}
.popularity-glance-v2 article.consensus::before {
background: rgb(230, 199, 115);
background: var(--warn);
}
.popularity-glance-v2 article > span {
@@ -372,7 +380,7 @@
width: 230px;
height: 33px;
height: 32px;
flex: 0 0 auto;
@@ -380,9 +388,9 @@
padding: 0px 10px;
border: 1px solid rgb(216, 221, 229);
border: 1px solid var(--border-strong);
border-radius: 7px;
border-radius: 8px;
color: var(--r2-faint);
@@ -390,9 +398,9 @@
}
.popularity-search-v2:focus-within {
border-color: rgb(150, 181, 242);
border-color: var(--accent);
box-shadow: rgba(37, 99, 235, 0.09) 0px 0px 0px 3px;
box-shadow: 0 0 0 2px var(--focus-ring);
}
.popularity-search-v2 .lucide {
@@ -446,15 +454,15 @@
z-index: 2;
height: 35px;
height: 36px;
padding: 7px 10px;
padding: 0 12px;
border-bottom-color: var(--r2-line);
color: var(--r2-sub);
font-size: 10.5px;
font-size: var(--font-size-caption);
}
.popularity-table-v2 thead th:nth-child(1) {
@@ -477,11 +485,11 @@
}
.popularity-table-v2 tbody td {
height: 43px;
height: 40px;
padding: 7px 10px;
padding: 0 12px;
font-size: 11.5px;
font-size: var(--font-size-table);
}
.popularity-table-v2 tbody tr {
@@ -541,9 +549,9 @@
color: var(--r2-ink);
font-size: 12px;
font-size: var(--font-size-table);
font-weight: 700;
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
@@ -559,7 +567,7 @@
}
.popularity-list-rank-v2 {
color: rgb(64, 85, 115);
color: var(--text-2);
}
.popularity-movement-v2 {
@@ -658,11 +666,9 @@
}
.popularity-table-v2 tbody td {
height: 39px;
height: 40px;
padding-top: 5px;
padding-bottom: 5px;
padding: 0 12px;
}
}
@@ -857,8 +863,11 @@
width: auto;
}
#popularityView .popularity-table-v2 th:first-child {
#popularityView .popularity-table-v2 th:first-child,
#popularityView .popularity-table-v2 td:first-child {
width: var(--col-rank);
text-align: left;
}
#popularityView .popularity-table-v2 th:nth-child(2) {
+2 -2
View File
@@ -50,7 +50,7 @@ function renderPopularityTable() {
setText("popularityTableTitle", `${sourceName}`);
setText("popularityTableNote", combined ? "按双榜排名综合排序 · 已隐藏重复的榜单状态" : "按榜单名次排序 · 状态显示是否同时进入另一榜");
const headers = [
["排名", "number num"], ["股票", ""], ["最新价(元)", "number num"], ["涨跌幅(%", "number num"],
["排名", "row-number"], ["股票", ""], ["最新价(元)", "number num"], ["涨跌幅(%", "number num"],
...(source !== "dc" ? [["同花顺", "number num"]] : []),
...(source !== "ths" ? [["东方财富", "number num"]] : []),
["排名变化", "number num"], ["热门概念", ""], ...(!combined ? [["榜单状态", ""]] : []),
@@ -63,7 +63,7 @@ function renderPopularityTable() {
const move = row.rank_change;
const movement = move === null || move === undefined ? "新" : number(move) > 0 ? `${number(move)}` : number(move) < 0 ? `${Math.abs(number(move))}` : "持平";
return `<tr data-code="${escapeHtml(row.code)}">
<td class="number num popularity-rank-v2"><b>${index + 1}</b>${index < 3 ? '<span>热</span>' : ""}</td>
<td class="row-number popularity-rank-v2"><b>${index + 1}</b>${index < 3 ? '<span>热</span>' : ""}</td>
<td><div class="popularity-stock-v2"><strong class="stock-name sname">${escapeHtml(row.name)}</strong><span class="stock-code scode">${escapeHtml(row.code)}</span></div></td>
<td class="number num">${row.price == null ? "" : formatNumber(row.price, 2)}</td>
<td class="number num ${row.change == null ? "" : changeClass(row.change)}">${row.change == null ? "" : signed(row.change)}</td>