blob: 820c596075c9ea999cfe67eced19ef8b04cd5840 [file] [log] [blame] [edit]
/* AuthStyle.css - 仅针对auth页面的样式,不影响其他页面 */
/* 限定在.auth-wrapper内的样式才会生效 */
.auth-wrapper {
/* 基础样式 */
--primary-color: #f9952f;
--primary-hover: #e08527;
--white: #ffffff;
--light-gray: #f5f5f5;
--dark-gray: #333333;
--error-color: #ff4d4f;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
/* 页面背景(仅影响.auth-wrapper内部) */
background-color: var(--light-gray);
background-image: linear-gradient(135deg, var(--primary-color) 0%, #f9c22f 100%);
background-size: 400% 400%;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 2rem;
animation: gradientBG 15s ease infinite;
}
@keyframes gradientBG {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
/* 容器样式 */
.auth-wrapper .auth-container {
width: 100%;
max-width: 500px;
animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.auth-wrapper .auth-header {
text-align: center;
margin-bottom: 2rem;
color: var(--white);
}
.auth-wrapper .auth-header h1 {
font-size: 2.5rem;
margin-bottom: 0.5rem;
text-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.auth-wrapper .auth-header p {
font-size: 1rem;
opacity: 0.9;
}
/* 卡片样式 */
.auth-wrapper .auth-card {
background-color: var(--white);
border-radius: 10px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
padding: 2rem;
transition: all 0.3s ease;
}
.auth-wrapper .auth-card:hover {
box-shadow: 0 15px 35px rgba(0,0,0,0.15);
}
/* 标签页样式 */
.auth-wrapper .tabs {
display: flex;
position: relative;
margin-bottom: 2rem;
border-bottom: 1px solid #eee;
}
.auth-wrapper .tab-btn {
flex: 1;
padding: 0.75rem;
text-align: center;
background: none;
border: none;
font-size: 1rem;
font-weight: 600;
color: var(--dark-gray);
cursor: pointer;
transition: all 0.3s ease;
position: relative;
}
.auth-wrapper .tab-btn.active {
color: var(--primary-color);
}
.auth-wrapper .tab-indicator {
position: absolute;
bottom: -1px;
left: 0;
height: 3px;
width: 50%;
background-color: var(--primary-color);
transition: all 0.3s ease;
}
/* 表单样式 */
.auth-wrapper .auth-form {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.auth-wrapper .form-group {
position: relative;
}
.auth-wrapper .form-group input {
width: 100%;
padding: 1rem;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 1rem;
transition: all 0.3s ease;
}
.auth-wrapper .form-group input:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(249, 149, 47, 0.2);
outline: none;
}
.auth-wrapper .form-group.with-button {
display: flex;
gap: 0.5rem;
}
.auth-wrapper .form-group.with-button input {
flex: 1;
}
/* 按钮样式 */
.auth-wrapper .submit-btn {
background-color: var(--primary-color);
color: white;
border: none;
padding: 1rem;
border-radius: 5px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
}
.auth-wrapper .submit-btn:hover {
background-color: var(--primary-hover);
transform: translateY(-2px);
}
.auth-wrapper .submit-btn:active {
transform: translateY(0);
}
.auth-wrapper .code-btn {
background-color: var(--light-gray);
color: var(--dark-gray);
border: none;
padding: 0 1rem;
border-radius: 5px;
font-size: 0.9rem;
cursor: pointer;
transition: all 0.3s ease;
white-space: nowrap;
}
.auth-wrapper .code-btn:hover:not(:disabled) {
background-color: #e0e0e0;
}
.auth-wrapper .code-btn:disabled {
cursor: not-allowed;
opacity: 0.7;
}
/* 消息样式 */
.auth-wrapper .message {
padding: 0.75rem 1rem;
border-radius: 5px;
margin-bottom: 1.5rem;
text-align: center;
transition: all 0.3s ease;
}
.auth-wrapper .message.error {
background-color: #fff2f0;
border: 1px solid var(--error-color);
color: var(--error-color);
}
/* 加载动画 */
.auth-wrapper .spinner {
width: 20px;
height: 20px;
border: 3px solid rgba(255,255,255,0.3);
border-radius: 50%;
border-top-color: var(--white);
animation: spin 1s ease-in-out infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* 页脚样式 */
.auth-wrapper .auth-footer {
text-align: center;
margin-top: 2rem;
color: var(--white);
font-size: 0.9rem;
opacity: 0.8;
}
/* 响应式设计 */
@media (max-width: 600px) {
.auth-wrapper {
padding: 1rem;
}
.auth-wrapper .auth-card {
padding: 1.5rem;
}
}