feat(forum): multi-tab topic widget lazy REST load

SSR first tab; other tabs fetch /forum/frontend/widgets/topics
on switch, with shared list markup and styles.
This commit is contained in:
2026-07-19 02:27:18 +08:00
parent 5cb6928b1e
commit d479723814
2 changed files with 142 additions and 88 deletions
+58
View File
@@ -718,3 +718,61 @@
.aksrt-badge-modal__card { padding: 12px 8px 8px; }
.aksrt-badge-modal__actions { margin-top: 12px; }
.aksrt-author-hero__badges { margin-top: 8px; }
/* Forum tab topics (batch6) */
.aksrt-ftab__nav {
display: flex;
gap: 6px;
list-style: none;
margin: 0 0 10px;
padding: 0;
overflow-x: auto;
}
.aksrt-ftab__btn {
border: 0;
background: var(--surface-2, #f3f4f6);
border-radius: 999px;
padding: 5px 12px;
font-size: 13px;
cursor: pointer;
color: inherit;
}
.aksrt-ftab__btn.is-active {
background: var(--color-primary, #3b82f6);
color: #fff;
}
.aksrt-ftab__panel { display: none; }
.aksrt-ftab__panel.is-active { display: block; }
.aksrt-ftab__empty { font-size: 13px; color: var(--muted-2-color, #999); padding: 8px 0; }
.aksrt-ftopic-list { list-style: none; margin: 0; padding: 0; }
.aksrt-ftopic-list__item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding: 7px 0;
border-bottom: 1px dashed var(--color-line, #eee);
font-size: 13px;
}
.aksrt-ftopic-list__item:last-child { border-bottom: 0; }
.aksrt-ftopic-list__link {
color: inherit;
text-decoration: none;
flex: 1;
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.aksrt-ftopic-list__views { color: var(--muted-2-color, #999); font-size: 12px; flex-shrink: 0; }
.aksrt-ftopic-list__meta {
display: flex;
gap: 8px;
font-size: 11px;
color: var(--muted-2-color, #999);
margin-top: 4px;
}
.aksrt-ftopic-list.is-detail .aksrt-ftopic-list__item {
flex-direction: column;
align-items: flex-start;
}