This commit is contained in:
Professional 2025-05-23 22:51:08 +07:00
parent e15ff1ddfb
commit 5e8b25f84d
3 changed files with 72 additions and 66 deletions

View File

@ -392,29 +392,30 @@ onMounted(async () => {
position: absolute;
bottom: 0;
left: 0;
width: 200%;
width: 300%; /* Увеличиваем ширину для сглаживания краёв */
height: 150px;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background-size: 1200px 150px;
transform: rotate(180deg);
animation: wave 10s linear infinite;
transform: translateX(0) rotate(180deg); /* Начинаем с нулевого положения */
animation: wave-slide 30s cubic-bezier(0.36, 0.45, 0.63, 0.53) infinite; /* Плавная бесконечная анимация */
opacity: 0.6;
}
.wave:nth-child(2) {
bottom: 10px;
animation: wave 16s linear reverse infinite;
animation: wave-slide 36s cubic-bezier(0.36, 0.45, 0.63, 0.53) reverse infinite; /* Другая длительность */
opacity: 0.8;
}
.wave:nth-child(3) {
bottom: 20px;
animation: wave 13s linear infinite;
animation: wave-slide 42s cubic-bezier(0.36, 0.45, 0.63, 0.53) infinite; /* Ещё одна длительность */
opacity: 0.6;
}
@keyframes wave {
@keyframes wave-slide {
0% { transform: translateX(0) rotate(180deg); }
100% { transform: translateX(-50%) rotate(180deg); }
100% { transform: translateX(-66.66%) rotate(180deg); } /* Анимируем точно на 2/3 ширины для плавного цикла */
}
/* Мобильный телефон/макет */
@ -1276,24 +1277,24 @@ onMounted(async () => {
position: absolute;
bottom: 0;
left: 0;
width: 200%;
width: 300%; /* Увеличиваем ширину для сглаживания краёв */
height: 150px;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background-size: 1200px 150px;
transform: rotate(180deg);
animation: wave-auth 10s linear infinite;
transform: translateX(0) rotate(180deg); /* Начинаем с нулевого положения */
animation: wave-slide-auth 30s cubic-bezier(0.36, 0.45, 0.63, 0.53) infinite; /* Плавная бесконечная анимация */
opacity: 0.6;
}
.wave-auth:nth-child(2) {
bottom: 10px;
animation: wave-auth 16s linear reverse infinite;
animation: wave-slide-auth 36s cubic-bezier(0.36, 0.45, 0.63, 0.53) reverse infinite;
opacity: 0.3;
}
@keyframes wave-auth {
@keyframes wave-slide-auth {
0% { transform: translateX(0) rotate(180deg); }
100% { transform: translateX(-50%) rotate(180deg); }
100% { transform: translateX(-66.66%) rotate(180deg); } /* Анимируем точно на 2/3 ширины для плавного цикла */
}
/* Медиа-запросы для авторизованного интерфейса */

View File

@ -146,6 +146,7 @@ const handleLogin = async () => {
overflow: hidden;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
touch-action: none;
color: white; /* Явно задаем белый цвет текста для всего контейнера */
}
.auth-bg {
@ -218,25 +219,27 @@ const handleLogin = async () => {
position: relative;
z-index: 10;
margin: 0 auto;
max-height: 90%;
display: flex;
flex-direction: column;
color: white; /* Явно задаем белый цвет текста */
}
.login-header {
margin-bottom: 1.5rem;
color: white;
margin-bottom: 1rem;
color: white; /* Явно задаем белый цвет текста для заголовка */
}
.login-header h2 {
font-size: 1.8rem;
font-weight: 700;
margin-bottom: 0.5rem;
margin-bottom: 0.3rem;
color: white; /* Явно задаем белый цвет текста для h2 */
font-weight: 600;
}
.login-header p {
font-size: 1.1rem;
opacity: 0.9;
font-size: 1rem;
color: rgba(255, 255, 255, 0.9); /* Полупрозрачный белый для подзаголовка */
margin-bottom: 1.5rem;
}
.login-form {
@ -247,16 +250,18 @@ const handleLogin = async () => {
.form-group {
margin-bottom: 0.8rem;
position: relative;
text-align: left; /* Выравниваем текст полей формы по левому краю */
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
color: white;
font-weight: 500;
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.4rem;
color: white;
font-weight: 500;
font-size: 1rem;
}
.form-group label i {
@ -265,7 +270,7 @@ const handleLogin = async () => {
.form-group input {
width: 100%;
padding: 0.7rem 1rem;
padding: 0.9rem 1rem;
background: rgba(255, 255, 255, 0.15);
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 12px;
@ -275,23 +280,16 @@ const handleLogin = async () => {
}
.form-group input::placeholder {
color: rgba(255, 255, 255, 0.7);
}
.form-group input:focus {
outline: none;
background: rgba(255, 255, 255, 0.25);
border-color: rgba(255, 255, 255, 0.5);
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.1);
color: rgba(255, 255, 255, 0.6);
}
.action-button {
width: 100%;
padding: 0.8rem;
margin-top: 0.8rem;
background: linear-gradient(45deg, #00BFFF, #20B2AA);
padding: 1rem;
margin-top: 1rem;
background: #00BFFF;
border: none;
border-radius: 12px;
border-radius: 50px; /* Более закругленная кнопка как на скриншоте */
color: white;
font-size: 1.1rem;
font-weight: 600;
@ -410,24 +408,24 @@ const handleLogin = async () => {
position: absolute;
bottom: 0;
left: 0;
width: 200%;
width: 300%; /* Увеличиваем ширину для сглаживания краёв */
height: 150px;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background-size: 1200px 150px;
transform: rotate(180deg);
animation: wave 10s linear infinite;
transform: translateX(0) rotate(180deg); /* Начинаем с нулевого положения */
animation: login-wave 30s cubic-bezier(0.36, 0.45, 0.63, 0.53) infinite; /* Плавная бесконечная анимация */
opacity: 0.6;
}
.wave:nth-child(2) {
bottom: 10px;
animation: wave 16s linear reverse infinite;
animation: login-wave 36s cubic-bezier(0.36, 0.45, 0.63, 0.53) reverse infinite;
opacity: 0.3;
}
@keyframes wave {
@keyframes login-wave {
0% { transform: translateX(0) rotate(180deg); }
100% { transform: translateX(-50%) rotate(180deg); }
100% { transform: translateX(-66.66%) rotate(180deg); } /* Анимируем точно на 2/3 ширины для плавного цикла */
}
/* Адаптивность */

View File

@ -194,6 +194,7 @@ const handleRegister = async () => {
overflow: hidden;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
touch-action: none;
color: white; /* Явно задаем белый цвет текста для всего контейнера */
}
.auth-bg {
@ -266,22 +267,27 @@ const handleRegister = async () => {
position: relative;
z-index: 10;
margin: 0 auto;
max-height: 90%;
display: flex;
flex-direction: column;
color: white; /* Явно задаем белый цвет текста */
}
.register-header {
margin-bottom: 1rem;
color: white; /* Явно задаем белый цвет текста для заголовка */
}
.register-header h2 {
font-size: 1.5rem;
font-size: 1.8rem;
margin-bottom: 0.3rem;
color: white; /* Явно задаем белый цвет текста для h2 */
font-weight: 600;
}
.register-header p {
font-size: 0.9rem;
font-size: 1rem;
color: rgba(255, 255, 255, 0.9); /* Полупрозрачный белый для подзаголовка */
margin-bottom: 1.5rem;
}
.register-form {
@ -291,18 +297,19 @@ const handleRegister = async () => {
}
.form-group {
margin-bottom: 0.6rem;
margin-bottom: 0.8rem;
position: relative;
text-align: left; /* Выравниваем текст полей формы по левому краю */
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
color: white;
font-weight: 500;
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.4rem;
color: white;
font-weight: 500;
font-size: 1rem;
}
.form-group label i {
@ -311,7 +318,7 @@ const handleRegister = async () => {
.form-group input {
width: 100%;
padding: 0.8rem 1rem;
padding: 0.9rem 1rem;
background: rgba(255, 255, 255, 0.15);
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 12px;
@ -321,7 +328,7 @@ const handleRegister = async () => {
}
.form-group input::placeholder {
color: rgba(255, 255, 255, 0.7);
color: rgba(255, 255, 255, 0.6);
}
.form-group input:focus {
@ -335,9 +342,9 @@ const handleRegister = async () => {
width: 100%;
padding: 1rem;
margin-top: 1rem;
background: linear-gradient(45deg, #00BFFF, #20B2AA);
background: #00BFFF;
border: none;
border-radius: 12px;
border-radius: 50px; /* Более закругленная кнопка как на скриншоте */
color: white;
font-size: 1.1rem;
font-weight: 600;
@ -391,7 +398,7 @@ const handleRegister = async () => {
}
.auth-footer {
margin-top: 1rem;
margin-top: 1.5rem;
color: white;
font-size: 0.95rem;
}
@ -456,24 +463,24 @@ const handleRegister = async () => {
position: absolute;
bottom: 0;
left: 0;
width: 200%;
width: 300%; /* Увеличиваем ширину для сглаживания краёв */
height: 150px;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z" opacity=".25" fill="white"/><path d="M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z" opacity=".5" fill="white"/><path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" fill="white"/></svg>') repeat-x;
background-size: 1200px 150px;
transform: rotate(180deg);
animation: wave 10s linear infinite;
transform: translateX(0) rotate(180deg); /* Начинаем с нулевого положения */
animation: register-wave 30s cubic-bezier(0.36, 0.45, 0.63, 0.53) infinite; /* Плавная бесконечная анимация */
opacity: 0.6;
}
.wave:nth-child(2) {
bottom: 10px;
animation: wave 16s linear reverse infinite;
animation: register-wave 36s cubic-bezier(0.36, 0.45, 0.63, 0.53) reverse infinite;
opacity: 0.3;
}
@keyframes wave {
@keyframes register-wave {
0% { transform: translateX(0) rotate(180deg); }
100% { transform: translateX(-50%) rotate(180deg); }
100% { transform: translateX(-66.66%) rotate(180deg); } /* Анимируем точно на 2/3 ширины для плавного цикла */
}
/* Адаптивность */