Files
xiaoxia-saas/apps/web/src/pages/profile/ProfileSettings.css
T
xiaoxia c8cfed0add
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 1s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Check push changed paths (push) Successful in 9s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 2m3s
CI/CD Pipeline / Integration Tests (push) Successful in 2m26s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been cancelled
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m24s
CI/CD Pipeline / PR Build API Image (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging API Image (pull_request) Has been cancelled
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m6s
CI/CD Pipeline / Validate - Style (push) Successful in 3m10s
CI/CD Pipeline / Build Staging API Image (push) Successful in 29s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 31s
AI Code Review / AI Code Review (pull_request) Failing after 3m49s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m5s
CI/CD Pipeline / Validate - Security (push) Successful in 5m39s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 52s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m35s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 7m54s
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (push) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 261h48m38s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Failing after 261h48m38s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 261h48m38s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 261h50m20s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 261h51m21s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Failing after 261h51m24s
CI/CD Pipeline / Validate - Security (pull_request) Failing after 261h51m27s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 261h51m40s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 261h51m34s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 261h53m21s
CI/CD Pipeline / PR Build API Image (push) Failing after 261h53m22s
CI/CD Pipeline / Frontend Lint (push) Failing after 261h53m31s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 261h53m45s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 261h53m46s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 262h25m55s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 262h26m7s
CI/CD Pipeline / PR Build Web Image (push) Failing after 262h27m54s
feat(#1718): 微信扫码登录前端——昵称引导页 + 设置页微信绑定/解绑 (#1720)
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-09-05 17:30:42 +08:00

213 lines
4.3 KiB
CSS

/**
* V21 个人设置页面样式 - CSS变量体系
*/
@import "../../styles/global.css";
/* 页面容器 */
.xx-settings-page {
max-width: 900px;
margin: 0 auto;
padding: var(--space-2xl) var(--space-lg);
}
/* 页面头部 */
.xx-settings-head {
background: var(--bg-glass);
border: 1px solid var(--bg-glass-border);
border-radius: var(--radius-xl);
box-shadow: var(--shadow-card);
padding: var(--space-xl);
margin-bottom: var(--space-xl);
}
.xx-settings-head h1 {
font-size: var(--font-size-3xl);
font-weight: var(--font-weight-extrabold);
color: var(--text-primary);
margin: 0 0 var(--space-sm);
letter-spacing: var(--letter-spacing-tight);
}
.xx-settings-head p {
font-size: var(--font-size-md);
color: var(--text-secondary);
margin: 0;
}
/* 内容卡片 */
.xx-settings-card {
background: var(--bg-glass);
border: 1px solid var(--bg-glass-border);
border-radius: var(--radius-xl);
box-shadow: var(--shadow-card);
padding: var(--space-xl);
margin-bottom: var(--space-xl);
transition: var(--transition-base);
}
.xx-settings-card:hover {
box-shadow: var(--shadow-md);
transform: translateY(-2px);
}
/* 卡片标题 */
.xx-settings-card h3 {
font-size: var(--font-size-xl);
font-weight: var(--font-weight-extrabold);
color: var(--text-primary);
margin: 0 0 var(--space-lg);
padding-bottom: var(--space-md);
border-bottom: 1px solid var(--border-color);
}
/* 结果页面容器 */
.xx-result-page {
background: var(--bg-glass);
border: 1px solid var(--bg-glass-border);
border-radius: var(--radius-xl);
box-shadow: var(--shadow-card);
padding: var(--space-3xl) var(--space-2xl);
margin-bottom: var(--space-xl);
text-align: center;
transition: var(--transition-base);
}
.xx-result-page:hover {
box-shadow: var(--shadow-md);
transform: translateY(-2px);
}
/* 按钮容器 */
.xx-btn-group {
margin-top: var(--space-lg);
display: flex;
gap: var(--space-md);
justify-content: center;
flex-wrap: wrap;
}
/* 表单区块标题 */
.xx-section-title {
font-size: var(--font-size-lg);
font-weight: var(--font-weight-bold);
color: var(--text-primary);
margin: var(--space-lg) 0 var(--space-md);
}
.xx-section-title:first-child {
margin-top: 0;
}
/* Ant Design Form 适配 */
.ant-form-item {
margin-bottom: var(--space-lg);
}
.ant-form-item-label > label {
font-weight: var(--font-weight-semibold);
color: var(--text-primary);
}
.ant-input,
.ant-input-affix-wrapper {
border-radius: var(--radius-sm) !important;
border-color: var(--border-color) !important;
}
.ant-input:hover,
.ant-input-affix-wrapper:hover {
border-color: var(--primary-color) !important;
}
.ant-input:focus,
.ant-input-affix-wrapper:focus,
.ant-input-affix-wrapper-focused {
border-color: var(--primary-color) !important;
box-shadow: 0 0 0 2px var(--primary-soft) !important;
}
/* Switch 样式 */
.ant-switch {
background: var(--border-color);
}
.ant-switch-checked {
background: var(--gradient-primary) !important;
}
/* Alert 样式 */
.ant-alert {
border-radius: var(--radius-md);
padding: var(--space-md) var(--space-lg);
margin-bottom: var(--space-lg);
}
.ant-alert-info {
background: var(--primary-soft);
border: 1px solid var(--info-border);
}
.ant-alert-message {
font-weight: var(--font-weight-semibold);
color: var(--text-primary);
}
.ant-alert-description {
color: var(--text-secondary);
}
/* Result 组件样式 */
.ant-result {
padding: 0;
}
.ant-result-title {
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-extrabold);
color: var(--text-primary);
}
.ant-result-subtitle {
font-size: var(--font-size-base);
color: var(--text-secondary);
margin-top: var(--space-sm);
}
/* Divider */
.ant-divider {
border-color: var(--border-color);
margin: var(--space-lg) 0;
}
/* 微信账号绑定卡片 */
.xx-settings-wechat {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-lg);
flex-wrap: wrap;
}
.xx-settings-wechat-info {
display: flex;
align-items: center;
gap: var(--space-md);
}
.xx-settings-wechat-info .xx-wechat-icon {
font-size: 28px;
line-height: 1;
}
.xx-settings-wechat-info strong {
display: block;
color: var(--text-primary);
font-size: var(--font-size-md);
}
.xx-settings-wechat-info p {
margin: 2px 0 0;
color: var(--text-secondary);
font-size: var(--font-size-sm);
}