Files
wordpress-theme-aksrt/assets/css/routes/user-center/responsive.css
T
kate522andClaude Opus 5 35bb96e82f refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.

Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
  cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
  window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)

Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
  so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
  (dropped 3 stale entries, added the 17 missing ones)

Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
  get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
  when it is empty

Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.

Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-11-01 20:05:04 +08:00

326 lines
7.4 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.jio-user-center .user-center-body,
body.jio-user-center .jio-profile__layout,
.jio-profile .user-center-body,
.jio-profile .jio-profile__layout,
.user-center .user-center-body {
display: block;
gap: 0;
}
body.jio-user-center .user-center-content,
body.jio-user-center .uc-content,
.jio-profile .user-center-content,
.jio-profile .uc-content,
.user-center .user-center-content {
width: 100%;
max-width: none;
flex: none;
}
/* 抽屉:离屏固定,FAB 打开;不参与文档流,避免堆在内容下方 */
body.jio-user-center .user-center-sidebar,
body.jio-user-center .uc-sidebar,
body.jio-user-center .jio-profile__aside,
.jio-profile .user-center-sidebar,
.jio-profile .uc-sidebar,
.jio-profile .jio-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.jio-user-center .user-center-sidebar.is-open,
body.jio-user-center .uc-sidebar.is-open,
body.jio-user-center .jio-profile__aside.is-open,
.jio-profile .user-center-sidebar.is-open,
.jio-profile .uc-sidebar.is-open,
.jio-profile .jio-profile__aside.is-open,
.user-center .user-center-sidebar.is-open {
left: 0;
}
/* 抽屉头部装饰 */
body.jio-user-center .user-center-sidebar::before,
body.jio-user-center .uc-sidebar::before,
body.jio-user-center .jio-profile__aside::before,
.jio-profile .user-center-sidebar::before,
.jio-profile .uc-sidebar::before,
.jio-profile .jio-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.jio-user-center .uc-sidebar__section,
.jio-profile .uc-sidebar__section,
.user-center .uc-sidebar__section {
border-radius: 0;
border-left: none;
border-right: none;
box-shadow: none;
}
body.jio-user-center .uc-sidebar__section:first-of-type,
.jio-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.jio-user-center .uc-sidebar__drawer-trigger,
.jio-profile .uc-sidebar__drawer-trigger,
.user-center .uc-sidebar__drawer-trigger {
display: flex;
}
}
@media (max-width: 767px) {
.uc-content .dashboard-panel {
padding: 16px;
}
}
/* ==================== 焦点状态(无障碍)==================== */
.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,
.jio-profile.content-shell {
padding: 0 12px 32px;
}
.uc-content .dashboard-panel {
padding: 14px;
}
.uc-content .widget-card {
padding: 14px;
}
.uc-transactions__item {
padding: 12px 14px;
}
.uc-transactions__icon {
width: 32px;
height: 32px;
font-size: 12px;
}
}
@media (max-width: 640px) {
.uc-content .jio-invite-hero {
flex-direction: column;
padding: 0 0 14px;
}
.uc-content .jio-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 .jio-invite-link-row {
flex-direction: column;
padding: 14px 0;
}
.uc-content .jio-invite-link-row input {
flex: none;
width: 100%;
height: 40px;
}
.uc-content .jio-invite-copy {
width: 100%;
}
.uc-content .jio-invite-stats {
grid-template-columns: repeat(3, 1fr);
padding: 12px 0;
}
.uc-content .jio-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 .jio-invite-stat:last-child {
border-right: 0;
}
.uc-content .jio-invite-stat strong {
font-size: 22px;
}
.uc-content .jio-invite-stat span,
.uc-content .jio-invite-stat strong {
white-space: nowrap;
}
.uc-content .jio-invite-stat small {
font-size: 11px;
}
.uc-content .jio-invite-records {
padding: 14px 0 0;
}
.uc-content .jio-invite-record {
align-items: flex-start;
}
.uc-content .jio-invite-record__status {
min-width: 0;
}
}
@media (max-width: 520px) {
.uc-content .jio-invite-record {
flex-wrap: wrap;
}
.uc-content .jio-invite-record__main {
flex: 1 1 calc(100% - 54px);
}
.uc-content .jio-invite-record__status {
flex: 1 1 100%;
align-items: flex-start;
padding-left: 54px;
text-align: left;
}
}