first commit
This commit is contained in:
231
AIEC-server/auth/components/auth-form.css
Normal file
231
AIEC-server/auth/components/auth-form.css
Normal file
@ -0,0 +1,231 @@
|
||||
/* 认证表单专用样式 */
|
||||
|
||||
.auth-container {
|
||||
animation: slideInUp 0.6s ease-out;
|
||||
}
|
||||
|
||||
.auth-form-wrapper {
|
||||
background: rgba(255, 255, 255, 0.85);
|
||||
backdrop-filter: blur(20px);
|
||||
box-shadow:
|
||||
0 20px 25px -5px rgba(0, 0, 0, 0.1),
|
||||
0 10px 10px -5px rgba(0, 0, 0, 0.04),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
.form-group {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.form-group input {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.form-group input:focus {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 10px 20px rgba(37, 99, 235, 0.15);
|
||||
}
|
||||
|
||||
.form-group input:valid {
|
||||
border-color: #10b981;
|
||||
}
|
||||
|
||||
.form-group input.error {
|
||||
border-color: #ef4444;
|
||||
background-color: rgba(239, 68, 68, 0.05);
|
||||
}
|
||||
|
||||
.error-message {
|
||||
animation: slideDown 0.3s ease-out;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.error-message.show {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
/* 发送验证码按钮状态 */
|
||||
#sendCodeBtn:disabled {
|
||||
background-color: #9ca3af;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
#sendCodeBtn.countdown {
|
||||
background-color: #6b7280;
|
||||
}
|
||||
|
||||
/* 登录/注册按钮动画 */
|
||||
#loginBtn, #registerBtn {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
#loginBtn:hover, #registerBtn:hover {
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 10px 20px rgba(37, 99, 235, 0.3);
|
||||
}
|
||||
|
||||
#loginBtn:active, #registerBtn:active {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* 状态消息样式 */
|
||||
#statusMessage {
|
||||
border-left: 4px solid currentColor;
|
||||
animation: slideInLeft 0.4s ease-out;
|
||||
}
|
||||
|
||||
#statusMessage.success {
|
||||
background-color: rgba(16, 185, 129, 0.1);
|
||||
color: #059669;
|
||||
border-color: #10b981;
|
||||
}
|
||||
|
||||
#statusMessage.error {
|
||||
background-color: rgba(239, 68, 68, 0.1);
|
||||
color: #dc2626;
|
||||
border-color: #ef4444;
|
||||
}
|
||||
|
||||
#statusMessage.info {
|
||||
background-color: rgba(59, 130, 246, 0.1);
|
||||
color: #2563eb;
|
||||
border-color: #3b82f6;
|
||||
}
|
||||
|
||||
#statusMessage.warning {
|
||||
background-color: rgba(245, 158, 11, 0.1);
|
||||
color: #d97706;
|
||||
border-color: #f59e0b;
|
||||
}
|
||||
|
||||
/* 动画定义 */
|
||||
@keyframes slideInUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideDown {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
max-height: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
max-height: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideInLeft {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(-20px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* 输入框聚焦效果 */
|
||||
.form-group label {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.form-group input:focus + .absolute i {
|
||||
color: #2563eb;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
/* 响应式设计 */
|
||||
@media (max-width: 640px) {
|
||||
.auth-form-wrapper {
|
||||
margin: 1rem;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#sendCodeBtn {
|
||||
padding: 0.75rem 1rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* 加载状态 */
|
||||
.loading {
|
||||
position: relative;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.loading::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin: -10px 0 0 -10px;
|
||||
border: 2px solid #ffffff;
|
||||
border-top: 2px solid transparent;
|
||||
border-radius: 50%;
|
||||
animation: spin 1s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
/* 表单验证提示 */
|
||||
.form-group .valid-feedback {
|
||||
color: #10b981;
|
||||
font-size: 0.875rem;
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
.form-group .valid-feedback::before {
|
||||
content: '✓ ';
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* 密码强度指示器(预留) */
|
||||
.password-strength {
|
||||
height: 4px;
|
||||
background-color: #e5e7eb;
|
||||
border-radius: 2px;
|
||||
margin-top: 0.5rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.password-strength-bar {
|
||||
height: 100%;
|
||||
transition: all 0.3s ease;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.password-strength.weak .password-strength-bar {
|
||||
width: 33%;
|
||||
background-color: #ef4444;
|
||||
}
|
||||
|
||||
.password-strength.medium .password-strength-bar {
|
||||
width: 66%;
|
||||
background-color: #f59e0b;
|
||||
}
|
||||
|
||||
.password-strength.strong .password-strength-bar {
|
||||
width: 100%;
|
||||
background-color: #10b981;
|
||||
}
|
||||
Reference in New Issue
Block a user