diff --git a/.gitignore b/.gitignore index 194a2f8..1f64d98 100644 --- a/.gitignore +++ b/.gitignore @@ -77,6 +77,9 @@ proguard/ *~ *.swp +# macOS +.DS_Store + ### AndroidStudio Patch ### !/gradle/wrapper/gradle-wrapper.jar diff --git a/build-logic/convention/src/main/java/dev/love/winter/convention/AndroidCompose.kt b/build-logic/convention/src/main/java/dev/love/winter/convention/AndroidCompose.kt index a34228b..1054387 100644 --- a/build-logic/convention/src/main/java/dev/love/winter/convention/AndroidCompose.kt +++ b/build-logic/convention/src/main/java/dev/love/winter/convention/AndroidCompose.kt @@ -2,25 +2,24 @@ package dev.love.winter.convention // reference : https://github.com/android/nowinandroid/blob/main/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt -import com.android.build.gradle.internal.dsl.BaseAppModuleExtension +import dev.love.winter.convention.extension.AndroidExtension import dev.love.winter.convention.extension.api import dev.love.winter.convention.extension.debugImplementation import dev.love.winter.convention.extension.implementation import dev.love.winter.convention.extension.libs import org.gradle.api.Project import org.gradle.kotlin.dsl.dependencies -import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -internal fun Project.configureComposeAndroid() { +internal fun Project.configureComposeAndroid( + commonExtension: AndroidExtension, +) { with(pluginManager) { apply("org.jetbrains.kotlin.plugin.compose") } - val extension = extensions.getByType() - - extension.apply { + commonExtension.apply { buildFeatures.compose = true } diff --git a/build-logic/convention/src/main/java/dev/love/winter/convention/extension/AppNameExtension.kt b/build-logic/convention/src/main/java/dev/love/winter/convention/extension/AppNameExtension.kt index be01389..38faf81 100644 --- a/build-logic/convention/src/main/java/dev/love/winter/convention/extension/AppNameExtension.kt +++ b/build-logic/convention/src/main/java/dev/love/winter/convention/extension/AppNameExtension.kt @@ -4,6 +4,6 @@ import org.gradle.api.Project fun Project.setNamespace(name: String) { androidExtension.apply { - namespace = "dev.love.winter.ls.$name" + namespace = "dev.love.winter.$name" } } diff --git a/build-logic/convention/src/main/java/winter.compose.gradle.kts b/build-logic/convention/src/main/java/winter.compose.gradle.kts index 0e24aa6..3516606 100644 --- a/build-logic/convention/src/main/java/winter.compose.gradle.kts +++ b/build-logic/convention/src/main/java/winter.compose.gradle.kts @@ -1,9 +1,12 @@ +import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import dev.love.winter.convention.configureComposeAndroid import dev.love.winter.convention.extension.implementation import dev.love.winter.convention.extension.libs +import org.gradle.kotlin.dsl.getByType - -configureComposeAndroid() +configureComposeAndroid( + commonExtension = extensions.getByType(), +) dependencies { implementation(libs.findLibrary("androidX-activityCompose")) diff --git a/build-logic/convention/src/main/java/winter.compose.library.gradle.kts b/build-logic/convention/src/main/java/winter.compose.library.gradle.kts index 7ce5b62..61fd78f 100644 --- a/build-logic/convention/src/main/java/winter.compose.library.gradle.kts +++ b/build-logic/convention/src/main/java/winter.compose.library.gradle.kts @@ -1,3 +1,7 @@ +import com.android.build.gradle.LibraryExtension import dev.love.winter.convention.configureComposeAndroid +import org.gradle.kotlin.dsl.getByType -configureComposeAndroid() +configureComposeAndroid( + commonExtension = extensions.getByType(), +) diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 956a654..a51c2d9 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -304,6 +304,8 @@ style: active: false BracesOnIfStatements: active: true + BracesOnWhenStatements: + active: true MandatoryBracesLoops: active: true MaxLineLength: diff --git a/core-android/design-system/README.md b/core-android/design-system/README.md new file mode 100644 index 0000000..a7620d7 --- /dev/null +++ b/core-android/design-system/README.md @@ -0,0 +1,76 @@ +# Design System + +## Overview + +This module provides the design system foundation for the LanguageStudy application, implementing a scalable and maintainable design token system. +It establishes a consistent visual language across the app through systematically organized design tokens and reusable components. + +## Responsibilities + +- Define design tokens (colors, typography, spacing, etc.) as code following industry best practices +- Compose and maintain app themes with support for light and dark modes +- Implement and maintain UI components built on top of design tokens +- Provide foundation utilities for common design system needs + +# Design Tokens + +Design tokens are essential in creating and maintaining a consistent design language in our projects. +They contain the values you'll use to construct Ul elements, such as colors, typography, spacing, border radius, and icons. + +## Primitive tokens + +> name-variant +> primary-900 + +The primitive tokens have a simple name structure with two levels: name and variation. + +## Component tokens + +> type-category-variant +> color-background-band-subtle-... + +The component tokens are the ones applied in the interface and always inherit a primitive token. +The names of component tokens explain how they are used, +so they are composed of three levels: type, category, and variation. +It's possible to have more than one variation in the same token, like "brand-subtle". + +## Tokens + +- Colors +- Typography +- Spacing +- BorderRadius +- Icon + +# Module Structure + +``` +design-system/ +├── tokens/ # Design token definitions (primitive & component values) +│ ├── ColorToken.kt +│ ├── TypographyToken.kt +│ └── IconToken.kt ... +│ +├── theme/ # Theme aggregation (composing tokens into themes) +│ ├── Theme.kt +│ ├── Colors.kt +│ ├── Typography.kt +│ └── Icon.kt ... +│ +├── foundation/ # Foundation utilities +│ └── ModifierExtensions, Ripple +│ +└── component/ # UI components + ├── Button.kt + └── TextField.kt +``` + +## Package Descriptions + +- **tokens**: Raw design token values (colors, typography scales, spacing units) +- **theme**: Aggregated theme objects accessible via `WinterTheme` +- **foundation**: Core utilities and helpers for the design system +- **component**: Reusable UI components built with design tokens + +# Usage + diff --git a/core-android/design-system/build.gradle.kts b/core-android/design-system/build.gradle.kts new file mode 100644 index 0000000..e9d91c1 --- /dev/null +++ b/core-android/design-system/build.gradle.kts @@ -0,0 +1,10 @@ +import dev.love.winter.convention.extension.setNamespace + +plugins { + id("winter.android.library") + id("winter.compose.library") +} + +android { + setNamespace("designsystem") +} diff --git a/core-android/design-system/src/main/AndroidManifest.xml b/core-android/design-system/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5918e6 --- /dev/null +++ b/core-android/design-system/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/BorderRadius.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/BorderRadius.kt new file mode 100644 index 0000000..12092bf --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/BorderRadius.kt @@ -0,0 +1,34 @@ +package dev.love.winter.designsystem.theme + +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.graphics.Shape +import dev.love.winter.designsystem.tokens.BorderRadiusExtraLarge +import dev.love.winter.designsystem.tokens.BorderRadiusExtraSmall +import dev.love.winter.designsystem.tokens.BorderRadiusLarge +import dev.love.winter.designsystem.tokens.BorderRadiusMedium +import dev.love.winter.designsystem.tokens.BorderRadiusPill +import dev.love.winter.designsystem.tokens.BorderRadiusSmall + +@Immutable +data class BorderRadius( + val extraSmall: Shape, + val small: Shape, + val medium: Shape, + val large: Shape, + val extraLarge: Shape, + val pill: Shape, +) + +internal val BorderRadiusTheme = BorderRadius( + extraSmall = BorderRadiusExtraSmall, + small = BorderRadiusSmall, + medium = BorderRadiusMedium, + large = BorderRadiusLarge, + extraLarge = BorderRadiusExtraLarge, + pill = BorderRadiusPill, +) + +internal val LocalBorderRadius = staticCompositionLocalOf { + BorderRadiusTheme +} diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Colors.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Colors.kt new file mode 100644 index 0000000..3cc54a0 --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Colors.kt @@ -0,0 +1,462 @@ +package dev.love.winter.designsystem.theme + +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.graphics.Color +import dev.love.winter.designsystem.tokens.BackgroundBrandDark +import dev.love.winter.designsystem.tokens.BackgroundBrandLight +import dev.love.winter.designsystem.tokens.BackgroundBrandSubtleDark +import dev.love.winter.designsystem.tokens.BackgroundBrandSubtleLight +import dev.love.winter.designsystem.tokens.BackgroundContainerDark +import dev.love.winter.designsystem.tokens.BackgroundContainerLight +import dev.love.winter.designsystem.tokens.BackgroundContrastDark +import dev.love.winter.designsystem.tokens.BackgroundContrastLight +import dev.love.winter.designsystem.tokens.BackgroundDark +import dev.love.winter.designsystem.tokens.BackgroundDisabledDark +import dev.love.winter.designsystem.tokens.BackgroundDisabledLight +import dev.love.winter.designsystem.tokens.BackgroundLight +import dev.love.winter.designsystem.tokens.BackgroundModalDark +import dev.love.winter.designsystem.tokens.BackgroundModalLight +import dev.love.winter.designsystem.tokens.BackgroundNegativeDark +import dev.love.winter.designsystem.tokens.BackgroundNegativeLight +import dev.love.winter.designsystem.tokens.BackgroundObjectDark +import dev.love.winter.designsystem.tokens.BackgroundObjectLight +import dev.love.winter.designsystem.tokens.BackgroundOverlayDark +import dev.love.winter.designsystem.tokens.BackgroundOverlayLight +import dev.love.winter.designsystem.tokens.BackgroundPositiveDark +import dev.love.winter.designsystem.tokens.BackgroundPositiveLight +import dev.love.winter.designsystem.tokens.BackgroundWarningDark +import dev.love.winter.designsystem.tokens.BackgroundWarningLight +import dev.love.winter.designsystem.tokens.ButtonBrandActiveDark +import dev.love.winter.designsystem.tokens.ButtonBrandActiveLight +import dev.love.winter.designsystem.tokens.ButtonBrandDefaultDark +import dev.love.winter.designsystem.tokens.ButtonBrandDefaultLight +import dev.love.winter.designsystem.tokens.ButtonBrandDisabledDark +import dev.love.winter.designsystem.tokens.ButtonBrandDisabledLight +import dev.love.winter.designsystem.tokens.ButtonCriticalActiveDark +import dev.love.winter.designsystem.tokens.ButtonCriticalActiveLight +import dev.love.winter.designsystem.tokens.ButtonCriticalDefaultDark +import dev.love.winter.designsystem.tokens.ButtonCriticalDefaultLight +import dev.love.winter.designsystem.tokens.ButtonCriticalDisabledDark +import dev.love.winter.designsystem.tokens.ButtonCriticalDisabledLight +import dev.love.winter.designsystem.tokens.ButtonPrimaryActiveDark +import dev.love.winter.designsystem.tokens.ButtonPrimaryActiveLight +import dev.love.winter.designsystem.tokens.ButtonPrimaryDefaultDark +import dev.love.winter.designsystem.tokens.ButtonPrimaryDefaultLight +import dev.love.winter.designsystem.tokens.ButtonPrimaryDisabledDark +import dev.love.winter.designsystem.tokens.ButtonPrimaryDisabledLight +import dev.love.winter.designsystem.tokens.ButtonSecondaryActiveDark +import dev.love.winter.designsystem.tokens.ButtonSecondaryActiveLight +import dev.love.winter.designsystem.tokens.ButtonSecondaryDefaultDark +import dev.love.winter.designsystem.tokens.ButtonSecondaryDefaultLight +import dev.love.winter.designsystem.tokens.ButtonSecondaryDisabledDark +import dev.love.winter.designsystem.tokens.ButtonSecondaryDisabledLight +import dev.love.winter.designsystem.tokens.ButtonTertiaryActiveDark +import dev.love.winter.designsystem.tokens.ButtonTertiaryActiveLight +import dev.love.winter.designsystem.tokens.ButtonTertiaryDefaultDark +import dev.love.winter.designsystem.tokens.ButtonTertiaryDefaultLight +import dev.love.winter.designsystem.tokens.ButtonTertiaryDisabledDark +import dev.love.winter.designsystem.tokens.ButtonTertiaryDisabledLight +import dev.love.winter.designsystem.tokens.Green100 +import dev.love.winter.designsystem.tokens.Green400 +import dev.love.winter.designsystem.tokens.Green600 +import dev.love.winter.designsystem.tokens.Green800 +import dev.love.winter.designsystem.tokens.Green900 +import dev.love.winter.designsystem.tokens.Grey100 +import dev.love.winter.designsystem.tokens.Grey200 +import dev.love.winter.designsystem.tokens.Grey300 +import dev.love.winter.designsystem.tokens.Grey400 +import dev.love.winter.designsystem.tokens.Grey50 +import dev.love.winter.designsystem.tokens.Grey600 +import dev.love.winter.designsystem.tokens.Grey700 +import dev.love.winter.designsystem.tokens.Grey800 +import dev.love.winter.designsystem.tokens.Grey900 +import dev.love.winter.designsystem.tokens.IconBrandDark +import dev.love.winter.designsystem.tokens.IconBrandLight +import dev.love.winter.designsystem.tokens.IconDisabledDark +import dev.love.winter.designsystem.tokens.IconDisabledLight +import dev.love.winter.designsystem.tokens.IconNegativeDark +import dev.love.winter.designsystem.tokens.IconNegativeLight +import dev.love.winter.designsystem.tokens.IconNeutralDark +import dev.love.winter.designsystem.tokens.IconNeutralLight +import dev.love.winter.designsystem.tokens.IconNeutralStrongDark +import dev.love.winter.designsystem.tokens.IconNeutralStrongLight +import dev.love.winter.designsystem.tokens.IconNeutralSubtleDark +import dev.love.winter.designsystem.tokens.IconNeutralSubtleLight +import dev.love.winter.designsystem.tokens.IconOnColorDarkDark +import dev.love.winter.designsystem.tokens.IconOnColorDarkLight +import dev.love.winter.designsystem.tokens.IconOnColorLightDark +import dev.love.winter.designsystem.tokens.IconOnColorLightLight +import dev.love.winter.designsystem.tokens.IconOnContrastDark +import dev.love.winter.designsystem.tokens.IconOnContrastLight +import dev.love.winter.designsystem.tokens.IconPositiveDark +import dev.love.winter.designsystem.tokens.IconPositiveLight +import dev.love.winter.designsystem.tokens.IconWarningDark +import dev.love.winter.designsystem.tokens.IconWarningLight +import dev.love.winter.designsystem.tokens.InputActiveCursorDark +import dev.love.winter.designsystem.tokens.InputActiveCursorLight +import dev.love.winter.designsystem.tokens.InputActiveDark +import dev.love.winter.designsystem.tokens.InputActiveLight +import dev.love.winter.designsystem.tokens.InputDefaultDark +import dev.love.winter.designsystem.tokens.InputDefaultLight +import dev.love.winter.designsystem.tokens.InputDisabledDark +import dev.love.winter.designsystem.tokens.InputDisabledLight +import dev.love.winter.designsystem.tokens.InputNegativeDark +import dev.love.winter.designsystem.tokens.InputNegativeLight +import dev.love.winter.designsystem.tokens.InputPositiveDark +import dev.love.winter.designsystem.tokens.InputPositiveLight +import dev.love.winter.designsystem.tokens.InputSelectedDark +import dev.love.winter.designsystem.tokens.InputSelectedLight +import dev.love.winter.designsystem.tokens.Primary100 +import dev.love.winter.designsystem.tokens.Primary400 +import dev.love.winter.designsystem.tokens.Primary500 +import dev.love.winter.designsystem.tokens.Primary800 +import dev.love.winter.designsystem.tokens.Primary900 +import dev.love.winter.designsystem.tokens.Red100 +import dev.love.winter.designsystem.tokens.Red400 +import dev.love.winter.designsystem.tokens.Red500 +import dev.love.winter.designsystem.tokens.Red800 +import dev.love.winter.designsystem.tokens.Red900 +import dev.love.winter.designsystem.tokens.StrokeBrandDark +import dev.love.winter.designsystem.tokens.StrokeBrandLight +import dev.love.winter.designsystem.tokens.StrokeNegativeDark +import dev.love.winter.designsystem.tokens.StrokeNegativeLight +import dev.love.winter.designsystem.tokens.StrokeNeutralDark +import dev.love.winter.designsystem.tokens.StrokeNeutralLight +import dev.love.winter.designsystem.tokens.StrokeNeutralStrongDark +import dev.love.winter.designsystem.tokens.StrokeNeutralStrongLight +import dev.love.winter.designsystem.tokens.StrokeNeutralSubtleDark +import dev.love.winter.designsystem.tokens.StrokeNeutralSubtleLight +import dev.love.winter.designsystem.tokens.StrokePositiveDark +import dev.love.winter.designsystem.tokens.StrokePositiveLight +import dev.love.winter.designsystem.tokens.StrokeWarningDark +import dev.love.winter.designsystem.tokens.StrokeWarningLight +import dev.love.winter.designsystem.tokens.TagBrandStrongDark +import dev.love.winter.designsystem.tokens.TagBrandStrongLight +import dev.love.winter.designsystem.tokens.TagBrandSubtleDark +import dev.love.winter.designsystem.tokens.TagBrandSubtleLight +import dev.love.winter.designsystem.tokens.TagNegativeDark +import dev.love.winter.designsystem.tokens.TagNegativeLight +import dev.love.winter.designsystem.tokens.TagNeutralDark +import dev.love.winter.designsystem.tokens.TagNeutralLight +import dev.love.winter.designsystem.tokens.TagPositiveDark +import dev.love.winter.designsystem.tokens.TagPositiveLight +import dev.love.winter.designsystem.tokens.TagWarningDark +import dev.love.winter.designsystem.tokens.TagWarningLight +import dev.love.winter.designsystem.tokens.TextBodyDark +import dev.love.winter.designsystem.tokens.TextBodyLight +import dev.love.winter.designsystem.tokens.TextBrandDark +import dev.love.winter.designsystem.tokens.TextBrandLight +import dev.love.winter.designsystem.tokens.TextCaptionDark +import dev.love.winter.designsystem.tokens.TextCaptionLight +import dev.love.winter.designsystem.tokens.TextDisabledDark +import dev.love.winter.designsystem.tokens.TextDisabledLight +import dev.love.winter.designsystem.tokens.TextLinkDark +import dev.love.winter.designsystem.tokens.TextLinkLight +import dev.love.winter.designsystem.tokens.TextNegativeDark +import dev.love.winter.designsystem.tokens.TextNegativeLight +import dev.love.winter.designsystem.tokens.TextOnColorDarkDark +import dev.love.winter.designsystem.tokens.TextOnColorDarkLight +import dev.love.winter.designsystem.tokens.TextOnColorLightDark +import dev.love.winter.designsystem.tokens.TextOnColorLightLight +import dev.love.winter.designsystem.tokens.TextOnContrastDark +import dev.love.winter.designsystem.tokens.TextOnContrastLight +import dev.love.winter.designsystem.tokens.TextPlaceholderDark +import dev.love.winter.designsystem.tokens.TextPlaceholderLight +import dev.love.winter.designsystem.tokens.TextPositiveDark +import dev.love.winter.designsystem.tokens.TextPositiveLight +import dev.love.winter.designsystem.tokens.TextSubtitleDark +import dev.love.winter.designsystem.tokens.TextSubtitleLight +import dev.love.winter.designsystem.tokens.TextTitleDark +import dev.love.winter.designsystem.tokens.TextTitleLight +import dev.love.winter.designsystem.tokens.TextWarningDark +import dev.love.winter.designsystem.tokens.TextWarningLight + +@Immutable +data class Colors( + val background: Color, + val backgroundContainer: Color, + val backgroundObject: Color, + val backgroundModal: Color, + val backgroundBrand: Color, + val backgroundBrandSubtle: Color, + val backgroundPositive: Color, + val backgroundWarning: Color, + val backgroundNegative: Color, + val backgroundContrast: Color, + val backgroundDisabled: Color, + val backgroundOverlay: Color, + val strokeNeutralSubtle: Color, + val strokeNeutral: Color, + val strokeNeutralStrong: Color, + val strokeBrand: Color, + val strokePositive: Color, + val strokeWarning: Color, + val strokeNegative: Color, + val textTitle: Color, + val textSubtitle: Color, + val textBody: Color, + val textCaption: Color, + val textPlaceholder: Color, + val textDisabled: Color, + val textOnColorDark: Color, + val textOnColorLight: Color, + val textOnContrast: Color, + val textLink: Color, + val textBrand: Color, + val textPositive: Color, + val textWarning: Color, + val textNegative: Color, + val iconNeutralSubtle: Color, + val iconNeutral: Color, + val iconNeutralStrong: Color, + val iconBrand: Color, + val iconPositive: Color, + val iconWarning: Color, + val iconNegative: Color, + val iconOnColorDark: Color, + val iconOnColorLight: Color, + val iconOnContrast: Color, + val iconDisabled: Color, + val buttonPrimaryDefault: Color, + val buttonPrimaryActive: Color, + val buttonPrimaryDisabled: Color, + val buttonSecondaryDefault: Color, + val buttonSecondaryActive: Color, + val buttonSecondaryDisabled: Color, + val buttonTertiaryDefault: Color, + val buttonTertiaryActive: Color, + val buttonTertiaryDisabled: Color, + val buttonBrandDefault: Color, + val buttonBrandActive: Color, + val buttonBrandDisabled: Color, + val buttonCriticalDefault: Color, + val buttonCriticalActive: Color, + val buttonCriticalDisabled: Color, + val inputDefault: Color, + val inputActive: Color, + val inputActiveCursor: Color, + val inputSelected: Color, + val inputPositive: Color, + val inputNegative: Color, + val inputDisabled: Color, + val tagNeutral: Color, + val tagBrandStrong: Color, + val tagBrandSubtle: Color, + val tagPositive: Color, + val tagWarning: Color, + val tagNegative: Color, +) + + +internal val MaterialLightColorTheme = lightColorScheme( + primary = Primary500, + onPrimary = Color.White, + primaryContainer = Primary100, + onPrimaryContainer = Primary900, + secondary = Grey600, + onSecondary = Color.White, + secondaryContainer = Grey200, + onSecondaryContainer = Grey900, + tertiary = Green600, + onTertiary = Color.White, + tertiaryContainer = Green100, + onTertiaryContainer = Green900, + error = Red500, + onError = Color.White, + errorContainer = Red100, + onErrorContainer = Red900, + background = Grey50, + onBackground = Grey900, + surface = Grey100, + onSurface = Grey900, + surfaceVariant = Grey200, + onSurfaceVariant = Grey700, + outline = Grey400, + outlineVariant = Grey300, + scrim = Grey900, +) + +internal val MaterialDarkColorTheme = darkColorScheme( + primary = Primary400, + onPrimary = Primary900, + primaryContainer = Primary800, + onPrimaryContainer = Primary100, + secondary = Grey400, + onSecondary = Grey900, + secondaryContainer = Grey700, + onSecondaryContainer = Grey100, + tertiary = Green400, + onTertiary = Green900, + tertiaryContainer = Green800, + onTertiaryContainer = Green100, + error = Red400, + onError = Red900, + errorContainer = Red800, + onErrorContainer = Red100, + background = Grey900, + onBackground = Grey50, + surface = Grey800, + onSurface = Grey50, + surfaceVariant = Grey700, + onSurfaceVariant = Grey300, + outline = Grey600, + outlineVariant = Grey700, + scrim = Grey900, +) + +internal val LightColorTheme = Colors( + background = BackgroundLight, + backgroundContainer = BackgroundContainerLight, + backgroundObject = BackgroundObjectLight, + backgroundModal = BackgroundModalLight, + backgroundBrand = BackgroundBrandLight, + backgroundBrandSubtle = BackgroundBrandSubtleLight, + backgroundPositive = BackgroundPositiveLight, + backgroundWarning = BackgroundWarningLight, + backgroundNegative = BackgroundNegativeLight, + backgroundContrast = BackgroundContrastLight, + backgroundDisabled = BackgroundDisabledLight, + backgroundOverlay = BackgroundOverlayLight, + strokeNeutralSubtle = StrokeNeutralSubtleLight, + strokeNeutral = StrokeNeutralLight, + strokeNeutralStrong = StrokeNeutralStrongLight, + strokeBrand = StrokeBrandLight, + strokePositive = StrokePositiveLight, + strokeWarning = StrokeWarningLight, + strokeNegative = StrokeNegativeLight, + textTitle = TextTitleLight, + textSubtitle = TextSubtitleLight, + textBody = TextBodyLight, + textCaption = TextCaptionLight, + textPlaceholder = TextPlaceholderLight, + textDisabled = TextDisabledLight, + textOnColorDark = TextOnColorDarkLight, + textOnColorLight = TextOnColorLightLight, + textOnContrast = TextOnContrastLight, + textLink = TextLinkLight, + textBrand = TextBrandLight, + textPositive = TextPositiveLight, + textWarning = TextWarningLight, + textNegative = TextNegativeLight, + iconNeutralSubtle = IconNeutralSubtleLight, + iconNeutral = IconNeutralLight, + iconNeutralStrong = IconNeutralStrongLight, + iconBrand = IconBrandLight, + iconPositive = IconPositiveLight, + iconWarning = IconWarningLight, + iconNegative = IconNegativeLight, + iconOnColorDark = IconOnColorDarkLight, + iconOnColorLight = IconOnColorLightLight, + iconOnContrast = IconOnContrastLight, + iconDisabled = IconDisabledLight, + buttonPrimaryDefault = ButtonPrimaryDefaultLight, + buttonPrimaryActive = ButtonPrimaryActiveLight, + buttonPrimaryDisabled = ButtonPrimaryDisabledLight, + buttonSecondaryDefault = ButtonSecondaryDefaultLight, + buttonSecondaryActive = ButtonSecondaryActiveLight, + buttonSecondaryDisabled = ButtonSecondaryDisabledLight, + buttonTertiaryDefault = ButtonTertiaryDefaultLight, + buttonTertiaryActive = ButtonTertiaryActiveLight, + buttonTertiaryDisabled = ButtonTertiaryDisabledLight, + buttonBrandDefault = ButtonBrandDefaultLight, + buttonBrandActive = ButtonBrandActiveLight, + buttonBrandDisabled = ButtonBrandDisabledLight, + buttonCriticalDefault = ButtonCriticalDefaultLight, + buttonCriticalActive = ButtonCriticalActiveLight, + buttonCriticalDisabled = ButtonCriticalDisabledLight, + inputDefault = InputDefaultLight, + inputActive = InputActiveLight, + inputActiveCursor = InputActiveCursorLight, + inputSelected = InputSelectedLight, + inputPositive = InputPositiveLight, + inputNegative = InputNegativeLight, + inputDisabled = InputDisabledLight, + tagNeutral = TagNeutralLight, + tagBrandStrong = TagBrandStrongLight, + tagBrandSubtle = TagBrandSubtleLight, + tagPositive = TagPositiveLight, + tagWarning = TagWarningLight, + tagNegative = TagNegativeLight, +) + +internal val DarkColorTheme = Colors( + background = BackgroundDark, + backgroundContainer = BackgroundContainerDark, + backgroundObject = BackgroundObjectDark, + backgroundModal = BackgroundModalDark, + backgroundBrand = BackgroundBrandDark, + backgroundBrandSubtle = BackgroundBrandSubtleDark, + backgroundPositive = BackgroundPositiveDark, + backgroundWarning = BackgroundWarningDark, + backgroundNegative = BackgroundNegativeDark, + backgroundContrast = BackgroundContrastDark, + backgroundDisabled = BackgroundDisabledDark, + backgroundOverlay = BackgroundOverlayDark, + strokeNeutralSubtle = StrokeNeutralSubtleDark, + strokeNeutral = StrokeNeutralDark, + strokeNeutralStrong = StrokeNeutralStrongDark, + strokeBrand = StrokeBrandDark, + strokePositive = StrokePositiveDark, + strokeWarning = StrokeWarningDark, + strokeNegative = StrokeNegativeDark, + textTitle = TextTitleDark, + textSubtitle = TextSubtitleDark, + textBody = TextBodyDark, + textCaption = TextCaptionDark, + textPlaceholder = TextPlaceholderDark, + textDisabled = TextDisabledDark, + textOnColorDark = TextOnColorDarkDark, + textOnColorLight = TextOnColorLightDark, + textOnContrast = TextOnContrastDark, + textLink = TextLinkDark, + textBrand = TextBrandDark, + textPositive = TextPositiveDark, + textWarning = TextWarningDark, + textNegative = TextNegativeDark, + iconNeutralSubtle = IconNeutralSubtleDark, + iconNeutral = IconNeutralDark, + iconNeutralStrong = IconNeutralStrongDark, + iconBrand = IconBrandDark, + iconPositive = IconPositiveDark, + iconWarning = IconWarningDark, + iconNegative = IconNegativeDark, + iconOnColorDark = IconOnColorDarkDark, + iconOnColorLight = IconOnColorLightDark, + iconOnContrast = IconOnContrastDark, + iconDisabled = IconDisabledDark, + buttonPrimaryDefault = ButtonPrimaryDefaultDark, + buttonPrimaryActive = ButtonPrimaryActiveDark, + buttonPrimaryDisabled = ButtonPrimaryDisabledDark, + buttonSecondaryDefault = ButtonSecondaryDefaultDark, + buttonSecondaryActive = ButtonSecondaryActiveDark, + buttonSecondaryDisabled = ButtonSecondaryDisabledDark, + buttonTertiaryDefault = ButtonTertiaryDefaultDark, + buttonTertiaryActive = ButtonTertiaryActiveDark, + buttonTertiaryDisabled = ButtonTertiaryDisabledDark, + buttonBrandDefault = ButtonBrandDefaultDark, + buttonBrandActive = ButtonBrandActiveDark, + buttonBrandDisabled = ButtonBrandDisabledDark, + buttonCriticalDefault = ButtonCriticalDefaultDark, + buttonCriticalActive = ButtonCriticalActiveDark, + buttonCriticalDisabled = ButtonCriticalDisabledDark, + inputDefault = InputDefaultDark, + inputActive = InputActiveDark, + inputActiveCursor = InputActiveCursorDark, + inputSelected = InputSelectedDark, + inputPositive = InputPositiveDark, + inputNegative = InputNegativeDark, + inputDisabled = InputDisabledDark, + tagNeutral = TagNeutralDark, + tagBrandStrong = TagBrandStrongDark, + tagBrandSubtle = TagBrandSubtleDark, + tagPositive = TagPositiveDark, + tagWarning = TagWarningDark, + tagNegative = TagNegativeDark, +) + +internal val LocalColors = staticCompositionLocalOf { + LightColorTheme +} diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Icon.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Icon.kt new file mode 100644 index 0000000..1f0010f --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Icon.kt @@ -0,0 +1,297 @@ +package dev.love.winter.designsystem.theme + +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.staticCompositionLocalOf +import dev.love.winter.designsystem.R +import dev.love.winter.designsystem.tokens.DateTimeIcon +import dev.love.winter.designsystem.tokens.GlobalIcon +import dev.love.winter.designsystem.tokens.IconResource +import dev.love.winter.designsystem.tokens.InputIcon +import dev.love.winter.designsystem.tokens.LocationIcon +import dev.love.winter.designsystem.tokens.LogoIcon +import dev.love.winter.designsystem.tokens.MessageIcon +import dev.love.winter.designsystem.tokens.NavigationIcon +import dev.love.winter.designsystem.tokens.NotificationIcon +import dev.love.winter.designsystem.tokens.PurchaseIcon + +@Immutable +data class Icon( + val global: GlobalIcon, + val navigation: NavigationIcon, + val input: InputIcon, + val dateTime: DateTimeIcon, + val message: MessageIcon, + val purchase: PurchaseIcon, + val location: LocationIcon, + val notification: NotificationIcon, + val logo: LogoIcon, +) + +internal val IconTheme = Icon( + global = GlobalIcon( + home = IconResource( + filled = R.drawable.ic_home_filled, + outlined = R.drawable.ic_home_outlined, + ), + settings = IconResource( + filled = R.drawable.ic_settings_filled, + outlined = R.drawable.ic_settings_outlined, + ), + profile = IconResource( + filled = R.drawable.ic_profile_filled, + outlined = R.drawable.ic_profile_outlined, + ), + highlights = IconResource( + filled = R.drawable.ic_highlights_filled, + outlined = R.drawable.ic_highlights_outlined, + ), + notification = IconResource( + filled = R.drawable.ic_notification_filled, + outlined = R.drawable.ic_notification_outlined, + ), + search = IconResource( + filled = R.drawable.ic_search, + outlined = R.drawable.ic_search, + ), + ), + navigation = NavigationIcon( + arrowUp = IconResource( + filled = R.drawable.ic_arrow_up, + outlined = R.drawable.ic_arrow_up, + ), + arrowDown = IconResource( + filled = R.drawable.ic_arrow_down, + outlined = R.drawable.ic_arrow_down, + ), + arrowLeft = IconResource( + filled = R.drawable.ic_arrow_left, + outlined = R.drawable.ic_arrow_left, + ), + arrowRight = IconResource( + filled = R.drawable.ic_arrow_right, + outlined = R.drawable.ic_arrow_right, + ), + arrowUpRight = IconResource( + filled = R.drawable.ic_arrow_up_right, + outlined = R.drawable.ic_arrow_up_right, + ), + chevronUp = IconResource( + filled = R.drawable.ic_chevron_up, + outlined = R.drawable.ic_chevron_up, + ), + chevronDown = IconResource( + filled = R.drawable.ic_chevron_down, + outlined = R.drawable.ic_chevron_down, + ), + chevronLeft = IconResource( + filled = R.drawable.ic_chevron_left, + outlined = R.drawable.ic_chevron_left, + ), + chevronRight = IconResource( + filled = R.drawable.ic_chevron_right, + outlined = R.drawable.ic_chevron_right, + ), + close = IconResource( + filled = R.drawable.ic_close, + outlined = R.drawable.ic_close, + ), + filter = IconResource( + filled = R.drawable.ic_filter_filled, + outlined = R.drawable.ic_filter_outlined, + ), + sort = IconResource( + filled = R.drawable.ic_sort, + outlined = R.drawable.ic_sort, + ), + logout = IconResource( + filled = R.drawable.ic_logout, + outlined = R.drawable.ic_logout, + ), + menu = IconResource( + filled = R.drawable.ic_menu_filled, + outlined = R.drawable.ic_menu_outlined, + ), + menuHamburger = IconResource( + filled = R.drawable.ic_menu_hamburger, + outlined = R.drawable.ic_menu_hamburger, + ), + more = IconResource( + filled = R.drawable.ic_more, + outlined = R.drawable.ic_more, + ), + link = IconResource( + filled = R.drawable.ic_link, + outlined = R.drawable.ic_link, + ), + ), + input = InputIcon( + edit = IconResource( + filled = R.drawable.ic_edit_filled, + outlined = R.drawable.ic_edit_outlined, + ), + delete = IconResource( + filled = R.drawable.ic_delete_filled, + outlined = R.drawable.ic_delete_outlined, + ), + plus = IconResource( + filled = R.drawable.ic_plus, + outlined = R.drawable.ic_plus, + ), + minus = IconResource( + filled = R.drawable.ic_minus, + outlined = R.drawable.ic_minus, + ), + check = IconResource( + filled = R.drawable.ic_check, + outlined = R.drawable.ic_check, + ), + eye = IconResource( + filled = R.drawable.ic_eye_filled, + outlined = R.drawable.ic_eye_outlined, + ), + eyeOff = IconResource( + filled = R.drawable.ic_eye_off_filled, + outlined = R.drawable.ic_eye_off_outlined, + ), + heart = IconResource( + filled = R.drawable.ic_heart_filled, + outlined = R.drawable.ic_heart_outlined, + ), + star = IconResource( + filled = R.drawable.ic_star_filled, + outlined = R.drawable.ic_star_outlined, + ), + bookmark = IconResource( + filled = R.drawable.ic_bookmark_filled, + outlined = R.drawable.ic_bookmark_outlined, + ), + download = IconResource( + filled = R.drawable.ic_download, + outlined = R.drawable.ic_download, + ), + upload = IconResource( + filled = R.drawable.ic_upload, + outlined = R.drawable.ic_upload, + ), + ), + dateTime = DateTimeIcon( + calendar = IconResource( + filled = R.drawable.ic_calendar_filled, + outlined = R.drawable.ic_calendar_outlined, + ), + calendarDays = IconResource( + filled = R.drawable.ic_calendar_days_filled, + outlined = R.drawable.ic_calendar_days_outlined, + ), + clock = IconResource( + filled = R.drawable.ic_clock_filled, + outlined = R.drawable.ic_clock_outlined, + ), + ), + message = MessageIcon( + send = IconResource( + filled = R.drawable.ic_send_filled, + outlined = R.drawable.ic_send_outlined, + ), + chat = IconResource( + filled = R.drawable.ic_chat_filled, + outlined = R.drawable.ic_chat_outlined, + ), + mail = IconResource( + filled = R.drawable.ic_mail_filled, + outlined = R.drawable.ic_mail_outlined, + ), + archive = IconResource( + filled = R.drawable.ic_archive_filled, + outlined = R.drawable.ic_archive_outlined, + ), + camera = IconResource( + filled = R.drawable.ic_camera_filled, + outlined = R.drawable.ic_camera_outlined, + ), + paperclip = IconResource( + filled = R.drawable.ic_paperclip, + outlined = R.drawable.ic_paperclip, + ), + microphone = IconResource( + filled = R.drawable.ic_microphone_filled, + outlined = R.drawable.ic_microphone_outlined, + ), + ), + purchase = PurchaseIcon( + bag = IconResource( + filled = R.drawable.ic_bag_filled, + outlined = R.drawable.ic_bag_outlined, + ), + cart = IconResource( + filled = R.drawable.ic_cart_filled, + outlined = R.drawable.ic_cart_outlined, + ), + tag = IconResource( + filled = R.drawable.ic_tag_filled, + outlined = R.drawable.ic_tag_outlined, + ), + creditCard = IconResource( + filled = R.drawable.ic_credit_card_filled, + outlined = R.drawable.ic_credit_card_outlined, + ), + wallet = IconResource( + filled = R.drawable.ic_wallet_filled, + outlined = R.drawable.ic_wallet_outlined, + ), + ), + location = LocationIcon( + map = IconResource( + filled = R.drawable.ic_map_filled, + outlined = R.drawable.ic_map_outlined, + ), + mapPin = IconResource( + filled = R.drawable.ic_map_pin_filled, + outlined = R.drawable.ic_map_pin_outlined, + ), + navigation = IconResource( + filled = R.drawable.ic_navigation_filled, + outlined = R.drawable.ic_navigation_outlined, + ), + globe = IconResource( + filled = R.drawable.ic_globe_filled, + outlined = R.drawable.ic_globe_outlined, + ), + ), + notification = NotificationIcon( + info = IconResource( + filled = R.drawable.ic_info_filled, + outlined = R.drawable.ic_info_outlined, + ), + success = IconResource( + filled = R.drawable.ic_success_filled, + outlined = R.drawable.ic_success_outlined, + ), + warning = IconResource( + filled = R.drawable.ic_warning_filled, + outlined = R.drawable.ic_warning_outlined, + ), + error = IconResource( + filled = R.drawable.ic_error_filled, + outlined = R.drawable.ic_error_outlined, + ), + ), + logo = LogoIcon( + google = IconResource( + filled = R.drawable.ic_logo_google, + outlined = R.drawable.ic_logo_google, + ), + facebook = IconResource( + filled = R.drawable.ic_logo_facebook, + outlined = R.drawable.ic_logo_facebook, + ), + apple = IconResource( + filled = R.drawable.ic_logo_apple, + outlined = R.drawable.ic_logo_apple, + ), + ), +) + +internal val LocalIcons = staticCompositionLocalOf { + IconTheme +} diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Spacing.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Spacing.kt new file mode 100644 index 0000000..65f2db4 --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Spacing.kt @@ -0,0 +1,37 @@ +package dev.love.winter.designsystem.theme + +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.unit.Dp +import dev.love.winter.designsystem.tokens.SpacingExtraExtraLarge +import dev.love.winter.designsystem.tokens.SpacingExtraExtraSmall +import dev.love.winter.designsystem.tokens.SpacingExtraLarge +import dev.love.winter.designsystem.tokens.SpacingExtraSmall +import dev.love.winter.designsystem.tokens.SpacingLarge +import dev.love.winter.designsystem.tokens.SpacingMedium +import dev.love.winter.designsystem.tokens.SpacingSmall + +@Immutable +data class Spacing( + val extraExtraSmall: Dp, + val extraSmall: Dp, + val small: Dp, + val medium: Dp, + val large: Dp, + val extraLarge: Dp, + val extraExtraLarge: Dp, +) + +internal val SpacingTheme = Spacing( + extraExtraSmall = SpacingExtraExtraSmall, + extraSmall = SpacingExtraSmall, + small = SpacingSmall, + medium = SpacingMedium, + large = SpacingLarge, + extraLarge = SpacingExtraLarge, + extraExtraLarge = SpacingExtraExtraLarge, +) + +internal val LocalSpacing = staticCompositionLocalOf { + SpacingTheme +} diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Theme.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Theme.kt new file mode 100644 index 0000000..d269e08 --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Theme.kt @@ -0,0 +1,62 @@ +package dev.love.winter.designsystem.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.ColorScheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.compositionLocalOf + +internal val LocalDarkTheme = compositionLocalOf { false } + +@Composable +fun WinterTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + content: @Composable () -> Unit, +) { + val designSystemColorTheme: Colors = if (darkTheme) { + DarkColorTheme + } else { + LightColorTheme + } + val materialColorScheme: ColorScheme = if (darkTheme) { + MaterialDarkColorTheme + } else { + MaterialLightColorTheme + } + CompositionLocalProvider( + LocalDarkTheme provides darkTheme, + LocalColors provides designSystemColorTheme, + LocalTypography provides TypographyTheme, + LocalSpacing provides SpacingTheme, + LocalBorderRadius provides BorderRadiusTheme, + LocalIcons provides IconTheme, + ) { + MaterialTheme( + colorScheme = materialColorScheme, + content = content, + ) + } +} + +object WinterTheme { + val color: Colors + @Composable + get() = LocalColors.current + + val typography: Typography + @Composable + get() = LocalTypography.current + + val spacing: Spacing + @Composable + get() = LocalSpacing.current + + val borderRadius: BorderRadius + @Composable + get() = LocalBorderRadius.current + + val icon: Icon + @Composable + get() = LocalIcons.current +} diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Typography.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Typography.kt new file mode 100644 index 0000000..8fc7dfd --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/theme/Typography.kt @@ -0,0 +1,67 @@ +package dev.love.winter.designsystem.theme + +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.text.TextStyle +import dev.love.winter.designsystem.tokens.ActionLarge +import dev.love.winter.designsystem.tokens.ActionMedium +import dev.love.winter.designsystem.tokens.ActionSmall +import dev.love.winter.designsystem.tokens.BodyExtraLarge +import dev.love.winter.designsystem.tokens.BodyExtraSmall +import dev.love.winter.designsystem.tokens.BodyLarge +import dev.love.winter.designsystem.tokens.BodyMedium +import dev.love.winter.designsystem.tokens.BodySmall +import dev.love.winter.designsystem.tokens.CaptionLarge +import dev.love.winter.designsystem.tokens.CaptionMedium +import dev.love.winter.designsystem.tokens.CaptionSmall +import dev.love.winter.designsystem.tokens.FontLarge +import dev.love.winter.designsystem.tokens.FontMedium +import dev.love.winter.designsystem.tokens.FontSmall +import dev.love.winter.designsystem.tokens.TitleLarge +import dev.love.winter.designsystem.tokens.TitleMedium +import dev.love.winter.designsystem.tokens.TitleSmall + +@Immutable +data class Typography( + val displayLarge: TextStyle, + val displayMedium: TextStyle, + val displaySmall: TextStyle, + val titleLarge: TextStyle, + val titleMedium: TextStyle, + val titleSmall: TextStyle, + val bodyExtraLarge: TextStyle, + val bodyLarge: TextStyle, + val bodyMedium: TextStyle, + val bodySmall: TextStyle, + val bodyExtraSmall: TextStyle, + val actionLarge: TextStyle, + val actionMedium: TextStyle, + val actionSmall: TextStyle, + val captionLarge: TextStyle, + val captionMedium: TextStyle, + val captionSmall: TextStyle, +) + +internal val TypographyTheme = Typography( + displayLarge = FontLarge, + displayMedium = FontMedium, + displaySmall = FontSmall, + titleLarge = TitleLarge, + titleMedium = TitleMedium, + titleSmall = TitleSmall, + bodyExtraLarge = BodyExtraLarge, + bodyLarge = BodyLarge, + bodyMedium = BodyMedium, + bodySmall = BodySmall, + bodyExtraSmall = BodyExtraSmall, + actionLarge = ActionLarge, + actionMedium = ActionMedium, + actionSmall = ActionSmall, + captionLarge = CaptionLarge, + captionMedium = CaptionMedium, + captionSmall = CaptionSmall, +) + +internal val LocalTypography = staticCompositionLocalOf { + TypographyTheme +} diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/BorderRadiusToken.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/BorderRadiusToken.kt new file mode 100644 index 0000000..1e1a798 --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/BorderRadiusToken.kt @@ -0,0 +1,28 @@ +package dev.love.winter.designsystem.tokens + +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.ui.unit.dp + +/** + * Border radius tokens + * + * Border radius tokens are applied to elements with rounded corners, + * such as buttons, cards, input fields, and containers, to soften their edges + * and create a more pleasing appearance. + * + * Usage guidelines: + * - Extra Small: Very subtle rounded corners + * - Small: Smallest elements or nested components + * - Medium: Most components, small-to-medium components and containers + * - Large: Medium-to-large components and containers + * - Extra Large: Biggest elements, especially on tablet screens + * - Pill: Components that are completely rounded on their sides + */ + +internal val BorderRadiusExtraSmall = RoundedCornerShape(2.dp) +internal val BorderRadiusSmall = RoundedCornerShape(4.dp) +internal val BorderRadiusMedium = RoundedCornerShape(8.dp) +internal val BorderRadiusLarge = RoundedCornerShape(16.dp) +internal val BorderRadiusExtraLarge = RoundedCornerShape(24.dp) +internal val BorderRadiusPill = CircleShape diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/ColorToken.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/ColorToken.kt new file mode 100644 index 0000000..7c58bd9 --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/ColorToken.kt @@ -0,0 +1,275 @@ +package dev.love.winter.designsystem.tokens + +import androidx.compose.ui.graphics.Color + +// Brand - Primary +internal val Primary50 = Color(0xFFF1F1FF) +internal val Primary100 = Color(0xFFDBDFFF) +internal val Primary200 = Color(0xFFC1C8FF) +internal val Primary300 = Color(0xFF9397FF) +internal val Primary400 = Color(0xFF7278FF) +internal val Primary500 = Color(0xFF5653FF) +internal val Primary600 = Color(0xFF4745E4) +internal val Primary700 = Color(0xFF3B39AF) +internal val Primary800 = Color(0xFF2B2A85) +internal val Primary900 = Color(0xFF131243) + +// Blue (Use when brand color is no longer blue) +internal val Blue50 = Color(0xFFF1F1FF) +internal val Blue100 = Color(0xFFDBDFFF) +internal val Blue200 = Color(0xFFC1C8FF) +internal val Blue300 = Color(0xFF9397FF) +internal val Blue400 = Color(0xFF7278FF) +internal val Blue500 = Color(0xFF5653FF) +internal val Blue600 = Color(0xFF4745E4) +internal val Blue700 = Color(0xFF3B39AF) +internal val Blue800 = Color(0xFF2B2A85) +internal val Blue900 = Color(0xFF131243) + +// Neutral - Grey +internal val Grey50 = Color(0xFFFDFDFD) +internal val Grey100 = Color(0xFFF4F4F5) +internal val Grey200 = Color(0xFFE7E7EA) +internal val Grey300 = Color(0xFFD9D9DC) +internal val Grey400 = Color(0xFFBFC0C9) +internal val Grey500 = Color(0xFF8D8F9B) +internal val Grey600 = Color(0xFF60626C) +internal val Grey700 = Color(0xFF484951) +internal val Grey800 = Color(0xFF313237) +internal val Grey900 = Color(0xFF18181B) + +// Semantic - Green +internal val Green50 = Color(0xFFECFAF3) +internal val Green100 = Color(0xFFC3EEDB) +internal val Green200 = Color(0xFFA5E6CA) +internal val Green300 = Color(0xFF7CDAB1) +internal val Green400 = Color(0xFF63D3A2) +internal val Green500 = Color(0xFF3CC88B) +internal val Green600 = Color(0xFF37B67E) +internal val Green700 = Color(0xFF247E57) +internal val Green800 = Color(0xFF115B3A) +internal val Green900 = Color(0xFF0F3122) + +// Semantic - Yellow +internal val Yellow50 = Color(0xFFFFF7E9) +internal val Yellow100 = Color(0xFFFFEAC7) +internal val Yellow200 = Color(0xFFFFDA9A) +internal val Yellow300 = Color(0xFFFFCD78) +internal val Yellow400 = Color(0xFFFFBD49) +internal val Yellow500 = Color(0xFFFFAF24) +internal val Yellow600 = Color(0xFFF2A522) +internal val Yellow700 = Color(0xFFC7881A) +internal val Yellow800 = Color(0xFF825911) +internal val Yellow900 = Color(0xFF4A340E) + +// Semantic - Red +internal val Red50 = Color(0xFFFCEBEB) +internal val Red100 = Color(0xFFFFD7D7) +internal val Red200 = Color(0xFFF2A1A1) +internal val Red300 = Color(0xFFEC7676) +internal val Red400 = Color(0xFFE85B5B) +internal val Red500 = Color(0xFFE23232) +internal val Red600 = Color(0xFFCE2E2E) +internal val Red700 = Color(0xFFA02424) +internal val Red800 = Color(0xFF6C1A1A) +internal val Red900 = Color(0xFF401111) + +/** + * Component Token - Background (Light Theme) + */ +internal val BackgroundLight = Grey50 +internal val BackgroundContainerLight = Grey100 +internal val BackgroundObjectLight = Grey200 +internal val BackgroundModalLight = Grey50 +internal val BackgroundBrandLight = Primary500 +internal val BackgroundBrandSubtleLight = Primary50 +internal val BackgroundPositiveLight = Green50 +internal val BackgroundWarningLight = Yellow50 +internal val BackgroundNegativeLight = Red50 +internal val BackgroundContrastLight = Grey900 +internal val BackgroundDisabledLight = Grey100 +internal val BackgroundOverlayLight = Grey900.copy(alpha = 0.5f) + +/** + * Component Token - Background (Dark Theme) + */ +internal val BackgroundDark = Grey900 +internal val BackgroundContainerDark = Grey800 +internal val BackgroundObjectDark = Grey700 +internal val BackgroundModalDark = Grey800 +internal val BackgroundBrandDark = Primary500 +internal val BackgroundBrandSubtleDark = Primary900 +internal val BackgroundPositiveDark = Green900 +internal val BackgroundWarningDark = Yellow900 +internal val BackgroundNegativeDark = Red900 +internal val BackgroundContrastDark = Grey50 +internal val BackgroundDisabledDark = Grey800 +internal val BackgroundOverlayDark = Grey900.copy(alpha = 0.7f) + +/** + * Component Token - Stroke (Light Theme) + */ +internal val StrokeNeutralSubtleLight = Grey100 +internal val StrokeNeutralLight = Grey200 +internal val StrokeNeutralStrongLight = Grey300 +internal val StrokeBrandLight = Primary500 +internal val StrokePositiveLight = Green500 +internal val StrokeWarningLight = Yellow500 +internal val StrokeNegativeLight = Red500 + +/** + * Component Token - Stroke (Dark Theme) + */ +internal val StrokeNeutralSubtleDark = Grey800 +internal val StrokeNeutralDark = Grey700 +internal val StrokeNeutralStrongDark = Grey600 +internal val StrokeBrandDark = Primary600 +internal val StrokePositiveDark = Green600 +internal val StrokeWarningDark = Yellow600 +internal val StrokeNegativeDark = Red600 + +/** + * Component Token - Text (Light Theme) + */ +internal val TextTitleLight = Grey900 +internal val TextSubtitleLight = Grey700 +internal val TextBodyLight = Grey800 +internal val TextCaptionLight = Grey600 +internal val TextPlaceholderLight = Grey500 +internal val TextDisabledLight = Grey400 +internal val TextOnColorDarkLight = Grey50 +internal val TextOnColorLightLight = Grey900 +internal val TextOnContrastLight = Grey50 +internal val TextLinkLight = Primary600 +internal val TextBrandLight = Primary500 +internal val TextPositiveLight = Green200 +internal val TextWarningLight = Yellow700 +internal val TextNegativeLight = Red600 + +/** + * Component Token - Text (Dark Theme) + */ +internal val TextTitleDark = Grey50 +internal val TextSubtitleDark = Grey200 +internal val TextBodyDark = Grey100 +internal val TextCaptionDark = Grey300 +internal val TextPlaceholderDark = Grey500 +internal val TextDisabledDark = Grey600 +internal val TextOnColorDarkDark = Grey50 +internal val TextOnColorLightDark = Grey900 +internal val TextOnContrastDark = Grey900 +internal val TextLinkDark = Primary300 +internal val TextBrandDark = Primary500 +internal val TextPositiveDark = Green700 +internal val TextWarningDark = Yellow200 +internal val TextNegativeDark = Red200 + +/** + * Component Token - Icon (Light Theme) + */ +internal val IconNeutralSubtleLight = Grey500 +internal val IconNeutralLight = Grey600 +internal val IconNeutralStrongLight = Grey900 +internal val IconBrandLight = Primary500 +internal val IconPositiveLight = Green600 +internal val IconWarningLight = Yellow600 +internal val IconNegativeLight = Red600 +internal val IconOnColorDarkLight = Grey50 +internal val IconOnColorLightLight = Grey900 +internal val IconOnContrastLight = Grey50 +internal val IconDisabledLight = Grey400 + +/** + * Component Token - Icon (Dark Theme) + */ +internal val IconNeutralSubtleDark = Grey500 +internal val IconNeutralDark = Grey300 +internal val IconNeutralStrongDark = Grey300 +internal val IconBrandDark = Primary500 +internal val IconPositiveDark = Green600 +internal val IconWarningDark = Yellow500 +internal val IconNegativeDark = Red500 +internal val IconOnColorDarkDark = Grey50 +internal val IconOnColorLightDark = Grey900 +internal val IconOnContrastDark = Grey900 +internal val IconDisabledDark = Grey600 + +/** + * Component Token - Button (Light Theme) + */ +internal val ButtonPrimaryDefaultLight = Grey900 +internal val ButtonPrimaryActiveLight = Grey800 +internal val ButtonPrimaryDisabledLight = Grey100 +internal val ButtonSecondaryDefaultLight = Grey600 +internal val ButtonSecondaryActiveLight = Grey700 +internal val ButtonSecondaryDisabledLight = Grey800 +internal val ButtonTertiaryDefaultLight = Grey900 +internal val ButtonTertiaryActiveLight = Grey700 +internal val ButtonTertiaryDisabledLight = Grey400 +internal val ButtonBrandDefaultLight = Primary500 +internal val ButtonBrandActiveLight = Primary600 +internal val ButtonBrandDisabledLight = Grey100 +internal val ButtonCriticalDefaultLight = Red600 +internal val ButtonCriticalActiveLight = Red700 +internal val ButtonCriticalDisabledLight = Grey100 + +/** + * Component Token - Button (Dark Theme) + */ +internal val ButtonPrimaryDefaultDark = Grey50 +internal val ButtonPrimaryActiveDark = Grey200 +internal val ButtonPrimaryDisabledDark = Grey800 +internal val ButtonSecondaryDefaultDark = Grey300 +internal val ButtonSecondaryActiveDark = Grey400 +internal val ButtonSecondaryDisabledDark = Grey100 +internal val ButtonTertiaryDefaultDark = Grey50 +internal val ButtonTertiaryActiveDark = Grey300 +internal val ButtonTertiaryDisabledDark = Grey600 +internal val ButtonBrandDefaultDark = Primary500 +internal val ButtonBrandActiveDark = Primary600 +internal val ButtonBrandDisabledDark = Grey800 +internal val ButtonCriticalDefaultDark = Red600 +internal val ButtonCriticalActiveDark = Red700 +internal val ButtonCriticalDisabledDark = Grey800 + +/** + * Component Token - Input (Light Theme) + */ +internal val InputDefaultLight = Grey300 +internal val InputActiveLight = Grey300 +internal val InputActiveCursorLight = Primary500 +internal val InputSelectedLight = Grey900 +internal val InputPositiveLight = Green500 +internal val InputNegativeLight = Red500 +internal val InputDisabledLight = Grey300 + +/** + * Component Token - Input (Dark Theme) + */ +internal val InputDefaultDark = Grey700 +internal val InputActiveDark = Primary500 +internal val InputActiveCursorDark = Primary200 +internal val InputSelectedDark = Grey50 +internal val InputPositiveDark = Green300 +internal val InputNegativeDark = Red300 +internal val InputDisabledDark = Grey700 + +/** + * Component Token - Tag (Light Theme) + */ +internal val TagNeutralLight = Grey200 +internal val TagBrandStrongLight = Primary500 +internal val TagBrandSubtleLight = Primary100 +internal val TagPositiveLight = Green100 +internal val TagWarningLight = Yellow100 +internal val TagNegativeLight = Red100 + +/** + * Component Token - Tag (Dark Theme) + */ +internal val TagNeutralDark = Grey700 +internal val TagBrandStrongDark = Primary600 +internal val TagBrandSubtleDark = Primary100 +internal val TagPositiveDark = Green100 +internal val TagWarningDark = Yellow100 +internal val TagNegativeDark = Red100 diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/IconToken.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/IconToken.kt new file mode 100644 index 0000000..d9a1f47 --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/IconToken.kt @@ -0,0 +1,119 @@ +package dev.love.winter.designsystem.tokens + +import androidx.annotation.DrawableRes +import androidx.compose.runtime.Immutable + +/** + * Icon tokens + * + * Icons are graphic assets that improve usability by providing extra meaning + * to actions and components, making them more visually appealing and easier to understand. + * + * Guidelines: + * - Size: 24px base + * - Stroke: 1.5px + * - Use Icon grid for consistency + */ + +@Immutable +data class IconResource( + @param:DrawableRes val filled: Int, + @param:DrawableRes val outlined: Int, +) + +@Immutable +data class GlobalIcon( + val home: IconResource, + val settings: IconResource, + val profile: IconResource, + val highlights: IconResource, + val notification: IconResource, + val search: IconResource, +) + +@Immutable +data class NavigationIcon( + val arrowUp: IconResource, + val arrowDown: IconResource, + val arrowLeft: IconResource, + val arrowRight: IconResource, + val arrowUpRight: IconResource, + val chevronUp: IconResource, + val chevronDown: IconResource, + val chevronLeft: IconResource, + val chevronRight: IconResource, + val close: IconResource, + val filter: IconResource, + val sort: IconResource, + val logout: IconResource, + val menu: IconResource, + val menuHamburger: IconResource, + val more: IconResource, + val link: IconResource, +) + +@Immutable +data class InputIcon( + val edit: IconResource, + val delete: IconResource, + val plus: IconResource, + val minus: IconResource, + val check: IconResource, + val eye: IconResource, + val eyeOff: IconResource, + val heart: IconResource, + val star: IconResource, + val bookmark: IconResource, + val download: IconResource, + val upload: IconResource, +) + +@Immutable +data class DateTimeIcon( + val calendar: IconResource, + val calendarDays: IconResource, + val clock: IconResource, +) + +@Immutable +data class MessageIcon( + val send: IconResource, + val chat: IconResource, + val mail: IconResource, + val archive: IconResource, + val camera: IconResource, + val paperclip: IconResource, + val microphone: IconResource, +) + +@Immutable +data class PurchaseIcon( + val bag: IconResource, + val cart: IconResource, + val tag: IconResource, + val creditCard: IconResource, + val wallet: IconResource, +) + +@Immutable +data class LocationIcon( + val map: IconResource, + val mapPin: IconResource, + val navigation: IconResource, + val globe: IconResource, +) + +@Immutable +data class NotificationIcon( + val info: IconResource, + val success: IconResource, + val warning: IconResource, + val error: IconResource, +) + +@Immutable +data class LogoIcon( + val google: IconResource, + val facebook: IconResource, + val apple: IconResource, +) diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/SpacingToken.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/SpacingToken.kt new file mode 100644 index 0000000..94933bc --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/SpacingToken.kt @@ -0,0 +1,23 @@ +package dev.love.winter.designsystem.tokens + +import androidx.compose.ui.unit.dp + +/** + * Spacing tokens + * + * Spacing tokens guarantee consistent spacing and alignment between elements + * while providing better readability, clarity, and balance. + * + * Usage guidelines: + * - For related items, use smaller spacing values + * - For unrelated items, use larger spacing values + * - When stacking components, use the same spacing between all elements in the group + */ + +internal val SpacingExtraExtraSmall = 4.dp +internal val SpacingExtraSmall = 8.dp +internal val SpacingSmall = 16.dp +internal val SpacingMedium = 24.dp +internal val SpacingLarge = 32.dp +internal val SpacingExtraLarge = 40.dp +internal val SpacingExtraExtraLarge = 48.dp diff --git a/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/TypographyToken.kt b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/TypographyToken.kt new file mode 100644 index 0000000..10a0d54 --- /dev/null +++ b/core-android/design-system/src/main/java/dev/love/winter/designsystem/tokens/TypographyToken.kt @@ -0,0 +1,161 @@ +package dev.love.winter.designsystem.tokens + +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 + +/** + * Typography tokens + * + * Use the display font style for large headings or prominent text that requires emphasis. + * Display is ideal for grabbing the user's attention and making a bold statement. + * Avoid using this style for long texts. + */ + +internal val FontLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 28.sp, + lineHeight = 34.sp, +) + +internal val FontMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 24.sp, + lineHeight = 30.sp, +) + +internal val FontSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 18.sp, + lineHeight = 24.sp, +) + +/** + * Title tokens + * + * Use the title font style when you need a clear visual hierarchy without overwhelming the layout. + * You can apply this style in short texts that need to stand out when compared to body text, + * like section titles, card titles, page titles, etc. + */ +internal val TitleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 16.sp, + lineHeight = 22.sp, +) + +internal val TitleMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 14.sp, + lineHeight = 18.sp, +) + +internal val TitleSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 12.sp, + lineHeight = 16.sp, +) + +/** + * Body tokens + * + * The body font style is ideal for regular text content, such as paragraphs, or descriptions. + * The body styles are suitable both for long and short text, where readability and legibility are essential. + */ +internal val BodyExtraLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 18.sp, + lineHeight = 24.sp, +) + +internal val BodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 22.sp, +) + +internal val BodyMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 14.sp, + lineHeight = 18.sp, +) + +internal val BodySmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 12.sp, + lineHeight = 16.sp, +) + +internal val BodyExtraSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 10.sp, + lineHeight = 14.sp, +) + +/** + * Action tokens + * + * The action font style is suitable for text elements that represent interactive or actionable items, + * such as buttons, input, and links. Use it to distinguish interactive elements from regular text. + */ +internal val ActionLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 16.sp, + lineHeight = 20.sp, +) + +internal val ActionMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 14.sp, + lineHeight = 18.sp, +) + +internal val ActionSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.SemiBold, + fontSize = 12.sp, + lineHeight = 16.sp, +) + +/** + * Caption tokens + * + * The caption font style is used for supporting text that provides context and complements visual elements, + * like icons, images, tags, etc. Avoid using this style in long texts. + */ +internal val CaptionLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 14.sp, + lineHeight = 18.sp, + letterSpacing = 0.56.sp, +) + +internal val CaptionMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 12.sp, + lineHeight = 16.sp, + letterSpacing = 0.48.sp, +) + +internal val CaptionSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 10.sp, + lineHeight = 14.sp, + letterSpacing = 0.4.sp, +) diff --git a/core-android/design-system/src/main/res/drawable/ic_archive_filled.xml b/core-android/design-system/src/main/res/drawable/ic_archive_filled.xml new file mode 100644 index 0000000..ef4124f --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_archive_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_archive_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_archive_outlined.xml new file mode 100644 index 0000000..bac0179 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_archive_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_arrow.xml b/core-android/design-system/src/main/res/drawable/ic_arrow.xml new file mode 100644 index 0000000..1278d0c --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_arrow.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_arrow_down.xml b/core-android/design-system/src/main/res/drawable/ic_arrow_down.xml new file mode 100644 index 0000000..046066a --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_arrow_down.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_arrow_left.xml b/core-android/design-system/src/main/res/drawable/ic_arrow_left.xml new file mode 100644 index 0000000..7dd3049 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_arrow_left.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_arrow_right.xml b/core-android/design-system/src/main/res/drawable/ic_arrow_right.xml new file mode 100644 index 0000000..190d778 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_arrow_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_arrow_up.xml b/core-android/design-system/src/main/res/drawable/ic_arrow_up.xml new file mode 100644 index 0000000..21d747c --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_arrow_up.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_arrow_up_right.xml b/core-android/design-system/src/main/res/drawable/ic_arrow_up_right.xml new file mode 100644 index 0000000..1830624 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_arrow_up_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_bag_filled.xml b/core-android/design-system/src/main/res/drawable/ic_bag_filled.xml new file mode 100644 index 0000000..3c46a9e --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_bag_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_bag_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_bag_outlined.xml new file mode 100644 index 0000000..831db6f --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_bag_outlined.xml @@ -0,0 +1,14 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_bookmark_filled.xml b/core-android/design-system/src/main/res/drawable/ic_bookmark_filled.xml new file mode 100644 index 0000000..7562add --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_bookmark_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_bookmark_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_bookmark_outlined.xml new file mode 100644 index 0000000..de83c8d --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_bookmark_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_calendar_days_filled.xml b/core-android/design-system/src/main/res/drawable/ic_calendar_days_filled.xml new file mode 100644 index 0000000..14473d5 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_calendar_days_filled.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_calendar_days_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_calendar_days_outlined.xml new file mode 100644 index 0000000..72e5f65 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_calendar_days_outlined.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_calendar_filled.xml b/core-android/design-system/src/main/res/drawable/ic_calendar_filled.xml new file mode 100644 index 0000000..da086e2 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_calendar_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_calendar_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_calendar_outlined.xml new file mode 100644 index 0000000..e2416a4 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_calendar_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_camera_filled.xml b/core-android/design-system/src/main/res/drawable/ic_camera_filled.xml new file mode 100644 index 0000000..066c916 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_camera_filled.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_camera_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_camera_outlined.xml new file mode 100644 index 0000000..8f91dc9 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_camera_outlined.xml @@ -0,0 +1,14 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_cart_filled.xml b/core-android/design-system/src/main/res/drawable/ic_cart_filled.xml new file mode 100644 index 0000000..f27bd81 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_cart_filled.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_cart_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_cart_outlined.xml new file mode 100644 index 0000000..3ae15e4 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_cart_outlined.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_chat_filled.xml b/core-android/design-system/src/main/res/drawable/ic_chat_filled.xml new file mode 100644 index 0000000..cce3472 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_chat_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_chat_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_chat_outlined.xml new file mode 100644 index 0000000..11b884c --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_chat_outlined.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_check.xml b/core-android/design-system/src/main/res/drawable/ic_check.xml new file mode 100644 index 0000000..72dc391 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_check.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_chevron_down.xml b/core-android/design-system/src/main/res/drawable/ic_chevron_down.xml new file mode 100644 index 0000000..1897877 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_chevron_down.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_chevron_left.xml b/core-android/design-system/src/main/res/drawable/ic_chevron_left.xml new file mode 100644 index 0000000..745aee2 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_chevron_left.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_chevron_right.xml b/core-android/design-system/src/main/res/drawable/ic_chevron_right.xml new file mode 100644 index 0000000..8ab0024 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_chevron_right.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_chevron_up.xml b/core-android/design-system/src/main/res/drawable/ic_chevron_up.xml new file mode 100644 index 0000000..1278d0c --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_chevron_up.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_clock_filled.xml b/core-android/design-system/src/main/res/drawable/ic_clock_filled.xml new file mode 100644 index 0000000..2080f02 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_clock_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_clock_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_clock_outlined.xml new file mode 100644 index 0000000..1124190 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_clock_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_close.xml b/core-android/design-system/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7546ed5 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_credit_card_filled.xml b/core-android/design-system/src/main/res/drawable/ic_credit_card_filled.xml new file mode 100644 index 0000000..368e3fa --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_credit_card_filled.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_credit_card_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_credit_card_outlined.xml new file mode 100644 index 0000000..9e072f2 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_credit_card_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_delete_filled.xml b/core-android/design-system/src/main/res/drawable/ic_delete_filled.xml new file mode 100644 index 0000000..5024fcb --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_delete_filled.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_delete_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_delete_outlined.xml new file mode 100644 index 0000000..a8edf67 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_delete_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_download.xml b/core-android/design-system/src/main/res/drawable/ic_download.xml new file mode 100644 index 0000000..4087080 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_download.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_edit_filled.xml b/core-android/design-system/src/main/res/drawable/ic_edit_filled.xml new file mode 100644 index 0000000..d42fa52 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_edit_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_edit_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_edit_outlined.xml new file mode 100644 index 0000000..7355f0f --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_edit_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_error_filled.xml b/core-android/design-system/src/main/res/drawable/ic_error_filled.xml new file mode 100644 index 0000000..7f67b22 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_error_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_error_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_error_outlined.xml new file mode 100644 index 0000000..99ee256 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_error_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_eye_filled.xml b/core-android/design-system/src/main/res/drawable/ic_eye_filled.xml new file mode 100644 index 0000000..c01d834 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_eye_filled.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_eye_off_filled.xml b/core-android/design-system/src/main/res/drawable/ic_eye_off_filled.xml new file mode 100644 index 0000000..dc8124b --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_eye_off_filled.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_eye_off_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_eye_off_outlined.xml new file mode 100644 index 0000000..0c21a3c --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_eye_off_outlined.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_eye_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_eye_outlined.xml new file mode 100644 index 0000000..b49e169 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_eye_outlined.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_filter_filled.xml b/core-android/design-system/src/main/res/drawable/ic_filter_filled.xml new file mode 100644 index 0000000..40653a4 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_filter_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_filter_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_filter_outlined.xml new file mode 100644 index 0000000..7e98383 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_filter_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_globe_filled.xml b/core-android/design-system/src/main/res/drawable/ic_globe_filled.xml new file mode 100644 index 0000000..87ae191 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_globe_filled.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_globe_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_globe_outlined.xml new file mode 100644 index 0000000..a1bef2d --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_globe_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_heart_filled.xml b/core-android/design-system/src/main/res/drawable/ic_heart_filled.xml new file mode 100644 index 0000000..9607ddc --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_heart_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_heart_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_heart_outlined.xml new file mode 100644 index 0000000..0f85cd2 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_heart_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_highlights_filled.xml b/core-android/design-system/src/main/res/drawable/ic_highlights_filled.xml new file mode 100644 index 0000000..5d4035e --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_highlights_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_highlights_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_highlights_outlined.xml new file mode 100644 index 0000000..7ea0c57 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_highlights_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_home_filled.xml b/core-android/design-system/src/main/res/drawable/ic_home_filled.xml new file mode 100644 index 0000000..3dd0f8a --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_home_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_home_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_home_outlined.xml new file mode 100644 index 0000000..f394e1b --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_home_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_info_filled.xml b/core-android/design-system/src/main/res/drawable/ic_info_filled.xml new file mode 100644 index 0000000..ffc5ffb --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_info_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_info_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_info_outlined.xml new file mode 100644 index 0000000..cc61a67 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_info_outlined.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_link.xml b/core-android/design-system/src/main/res/drawable/ic_link.xml new file mode 100644 index 0000000..98c79e3 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_link.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_logo_apple.xml b/core-android/design-system/src/main/res/drawable/ic_logo_apple.xml new file mode 100644 index 0000000..bcb0c3e --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_logo_apple.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_logo_facebook.xml b/core-android/design-system/src/main/res/drawable/ic_logo_facebook.xml new file mode 100644 index 0000000..02bbe0f --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_logo_facebook.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_logo_google.xml b/core-android/design-system/src/main/res/drawable/ic_logo_google.xml new file mode 100644 index 0000000..eb548da --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_logo_google.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_logout.xml b/core-android/design-system/src/main/res/drawable/ic_logout.xml new file mode 100644 index 0000000..e462ce0 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_logout.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_mail_filled.xml b/core-android/design-system/src/main/res/drawable/ic_mail_filled.xml new file mode 100644 index 0000000..4fb7517 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_mail_filled.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_mail_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_mail_outlined.xml new file mode 100644 index 0000000..6874b18 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_mail_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_map_filled.xml b/core-android/design-system/src/main/res/drawable/ic_map_filled.xml new file mode 100644 index 0000000..c249279 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_map_filled.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_map_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_map_outlined.xml new file mode 100644 index 0000000..8f687a0 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_map_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_map_pin_filled.xml b/core-android/design-system/src/main/res/drawable/ic_map_pin_filled.xml new file mode 100644 index 0000000..2ff6370 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_map_pin_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_map_pin_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_map_pin_outlined.xml new file mode 100644 index 0000000..99bfdf9 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_map_pin_outlined.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_menu_filled.xml b/core-android/design-system/src/main/res/drawable/ic_menu_filled.xml new file mode 100644 index 0000000..daa0b0f --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_menu_filled.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_menu_hamburger.xml b/core-android/design-system/src/main/res/drawable/ic_menu_hamburger.xml new file mode 100644 index 0000000..d37acb0 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_menu_hamburger.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_menu_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_menu_outlined.xml new file mode 100644 index 0000000..944b052 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_menu_outlined.xml @@ -0,0 +1,22 @@ + + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_microphone_filled.xml b/core-android/design-system/src/main/res/drawable/ic_microphone_filled.xml new file mode 100644 index 0000000..49380ec --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_microphone_filled.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_microphone_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_microphone_outlined.xml new file mode 100644 index 0000000..a330a12 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_microphone_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_minus.xml b/core-android/design-system/src/main/res/drawable/ic_minus.xml new file mode 100644 index 0000000..648db2e --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_minus.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_more.xml b/core-android/design-system/src/main/res/drawable/ic_more.xml new file mode 100644 index 0000000..3341b58 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_more.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_navigation_filled.xml b/core-android/design-system/src/main/res/drawable/ic_navigation_filled.xml new file mode 100644 index 0000000..fa5a4d1 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_navigation_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_navigation_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_navigation_outlined.xml new file mode 100644 index 0000000..162c327 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_navigation_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_notification_filled.xml b/core-android/design-system/src/main/res/drawable/ic_notification_filled.xml new file mode 100644 index 0000000..15d45b9 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_notification_filled.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_notification_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_notification_outlined.xml new file mode 100644 index 0000000..238174b --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_notification_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_paperclip.xml b/core-android/design-system/src/main/res/drawable/ic_paperclip.xml new file mode 100644 index 0000000..64865fa --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_paperclip.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_plus.xml b/core-android/design-system/src/main/res/drawable/ic_plus.xml new file mode 100644 index 0000000..0e76842 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_plus.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_profile_filled.xml b/core-android/design-system/src/main/res/drawable/ic_profile_filled.xml new file mode 100644 index 0000000..f975c05 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_profile_filled.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_profile_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_profile_outlined.xml new file mode 100644 index 0000000..c90dd52 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_profile_outlined.xml @@ -0,0 +1,14 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_search.xml b/core-android/design-system/src/main/res/drawable/ic_search.xml new file mode 100644 index 0000000..6578e17 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_search.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_send_filled.xml b/core-android/design-system/src/main/res/drawable/ic_send_filled.xml new file mode 100644 index 0000000..b6a0c8d --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_send_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_send_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_send_outlined.xml new file mode 100644 index 0000000..33c9461 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_send_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_settings_filled.xml b/core-android/design-system/src/main/res/drawable/ic_settings_filled.xml new file mode 100644 index 0000000..c7e4eeb --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_settings_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_settings_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_settings_outlined.xml new file mode 100644 index 0000000..ba265e2 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_settings_outlined.xml @@ -0,0 +1,14 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_sort.xml b/core-android/design-system/src/main/res/drawable/ic_sort.xml new file mode 100644 index 0000000..371c91a --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_sort.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_star_filled.xml b/core-android/design-system/src/main/res/drawable/ic_star_filled.xml new file mode 100644 index 0000000..dbb8f93 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_star_filled.xml @@ -0,0 +1,9 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_star_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_star_outlined.xml new file mode 100644 index 0000000..79af2c5 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_star_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_success_filled.xml b/core-android/design-system/src/main/res/drawable/ic_success_filled.xml new file mode 100644 index 0000000..96a57f4 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_success_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_success_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_success_outlined.xml new file mode 100644 index 0000000..220dff4 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_success_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_tag_filled.xml b/core-android/design-system/src/main/res/drawable/ic_tag_filled.xml new file mode 100644 index 0000000..0119b06 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_tag_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_tag_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_tag_outlined.xml new file mode 100644 index 0000000..78fbd1c --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_tag_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_upload.xml b/core-android/design-system/src/main/res/drawable/ic_upload.xml new file mode 100644 index 0000000..56ad9f7 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_upload.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_wallet_filled.xml b/core-android/design-system/src/main/res/drawable/ic_wallet_filled.xml new file mode 100644 index 0000000..5f8f470 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_wallet_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_wallet_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_wallet_outlined.xml new file mode 100644 index 0000000..6cedcbb --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_wallet_outlined.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_warning_filled.xml b/core-android/design-system/src/main/res/drawable/ic_warning_filled.xml new file mode 100644 index 0000000..1edc45a --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_warning_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core-android/design-system/src/main/res/drawable/ic_warning_outlined.xml b/core-android/design-system/src/main/res/drawable/ic_warning_outlined.xml new file mode 100644 index 0000000..e9aa7e7 --- /dev/null +++ b/core-android/design-system/src/main/res/drawable/ic_warning_outlined.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/gradle.properties b/gradle.properties index 42408a1..56c6244 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,6 +5,10 @@ # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html +org.gradle.jvmargs=\ + -Xmx2g \ + -Dfile.encoding=UTF-8 + android.useAndroidX=true android.enableJetifier=false android.nonTransitiveRClass=true diff --git a/settings.gradle.kts b/settings.gradle.kts index 0606fce..7810845 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -7,3 +7,5 @@ pluginManagement { rootProject.name = "LanguageStudy" include(":app") +include(":core-android") +include(":core-android:design-system")