# Material 3 Expressive: Android 16 Design System
Material 3 Expressive, Google'ın 2025 sonunda duyurduğu ve Android 16 ile yaygınlaşan design system evolution'u. Material You (2021) ve Material 3 (2022) üzerine kurulu, "expressive" kısmı: emphasis levels, motion schemes, shape theming, genişletilmiş dynamic color. Bu yazı Material 3 Expressive'in design token'larını, Compose Material 3 1.4 entegrasyonunu ve existing app migration stratejisini anlatır.
💡 Pro Tip: Material 3 Expressive mandatory değil — Material 3 opsiyonel üstüne katman. Kullanırsan daha "lively" UI, kullanmazsan Material 3 standard stays.
İçindekiler
- Expressive Nedir?
- Emphasis Levels
- Dynamic Color 2.0
- Motion Schemes
- Shape Theming
- Typography Scales Genişleme
- Compose Material 3 1.4
- Migration Stratejisi
Expressive Nedir?
Material 3 "functional" odaklıydı. Expressive "personality" ekliyor:
- More shapes: Beyond rounded rectangle — organic shapes
- More color: 6 seed colors yerine palette-wide customization
- More motion: Shared element transitions, implicit animations
- More emphasis: Visual hierarchy explicit
Apple Human Interface Guidelines'ın "emphasis" konseptini Material'e getiriyor.
Emphasis Levels
Component'lerin visual weight'ini kontrol:
kotlin
1Button(2 onClick = { ... },3 colors = ButtonDefaults.filledTonalButtonColors(),4 emphasis = Emphasis.Filled // High, Medium, Low5) {6 Text("Action")7}4 Emphasis Seviyesi
- High: Primary actions (Floating Action Button, filled)
- Medium: Secondary (filled tonal, outlined)
- Low: Tertiary (text button, link)
- Minimal: Icon button, ghost
Dynamic Color 2.0
Material You 6 seed color kullanıyordu. M3 Expressive 60+ intermediate token çıkarıyor:
kotlin
1@Composable2fun MyTheme(content: @Composable () -> Unit) {3 val context = LocalContext.current4 val dynamicColor = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)5 dynamicLightColorScheme(context)6 else lightColorScheme()7 8 // M3 Expressive ile daha fine-grained:9 val expressiveColors = dynamicColor.withExpressiveTokens(10 variant = ColorVariant.Expressive11 )12 13 MaterialTheme(colorScheme = expressiveColors, content = content)14}Color Roles (Genişletilmiş)
- Primary, On Primary
- Primary Container, On Primary Container
- Primary Fixed: (yeni), **On Primary Fixed**
- Surface Container Lowest/Low/Medium/High/Highest: (5 seviye)
- Outline Variant
- Scrim: , **Shadow**
Total 50+ color role. Design team'inden developer'a geçişte daha az "invention" gerekir.
Motion Schemes
Predefined motion patterns:
kotlin
1val motionScheme = MotionScheme.expressive()2 3// Spring curves:4motionScheme.fastSpatialSpring // 0.3s, high stiffness5motionScheme.defaultSpatialSpring // 0.5s, medium6motionScheme.slowSpatialSpring // 0.8s, low7 8// Effect curves:9motionScheme.fastEffectsSpring10motionScheme.defaultEffectsSpring11motionScheme.slowEffectsSpring12 13@Composable14fun ExpandableCard() {15 var expanded by remember { mutableStateOf(false) }16 17 Card(18 modifier = Modifier.animateContentSize(19 animationSpec = motionScheme.defaultSpatialSpring20 )21 ) {22 // content23 }24}Shape Theming
Shape tokens expressive:
kotlin
1@Composable2fun MyTheme(content: @Composable () -> Unit) {3 val shapes = Shapes(4 extraSmall = RoundedCornerShape(4.dp),5 small = RoundedCornerShape(8.dp),6 medium = RoundedCornerShape(12.dp),7 large = RoundedCornerShape(16.dp),8 extraLarge = RoundedCornerShape(28.dp),9 10 // Expressive additions:11 expressiveFamily = ExpressiveShapeFamily.Organic, // Blob, wave, etc.12 )13 14 MaterialTheme(shapes = shapes, content = content)15}Organic shapes (asymmetric, blob-like) character katıyor.
Typography Scales Genişleme
kotlin
1Typography(2 displayLarge = TextStyle(fontSize = 57.sp, lineHeight = 64.sp),3 displayMedium = TextStyle(fontSize = 45.sp, lineHeight = 52.sp),4 displaySmall = TextStyle(fontSize = 36.sp, lineHeight = 44.sp),5 headlineLarge = TextStyle(fontSize = 32.sp, lineHeight = 40.sp),6 // ... 15+ existing7 // Expressive additions:8 labelLargeProminent = TextStyle(fontSize = 14.sp, fontWeight = FontWeight.ExtraBold),9 bodyLargeEmphasized = TextStyle(fontSize = 16.sp, fontWeight = FontWeight.SemiBold)10)Compose Material 3 1.4
Library version ile Expressive gelir:
gradle
1dependencies {2 implementation("androidx.compose.material3:material3:1.4.0")3 implementation("androidx.compose.material3:material3-expressive:1.4.0-alpha")4}Yeni Component'ler
- SearchBar: (predictive)
- Carousel: (multi-browse, hero, contained)
- RichTooltip: (expanded info)
- NavigationSuite: (adaptive nav bar/rail/drawer)
Migration Stratejisi
Material 2 → Material 3 Expressive:
- Material 2 → Material 3 (önce bu adım, değilse)
- ✅ Color scheme migration: 6 seed → ColorScheme object
- ✅ Typography migration: 13 scale → 15 scale
- ✅ Shape migration: 3 → 5+ shapes
- ✅ Component replacement: Card, Button, TextField vb.
Sonra Expressive:
- ✅ Emphasis annotations ekle
- ✅ Motion schemes kullan
- ✅ Extended colors (Surface container variants)
- ✅ Organic shapes (selective, not overuse)
ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
kotlin
1@Composable2fun ExpressiveAppTheme(3 darkTheme: Boolean = isSystemInDarkTheme(),4 dynamicColor: Boolean = true,5 content: @Composable () -> Unit6) {7 val colorScheme = when {8 dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {9 val context = LocalContext.current10 if (darkTheme) dynamicDarkColorScheme(context)11 else dynamicLightColorScheme(context)12 }13 darkTheme -> darkColorScheme()14 else -> lightColorScheme()15 }16 17 val expressive = MaterialThemeExpressive(18 colorScheme = colorScheme,19 motionScheme = MotionScheme.expressive(),20 typography = Typography, // With expressive variants21 shapes = Shapes(expressiveFamily = ExpressiveShapeFamily.Standard)22 )23 24 MaterialTheme(expressive = expressive) {25 content()26 }27}Okuyucu Ödülü
**External Resources:** - [Material 3 Expressive guidelines](https://m3.material.io/blog/expressive) - [Compose Material 3 1.4 changelog](https://developer.android.com/jetpack/androidx/releases/compose-material3) - [Design tokens reference](https://m3.material.io/foundations/design-tokens) - [Motion schemes guide](https://m3.material.io/styles/motion) - [Color roles](https://m3.material.io/styles/color/roles)
Sonuç
Material 3 Expressive "more personality" — emphasis levels, motion schemes, genişletilmiş color/shape/typography. Opsiyonel ama Google'ın Android 16+ için tavsiye ettiği direction. Selective kullanım (hero moments) best. Compose Material 3 1.4 ile production'da. 2027'de Material 4 speculation: spatial UI (visionOS benzeri) + AI-generated design.
*İlgili yazılar: Jetpack Compose 1.7, Kotlin 2.1, Flutter Riverpod.*

