Compose Multiplatform & a Design-Token System That Scales Across Modules

Eight feature modules. Eight teams that could go their own direction on colors, spacing, and typography. The result without a design system: hardcoded hex values scattered across the codebase, a rebrand that costs two sprints, and three bugs filed for the screens the grep missed. In this episode we build a design-token system on top of Compose Multiplatform's CompositionLocal machinery. One theme, one Euro accessor object, five token categories. Change any token in one file and every screen in every module responds immediately — on Android, iOS, desktop, and Wasm. ⏱️ Chapters: 00:00 — Hook: 8 modules, 0 hardcoded values 01:05 — Compose Multiplatform vs Compose for Android: what's shared, what's added 02:15 — What design tokens are and why they matter for multiplatform apps 03:25 — EurostatColors: semantic names, not visual names 04:35 — CompositionLocal: static vs non-static, and why it matters for tokens 05:45 — EurostatTheme: wiring tokens on top of Material3 06:55 — The Euro accessor object: @ReadOnlyComposable explained 08:05 — EurostatTypography: Inter + IBM Plex Mono + tabular numerals (tnum) 09:15 — EurostatSpacing: the 4dp grid and why 16.dp is a magic number 10:25 — ModuleAccents: per-feature color identity in one data class 11:35 — Tokens in use: PopulationScreen with zero hardcoded values 12:45 — Bottom line and CTA 🧱 Concepts covered: • CompositionLocal: staticCompositionLocalOf vs compositionLocalOf — when to use each • @ReadOnlyComposable: allows tokens in composable default parameter values • EurostatColors: 10 semantic color roles — paper, ink, accent, warn, grid… • EurostatTypography: 11 named text styles + tabularNumLarge/Small with tnum • EurostatSpacing: 8-step 4dp grid (xxs=2dp → xxl=48dp) • ModuleAccents: per-feature colors driving app bars, tabs, and charts • Compose Resources: bundling Inter + IBM Plex Mono fonts in commonMain • MaterialTheme integration: sitting on top, not replacing, Material3 📦 Project: github.com/RomanTsisyk/MyEuroStatApp A full KMP app — Compose Multiplatform, real Eurostat API data, 8 feature modules. #KotlinMultiplatform #ComposeMultiplatform #DesignSystem #DesignTokens #KMP #AndroidDevelopment #JetpackCompose #KotlinAndroid #CompositionLocal #UIDesign #MobileArchitecture — 🔗 Links Website: https://roman-tsisyk.com/ LinkedIn:   / roman-tsisyk   GitHub: https://github.com/RomanTsisyk