feat(auth): redesign auth UI to match Dart original

- Full-bleed bg_login.png background outside 500px MobileShell
- Facebook landing: logo + Facebook pill button + "Other Sign In Options" link
- Replace centered Dialog with true bottom sheet (drag handle, top radius 28px)
- Email panel: internal login/register toggle, no separate route
- Pink gradient primary button (#f96ADE → #f657A0)
- Pill input fields (46px, white, radius 24, pink 10% shadow)
- Pink circular checkbox + bold Privacy/Terms rich text (visual only, non-blocking)
- Floating 40x40 white back button (top:20/left:20)
- Wire AuthPanelModeChanged dispatch for panel switching
- New design tokens (--color-auth-*, --auth-*, --radius-bottom-sheet)
- New generic BottomSheet component
- Copy ic-logo-login.png (+@2x, +@3x) from Dart assets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-10 14:27:06 +08:00
parent 4e27b4c512
commit 90bb711a45
30 changed files with 967 additions and 335 deletions
+30
View File
@@ -53,4 +53,34 @@
/* 半透明 / 模糊 */
--color-blur-background: rgba(13, 11, 20, 0.85);
/* ==================== Auth 页专用(与 Dart auth_screen.dart 对齐) ==================== */
/* 浅色表面(Auth 页内容卡片 / 弹层背景) */
--color-auth-surface: #ffffff;
/* 弹层内第三方登录按钮边框 */
--color-auth-border: #d5d7db;
/* Auth 页输入框占位符 */
--color-auth-input-placeholder: #999999;
/* Auth 页文字主色(深色,区别于全局白字) */
--color-auth-text-primary: #333333;
--color-auth-text-secondary: #9e9e9e;
/* Auth 输入框阴影(accent #f759a8 10% 透明) */
--color-auth-input-shadow: rgba(247, 89, 168, 0.10);
/* Auth 主按钮阴影(#d00c41 20% 透明) */
--color-auth-primary-button-shadow: rgba(208, 12, 65, 0.20);
/* Auth 主按钮渐变(与 Dart primaryGradient 对齐) */
--color-auth-primary-gradient-start: #f96ade;
--color-auth-primary-gradient-end: #f657a0;
/* Legal 复选框选中点 */
--color-auth-legal-check: #f657a0;
/* 底部弹层 drag handle */
--color-auth-drag-handle: #3a3a3a;
}
+27
View File
@@ -32,4 +32,31 @@
/* 聊天媒体 */
--chat-media-max-width: 240px;
--chat-media-max-height: 240px;
/* ==================== Auth 页尺寸(与 Dart AppDimensions / Spacing 对齐) ==================== */
/* 输入框 / 主按钮高度(46px = Dart AppDimensions.height46 */
--auth-field-height: 46px;
/* 弹层内第三方登录按钮高度(40px) */
--auth-social-button-height: 40px;
/* 主按钮固定宽度(Dart AppDimensions.buttonWidth = 334 */
--auth-primary-button-width: 334px;
/* Logo 高度(120px */
--auth-logo-height: 120px;
/* Legal 圆形复选框 */
--auth-legal-checkbox-size: 16px;
--auth-legal-checkbox-inner-size: 10px;
/* 悬浮返回按钮(40×40 圆形) */
--auth-back-button-size: 40px;
/* 底部弹层圆角(28px = Dart AppRadius.radius28 */
--auth-bottom-sheet-radius: 28px;
/* 弹层 drag handle40×4 胶囊) */
--auth-drag-handle-width: 40px;
--auth-drag-handle-height: 4px;
}
+1
View File
@@ -10,4 +10,5 @@
--radius-xxl: 20px;
--radius-xxxl: 24px;
--radius-full: 999px;
--radius-bottom-sheet: 28px;
}
+3
View File
@@ -28,4 +28,7 @@
/* 扩展字号(迁移自 Flutter widgets */
--font-size-22: 22px;
--font-size-26: 26px;
/* Auth 底部弹层标题(24px bold */
--font-size-bottom-sheet-title: 24px;
}