diff --git a/app/src/edx/res/drawable/ic_launcher_foreground.xml b/app/src/edx/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 000000000..f542143cc --- /dev/null +++ b/app/src/edx/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/app/src/edx/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/edx/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..6b78462d6 --- /dev/null +++ b/app/src/edx/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/edx/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/edx/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..6b78462d6 --- /dev/null +++ b/app/src/edx/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/edx/res/mipmap-hdpi/ic_launcher.png b/app/src/edx/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..3bcadcfdf Binary files /dev/null and b/app/src/edx/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/edx/res/mipmap-mdpi/ic_launcher.png b/app/src/edx/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..4184318fd Binary files /dev/null and b/app/src/edx/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/edx/res/mipmap-xhdpi/ic_launcher.png b/app/src/edx/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..683b4aa56 Binary files /dev/null and b/app/src/edx/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/edx/res/mipmap-xxhdpi/ic_launcher.png b/app/src/edx/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..f6467b999 Binary files /dev/null and b/app/src/edx/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/edx/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/edx/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..c82b65553 Binary files /dev/null and b/app/src/edx/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/core/src/edx/org/openedx/core/ui/theme/Colors.kt b/core/src/edx/org/openedx/core/ui/theme/Colors.kt new file mode 100644 index 000000000..20d14e3f1 --- /dev/null +++ b/core/src/edx/org/openedx/core/ui/theme/Colors.kt @@ -0,0 +1,145 @@ +package org.openedx.core.ui.theme + +import androidx.compose.ui.graphics.Color + +// Light theme colors scheme +val light_primary = Color(0xFF00262B) // Primary 500 | Dark 500 | Elm +val light_primary_variant = Color(0xFF002121) // Primary 700 | Dark 700 +val light_secondary = Color(0xFFD23228) // Brand 500 +val light_secondary_variant = Color(0xFFD23228) // Brand 500 +val light_background = Color.White +val light_surface = Color.White +val light_error = Color(0xFFAB0D02) // Danger 500 +val light_warning = Color(0xFFF0CC00) // Accent B Oxide Yellow +val light_info = Color(0xFF03C7E8) // Accent A Isotope Blue +val light_info_variant = Color(0xFF00688D) // Info 500 + +val light_onPrimary = Color.White +val light_onSecondary = Color.White +val light_onBackground = Color(0xFF454545) +val light_onSurface = Color(0xFF454545) +val light_onError = Color.White +val light_onWarning = Color.White +val light_onInfo = Color.White + +val light_text_primary = Color(0xFF00262B) // Primary 500 | Dark 500 | Elm +val light_text_primary_variant = Color(0xFF454545) // Gray 700 +val light_text_primary_light = Color(0xFF707070) // Gray 500 +val light_text_hyper_link = Color(0xFF00688D) // Info 500 + +val light_text_secondary = Color(0xFF00262B) // Primary 500 | Dark 500 | Elm +val light_text_dark = Color(0xFF002121) // Primary 700 | Dark 700 +val light_text_warning = Color(0xFF002121) // Primary 700 | Dark 700 + +val light_text_accent = Color(0xFF03C7E8) // Accent A Isotope Blue + +val light_text_field_background = Color.White +val light_text_field_background_variant = Color.White +val light_text_field_border = Color(0xFF707070) // Gray 500 +val light_text_field_text = Color(0xFF454545) // Gray 700 +val light_text_field_hint = Color(0xFF707070) // Gray 500 + +val light_primary_button_background = Color(0xFF00262B) // Primary 500 | Dark 500 | Elm +val light_primary_button_text = Color.White +val light_primary_button_border = Color(0xFFD7D3D1) // Light 700 +val light_primary_button_bordered_text = Color(0xFF00262B) // Primary 500 | Dark 500 | Elm + +val light_secondary_button_background = Color(0xFFD23228) // Brand 500 +val light_secondary_button_text = Color(0xFFD23228) // Brand 500 +val light_secondary_button_border = Color(0xFFD7D3D1) // Light 700 +val light_secondary_button_bordered_background = Color.White +val light_secondary_button_bordered_text = Color(0xFFD23228) // Brand 500 + +val light_card_view_background = Color(0xFFF9FAFB) +val light_card_view_border = Color(0xFFCCD4E0) + +val light_divider = Color(0xFFEAE6E5) // +val light_certificate_foreground = Color.White +val light_bottom_sheet_toggle = Color(0xFF03C7E8) // Accent A Isotope Blue + +val light_rate_stars = Color(0xFFF0CC00) // Accent B Oxide Yellow +val light_inactive_button_background = Color(0xFFCCD4E0) +val light_access_green = Color(0xFF23BCA0) +val light_dates_section_bar_past_due = Color(0xFFF0CC00) +val light_dates_section_bar_today = light_info +val light_dates_section_bar_this_week = light_text_primary_variant +val light_dates_section_bar_next_week = light_text_field_border +val light_dates_section_bar_upcoming = Color(0xFFCCD4E0) +val light_auth_google_button_background = Color.White +val light_auth_facebook_button_background = Color(0xFF0866FF) +val light_auth_microsoft_button_background = Color(0xFF2E2E2E) +val light_component_horizontal_progress_completed_and_selected = light_primary +val light_component_horizontal_progress_completed = Color(0xFF8F8F8F) +val light_component_horizontal_progress_selected = light_primary +val light_component_horizontal_progress_default = Color(0xFF8F8F8F) + + +// Dark theme colors scheme +val dark_primary = Color(0xFFFBFAF9) // Light 200 +val dark_primary_variant = Color(0xFFF2F0EF) // Light 300 +val dark_secondary = Color(0xFFD23228) // Brand 500 +val dark_secondary_variant = Color(0xFFD23228) // Brand 500 +val dark_background = Color(0xFF00262b) // Primary 500 | Dark 500 +val dark_surface = Color(0xFF002121) // Primary 700 | Dark 700 +val dark_error = Color(0xFFAB0D02) // Danger 500 +val dark_warning = Color(0xFFF0CC00) // Accent B Oxide Yellow +val dark_info = Color(0xFF03C7E8) // Accent A Isotope Blue +val dark_info_variant = Color(0xFF00688D) // Info 500 + +val dark_onPrimary = Color(0xFF002121) // Primary 700 | Dark 700 +val dark_onSecondary = Color.White +val dark_onBackground = Color.White +val dark_onSurface = Color.White +val dark_onError = Color.White +val dark_onWarning = Color.White +val dark_onInfo = Color.White + + +val dark_text_primary = Color.White +val dark_text_primary_variant = Color(0xFFF2F0EF) // Light 300 +val dark_text_primary_light = Color(0xFF707070) // Gray 500 +val dark_text_hyper_link = Color(0xFF00688D) // Info 500 + +val dark_text_secondary = Color.White +val dark_text_dark = Color(0xFFF2F0EF) // Light 300 +val dark_text_warning = Color(0xFFF2F0EF) // Light 300 + +val dark_text_accent = Color(0xFF03C7E8) // Accent A Isotope Blue +val dark_text_field_background = Color.White +val dark_text_field_background_variant = Color.White +val dark_text_field_border = Color(0xFF707070) // Gray 500 +val dark_text_field_text = Color.White +val dark_text_field_hint = Color(0xFF707070) // Gray 500 + +val dark_primary_button_background = Color(0xFF00262B) // Primary 500 | Dark 500 | Elm +val dark_primary_button_text = Color.White +val dark_primary_button_border = Color(0xFFD7D3D1) // Light 700 +val dark_primary_button_bordered_text = Color(0xFF00262B) // Primary 500 | Dark 500 | Elm + +val dark_secondary_button_background = Color(0xFFD23228) // Brand 500 +val dark_secondary_button_text = Color.White +val dark_secondary_button_border = Color(0xFFD7D3D1) // Light 700 +val dark_secondary_button_bordered_background = Color.White +val dark_secondary_button_bordered_text = Color(0xFFD23228) // Brand 500 + +val dark_card_view_background = Color(0xFF003839) +val dark_card_view_border = Color(0xFF4E5A70) +val dark_divider = Color(0xFF0E3639) // Dark 400 + +val dark_certificate_foreground = Color(0xD92EB865) +val dark_bottom_sheet_toggle = Color(0xFF03C7E8) // Accent A Isotope Blue +val dark_rate_stars = Color(0xFFF0CC00) // Accent B Oxide Yellow +val dark_inactive_button_background = Color(0xFFCCD4E0) +val dark_access_green = Color(0xFF23BCA0) +val dark_dates_section_bar_past_due = Color(0xFFF0CC00) // Accent B Oxide Yellow +val dark_dates_section_bar_today = Color(0xFF03C7E8) // Accent A Isotope Blue +val dark_dates_section_bar_this_week = Color(0xFFF2F0EF) // Light 300 +val dark_dates_section_bar_next_week = Color(0xFF707070) // Gray 500 +val dark_dates_section_bar_upcoming = Color(0xFFCCD4E0) +val dark_auth_google_button_background = Color.White +val dark_auth_facebook_button_background = Color(0xFF0866FF) +val dark_auth_microsoft_button_background = Color(0xFF2E2E2E) +val dark_component_horizontal_progress_completed_and_selected = Color.White +val dark_component_horizontal_progress_completed = Color(0xFF8F8F8F) +val dark_component_horizontal_progress_selected = Color.White +val dark_component_horizontal_progress_default = Color(0xFF8F8F8F) diff --git a/core/src/edx/org/openedx/core/ui/theme/LocalShapes.kt b/core/src/edx/org/openedx/core/ui/theme/LocalShapes.kt new file mode 100644 index 000000000..19da9b1c9 --- /dev/null +++ b/core/src/edx/org/openedx/core/ui/theme/LocalShapes.kt @@ -0,0 +1,25 @@ +package org.openedx.core.ui.theme + +import androidx.compose.foundation.shape.CornerSize +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Shapes +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.unit.dp + +internal val LocalShapes = staticCompositionLocalOf { + AppShapes( + material = Shapes( + small = RoundedCornerShape(4.dp), + medium = RoundedCornerShape(8.dp), + large = RoundedCornerShape(0.dp) + ), + buttonShape = RoundedCornerShape(0.dp), + navigationButtonShape = RoundedCornerShape(0.dp), + textFieldShape = RoundedCornerShape(CornerSize(0.dp)), + screenBackgroundShape = RoundedCornerShape(topStart = 30.dp, topEnd = 30.dp), + cardShape = RoundedCornerShape(0.dp), + screenBackgroundShapeFull = RoundedCornerShape(24.dp), + courseImageShape = RoundedCornerShape(0.dp), + dialogShape = RoundedCornerShape(24.dp) + ) +} diff --git a/core/src/edx/org/openedx/core/ui/theme/compose/LogistrationLogoView.kt b/core/src/edx/org/openedx/core/ui/theme/compose/LogistrationLogoView.kt new file mode 100644 index 000000000..c9f1f77e8 --- /dev/null +++ b/core/src/edx/org/openedx/core/ui/theme/compose/LogistrationLogoView.kt @@ -0,0 +1,31 @@ +package org.openedx.core.ui.theme.compose + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import org.openedx.core.R +import org.openedx.core.ui.theme.OpenEdXTheme + +@Composable +fun LogistrationLogoView() { + Image( + modifier = Modifier + .padding(top = 64.dp, bottom = 20.dp) + .wrapContentWidth(), + painter = painterResource(id = R.drawable.core_ic_logo), + contentDescription = null, + ) +} + +@Preview(widthDp = 375) +@Composable +fun LogistrationLogoViewPreview() { + OpenEdXTheme { + LogistrationLogoView() + } +} diff --git a/core/src/edx/org/openedx/core/ui/theme/compose/SignInLogoView.kt b/core/src/edx/org/openedx/core/ui/theme/compose/SignInLogoView.kt new file mode 100644 index 000000000..80e3f7967 --- /dev/null +++ b/core/src/edx/org/openedx/core/ui/theme/compose/SignInLogoView.kt @@ -0,0 +1,39 @@ +package org.openedx.core.ui.theme.compose + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import org.openedx.core.R +import org.openedx.core.ui.theme.OpenEdXTheme + +@Composable +fun SignInLogoView() { + Box( + modifier = Modifier + .fillMaxWidth() + .fillMaxHeight(0.2f), + contentAlignment = Alignment.Center + ) { + Image( + painter = painterResource(id = R.drawable.core_ic_logo_white), + contentDescription = null, + modifier = Modifier.padding(top = 20.dp) + ) + } +} + +@Preview(widthDp = 375, heightDp = 400) +@Composable +fun SignInLogoViewPreview() { + OpenEdXTheme { + SignInLogoView() + } +} diff --git a/core/src/edx/res/drawable-night/core_ic_logo.xml b/core/src/edx/res/drawable-night/core_ic_logo.xml new file mode 100644 index 000000000..8e08c5334 --- /dev/null +++ b/core/src/edx/res/drawable-night/core_ic_logo.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/core/src/edx/res/drawable-night/core_top_header.png b/core/src/edx/res/drawable-night/core_top_header.png new file mode 100644 index 000000000..8e34e2d73 Binary files /dev/null and b/core/src/edx/res/drawable-night/core_top_header.png differ diff --git a/core/src/edx/res/drawable/core_ic_logo.xml b/core/src/edx/res/drawable/core_ic_logo.xml new file mode 100644 index 000000000..e94781b5f --- /dev/null +++ b/core/src/edx/res/drawable/core_ic_logo.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/core/src/edx/res/drawable/core_ic_logo_white.xml b/core/src/edx/res/drawable/core_ic_logo_white.xml new file mode 100644 index 000000000..8e08c5334 --- /dev/null +++ b/core/src/edx/res/drawable/core_ic_logo_white.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/core/src/edx/res/drawable/core_top_header.png b/core/src/edx/res/drawable/core_top_header.png new file mode 100644 index 000000000..8e34e2d73 Binary files /dev/null and b/core/src/edx/res/drawable/core_top_header.png differ diff --git a/core/src/edx/res/font/black.ttf b/core/src/edx/res/font/black.ttf new file mode 100644 index 000000000..5aecf7dc4 Binary files /dev/null and b/core/src/edx/res/font/black.ttf differ diff --git a/core/src/edx/res/font/bold.ttf b/core/src/edx/res/font/bold.ttf new file mode 100644 index 000000000..8e82c70d1 Binary files /dev/null and b/core/src/edx/res/font/bold.ttf differ diff --git a/core/src/edx/res/font/extra_light.ttf b/core/src/edx/res/font/extra_light.ttf new file mode 100644 index 000000000..c993e8221 Binary files /dev/null and b/core/src/edx/res/font/extra_light.ttf differ diff --git a/core/src/edx/res/font/light.ttf b/core/src/edx/res/font/light.ttf new file mode 100644 index 000000000..71188f5cb Binary files /dev/null and b/core/src/edx/res/font/light.ttf differ diff --git a/core/src/edx/res/font/medium.ttf b/core/src/edx/res/font/medium.ttf new file mode 100644 index 000000000..b53fb1c4a Binary files /dev/null and b/core/src/edx/res/font/medium.ttf differ diff --git a/core/src/edx/res/font/regular.ttf b/core/src/edx/res/font/regular.ttf new file mode 100644 index 000000000..3b7e686e5 Binary files /dev/null and b/core/src/edx/res/font/regular.ttf differ diff --git a/core/src/edx/res/font/semi_bold.ttf b/core/src/edx/res/font/semi_bold.ttf new file mode 100644 index 000000000..556e972f4 Binary files /dev/null and b/core/src/edx/res/font/semi_bold.ttf differ diff --git a/core/src/edx/res/font/thin.ttf b/core/src/edx/res/font/thin.ttf new file mode 100644 index 000000000..fe77243fc Binary files /dev/null and b/core/src/edx/res/font/thin.ttf differ diff --git a/core/src/edx/res/values-night/colors.xml b/core/src/edx/res/values-night/colors.xml new file mode 100644 index 000000000..80155c620 --- /dev/null +++ b/core/src/edx/res/values-night/colors.xml @@ -0,0 +1,7 @@ + + + + #FF00262b + #FFFBFAF9 + #00262B + diff --git a/core/src/edx/res/values/colors.xml b/core/src/edx/res/values/colors.xml new file mode 100644 index 000000000..96839eb98 --- /dev/null +++ b/core/src/edx/res/values/colors.xml @@ -0,0 +1,7 @@ + + + #FFFFFF + + #00262B + #FFFFFF +