Files
kefu_cloud/web/src/index.css
T
yml2213 ac37cae475 refactor(web): 登录页改版,移除快速登录与记住密码
- 删除演示账号快捷填入、账号/密码预填值与"记住密码"(不再明文存 localStorage)
- 进入登录页自动清理旧版本遗留的 kefu_saved_* 本地数据
- 改用 antd Form.Item 标准 label + 直挂 Input,修复自动填充值不进表单状态
  导致点登录无反应的问题;支持 ?expired=1 过期提示
2026-09-05 15:58:00 +08:00

178 lines
4.4 KiB
CSS

@import 'tailwindcss';
:root {
--brand-primary: #2563eb;
--brand-primary-hover: #1d4ed8;
--brand-primary-active: #1e40af;
--brand-primary-light: #dbeafe;
--brand-primary-lighter: #eff6ff;
--neutral-0: #ffffff;
--neutral-50: #f8fafc;
--neutral-100: #f1f5f9;
--neutral-200: #e2e8f0;
--neutral-300: #cbd5e1;
--neutral-400: #94a3b8;
--neutral-500: #64748b;
--neutral-600: #475569;
--neutral-700: #334155;
--neutral-800: #1e293b;
--neutral-900: #0f172a;
--neutral-950: #020617;
--success: #16a34a;
--success-hover: #15803d;
--success-bg: #f0fdf4;
--warning: #d97706;
--warning-bg: #fffbeb;
--error: #dc2626;
--error-bg: #fef2f2;
--info: #0891b2;
--info-bg: #ecfeff;
--sidebar-width: 230px;
--panel-width: 320px;
--header-height: 56px;
--shadow-subtle: 0 1px 2px 0 rgba(0, 0, 0, 0.04);
--shadow-card: 0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px -1px rgba(0, 0, 0, 0.05);
--shadow-card-hover: 0 10px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
--shadow-floating: 0 12px 32px -4px rgba(15, 23, 42, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.08);
}
/* 欢迎语富文本(SafeHtml)气泡内样式 */
.welcome-html p {
margin: 0 0 0.35em;
}
.welcome-html p:last-child {
margin-bottom: 0;
}
.welcome-html ul,
.welcome-html ol {
margin: 0.25em 0;
padding-left: 1.25em;
}
.welcome-html a {
color: #2563eb;
text-decoration: underline;
word-break: break-all;
}
.welcome-html strong {
font-weight: 600;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background: var(--neutral-50);
color: var(--neutral-900);
}
/* 现代精致细滚动条 */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(148, 163, 184, 0.35);
border-radius: 9999px;
transition: background-color 0.2s ease;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(100, 116, 139, 0.55);
}
@keyframes typingDot {
0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
30% { opacity: 1; transform: translateY(-3px); }
}
.typing-dot {
width: 6px;
height: 6px;
border-radius: 9999px;
background: var(--neutral-400);
animation: typingDot 1.4s infinite;
}
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
/* 玻璃拟态与交互效果 */
.glass-panel {
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
}
.glass-dark {
background: rgba(15, 23, 42, 0.82);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
}
.subtle-border {
border-color: rgba(226, 232, 240, 0.8);
}
/* 浏览器自动填充 (Autofill) 样式重置与深色模式适配 */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
transition: background-color 50000s ease-in-out 0s;
}
.login-dark-label {
display: block;
font-size: 12px;
font-weight: 600;
color: #cbd5e1;
}
.login-form .ant-form-item .ant-form-item-label > label {
color: #cbd5e1;
}
.login-dark-input,
.login-dark-input.ant-input-affix-wrapper,
.login-dark-input.ant-input {
background-color: rgba(30, 41, 59, 0.75) !important;
border-color: rgba(51, 65, 85, 0.8) !important;
color: #f8fafc !important;
}
.login-dark-input .ant-input {
background-color: transparent !important;
color: #f8fafc !important;
}
.login-dark-input input:-webkit-autofill,
.login-dark-input input:-webkit-autofill:hover,
.login-dark-input input:-webkit-autofill:focus,
.login-dark-input input:-webkit-autofill:active,
.login-dark-input .ant-input:-webkit-autofill {
-webkit-box-shadow: 0 0 0 1000px #1e293b inset !important;
-webkit-text-fill-color: #f8fafc !important;
caret-color: #f8fafc !important;
}
.login-dark-input .ant-input-password-icon,
.login-dark-input .anticon {
color: #94a3b8 !important;
}
.login-dark-input:hover,
.login-dark-input.ant-input-affix-wrapper:hover {
border-color: #3b82f6 !important;
}
.login-dark-input:focus,
.login-dark-input-focused,
.login-dark-input.ant-input-affix-wrapper-focused {
border-color: #3b82f6 !important;
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2) !important;
}