WEBLEB
Home
Editor
Login
Pro
English
English
Français
Español
Português
Deutsch
Italiano
हिंदी
3D Login/Register
588
ytr3d3
Open In Editor
Publish Your Code
Recommended
24 January 2025
3D Rotation Login/Signup Box
5 June 2024
3D Login page
2 January 2025
3d
HTML
Copy
Document
Вход
Войти
Забыли пароль?
Регистрация
Зарегистрироваться
Восстановление
Отправить
Вернуться назад
Подтверждение
Подтвердить
Вернуться назад
CSS
Copy
:root { --bg: #101010; --auth-bg: #101010; --auth-text: #fff; } body { margin: 0; padding: 0; min-height: 100vh; background: linear-gradient( 350deg, #5b72f3, #8B9BFA, #6B7280, #4B5563, #395375, #373d80, #203552, #1E3A8A, #3c65d6, #33569c, #162b53, #18243a, #3b5996, #375daa, #103c94, #2c426d ); background-size: 400% 400%; animation: gradient 30s ease infinite; } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .auth-form{ background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 24px; margin: 0 8rem 0 8rem; padding: 40px; transform-style: preserve-3d; transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), inset 0 0 80px rgba(255, 255, 255, 0.05), inset 0 0 20px rgba(255, 255, 255, 0.05), 0 0 0 1px rgba(255, 255, 255, 0.1); position: relative; } .auth-container{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: space-between; perspective: 2000px; } .card-content{ display: flex; flex-direction: column; align-items: center; justify-content: center; } .auth-button{ position: relative; width: 200px; margin: 25px 0; padding: 15px 30px; font-size: 1.1rem; font-weight: 500; color: #ffffff; background: linear-gradient(135deg, #ff6b6b, #ff4757); border: none; border-radius: 12px; cursor: pointer; transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1); box-shadow: 0 5px 15px rgba(255, 71, 87, 0.3), inset 0 0 15px rgba(255, 255, 255, 0.1); overflow: hidden; } .auth-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.2), transparent ); transition: 0.5s; } .auth-button:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(255, 71, 87, 0.4), inset 0 0 20px rgba(255, 255, 255, 0.2); } .auth-button:hover::before { left: 100%; } #forgot-password { color: rgba(255, 255, 255, 0.7); font-size: 0.9rem; text-decoration: none; margin-top: 15px; transition: all 0.3s ease; position: relative; display: inline-block; cursor: pointer; } #forgot-password::after { content: ''; position: absolute; width: 100%; height: 1px; bottom: -2px; left: 0; background: rgba(255, 255, 255, 0.3); transform: scaleX(0); transition: transform 0.3s ease; } #forgot-password:hover { color: #ffffff; text-shadow: 0 0 10px rgba(255, 255, 255, 0.5); } #forgot-password:hover::after { transform: scaleX(1); } .auth-card{ padding: 20px; position: relative; transform-style: preserve-3d; z-index: 1; transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1); backface-visibility: hidden; } .recovery-card h2, .verification-card h2, .auth-card h2 { color: #ffffff; font-size: 2rem; margin-bottom: 30px; text-align: center; font-weight: 600; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); letter-spacing: 1px; } .auth-input{ display: flex; flex-direction: column; flex-wrap: nowrap; } .auth-input input{ width: calc(100% - 20px); font-size: 1rem; margin: 12px 0; padding: 16px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 12px; background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(5px); color: #fff; transition: all 0.3s ease; } .auth-input input::placeholder{ color: #fff; } .auth-input input:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.3); } .auth-input input:focus{ outline: none; background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.5); box-shadow: 0 0 20px rgba(255, 255, 255, 0.1), inset 0 0 10px rgba(255, 255, 255, 0.05); transform: translateZ(5px); } .login-form { transform: rotateY(25deg) translateZ(-100px) translateX(-50px); } .register-form { transform: rotateY(-25deg) translateZ(-100px) translateX(50px); } .login-form:hover { transform: rotateY(15deg) translateZ(50px) translateX(30px); box-shadow: -20px 20px 40px rgba(0, 0, 0, 0.3); background: rgba(25, 25, 25, 0.3); border: 1px solid rgba(255, 255, 255, 0.15); } .register-form:hover { transform: rotateY(-15deg) translateZ(50px) translateX(-30px); box-shadow: 20px 20px 40px rgba(0, 0, 0, 0.3); background: rgba(25, 25, 25, 0.3); border: 1px solid rgba(255, 255, 255, 0.15); } /* Обновляем стили для карточек */ .auth-card { padding: 20px; position: relative; transform-style: preserve-3d; z-index: 1; transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1); backface-visibility: hidden; } /* Стили для основной карточки */ .main-card { transform: translateZ(0); } /* Добавляем анимации для карточек */ @keyframes endpoint-recovery { 0% { opacity: 0; visibility: visible; transform: translate(-50%, -50%) rotateY(0deg) translateZ(-100px); } 100% { opacity: 1; visibility: visible; transform: rotateY(-25deg) translateZ(-100px) translateX(100%) translateY(-50%); } } @keyframes endpoint-verification { 0% { opacity: 0; visibility: visible; transform: translate(50%, -50%) rotateY(0deg) translateZ(-100px); } 100% { opacity: 1; visibility: visible; transform: rotateY(25deg) translateZ(-100px) translateX(-50px) translateY(-50%); } } /* Обновляем стили для карточки восстановления */ .recovery-card { position: absolute; top: 50%; left: 35%; /* Центрируем карточку */ padding: 40px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: 24px; opacity: 0; visibility: hidden; transform: translate(-50%, -50%) rotateY(0deg) translateZ(-100px); transition: none; /* Убираем transition, будем использовать animation */ border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), inset 0 0 80px rgba(255, 255, 255, 0.05); } /* Обновляем стили для карточки верификации */ .verification-card { position: absolute; top: 50%; left: 35%; /* Центрируем карточку */ padding: 40px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: 24px; opacity: 0; visibility: hidden; transform: translate(-50%, -50%) rotateY(0deg) translateZ(-100px); transition: none; /* Убираем transition, будем использовать animation */ border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), inset 0 0 80px rgba(255, 255, 255, 0.05); } /* Применяем анимации при показе карточек */ .show-recovery .recovery-card { animation: endpoint-recovery 0.8s cubic-bezier(0.23, 1, 0.32, 1) forwards; } .show-verification .verification-card { animation: endpoint-verification 0.8s cubic-bezier(0.23, 1, 0.32, 1) forwards; } /* Обновляем поведение карточки восстановления при показе верификации */ .show-verification .recovery-card { transform: rotateY(-35deg) translateZ(-100px) translateX(50%) translateY(-50%); } /* Стили для кнопки "Вернуться назад" */ .back-to-login { color: rgba(255, 255, 255, 0.7); font-size: 0.9rem; text-decoration: none; margin-top: 15px; transition: all 0.3s ease; position: relative; display: inline-block; cursor: pointer; } .back-to-login::after { content: ''; position: absolute; width: 100%; height: 1px; bottom: -2px; left: 0; background: rgba(255, 255, 255, 0.3); transform: scaleX(0); transition: transform 0.3s ease; } .back-to-login:hover { color: #ffffff; text-shadow: 0 0 10px rgba(255, 255, 255, 0.5); } .back-to-login:hover::after { transform: scaleX(1); } /* Стили для кнопки "Вернуться к восстановлению" */ .back-to-recovery { color: rgba(255, 255, 255, 0.7); font-size: 0.9rem; text-decoration: none; margin-top: 15px; transition: all 0.3s ease; position: relative; display: inline-block; cursor: pointer; } .back-to-recovery::after { content: ''; position: absolute; width: 100%; height: 1px; bottom: -2px; left: 0; background: rgba(255, 255, 255, 0.3); transform: scaleX(0); transition: transform 0.3s ease; } .back-to-recovery:hover { color: #ffffff; text-shadow: 0 0 10px rgba(255, 255, 255, 0.5); } .back-to-recovery:hover::after { transform: scaleX(1); }
JS
Copy
/* Replace with your JS Code (Leave empty if not needed) */