| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- .register-container {
- min-height: 100vh;
- display: flex;
- align-items: center;
- justify-content: center;
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
- padding: 20px;
- }
- .register-card {
- background: white;
- border-radius: 16px;
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
- padding: 40px;
- width: 100%;
- max-width: 480px;
- animation: slideUp 0.6s ease-out;
- }
- @keyframes slideUp {
- from {
- opacity: 0;
- transform: translateY(30px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
- }
- .register-header {
- text-align: center;
- margin-bottom: 32px;
- h1 {
- color: #2d3748;
- font-size: 28px;
- font-weight: 700;
- margin: 0 0 8px 0;
- }
- p {
- color: #718096;
- font-size: 16px;
- margin: 0;
- }
- }
- .register-form {
- .form-group {
- margin-bottom: 20px;
- label {
- display: block;
- color: #4a5568;
- font-weight: 600;
- margin-bottom: 8px;
- font-size: 14px;
- }
- .form-control {
- width: 100%;
- padding: 12px 16px;
- border: 2px solid #e2e8f0;
- border-radius: 8px;
- font-size: 16px;
- transition: all 0.3s ease;
- box-sizing: border-box;
- &:focus {
- outline: none;
- border-color: #667eea;
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
- }
- &::placeholder {
- color: #a0aec0;
- }
- }
- select.form-control {
- cursor: pointer;
- background-color: white;
- }
- }
- .error-message {
- background-color: #fed7d7;
- color: #c53030;
- padding: 12px 16px;
- border-radius: 8px;
- margin-bottom: 20px;
- font-size: 14px;
- border: 1px solid #feb2b2;
- }
- .submit-btn {
- width: 100%;
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
- color: white;
- border: none;
- padding: 14px 24px;
- border-radius: 8px;
- font-size: 16px;
- font-weight: 600;
- cursor: pointer;
- transition: all 0.3s ease;
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 8px;
- &:hover:not(:disabled) {
- transform: translateY(-2px);
- box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
- }
- &:disabled {
- opacity: 0.6;
- cursor: not-allowed;
- transform: none;
- }
- .loading-spinner {
- width: 16px;
- height: 16px;
- border: 2px solid transparent;
- border-top: 2px solid white;
- border-radius: 50%;
- animation: spin 1s linear infinite;
- }
- }
- .login-link {
- text-align: center;
- margin-top: 24px;
- color: #718096;
- font-size: 14px;
- a {
- color: #667eea;
- text-decoration: none;
- font-weight: 600;
- transition: color 0.3s ease;
- &:hover {
- color: #5a67d8;
- text-decoration: underline;
- }
- }
- }
- }
- @keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
- }
- // 响应式设计
- @media (max-width: 768px) {
- .register-container {
- padding: 16px;
- }
- .register-card {
- padding: 24px;
- margin: 0;
- }
- .register-header {
- margin-bottom: 24px;
- h1 {
- font-size: 24px;
- }
- p {
- font-size: 14px;
- }
- }
- .register-form {
- .form-group {
- margin-bottom: 16px;
- .form-control {
- padding: 10px 14px;
- font-size: 16px; // 防止iOS缩放
- }
- }
- .submit-btn {
- padding: 12px 20px;
- font-size: 16px;
- }
- }
- }
|