Files
wordpress-theme-aksrt/assets/css/routes/user-center/responsive.css
T
kate522 9375b1c30c refactor(assets): vendor 资产迁入标准目录并全仓去除 zibll 标识
- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css,
  js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img,
  fonts→assets/fonts; 删除 assets/vendor
- libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向
- 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入
  路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_*
- 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化
- 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→
  window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel,
  .zib-slider→.aksrt-slider, zib_menu_options meta 键等
- 自有 CSS 改名: legacy-utilities/compat-vars/footer shell
- admin SPA 重建; 契约测试同步(路径/断言/文件更名)
- 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用)

验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过;
契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
2026-08-22 16:16:30 +08:00

370 lines
8.1 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 — mobile tabs, drawer breakpoints, a11y/loading, invite mobile
*/
/* ==================== 移动端 Tab 栏 ==================== */
.uc-mobile-tabs {
display: none;
}
@media (max-width: 767px) {
.uc-mobile-tabs {
display: flex;
flex-wrap: wrap;
overflow: hidden;
gap: 4px;
padding-bottom: 12px;
margin-bottom: 16px;
border-bottom: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
scrollbar-width: none;
-ms-overflow-style: none;
}
.uc-mobile-tabs::-webkit-scrollbar {
display: none;
}
.uc-mobile-tabs a {
flex-shrink: 0;
white-space: nowrap;
padding: 8px 14px;
border: none;
border-radius: 8px;
background: transparent;
color: var(--color-ink-3);
font-size: 13px;
font-weight: 500;
text-decoration: none;
cursor: pointer;
transition: all 0.2s ease;
}
.uc-mobile-tabs a:hover,
.uc-mobile-tabs a.is-active {
background: var(--color-primary-soft);
color: var(--color-primary);
font-weight: 600;
}
}
/* ==================== 响应式抽屉(对齐 legacy ≤767 全宽,覆盖 display:none) ==================== */
/* legacy 在 max-width:767 把 user-center-sidebar/content 设 width:100%;
* 本站沿用 ≤991.98 的 drawer 模式,与全站侧栏折叠点一致。 */
@media (max-width: 991.98px) {
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: block;
gap: 0;
}
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 {
width: 100%;
max-width: none;
flex: none;
}
/* 抽屉:离屏固定,FAB 打开;不参与文档流,避免堆在内容下方 */
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 {
display: flex;
float: none;
flex: none;
width: 270px;
max-width: 270px;
margin-left: 0;
margin-right: 0;
position: fixed;
top: 0;
left: -280px;
bottom: 0;
z-index: 300;
background: var(--surface-1);
padding: 0;
overflow-y: auto;
overflow-x: hidden;
transition: left 0.3s cubic-bezier(0.22, 1, 0.36, 1);
box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
gap: 0;
align-self: auto;
}
body.aksrt-user-center .user-center-sidebar.is-open,
body.aksrt-user-center .uc-sidebar.is-open,
body.aksrt-user-center .aksrt-profile__aside.is-open,
.aksrt-profile .user-center-sidebar.is-open,
.aksrt-profile .uc-sidebar.is-open,
.aksrt-profile .aksrt-profile__aside.is-open,
.user-center .user-center-sidebar.is-open {
left: 0;
}
/* 抽屉头部装饰 */
body.aksrt-user-center .user-center-sidebar::before,
body.aksrt-user-center .uc-sidebar::before,
body.aksrt-user-center .aksrt-profile__aside::before,
.aksrt-profile .user-center-sidebar::before,
.aksrt-profile .uc-sidebar::before,
.aksrt-profile .aksrt-profile__aside::before,
.user-center .user-center-sidebar::before {
content: '';
display: block;
height: 100px;
background: linear-gradient(135deg, var(--color-primary), #667eea);
flex-shrink: 0;
}
body.aksrt-user-center .uc-sidebar__section,
.aksrt-profile .uc-sidebar__section,
.user-center .uc-sidebar__section {
border-radius: 0;
border-left: none;
border-right: none;
box-shadow: none;
}
body.aksrt-user-center .uc-sidebar__section:first-of-type,
.aksrt-profile .uc-sidebar__section:first-of-type,
.user-center .uc-sidebar__section:first-of-type {
margin-top: -20px;
position: relative;
z-index: 1;
border-radius: 12px 12px 0 0;
}
body.aksrt-user-center .uc-sidebar__drawer-trigger,
.aksrt-profile .uc-sidebar__drawer-trigger,
.user-center .uc-sidebar__drawer-trigger {
display: flex;
}
}
@media (max-width: 767px) {
.uc-content .dashboard-panel {
padding: 16px;
}
.uc-content .credits-card {
flex-direction: column;
text-align: center;
gap: 12px;
}
}
/* ==================== 焦点状态(无障碍)==================== */
.uc-sidebar__btn:focus-visible,
.uc-sidebar__drawer-trigger:focus-visible,
.uc-content .btn-primary:focus-visible,
.uc-content .btn-ghost:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 2px;
}
/* ==================== 加载状态 ==================== */
.uc-content .btn-primary.is-loading,
.uc-content .btn-ghost.is-loading {
position: relative;
color: transparent;
pointer-events: none;
}
.uc-content .btn-primary.is-loading::after,
.uc-content .btn-ghost.is-loading::after {
content: '';
position: absolute;
width: 16px;
height: 16px;
border: 2px solid rgba(255,255,255,0.3);
border-top-color: #fff;
border-radius: 50%;
animation: btn-spin 0.6s linear infinite;
}
@keyframes btn-spin {
to { transform: rotate(360deg); }
}
/* ==================== 空状态增强 ==================== */
.uc-content .profile-empty {
padding: 48px 20px;
}
.uc-content .profile-empty__icon {
width: 56px;
height: 56px;
margin-bottom: 14px;
}
.uc-content .profile-empty__icon svg {
width: 26px;
height: 26px;
}
/* ==================== 移动端底部安全区 ==================== */
.uc-sidebar__drawer-trigger {
bottom: calc(72px + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 480px) {
.user-center,
.aksrt-profile.content-shell {
padding: 0 12px 32px;
}
.uc-stats {
grid-template-columns: repeat(4, 1fr);
}
.uc-stats__item {
padding: 8px 4px;
}
.uc-stats__value {
font-size: 1rem;
}
.uc-content .dashboard-panel {
padding: 14px;
}
.uc-content .widget-card {
padding: 14px;
}
.uc-balance-card__content {
padding: 18px;
}
.uc-balance-card__value {
font-size: 2rem;
}
.uc-balance-card__actions {
flex-direction: column;
gap: 10px;
align-items: flex-start;
}
.uc-balance-card__sign-btn {
width: 100%;
justify-content: center;
}
.uc-transactions__item {
padding: 12px 14px;
}
.uc-transactions__icon {
width: 32px;
height: 32px;
font-size: 12px;
}
.uc-content .credits-card {
padding: 16px;
}
.uc-content .credits-card__value {
font-size: 1.5rem;
}
}
@media (max-width: 640px) {
.uc-content .aksrt-invite-hero {
flex-direction: column;
padding: 0 0 14px;
}
.uc-content .aksrt-invite-code-card {
width: 100%;
padding: 12px 0 0;
border-left: 0;
border-top: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
}
.uc-content .aksrt-invite-link-row {
flex-direction: column;
padding: 14px 0;
}
.uc-content .aksrt-invite-link-row input {
flex: none;
width: 100%;
height: 40px;
}
.uc-content .aksrt-invite-copy {
width: 100%;
}
.uc-content .aksrt-invite-stats {
grid-template-columns: repeat(3, 1fr);
padding: 12px 0;
}
.uc-content .aksrt-invite-stat {
align-items: center;
text-align: center;
padding: 0 8px;
border-right: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
border-bottom: 0;
}
.uc-content .aksrt-invite-stat:last-child {
border-right: 0;
}
.uc-content .aksrt-invite-stat strong {
font-size: 22px;
}
.uc-content .aksrt-invite-stat span,
.uc-content .aksrt-invite-stat strong {
white-space: nowrap;
}
.uc-content .aksrt-invite-stat small {
font-size: 11px;
}
.uc-content .aksrt-invite-records {
padding: 14px 0 0;
}
.uc-content .aksrt-invite-record {
align-items: flex-start;
}
.uc-content .aksrt-invite-record__status {
min-width: 0;
}
}
@media (max-width: 520px) {
.uc-content .aksrt-invite-record {
flex-wrap: wrap;
}
.uc-content .aksrt-invite-record__main {
flex: 1 1 calc(100% - 54px);
}
.uc-content .aksrt-invite-record__status {
flex: 1 1 100%;
align-items: flex-start;
padding-left: 54px;
text-align: left;
}
}