Files
wordpress-theme-aksrt/assets/css/routes/user-center/shell.css
T
kate522andClaude Fable 5 cfe806728d fix(user-center): restore reference 6px padding on sidebar icon boxes
widgets/frontend.css loads after main.min.css and its global
.zib-widget{padding:15px} overrode .padding-6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-10-28 23:14:48 +08:00

593 lines
15 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* User Center — shell / sidebar / content base / drawer
*/
/**
* AKSRT User Center — 本人中心专属样式
*
* 原主题风格两栏布局:左侧边栏 + 右侧内容区
* 仅在本人中心页面加载(body.aksrt-user-center)
*/
/* ==================== 用户中心容器 ==================== */
/* 主内容宽度由 frontend/layout.css 的 profile shell 合同统一管理。 */
.aksrt-profile.content-shell {
display: block;
width: 100%;
max-width: none;
padding: 0 0 40px;
box-sizing: border-box;
}
/* main 仍带 legacy .user-center 类;旧规则会把整页误设为 flex,并以
* gap:20px 挤窄第一个 flex 子项(顶部资料卡所在的 content-wrap)。 */
.aksrt-profile.user-center {
display: block;
gap: 0;
}
/* 顶部资料卡位于双栏布局之前,必须与用户中心外壳同宽,不能继续继承
* legacy .content-wrap / .container 的收窄规则。 */
.aksrt-profile.content-shell > .content-wrap,
.aksrt-profile.content-shell > .content-wrap > .uc-header,
.aksrt-profile.content-shell .uc-header {
width: 100%;
max-width: none;
box-sizing: border-box;
}
/* VIP, level and worn-medal marks share the global identity baseline. */
.uc-header__name > .img-icon,
h1.uc-header__name > .img-icon,
.uc-header__name .medal-icon.img-icon,
.uc-header__name .aksrt-identity-medal,
h1.uc-header__name .medal-icon.img-icon,
h1.uc-header__name .aksrt-identity-medal {
width: auto;
height: 1.1em;
max-width: 6em;
object-fit: contain;
vertical-align: -.15em;
margin-left: 4px;
display: inline-block;
border: none;
outline: none;
box-shadow: none;
background: transparent;
}
/* ==================== 页面自有双栏(对齐 legacy .user-center flex,不走全站 float 壳) ==================== */
/* DOM: sidebar first + content second(与 legacy user-center-sidebar / user-center-content 一致)。
* 选择器同时覆盖 body.aksrt-user-center 与 main.user-center / .aksrt-profile,避免 body class 漏打时失效。 */
body.aksrt-user-center .content-wrap,
.aksrt-profile .content-wrap,
.user-center .content-wrap {
float: none;
width: 100%;
min-width: 0;
}
/* 对齐 legacy: .user-center { display:flex; gap:20px; } */
body.aksrt-user-center .user-center-body,
body.aksrt-user-center .aksrt-profile__layout,
.aksrt-profile .user-center-body,
.aksrt-profile .aksrt-profile__layout,
.user-center .user-center-body {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: flex-start;
gap: 20px;
width: 100%;
margin-left: 0;
margin-right: 0;
min-width: 0;
box-sizing: border-box;
}
/* 中和 site-layout-2/3 对 content-layout 的 margin 挖空(兼容旧 class) */
body.aksrt-user-center.site-layout-1 .aksrt-profile__layout,
body.aksrt-user-center.site-layout-2 .aksrt-profile__layout,
body.aksrt-user-center.site-layout-3 .aksrt-profile__layout,
body.aksrt-user-center.site-layout-1 .user-center-body,
body.aksrt-user-center.site-layout-2 .user-center-body,
body.aksrt-user-center.site-layout-3 .user-center-body {
margin-left: 0;
margin-right: 0;
}
/* 对齐 legacy: .user-center .user-center-sidebar { width:320px; flex-shrink:0; } */
body.aksrt-user-center .user-center-sidebar,
body.aksrt-user-center .uc-sidebar,
body.aksrt-user-center .aksrt-profile__aside,
.aksrt-profile .user-center-sidebar,
.aksrt-profile .uc-sidebar,
.aksrt-profile .aksrt-profile__aside,
.user-center .user-center-sidebar {
float: none;
display: flex;
flex-direction: column;
gap: 12px;
flex: 0 0 320px;
width: 320px;
max-width: 320px;
margin-left: 0;
margin-right: 0;
box-sizing: border-box;
min-width: 0;
position: sticky;
top: calc(var(--nav-height, 60px) + 20px);
align-self: flex-start;
}
/* 对齐 legacy: .user-center .user-center-content { width: calc(100% - 320px); } */
body.aksrt-user-center .user-center-content,
body.aksrt-user-center .uc-content,
.aksrt-profile .user-center-content,
.aksrt-profile .uc-content,
.user-center .user-center-content {
flex: 1 1 auto;
width: calc(100% - 340px);
min-width: 0;
max-width: none;
box-sizing: border-box;
}
.uc-header__actions {
position: relative;
display: flex;
align-items: center;
gap: 6px;
}
.uc-header__signin-btn.is-done {
color: var(--color-success, #10b981);
}
.uc-header__message-btn {
position: relative;
}
.uc-header__action-badge {
position: absolute;
top: -5px;
right: -5px;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 16px;
height: 16px;
margin: 0;
padding: 0 4px;
border-radius: 999px;
background: var(--color-error, #ef4444);
color: #fff;
font-size: 11px;
font-weight: 700;
line-height: 1;
}
/* ==================== 左侧边栏 chrome ==================== */
/* sticky / 宽度由 .user-center-sidebar 负责;此处只定 section/btn 视觉 */
.uc-sidebar {
display: flex;
flex-direction: column;
gap: 12px;
}
.uc-sidebar__section {
background: var(--surface-1);
border-radius: var(--main-radius, var(--radius, 8px));
padding: 16px;
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
border: 1px solid var(--color-line-soft, transparent);
}
.uc-sidebar__title {
font-size: 12px;
font-weight: 600;
color: var(--color-ink-4);
margin-bottom: 12px;
text-transform: uppercase;
letter-spacing: 0.05em;
padding-bottom: 8px;
border-bottom: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
}
/* 侧栏按钮组 */
.uc-sidebar__buttons {
display: flex;
flex-direction: column;
gap: 2px;
}
.uc-sidebar__btn {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 10px 12px;
border: none;
border-radius: 8px;
background: transparent;
color: var(--color-ink-2);
text-decoration: none;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: background-color 0.15s, color 0.15s, box-shadow 0.15s;
text-align: left;
position: relative;
}
.uc-sidebar__btn::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 3px;
height: 0;
background: var(--color-primary);
border-radius: 0 3px 3px 0;
transition: height 0.2s ease;
}
.uc-sidebar__btn:hover {
background: var(--surface-2);
color: var(--color-ink);
}
.uc-sidebar__btn.is-active {
background: var(--color-primary-soft);
color: var(--color-primary);
font-weight: 600;
}
.uc-sidebar__btn.is-active::before {
height: 20px;
}
.uc-sidebar__btn i {
width: 18px;
text-align: center;
font-size: 14px;
flex-shrink: 0;
opacity: 0.8;
}
.uc-sidebar__btn.is-active i {
opacity: 1;
}
.uc-sidebar__badge {
margin-left: auto;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 18px;
height: 18px;
padding: 0 5px;
border-radius: 100px;
background: var(--color-error);
color: #fff;
font-size: 11px;
font-weight: 600;
line-height: 1;
animation: badge-pulse 2s ease-in-out infinite;
}
@keyframes badge-pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
/* 移动端抽屉触发器 */
.uc-sidebar__drawer-trigger {
display: none;
position: fixed;
bottom: calc(80px + env(safe-area-inset-bottom, 0px));
right: calc(20px + env(safe-area-inset-right, 0px));
width: 50px;
height: 50px;
border-radius: 50%;
border: none;
background: var(--color-primary);
color: #fff;
font-size: 20px;
cursor: pointer;
box-shadow: 0 4px 16px rgba(0,0,0,0.25);
z-index: 100;
align-items: center;
justify-content: center;
transition: transform 0.2s, box-shadow 0.2s;
}
.uc-sidebar__drawer-trigger:hover {
transform: scale(1.02);
box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.uc-sidebar__drawer-trigger:active {
transform: scale(0.92);
}
/* 抽屉遮罩 */
.uc-drawer-overlay {
display: none;
position: fixed;
inset: 0;
background: rgba(0,0,0,0.45);
backdrop-filter: blur(2px);
-webkit-backdrop-filter: blur(2px);
z-index: 200;
opacity: 0;
transition: opacity 0.3s;
}
.uc-drawer-overlay.is-visible {
display: block;
opacity: 1;
}
/* ==================== 右侧内容区 ==================== */
/* 宽度由 .user-center-content / flex 行负责;此处只定内容区 min-width */
.uc-content {
min-width: 0;
}
.uc-content .dashboard-panel {
background: var(--surface-1);
border-radius: var(--main-radius, var(--radius, 8px));
padding: 24px;
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
border: 1px solid var(--color-line-soft, transparent);
animation: panel-fade-in 0.25s ease;
}
@keyframes panel-fade-in {
from { opacity: 0; transform: translateY(6px); }
to { opacity: 1; transform: translateY(0); }
}
.uc-content .dashboard-panel.is-active {
display: block;
}
/* 面板内 widget-card 增强 */
.uc-content .widget-card {
border: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
border-radius: 10px;
padding: 20px;
margin-bottom: 16px;
background: var(--surface-1);
transition: box-shadow 0.2s;
}
.uc-content .widget-card:hover {
box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}
.uc-content .dashboard-panel:not(#panel-settings) > .widget-card,
.uc-content #panel-profile .profile-form > .widget-card {
background: transparent;
border: 0;
border-radius: 0;
box-shadow: none;
margin-bottom: 0;
padding: 0;
}
.uc-content .dashboard-panel:not(#panel-settings) > .widget-card:hover,
.uc-content #panel-profile .profile-form > .widget-card:hover {
box-shadow: none;
}
.uc-content #panel-profile .profile-form > .widget-card + .widget-card {
margin-top: 18px;
padding-top: 18px;
border-top: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
}
/* 文章 / 评论 / 收藏 / 粉丝:1:1 参考主题 zib_user_center_page_sidebar_statistics()。
参考主题没有给 .user-statistics-item 写专门样式,外观全部来自 zib-widget padding-10
与 em14 / em09 opacity5 mt6;链接只继承正文色,无 hover 变色。 */
.uc-sidebar-statistics.zib-widget {
clear: both;
line-height: 1.42857143;
background-color: var(--main-bg-color);
box-shadow: 0 0 10px var(--main-shadow);
border-radius: var(--main-radius);
color: var(--main-color);
}
/* 侧栏 gap:12px 与 mb20 叠加会翻倍,扣掉 gap 后与参考间距一致。 */
.uc-sidebar > .uc-sidebar-statistics.mb20 {
margin-bottom: 8px;
}
.uc-sidebar-statistics > .user-statistics-item,
.uc-sidebar-statistics > .user-statistics-item:hover,
.uc-sidebar-statistics > .user-statistics-item:focus {
color: inherit;
text-decoration: none;
}
@media (max-width: 767px) {
.uc-sidebar > .uc-sidebar-statistics.mb20 {
margin-bottom: 0;
}
}
@media (max-width: 991.98px) {
.uc-sidebar > .uc-sidebar-statistics {
margin-right: 12px;
margin-left: 12px;
}
}
/* VIP 入口:1:1 参考主题 zib_user_center_page_sidebar_vip(),外观全部来自
payvip-icon / badg / btn-block / abs-right。这里只补 <a> 与侧栏 gap 带来的差异。 */
.uc-sidebar .uc-sidebar-vip,
.uc-sidebar .uc-sidebar-vip:hover,
.uc-sidebar .uc-sidebar-vip:focus {
color: #ece0e0;
text-decoration: none;
}
/* 侧栏是 gap:12px 的纵向 flex,mb20 / mb10-sm 再叠加会翻倍,扣掉 gap 后与参考间距一致。 */
.uc-sidebar > .uc-sidebar-vip.mb20 {
margin-bottom: 8px;
}
/* legacy-utilities 把 .abs-right 改成 top:0/right:0,恢复参考主题的垂直居中几何。 */
.uc-sidebar-vip > .abs-right {
top: 50%;
right: 0.7em;
transform: translateY(-50%);
}
.uc-sidebar-vip .img-icon {
height: 1em;
width: auto;
vertical-align: -0.1em;
}
/* 创作中心 / 推广中心:1:1 参考主题 zib_user_center_page_sidebar_income_rebate()。
.zib-widget 在本站不是全局类,在侧栏内按参考原值落地。 */
.uc-sidebar-centers > .zib-widget {
clear: both;
background-color: var(--main-bg-color);
padding: 10px;
box-shadow: 0 0 10px var(--main-shadow);
border-radius: var(--main-radius);
margin-bottom: 8px;
color: var(--main-color);
text-decoration: none;
}
.uc-sidebar-centers > .zib-widget:hover,
.uc-sidebar-centers > .zib-widget:focus {
color: var(--main-color);
}
@media (max-width: 767px) {
.uc-sidebar > .uc-sidebar-vip.mb20,
.uc-sidebar-centers > .zib-widget {
margin-bottom: 0;
}
}
@media (max-width: 991.98px) {
.uc-sidebar > .uc-sidebar-vip,
.uc-sidebar > .uc-sidebar-centers {
margin-right: 12px;
margin-left: 12px;
}
}
.uc-sidebar__pair {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.uc-summary-card {
min-width: 0;
border: 1px solid var(--color-line-soft, rgba(15, 23, 42, 0.06));
border-radius: var(--main-radius, var(--radius, 8px));
background: var(--surface-1);
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
color: var(--color-ink-2);
text-decoration: none;
}
.uc-summary-card {
padding: 14px;
}
.uc-summary-card__head,
.uc-summary-card__body {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.uc-summary-card__head {
margin-bottom: 10px;
color: var(--color-ink-4);
font-size: 12px;
}
.uc-summary-card__body strong {
overflow: hidden;
font-size: 18px;
font-variant-numeric: tabular-nums;
letter-spacing: -0.02em;
text-overflow: ellipsis;
}
.uc-summary-card__body > i,
.uc-summary-card__body > svg {
font-size: 18px;
}
.uc-summary-card--wallet .uc-summary-card__body { color: #3978d6; }
.uc-summary-card--points .uc-summary-card__body { color: #ba7a0a; }
/* 我的服务 / 功能设置:1:1 参考主题 zib_user_center_page_sidebar_button_1/2()。
外壳为 zib-widget padding-6,标题为普通字重的 padding-6 ml3;
网格项只继承正文色,参考主题没有 hover / 选中变色。
参考主题正文行高是 bootstrap 的 1.42857143,本站 body 为 1.6,
标题、图标、文字三行会各自被撑高,这里恢复参考行高。 */
/* widgets/frontend.css 在 main.min.css 之后加载,其 .zib-widget{padding:15px} 会盖掉 .padding-6,这里按参考值锁回 6px。 */
.uc-sidebar-iconbox.zib-widget {
clear: both;
padding: 6px;
line-height: 1.42857143;
background-color: var(--main-bg-color);
box-shadow: 0 0 10px var(--main-shadow);
border-radius: var(--main-radius);
margin-bottom: 8px;
color: var(--main-color);
}
.user-icon-but-box > a {
width: calc(25% - 10px);
margin: 5px;
min-width: 50px;
max-width: 100px;
cursor: pointer;
color: inherit;
text-decoration: none;
}
.user-icon-but-box > a:hover,
.user-icon-but-box > a:focus {
color: inherit;
}
@media (max-width: 767px) {
.uc-sidebar-iconbox.zib-widget {
margin-bottom: 0;
}
}
@media (max-width: 991.98px) {
.uc-sidebar > .uc-sidebar-iconbox {
margin-right: 12px;
margin-left: 12px;
}
}
.uc-follow-management__list { display: grid; gap: 10px; margin-top: 16px; }
.uc-follow-management__item { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--border-color, rgba(15, 23, 42, .08)); border-radius: 12px; }
.uc-follow-management__avatar img { display: block; width: 48px; height: 48px; border-radius: 50%; }
.uc-follow-management__identity { display: grid; gap: 4px; min-width: 0; }
.uc-follow-management__identity a { color: var(--color-ink-1); font-weight: 600; }
.uc-follow-management__identity span { color: var(--color-ink-4); font-size: 12px; }
.uc-follow-management__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
@media (max-width: 560px) { .uc-follow-management__item { align-items: flex-start; flex-wrap: wrap; } .uc-follow-management__actions { width: 100%; margin-left: 60px; } }