From b809b1e6e6ae24d1310723207c1d8956f2530cc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B8=D1=80=D0=B8=D0=BB=D0=BB?= Date: Tue, 23 Dec 2025 21:23:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B1=D0=B0=D0=B3=20=D1=81=20=D0=BB=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=D1=82=D0=B8=D0=BF=D0=BE=D0=BC=20=D0=B8=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=BE=D0=B9=20(=D1=82=D0=BE=20=D1=87=D1=82=D0=BE=20?= =?UTF-8?q?=D0=B2=D0=BD=D0=B8=D0=B7=20=D1=83=D0=BB=D0=B5=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 2 +- .../ui/navigation/NewPlanetNavigation.kt | 14 +++--- .../ui/screens/auth/EmailValidator.kt | 3 ++ .../ui/screens/auth/ForgotPasswordScreen.kt | 44 ++++++++----------- .../ui/screens/auth/LoginScreen.kt | 35 ++++++--------- .../ui/screens/auth/RegistrationScreen.kt | 44 ++++++++----------- .../ui/screens/rewards/RewardsScreen.kt | 4 +- .../ui/screens/schedule/ScheduleScreen.kt | 4 +- .../ui/screens/settings/SettingsScreen.kt | 4 +- .../java/com/novayaplaneta/ui/theme/Color.kt | 16 +++---- 10 files changed, 76 insertions(+), 94 deletions(-) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 639c779..0897082 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,6 @@ diff --git a/app/src/main/java/com/novayaplaneta/ui/navigation/NewPlanetNavigation.kt b/app/src/main/java/com/novayaplaneta/ui/navigation/NewPlanetNavigation.kt index 565ceb9..d368e22 100644 --- a/app/src/main/java/com/novayaplaneta/ui/navigation/NewPlanetNavigation.kt +++ b/app/src/main/java/com/novayaplaneta/ui/navigation/NewPlanetNavigation.kt @@ -6,7 +6,9 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import com.novayaplaneta.ui.screens.ai.AIScreen +import com.novayaplaneta.ui.screens.auth.ForgotPasswordScreen import com.novayaplaneta.ui.screens.auth.LoginScreen +import com.novayaplaneta.ui.screens.auth.RegistrationScreen import com.novayaplaneta.ui.screens.rewards.RewardsScreen import com.novayaplaneta.ui.screens.schedule.ScheduleScreen import com.novayaplaneta.ui.screens.settings.SettingsScreen @@ -27,12 +29,12 @@ fun NewPlanetNavigation( composable("login") { LoginScreen(navController = navController) } -// composable("registration") { -// RegistrationScreen(navController = navController) -// } -// composable("forgot_password") { -// ForgotPasswordScreen(navController = navController) -// } + composable("registration") { + RegistrationScreen(navController = navController) + } + composable("forgot_password") { + ForgotPasswordScreen(navController = navController) + } composable("schedule") { ScheduleScreen(navController = navController) } diff --git a/app/src/main/java/com/novayaplaneta/ui/screens/auth/EmailValidator.kt b/app/src/main/java/com/novayaplaneta/ui/screens/auth/EmailValidator.kt index c73a3f4..8161b44 100644 --- a/app/src/main/java/com/novayaplaneta/ui/screens/auth/EmailValidator.kt +++ b/app/src/main/java/com/novayaplaneta/ui/screens/auth/EmailValidator.kt @@ -10,3 +10,6 @@ object EmailValidator { } + + + diff --git a/app/src/main/java/com/novayaplaneta/ui/screens/auth/ForgotPasswordScreen.kt b/app/src/main/java/com/novayaplaneta/ui/screens/auth/ForgotPasswordScreen.kt index 0ec783a..f4248fe 100644 --- a/app/src/main/java/com/novayaplaneta/ui/screens/auth/ForgotPasswordScreen.kt +++ b/app/src/main/java/com/novayaplaneta/ui/screens/auth/ForgotPasswordScreen.kt @@ -76,39 +76,33 @@ fun ForgotPasswordScreen( val horizontalPadding = (screenWidthDp * 0.04f).toInt().coerceIn(24, 48).dp val verticalPadding = (screenHeightDp * 0.03f).toInt().coerceIn(16, 32).dp - Column( + Box( modifier = Modifier .fillMaxSize() - .padding(horizontal = horizontalPadding, vertical = verticalPadding), - horizontalAlignment = Alignment.CenterHorizontally + .padding(horizontal = horizontalPadding, vertical = verticalPadding) ) { - // Логотип вверху слева - val logoSizeByHeight = (screenHeightDp * 0.15f).toInt() - val logoSizeByWidth = screenWidthDp / 5 - val logoSize = min(logoSizeByHeight, logoSizeByWidth).coerceIn(100, 160).dp + // Логотип вверху слева - увеличенный размер + val logoSizeByHeight = (screenHeightDp * 0.28f).toInt() + val logoSizeByWidth = screenWidthDp / 3 + val logoSize = min(logoSizeByHeight, logoSizeByWidth).coerceIn(180, 280).dp - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.Start - ) { - NovayaPlanetaLogo( - modifier = Modifier - .padding(bottom = 4.dp) - .clickable { - navController.navigate("login") { - popUpTo("login") { inclusive = false } - } - }, - size = logoSize - ) - } - - Spacer(modifier = Modifier.weight(0.05f)) + NovayaPlanetaLogo( + modifier = Modifier + .align(Alignment.TopStart) + .padding(bottom = 4.dp) + .clickable { + navController.navigate("login") { + popUpTo("login") { inclusive = false } + } + }, + size = logoSize + ) // Центрированный контент - адаптивная ширина (50-70% экрана) val contentWidthRatio = if (isLandscape) 0.5f else 0.7f Column( modifier = Modifier + .align(Alignment.Center) .fillMaxWidth(contentWidthRatio), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(24.dp) @@ -370,8 +364,6 @@ fun ForgotPasswordScreen( } } } - - Spacer(modifier = Modifier.weight(0.1f)) } } } diff --git a/app/src/main/java/com/novayaplaneta/ui/screens/auth/LoginScreen.kt b/app/src/main/java/com/novayaplaneta/ui/screens/auth/LoginScreen.kt index 49d5f8c..09cec55 100644 --- a/app/src/main/java/com/novayaplaneta/ui/screens/auth/LoginScreen.kt +++ b/app/src/main/java/com/novayaplaneta/ui/screens/auth/LoginScreen.kt @@ -76,33 +76,28 @@ fun LoginScreen( val horizontalPadding = (screenWidthDp * 0.04f).toInt().coerceIn(24, 48).dp val verticalPadding = (screenHeightDp * 0.03f).toInt().coerceIn(16, 32).dp - Column( + Box( modifier = Modifier .fillMaxSize() - .padding(horizontal = horizontalPadding, vertical = verticalPadding), - horizontalAlignment = Alignment.CenterHorizontally + .padding(horizontal = horizontalPadding, vertical = verticalPadding) ) { - // Логотип вверху слева - уменьшенный размер - val logoSizeByHeight = (screenHeightDp * 0.15f).toInt() - val logoSizeByWidth = screenWidthDp / 5 - val logoSize = min(logoSizeByHeight, logoSizeByWidth).coerceIn(100, 160).dp + // Логотип вверху слева - большой размер + val logoSizeByHeight = (screenHeightDp * 0.28f).toInt() + val logoSizeByWidth = screenWidthDp / 3 + val logoSize = min(logoSizeByHeight, logoSizeByWidth).coerceIn(180, 280).dp - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.Start - ) { - NovayaPlanetaLogo( - modifier = Modifier.padding(bottom = 4.dp), - size = logoSize - ) - } - - Spacer(modifier = Modifier.weight(0.05f)) + NovayaPlanetaLogo( + modifier = Modifier + .align(Alignment.TopStart) + .padding(bottom = 4.dp), + size = logoSize + ) // Центрированный контент - адаптивная ширина (50-70% экрана) val contentWidthRatio = if (isLandscape) 0.5f else 0.7f Column( modifier = Modifier + .align(Alignment.Center) .fillMaxWidth(contentWidthRatio), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(24.dp) @@ -228,7 +223,7 @@ fun LoginScreen( enabled = uiState.isFormValid && !uiState.isLoading, colors = if (uiState.isFormValid) { ButtonDefaults.buttonColors( - containerColor = LoginButtonBlue, + containerColor = LoginGreenAccent, contentColor = Color.White ) } else { @@ -283,8 +278,6 @@ fun LoginScreen( ) } } - - Spacer(modifier = Modifier.weight(0.1f)) } } } diff --git a/app/src/main/java/com/novayaplaneta/ui/screens/auth/RegistrationScreen.kt b/app/src/main/java/com/novayaplaneta/ui/screens/auth/RegistrationScreen.kt index b6263cf..8204bcf 100644 --- a/app/src/main/java/com/novayaplaneta/ui/screens/auth/RegistrationScreen.kt +++ b/app/src/main/java/com/novayaplaneta/ui/screens/auth/RegistrationScreen.kt @@ -76,39 +76,33 @@ fun RegistrationScreen( val horizontalPadding = (screenWidthDp * 0.04f).toInt().coerceIn(24, 48).dp val verticalPadding = (screenHeightDp * 0.03f).toInt().coerceIn(16, 32).dp - Column( + Box( modifier = Modifier .fillMaxSize() - .padding(horizontal = horizontalPadding, vertical = verticalPadding), - horizontalAlignment = Alignment.CenterHorizontally + .padding(horizontal = horizontalPadding, vertical = verticalPadding) ) { - // Логотип вверху слева - val logoSizeByHeight = (screenHeightDp * 0.15f).toInt() - val logoSizeByWidth = screenWidthDp / 5 - val logoSize = min(logoSizeByHeight, logoSizeByWidth).coerceIn(100, 160).dp + // Логотип вверху слева - увеличенный размер + val logoSizeByHeight = (screenHeightDp * 0.28f).toInt() + val logoSizeByWidth = screenWidthDp / 3 + val logoSize = min(logoSizeByHeight, logoSizeByWidth).coerceIn(180, 280).dp - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.Start - ) { - NovayaPlanetaLogo( - modifier = Modifier - .padding(bottom = 4.dp) - .clickable { - navController.navigate("login") { - popUpTo("login") { inclusive = false } - } - }, - size = logoSize - ) - } - - Spacer(modifier = Modifier.weight(0.05f)) + NovayaPlanetaLogo( + modifier = Modifier + .align(Alignment.TopStart) + .padding(bottom = 4.dp) + .clickable { + navController.navigate("login") { + popUpTo("login") { inclusive = false } + } + }, + size = logoSize + ) // Центрированный контент - адаптивная ширина (50-70% экрана) val contentWidthRatio = if (isLandscape) 0.5f else 0.7f Column( modifier = Modifier + .align(Alignment.Center) .fillMaxWidth(contentWidthRatio), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(24.dp) @@ -410,8 +404,6 @@ fun RegistrationScreen( } } } - - Spacer(modifier = Modifier.weight(0.1f)) } } } diff --git a/app/src/main/java/com/novayaplaneta/ui/screens/rewards/RewardsScreen.kt b/app/src/main/java/com/novayaplaneta/ui/screens/rewards/RewardsScreen.kt index 281782c..66d3463 100644 --- a/app/src/main/java/com/novayaplaneta/ui/screens/rewards/RewardsScreen.kt +++ b/app/src/main/java/com/novayaplaneta/ui/screens/rewards/RewardsScreen.kt @@ -76,14 +76,14 @@ fun RewardsScreen( .fillMaxHeight() .padding(vertical = 20.dp, horizontal = 16.dp) ) { - // Логотип над панелью навигации (увеличен) + // Логотип над панелью навигации Box( modifier = Modifier .fillMaxWidth() .padding(bottom = 16.dp), contentAlignment = Alignment.Center ) { - val logoSize = (screenHeightDp * 0.18f).toInt().coerceIn(120, 200).dp + val logoSize = (screenHeightDp * 0.22f).toInt().coerceIn(140, 240).dp NovayaPlanetaLogo(size = logoSize) } diff --git a/app/src/main/java/com/novayaplaneta/ui/screens/schedule/ScheduleScreen.kt b/app/src/main/java/com/novayaplaneta/ui/screens/schedule/ScheduleScreen.kt index dfe0adf..47562fe 100644 --- a/app/src/main/java/com/novayaplaneta/ui/screens/schedule/ScheduleScreen.kt +++ b/app/src/main/java/com/novayaplaneta/ui/screens/schedule/ScheduleScreen.kt @@ -80,14 +80,14 @@ fun ScheduleScreen( .fillMaxHeight() .padding(vertical = 20.dp, horizontal = 16.dp) ) { - // Логотип над панелью навигации (увеличен) + // Логотип над панелью навигации Box( modifier = Modifier .fillMaxWidth() .padding(bottom = 16.dp), contentAlignment = Alignment.Center ) { - val logoSize = (screenHeightDp * 0.18f).toInt().coerceIn(120, 200).dp + val logoSize = (screenHeightDp * 0.22f).toInt().coerceIn(140, 240).dp NovayaPlanetaLogo(size = logoSize) } diff --git a/app/src/main/java/com/novayaplaneta/ui/screens/settings/SettingsScreen.kt b/app/src/main/java/com/novayaplaneta/ui/screens/settings/SettingsScreen.kt index d47a3f1..76f94ba 100644 --- a/app/src/main/java/com/novayaplaneta/ui/screens/settings/SettingsScreen.kt +++ b/app/src/main/java/com/novayaplaneta/ui/screens/settings/SettingsScreen.kt @@ -81,14 +81,14 @@ fun SettingsScreen( .fillMaxHeight() .padding(vertical = 20.dp, horizontal = 16.dp) ) { - // Логотип над панелью навигации (увеличен) + // Логотип над панелью навигации Box( modifier = Modifier .fillMaxWidth() .padding(bottom = 16.dp), contentAlignment = Alignment.Center ) { - val logoSize = (screenHeightDp * 0.18f).toInt().coerceIn(120, 200).dp + val logoSize = (screenHeightDp * 0.22f).toInt().coerceIn(140, 240).dp NovayaPlanetaLogo(size = logoSize) } diff --git a/app/src/main/java/com/novayaplaneta/ui/theme/Color.kt b/app/src/main/java/com/novayaplaneta/ui/theme/Color.kt index 867dd1a..d6cb613 100644 --- a/app/src/main/java/com/novayaplaneta/ui/theme/Color.kt +++ b/app/src/main/java/com/novayaplaneta/ui/theme/Color.kt @@ -14,15 +14,15 @@ val SurfaceDark = Color(0xFF1A1A1A) val OnBackgroundDark = Color(0xFFFFFFFF) val OnSurfaceDark = Color(0xFFFFFFFF) -// Accent Colors -val AccentGreen = Color(0xFF4CAF50) -val AccentOrange = Color(0xFFFF6B35) -val AccentGold = Color(0xFFFFD700) +// Accent Colors - мягкие пастельные тона для комфорта детей с РАС +val AccentGreen = Color(0xFF7FD97F) // Мягкий пастельный зеленый +val AccentOrange = Color(0xFFFFB88C) // Мягкий пастельный персиковый +val AccentGold = Color(0xFFFFE68C) // Мягкий пастельный желтый -// Status Colors -val SuccessColor = Color(0xFF4CAF50) -val WarningColor = Color(0xFFFF6B35) -val ErrorColor = Color(0xFFE53935) +// Status Colors - приглушенные для комфорта +val SuccessColor = Color(0xFF7FD97F) // Мягкий зеленый +val WarningColor = Color(0xFFFFB88C) // Мягкий персиковый +val ErrorColor = Color(0xFFFF9E9E) // Мягкий розовый вместо яркого красного // Цвета для экрана авторизации (благоприятные для РАС из PDF) val LoginBackgroundTurquoise = Color(0xFFDAE7E9) // Мягкий голубой фон