feat: 完成头像上传、站点主题配置与UI优化
- 新增附件模型与上传服务,拆分头像上传/管理逻辑 - 重构用户资料接口,移除直接修改头像字段,改用专用上传接口 - 添加站点公开设置API与管理员外观配置页 - 全局替换hover背景为accent-soft,优化交互一致性 - 完善头像组件,支持图片加载失败回退与src更新重置 - 新增用户状态事件总线,解决同页头像更新不及时问题 - 调整依赖包顺序与CI依赖版本 - 重构板块列表接口,新增帖子计数 - 迁移账号设置到用户主页tab,合并重复代码
This commit is contained in:
@@ -217,12 +217,15 @@ h1, h2, h3, h4 {
|
||||
.btn-primary {
|
||||
background: var(--accent);
|
||||
color: var(--accent-on);
|
||||
box-shadow: 0 1px 2px rgba(16, 24, 40, 0.12), 0 2px 8px rgba(59, 91, 219, 0.22);
|
||||
/* 阴影色跟随动态主题色(color-mix 引用令牌,换肤自动生效) */
|
||||
box-shadow: 0 1px 2px rgba(16, 24, 40, 0.12),
|
||||
0 2px 8px color-mix(in srgb, var(--accent) 26%, transparent);
|
||||
}
|
||||
.btn-primary:hover:not(:disabled) {
|
||||
background: var(--accent-hi);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 2px 6px rgba(16, 24, 40, 0.1), 0 8px 20px rgba(59, 91, 219, 0.3);
|
||||
box-shadow: 0 2px 6px rgba(16, 24, 40, 0.1),
|
||||
0 8px 20px color-mix(in srgb, var(--accent) 34%, transparent);
|
||||
}
|
||||
.btn-primary:active:not(:disabled) {
|
||||
transform: translateY(0);
|
||||
@@ -463,11 +466,12 @@ h1, h2, h3, h4 {
|
||||
color: var(--accent);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
/* 当前页:与全站选中态一致的主题色淡化底(而非实心填充) */
|
||||
.pager-btn.is-current,
|
||||
.pager-btn.is-current:hover {
|
||||
background: var(--accent);
|
||||
border-color: var(--accent);
|
||||
color: var(--accent-on);
|
||||
background: var(--nav-active-bg);
|
||||
border-color: var(--nav-active-line);
|
||||
color: var(--nav-active-ink);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
@@ -559,8 +563,8 @@ h1, h2, h3, h4 {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* 首页左栏「板块目录」卡片:与面包屑的纯文字位置指引区分,
|
||||
承载板块介绍与讨论量等发现型信息,点击在工作台内筛选帖子流 */
|
||||
/* 首页左栏「全部讨论 / 板块目录」卡片:与面包屑的纯文字位置指引区分,
|
||||
承载讨论量等发现型信息,点击在工作台内筛选帖子流 */
|
||||
.j13-bcard {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -580,10 +584,19 @@ h1, h2, h3, h4 {
|
||||
outline: 2px solid var(--accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
.j13-bcard[aria-current="page"] {
|
||||
border-color: var(--accent);
|
||||
/* 选中态:全站统一使用主题色淡化底(--nav-active-bg,随站点主题色联动),
|
||||
与 raillink / chip / tab / 顶部导航 pill 的选中表达保持一致 */
|
||||
.j13-bcard[aria-current="page"],
|
||||
.j13-bcard[aria-current="page"]:hover {
|
||||
border-color: var(--nav-active-line);
|
||||
background: var(--nav-active-bg);
|
||||
}
|
||||
.j13-bcard-name {
|
||||
color: var(--ink);
|
||||
}
|
||||
.j13-bcard[aria-current="page"] .j13-bcard-name {
|
||||
color: var(--nav-active-ink);
|
||||
}
|
||||
.j13-bcard-ico {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
@@ -595,16 +608,6 @@ h1, h2, h3, h4 {
|
||||
font-weight: 800;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.j13-bcard-desc {
|
||||
display: block;
|
||||
margin-top: 2px;
|
||||
font-size: 11.5px;
|
||||
line-height: 1.4;
|
||||
color: var(--ink-3);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.j13-bcard {
|
||||
transition: none;
|
||||
@@ -762,8 +765,10 @@ h1, h2, h3, h4 {
|
||||
border-radius: 10px;
|
||||
transition: background 0.16s ease;
|
||||
}
|
||||
.j13-rank:hover {
|
||||
background: var(--panel-2);
|
||||
/* 榜单行:无选中态的导航项,悬停/聚焦统一使用主题色淡化底 */
|
||||
.j13-rank:hover,
|
||||
.j13-rank:focus-visible {
|
||||
background: var(--accent-soft);
|
||||
}
|
||||
.j13-rank .j13-rank-no {
|
||||
width: 18px;
|
||||
|
||||
Reference in New Issue
Block a user