style(Account UX): resilient binding layout, copyable popovers, pastel header, and custom pay colors

- AccountManagement.js
  - Prevent action button from shifting when account IDs are long by adding gap, min-w-0, and flex-shrink-0; keep buttons in a fixed position.
  - Add copyable Popover for account identifiers (email/GitHub/OIDC/Telegram/LinuxDO) using Typography.Paragraph with copyable; reveal full text on hover.
  - Ensure ellipsis works by rendering the popover trigger as `block max-w-full truncate`.
  - Import Popover and wire up `renderAccountInfo` across all binding rows.

- UserInfoHeader.js
  - Apply unified `with-pastel-balls` background to match PricingVendorIntro.
  - Remove legacy absolute-positioned circles and top gradient bar to avoid visual overlap.

- RechargeCard.jsx
  - Colorize non-Alipay/WeChat/Stripe payment icons using backend `pay_methods[].color`; fallback to `var(--semi-color-text-2)`.
  - Add `showClear` to the redemption code input for quicker clearing.

Notes:
- No linter errors introduced.
- i18n strings and behavior remain unchanged except for improved UX and visual consistency.
This commit is contained in:
t0ng7u
2025-08-17 11:45:55 +08:00
parent bbe381f656
commit 7411c24954
8 changed files with 208 additions and 157 deletions

View File

@@ -668,6 +668,59 @@ html.dark .with-pastel-balls::before {
mix-blend-mode: screen;
}
/* ==================== 卡片马卡龙模糊球(温暖色系) ==================== */
.with-pastel-balls-warm {
position: relative;
overflow: hidden;
/* 温暖色系变量(明亮模式) */
--pb1: #ffe4b5;
/* 桃杏 */
--pb2: #d4ffdd;
/* 薄荷绿 */
--pb3: #ffecb3;
/* 浅金 */
--pb4: #e8f5e8;
/* 淡绿 */
--pb-opacity: 0.55;
}
.with-pastel-balls-warm::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
z-index: 0;
background:
radial-gradient(circle at -5% -10%, var(--pb1) 0%, transparent 60%),
radial-gradient(circle at 105% -10%, var(--pb2) 0%, transparent 55%),
radial-gradient(circle at 5% 110%, var(--pb3) 0%, transparent 55%),
radial-gradient(circle at 105% 110%, var(--pb4) 0%, transparent 50%);
opacity: var(--pb-opacity);
}
.with-pastel-balls-warm>* {
position: relative;
z-index: 1;
}
/* 暗黑模式下更柔和的色彩和透明度 */
html.dark .with-pastel-balls-warm {
--pb1: #ffe4b5;
/* 桃杏 */
--pb2: #d4ffdd;
/* 薄荷绿 */
--pb3: #ffecb3;
/* 浅金 */
--pb4: #e8f5e8;
/* 淡绿 */
--pb-opacity: 0.36;
}
/* 暗黑模式下用更柔和的混合模式 */
html.dark .with-pastel-balls-warm::before {
mix-blend-mode: screen;
}
/* ==================== 表格卡片滚动设置 ==================== */
.table-scroll-card {
display: flex;