replica: recon, architecture, design tokens, build log, reference and clone screenshots

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-17 13:52:42 +02:00
co-authored by Claude Opus 5.5
commit e02f5aa18d
25 changed files with 1277 additions and 0 deletions
+157
View File
@@ -0,0 +1,157 @@
// Generated from tokens.json by gen_theme.py. Do not edit by hand.
package app.wetter.ui.theme
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
object WColor {
val bg = Color(0xFFF8F9FF)
val surface = Color(0xFFFFFFFF)
val surfaceContainer = Color(0xFFECEEF4)
val surfaceContainerHigh = Color(0xFFE1E3EA)
val border = Color(0xFFC3C6CF)
val borderInput = Color(0xFF73777F)
val text = Color(0xFF191C20)
val textMuted = Color(0xFF43474E)
val accent = Color(0xFF2A5EA8)
val onAccent = Color(0xFFFFFFFF)
val accentContainer = Color(0xFFD6E3FF)
val onAccentContainer = Color(0xFF001B3E)
val danger = Color(0xFFBA1A1A)
val warning = Color(0xFF8A5100)
val success = Color(0xFF2E6B30)
val darkBg = Color(0xFF111318)
val darkSurface = Color(0xFF1D2024)
val darkSurfaceContainer = Color(0xFF272A2F)
val darkBorder = Color(0xFF43474E)
val darkBorderInput = Color(0xFF8D9199)
val darkText = Color(0xFFE2E2E9)
val darkTextMuted = Color(0xFFC3C6CF)
val darkAccent = Color(0xFFA9C7FF)
val darkOnAccent = Color(0xFF003063)
val darkDanger = Color(0xFFFFB4AB)
val darkWarning = Color(0xFFFFB870)
val sceneClearDayTop = Color(0xFF7CC4EF)
val sceneClearDayBottom = Color(0xFFBFE3F7)
val sceneClearNightTop = Color(0xFF3D4F9A)
val sceneClearNightBottom = Color(0xFF5B4F8F)
val sceneCloudyDayTop = Color(0xFFC9CDD2)
val sceneCloudyDayBottom = Color(0xFFDFE2E5)
val sceneRainTop = Color(0xFF2E3D4F)
val sceneRainBottom = Color(0xFF5A6B7D)
val sceneSnowTop = Color(0xFF7C8EA3)
val sceneSnowBottom = Color(0xFFD4DDE6)
val sceneStormTop = Color(0xFF1F1A33)
val sceneStormBottom = Color(0xFF4A3F63)
val sceneFogTop = Color(0xFF8A929B)
val sceneFogBottom = Color(0xFFC4C9CE)
val onScene = Color(0xFFFFFFFF)
val onSceneMuted = Color(0xFFE8EDF3)
val onSceneDark = Color(0xFF14181D)
val sceneCard = Color(0xFF2A3644)
val sceneCardLight = Color(0xFFF2F5F8)
val alertMinor = Color(0xFFFFF2B8)
val onAlertMinor = Color(0xFF3D2F00)
val alertSevere = Color(0xFFFFDBC8)
val onAlertSevere = Color(0xFF4A1A00)
val alertExtreme = Color(0xFF93000A)
val onAlertExtreme = Color(0xFFFFFFFF)
val aqiGood = Color(0xFF2E7D32)
val aqiModerate = Color(0xFFA06A00)
val aqiBad = Color(0xFFC62828)
val uvHigh = Color(0xFFB34700)
val card = Color(0xFFFDF8F3)
val onCard = Color(0xFF1F1B17)
val onCardMuted = Color(0xFF5A524B)
val darkCard = Color(0xFF1F1714)
val darkOnCard = Color(0xFFEDE0DB)
val darkOnCardMuted = Color(0xFFC4B6B0)
val fillPrimary = Color(0xFFD3E3FD)
val onFillPrimary = Color(0xFF0B2A55)
val fillSecondary = Color(0xFFE9DDFF)
val onFillSecondary = Color(0xFF2A1A4D)
val fillTertiary = Color(0xFFC8E6C2)
val onFillTertiary = Color(0xFF0F3A12)
val darkFillPrimary = Color(0xFFA8C7FA)
val darkOnFillPrimary = Color(0xFF062E6F)
val darkFillTertiary = Color(0xFF2D5A27)
val darkOnFillTertiary = Color(0xFFB7F0AC)
val darkFillOlive = Color(0xFF3E4A1E)
val pill = Color(0xFFF1EBE5)
val darkPill = Color(0xFF2B221E)
val pillSelected = Color(0xFFA8C7FA)
val onPillSelected = Color(0xFF0B2A55)
val nowChip = Color(0xFF4E4038)
val onNowChip = Color(0xFFFFFFFF)
val precipText = Color(0xFF2A5EA8)
val darkPrecipText = Color(0xFFA8C7FA)
val nowcastDot = Color(0xFF2E7D32)
val iconSun = Color(0xFFFFB02E)
val iconSunCore = Color(0xFFFF9A1F)
val iconMoon = Color(0xFFA9C4FF)
val iconCloud = Color(0xFFF4F6F9)
val iconCloudShade = Color(0xFFCFD6DF)
val iconCloudDark = Color(0xFF9AA5B3)
val iconDrop = Color(0xFF3D7BF0)
val iconSnow = Color(0xFFFFFFFF)
val iconSnowOutline = Color(0xFF9FB3CC)
val iconBolt = Color(0xFFFFC93C)
val iconFog = Color(0xFFC3CAD3)
val sceneGlowSun = Color(0xFFFFF3C4)
val sceneCloud = Color(0xFFFFFFFF)
val sceneHill = Color(0xFF9FC5E6)
val darkSceneHill = Color(0xFF2F3F78)
val rangeCold = Color(0xFF6FA8FF)
val rangeWarm = Color(0xFFFFB02E)
val aqiBar1 = Color(0xFF4FD1C5)
val aqiBar2 = Color(0xFF9CCC65)
val aqiBar3 = Color(0xFFFFD54F)
val aqiBar4 = Color(0xFFFF8A65)
val aqiBar5 = Color(0xFFE53935)
val aqiBar6 = Color(0xFF8E24AA)
val uvDotLow = Color(0xFF5CCF8A)
val uvDotOff = Color(0xFF6B5A52)
}
object WType {
val labelSm = TextStyle(fontSize = 11.sp, lineHeight = 16.sp, fontWeight = FontWeight.W500)
val label = TextStyle(fontSize = 12.sp, lineHeight = 16.sp, fontWeight = FontWeight.W500)
val bodySm = TextStyle(fontSize = 14.sp, lineHeight = 20.sp, fontWeight = FontWeight.W400)
val body = TextStyle(fontSize = 16.sp, lineHeight = 24.sp, fontWeight = FontWeight.W400)
val title = TextStyle(fontSize = 18.sp, lineHeight = 24.sp, fontWeight = FontWeight.W500)
val headline = TextStyle(fontSize = 24.sp, lineHeight = 32.sp, fontWeight = FontWeight.W500)
val metric = TextStyle(fontSize = 32.sp, lineHeight = 40.sp, fontWeight = FontWeight.W500)
val display = TextStyle(fontSize = 112.sp, lineHeight = 112.sp, fontWeight = FontWeight.W700)
val displayWidget = TextStyle(fontSize = 44.sp, lineHeight = 48.sp, fontWeight = FontWeight.W400)
val dayRange = TextStyle(fontSize = 56.sp, lineHeight = 60.sp, fontWeight = FontWeight.W600)
val heroCondition = TextStyle(fontSize = 22.sp, lineHeight = 28.sp, fontWeight = FontWeight.W400)
val cardTitle = TextStyle(fontSize = 16.sp, lineHeight = 24.sp, fontWeight = FontWeight.W500)
}
object WSpace {
val s0 = 0.dp
val s2 = 2.dp
val s4 = 4.dp
val s8 = 8.dp
val s12 = 12.dp
val s16 = 16.dp
val s20 = 20.dp
val s24 = 24.dp
val s32 = 32.dp
val s48 = 48.dp
}
object WRadius {
val xs = 8.dp
val sm = 12.dp
val md = 16.dp
val lg = 24.dp
val xl = 28.dp
val widget = 24.dp
val pill = 999.dp
val card = 28.dp
val dayPill = 24.dp
}