From 8c245c099b550c53713d904012a8380c8211a363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B4=94=E9=B2=81=E6=AD=A3?= <13780741225@163.com> Date: Thu, 10 Sep 2026 10:20:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=EF=BC=88=E9=A2=9C=E8=89=B2/=E5=AD=97?= =?UTF-8?q?=E4=BD=93/=E6=B5=85=E8=89=B2=E4=B8=BB=E9=A2=98=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../placeholder/ringhealth/MainActivity.kt | 8 ++++-- .../ringhealth/core/designsystem/Color.kt | 23 +++++++++++++++ .../ringhealth/core/designsystem/Theme.kt | 28 +++++++++++++++++++ .../ringhealth/core/designsystem/Type.kt | 23 +++++++++++++++ 4 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/placeholder/ringhealth/core/designsystem/Color.kt create mode 100644 app/src/main/java/com/placeholder/ringhealth/core/designsystem/Theme.kt create mode 100644 app/src/main/java/com/placeholder/ringhealth/core/designsystem/Type.kt diff --git a/app/src/main/java/com/placeholder/ringhealth/MainActivity.kt b/app/src/main/java/com/placeholder/ringhealth/MainActivity.kt index 1ac01e7..724daf1 100644 --- a/app/src/main/java/com/placeholder/ringhealth/MainActivity.kt +++ b/app/src/main/java/com/placeholder/ringhealth/MainActivity.kt @@ -12,6 +12,7 @@ import androidx.compose.material3.Text import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import com.placeholder.ringhealth.core.designsystem.RingHealthTheme /** 唯一 Activity,承载 Compose 界面。 */ class MainActivity : ComponentActivity() { @@ -19,8 +20,11 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { - MaterialTheme { - Surface(modifier = Modifier.fillMaxSize()) { + RingHealthTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background, + ) { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { // 文案取自 res/values/strings.xml,不在 Kotlin 里硬编码用户可见文字 Text(stringResource(R.string.app_name)) diff --git a/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Color.kt b/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Color.kt new file mode 100644 index 0000000..40d4046 --- /dev/null +++ b/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Color.kt @@ -0,0 +1,23 @@ +package com.placeholder.ringhealth.core.designsystem + +import androidx.compose.ui.graphics.Color + +/** 品牌主色(健康绿,仿小米运动健康首页大环)。 */ +val BrandGreen = Color(0xFF34C759) +val BrandGreenDark = Color(0xFF248A3D) + +/** 页面与卡片背景。 */ +val AppBackground = Color(0xFFF5F6F8) +val CardSurface = Color(0xFFFFFFFF) +val TextPrimary = Color(0xFF1C1C1E) +val TextSecondary = Color(0xFF8E8E93) +val DividerColor = Color(0xFFEFEFF4) + +/** 各健康指标的语义色,全应用统一引用。 */ +val MetricGreen = Color(0xFF34C759) // 步数 +val MetricRed = Color(0xFFFF3B30) // 心率 +val MetricBlue = Color(0xFF3B5BFF) // 睡眠 +val MetricCyan = Color(0xFF00C7BE) // 血氧 +val MetricPurple = Color(0xFFAF52DE) // 压力 +val MetricOrange = Color(0xFFFF9500) // 体温 +val MetricYellow = Color(0xFFFFCC00) // 血压 / 提醒 diff --git a/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Theme.kt b/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Theme.kt new file mode 100644 index 0000000..3015a35 --- /dev/null +++ b/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Theme.kt @@ -0,0 +1,28 @@ +package com.placeholder.ringhealth.core.designsystem + +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable + +private val RingHealthColors = lightColorScheme( + primary = BrandGreen, + onPrimary = androidx.compose.ui.graphics.Color.White, + secondary = BrandGreenDark, + background = AppBackground, + onBackground = TextPrimary, + surface = CardSurface, + onSurface = TextPrimary, + surfaceVariant = DividerColor, +) + +/** + * 应用主题。阶段一仅提供浅色模式(深色留到 M5)。 + */ +@Composable +fun RingHealthTheme(content: @Composable () -> Unit) { + MaterialTheme( + colorScheme = RingHealthColors, + typography = RingHealthTypography, + content = content, + ) +} diff --git a/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Type.kt b/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Type.kt new file mode 100644 index 0000000..b0ac34e --- /dev/null +++ b/app/src/main/java/com/placeholder/ringhealth/core/designsystem/Type.kt @@ -0,0 +1,23 @@ +package com.placeholder.ringhealth.core.designsystem + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +/** 大号数值样式:首页大环与详情页主数字。 */ +val MetricValueStyle = TextStyle( + fontSize = 40.sp, + fontWeight = FontWeight.Bold, + color = TextPrimary, +) + +/** 中等数值样式:指标卡主数字。 */ +val MetricTileValueStyle = TextStyle( + fontSize = 22.sp, + fontWeight = FontWeight.SemiBold, + color = TextPrimary, +) + +/** 全局字体排版。 */ +val RingHealthTypography = Typography()