summaryrefslogtreecommitdiff
path: root/ui-compose
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2022-01-26 22:41:04 +0530
committerGitHub <noreply@github.com>2022-01-26 17:11:04 +0000
commitd89d5003192cf11bd9701dddce63d5782b40a071 (patch)
treefcd8a59b49d07b033755adc7f9c7b3f240cb5518 /ui-compose
parent9dd05543c8b3ad9bad2456bdffa54a56d2b95d3b (diff)
Move Compose code to ui-compose module (#1687)
Diffstat (limited to 'ui-compose')
-rw-r--r--ui-compose/build.gradle.kts17
-rw-r--r--ui-compose/src/main/AndroidManifest.xml6
-rw-r--r--ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Color.kt58
-rw-r--r--ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Theme.kt79
-rw-r--r--ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Type.kt145
5 files changed, 305 insertions, 0 deletions
diff --git a/ui-compose/build.gradle.kts b/ui-compose/build.gradle.kts
new file mode 100644
index 00000000..e84b0ac1
--- /dev/null
+++ b/ui-compose/build.gradle.kts
@@ -0,0 +1,17 @@
+plugins {
+ id("com.github.android-password-store.android-library")
+ id("com.github.android-password-store.kotlin-android")
+ id("com.github.android-password-store.kotlin-library")
+}
+
+dependencies {
+ implementation(libs.androidx.activity.compose)
+ implementation(libs.androidx.hilt.compose)
+ implementation(libs.compose.foundation.core)
+ implementation(libs.compose.foundation.layout)
+ implementation(libs.compose.material)
+ implementation(libs.androidx.compose.material3)
+ implementation(libs.compose.ui.core)
+ implementation(libs.compose.ui.viewbinding)
+ compileOnly(libs.compose.ui.tooling)
+}
diff --git a/ui-compose/src/main/AndroidManifest.xml b/ui-compose/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..482100e7
--- /dev/null
+++ b/ui-compose/src/main/AndroidManifest.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
+ ~ SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+ -->
+
+<manifest package="dev.msfjarvis.aps.ui.compose" />
diff --git a/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Color.kt b/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Color.kt
new file mode 100644
index 00000000..7f190443
--- /dev/null
+++ b/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Color.kt
@@ -0,0 +1,58 @@
+package dev.msfjarvis.aps.ui.compose.theme
+
+import androidx.compose.ui.graphics.Color
+
+internal val md_theme_light_primary = Color(0xFF006591)
+internal val md_theme_light_onPrimary = Color(0xFFffffff)
+internal val md_theme_light_primaryContainer = Color(0xFFc7e6ff)
+internal val md_theme_light_onPrimaryContainer = Color(0xFF001e30)
+internal val md_theme_light_secondary = Color(0xFF4f606e)
+internal val md_theme_light_onSecondary = Color(0xFFffffff)
+internal val md_theme_light_secondaryContainer = Color(0xFFd3e5f5)
+internal val md_theme_light_onSecondaryContainer = Color(0xFF0b1d29)
+internal val md_theme_light_tertiary = Color(0xFF006494)
+internal val md_theme_light_onTertiary = Color(0xFFffffff)
+internal val md_theme_light_tertiaryContainer = Color(0xFFc8e6ff)
+internal val md_theme_light_onTertiaryContainer = Color(0xFF001e31)
+internal val md_theme_light_error = Color(0xFFba1b1b)
+internal val md_theme_light_errorContainer = Color(0xFFffdad4)
+internal val md_theme_light_onError = Color(0xFFffffff)
+internal val md_theme_light_onErrorContainer = Color(0xFF410001)
+internal val md_theme_light_background = Color(0xFFfcfcff)
+internal val md_theme_light_onBackground = Color(0xFF1a1c1e)
+internal val md_theme_light_surface = Color(0xFFfcfcff)
+internal val md_theme_light_onSurface = Color(0xFF1a1c1e)
+internal val md_theme_light_surfaceVariant = Color(0xFFdde3ea)
+internal val md_theme_light_onSurfaceVariant = Color(0xFF41474d)
+internal val md_theme_light_outline = Color(0xFF72787e)
+internal val md_theme_light_inverseOnSurface = Color(0xFFf0f0f3)
+internal val md_theme_light_inverseSurface = Color(0xFF2e3133)
+
+internal val md_theme_dark_primary = Color(0xFF85ceff)
+internal val md_theme_dark_onPrimary = Color(0xFF00344e)
+internal val md_theme_dark_primaryContainer = Color(0xFF004c6f)
+internal val md_theme_dark_onPrimaryContainer = Color(0xFFc7e6ff)
+internal val md_theme_dark_secondary = Color(0xFFb7c9d9)
+internal val md_theme_dark_onSecondary = Color(0xFF21323e)
+internal val md_theme_dark_secondaryContainer = Color(0xFF384956)
+internal val md_theme_dark_onSecondaryContainer = Color(0xFFd3e5f5)
+internal val md_theme_dark_tertiary = Color(0xFF8aceff)
+internal val md_theme_dark_onTertiary = Color(0xFF003450)
+internal val md_theme_dark_tertiaryContainer = Color(0xFF004b70)
+internal val md_theme_dark_onTertiaryContainer = Color(0xFFc8e6ff)
+internal val md_theme_dark_error = Color(0xFFffb4a9)
+internal val md_theme_dark_errorContainer = Color(0xFF930006)
+internal val md_theme_dark_onError = Color(0xFF680003)
+internal val md_theme_dark_onErrorContainer = Color(0xFFffdad4)
+internal val md_theme_dark_background = Color(0xFF1a1c1e)
+internal val md_theme_dark_onBackground = Color(0xFFe1e2e5)
+internal val md_theme_dark_surface = Color(0xFF1a1c1e)
+internal val md_theme_dark_onSurface = Color(0xFFe1e2e5)
+internal val md_theme_dark_surfaceVariant = Color(0xFF41474d)
+internal val md_theme_dark_onSurfaceVariant = Color(0xFFc1c7ce)
+internal val md_theme_dark_outline = Color(0xFF8b9197)
+internal val md_theme_dark_inverseOnSurface = Color(0xFF1a1c1e)
+internal val md_theme_dark_inverseSurface = Color(0xFFe1e2e5)
+
+internal val seed = Color(0xFF003e5b)
+internal val error = Color(0xFFba1b1b)
diff --git a/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Theme.kt b/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Theme.kt
new file mode 100644
index 00000000..a6652ee1
--- /dev/null
+++ b/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Theme.kt
@@ -0,0 +1,79 @@
+package dev.msfjarvis.aps.ui.compose.theme
+
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.darkColorScheme
+import androidx.compose.material3.lightColorScheme
+import androidx.compose.runtime.Composable
+
+private val LightThemeColors =
+ lightColorScheme(
+ primary = md_theme_light_primary,
+ onPrimary = md_theme_light_onPrimary,
+ primaryContainer = md_theme_light_primaryContainer,
+ onPrimaryContainer = md_theme_light_onPrimaryContainer,
+ secondary = md_theme_light_secondary,
+ onSecondary = md_theme_light_onSecondary,
+ secondaryContainer = md_theme_light_secondaryContainer,
+ onSecondaryContainer = md_theme_light_onSecondaryContainer,
+ tertiary = md_theme_light_tertiary,
+ onTertiary = md_theme_light_onTertiary,
+ tertiaryContainer = md_theme_light_tertiaryContainer,
+ onTertiaryContainer = md_theme_light_onTertiaryContainer,
+ error = md_theme_light_error,
+ errorContainer = md_theme_light_errorContainer,
+ onError = md_theme_light_onError,
+ onErrorContainer = md_theme_light_onErrorContainer,
+ background = md_theme_light_background,
+ onBackground = md_theme_light_onBackground,
+ surface = md_theme_light_surface,
+ onSurface = md_theme_light_onSurface,
+ surfaceVariant = md_theme_light_surfaceVariant,
+ onSurfaceVariant = md_theme_light_onSurfaceVariant,
+ outline = md_theme_light_outline,
+ inverseOnSurface = md_theme_light_inverseOnSurface,
+ inverseSurface = md_theme_light_inverseSurface,
+ )
+private val DarkThemeColors =
+ darkColorScheme(
+ primary = md_theme_dark_primary,
+ onPrimary = md_theme_dark_onPrimary,
+ primaryContainer = md_theme_dark_primaryContainer,
+ onPrimaryContainer = md_theme_dark_onPrimaryContainer,
+ secondary = md_theme_dark_secondary,
+ onSecondary = md_theme_dark_onSecondary,
+ secondaryContainer = md_theme_dark_secondaryContainer,
+ onSecondaryContainer = md_theme_dark_onSecondaryContainer,
+ tertiary = md_theme_dark_tertiary,
+ onTertiary = md_theme_dark_onTertiary,
+ tertiaryContainer = md_theme_dark_tertiaryContainer,
+ onTertiaryContainer = md_theme_dark_onTertiaryContainer,
+ error = md_theme_dark_error,
+ errorContainer = md_theme_dark_errorContainer,
+ onError = md_theme_dark_onError,
+ onErrorContainer = md_theme_dark_onErrorContainer,
+ background = md_theme_dark_background,
+ onBackground = md_theme_dark_onBackground,
+ surface = md_theme_dark_surface,
+ onSurface = md_theme_dark_onSurface,
+ surfaceVariant = md_theme_dark_surfaceVariant,
+ onSurfaceVariant = md_theme_dark_onSurfaceVariant,
+ outline = md_theme_dark_outline,
+ inverseOnSurface = md_theme_dark_inverseOnSurface,
+ inverseSurface = md_theme_dark_inverseSurface,
+ )
+
+@Composable
+public fun APSTheme(
+ useDarkTheme: Boolean = isSystemInDarkTheme(),
+ content: @Composable () -> Unit,
+) {
+ val colors =
+ if (!useDarkTheme) {
+ LightThemeColors
+ } else {
+ DarkThemeColors
+ }
+
+ MaterialTheme(colorScheme = colors, typography = AppTypography, content = content)
+}
diff --git a/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Type.kt b/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Type.kt
new file mode 100644
index 00000000..3c256a6a
--- /dev/null
+++ b/ui-compose/src/main/kotlin/dev/msfjarvis/aps/ui/compose/theme/Type.kt
@@ -0,0 +1,145 @@
+package dev.msfjarvis.aps.ui.compose.theme
+
+import androidx.compose.material3.Typography
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.sp
+
+/** Uncomment the contents below if and when the font files get moved to this module. */
+internal val Manrope =
+ FontFamily(
+ /*
+ Font(R.font.manrope_bold, FontWeight.Bold),
+ Font(R.font.manrope_extrabold, FontWeight.ExtraBold),
+ Font(R.font.manrope_extralight, FontWeight.ExtraLight),
+ Font(R.font.manrope_light, FontWeight.Light),
+ Font(R.font.manrope_medium, FontWeight.Medium),
+ Font(R.font.manrope_regular, FontWeight.Normal),
+ Font(R.font.manrope_semibold, FontWeight.SemiBold),
+ */
+ )
+
+internal val AppTypography =
+ Typography(
+ displayLarge =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 57.sp,
+ lineHeight = 64.sp,
+ letterSpacing = (-0.25).sp,
+ ),
+ displayMedium =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 45.sp,
+ lineHeight = 52.sp,
+ letterSpacing = 0.sp,
+ ),
+ displaySmall =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 36.sp,
+ lineHeight = 44.sp,
+ letterSpacing = 0.sp,
+ ),
+ headlineLarge =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 32.sp,
+ lineHeight = 40.sp,
+ letterSpacing = 0.sp,
+ ),
+ headlineMedium =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 28.sp,
+ lineHeight = 36.sp,
+ letterSpacing = 0.sp,
+ ),
+ headlineSmall =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 24.sp,
+ lineHeight = 32.sp,
+ letterSpacing = 0.sp,
+ ),
+ titleLarge =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 22.sp,
+ lineHeight = 28.sp,
+ letterSpacing = 0.sp,
+ ),
+ titleMedium =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.Medium,
+ fontSize = 16.sp,
+ lineHeight = 24.sp,
+ letterSpacing = 0.1.sp,
+ ),
+ titleSmall =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.Medium,
+ fontSize = 14.sp,
+ lineHeight = 20.sp,
+ letterSpacing = 0.1.sp,
+ ),
+ labelLarge =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.Medium,
+ fontSize = 14.sp,
+ lineHeight = 20.sp,
+ letterSpacing = 0.1.sp,
+ ),
+ bodyLarge =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 16.sp,
+ lineHeight = 24.sp,
+ letterSpacing = 0.5.sp,
+ ),
+ bodyMedium =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 14.sp,
+ lineHeight = 20.sp,
+ letterSpacing = 0.25.sp,
+ ),
+ bodySmall =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.W400,
+ fontSize = 12.sp,
+ lineHeight = 16.sp,
+ letterSpacing = 0.4.sp,
+ ),
+ labelMedium =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.Medium,
+ fontSize = 12.sp,
+ lineHeight = 16.sp,
+ letterSpacing = 0.5.sp,
+ ),
+ labelSmall =
+ TextStyle(
+ fontFamily = Manrope,
+ fontWeight = FontWeight.Medium,
+ fontSize = 11.sp,
+ lineHeight = 16.sp,
+ letterSpacing = 0.5.sp,
+ ),
+ )