From 10b3e6dd9f8f7ef65b58512a69aeb99ea12e270d Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 24 Aug 2026 17:47:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=B0=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/css/routes/user-center/credits.css | 38 +++++++++++++------ .../post-visual-contract.test.cjs | 3 ++ 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/assets/css/routes/user-center/credits.css b/assets/css/routes/user-center/credits.css index 5e013841..8c37dada 100644 --- a/assets/css/routes/user-center/credits.css +++ b/assets/css/routes/user-center/credits.css @@ -6,6 +6,16 @@ box-shadow: none; } +/* The asset cards and the records card are sibling surfaces, not one nested card. */ +.uc-content #panel-credits.dashboard-panel { + margin: 0; + padding: 0; + border: 0; + border-radius: 0; + background: transparent; + box-shadow: none; +} + /* Dual asset row — layout only (no outer mega-card). Desktop: 1 row; mobile: 2 rows. */ .uc-assets-row { display: grid; @@ -299,19 +309,25 @@ body.uc-modal-open { margin-top: 12px; } -/* Asset record tabs — flat tab strip + list, no aksrt-panel mega-card */ -.uc-asset-tabs { - margin-top: 8px; - padding: 0; - background: transparent; - border: 0; - box-shadow: none; +/* Asset records sit in their own card below the wallet and points cards. */ +.uc-asset-tabs, +.uc-asset-tabs.aksrt-panel { + margin: 0; + padding: 20px; + background: var(--surface-1, #fff); + border: 1px solid var(--color-line-soft, rgba(0, 0, 0, 0.06)); + border-radius: var(--main-radius, var(--radius, 8px)); + box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04); } + +@media (max-width: 480px) { + .uc-asset-tabs, + .uc-asset-tabs.aksrt-panel { + padding: 14px; + } +} + .uc-asset-tabs.aksrt-panel { - background: transparent; - border: 0; - box-shadow: none; - padding: 0; margin-bottom: 0; } .uc-asset-tabs__nav { diff --git a/tests/widget-system/post-visual-contract.test.cjs b/tests/widget-system/post-visual-contract.test.cjs index 7b094947..f99111db 100644 --- a/tests/widget-system/post-visual-contract.test.cjs +++ b/tests/widget-system/post-visual-contract.test.cjs @@ -326,6 +326,7 @@ test('profile routes load versioned leaf styles and keep dialogs hidden initiall const userHomeCss = read('assets/css/routes/user-home.css'); const profileLayoutCss = read('assets/css/routes/profile/layout.css'); const profileModalsCss = read('assets/css/routes/profile/modals.css'); + const userCenterCreditsCss = read('assets/css/routes/user-center/credits.css'); const profileCredits = read('inc/helpers/user-center-renderers/profile-credits.php'); const profileOrders = read('inc/helpers/user-center-renderers/profile-orders.php'); const ordersCss = read('assets/css/routes/orders.css'); @@ -362,6 +363,8 @@ test('profile routes load versioned leaf styles and keep dialogs hidden initiall assert.match(accountModals, /id="phone-modal"[\s\S]*?class="modal-field modal-field--code"[\s\S]*?class="code-input-group"[\s\S]*?class="aksrt-modal__footer"/); assert.doesNotMatch(accountModals, /id="phone-modal"[\s\S]*?aksrt-modal__(?:dialog|body|actions)/); assert.match(profileModalsCss, /\.modal-field input\[type="tel"\]/); + assert.match(userCenterCreditsCss, /#panel-credits\.dashboard-panel\s*\{[^}]*background:\s*transparent;[^}]*box-shadow:\s*none;/); + assert.match(userCenterCreditsCss, /\.uc-asset-tabs,\s*\.uc-asset-tabs\.aksrt-panel\s*\{[^}]*background:\s*var\(--surface-1,\s*#fff\);[^}]*border:[^;}]+;[^}]*box-shadow:[^;}]+;/); assert.doesNotMatch(profileCredits, /credits-signin\.php|data-aksrt-signin-calendar/); assert.match(profileOrders, /data-aksrt-orders-filter-panel hidden/); assert.match(profileOrders, /'status'\s*=>\s*\$_GET\['order_status'\]\s*\?\?\s*'all'/);