A Jetpack Compose library for building grouped settings screens with a modern Material 3 Expressive aesthetic. It features a declarative DSL, adaptive corner rounding, and native support for Shared Element Transitions.
The library is hosted on Maven Central.
Ensure mavenCentral() is in your settings.gradle.kts:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}Using Version Catalogs (Recommended):
[versions]
composeSettings = "1.2.1"
[libraries]
compose-settings = { module = "io.github.julespvx:compose-settings-ui", version.ref = "composeSettings" }Standard Notation:
dependencies {
implementation("io.github.julespvx:compose-settings-ui:1.2.1")
}LazyColumn(modifier = Modifier.fillMaxSize()) {
settingsSection(title = "App Preferences") {
switch(
title = "Dark Mode",
checked = isDarkMode,
onCheckedChange = { isDarkMode = it },
icon = { Icon(Icons.Default.Brightness4, null) }
)
selector(
title = "Language",
options = listOf("English", "French", "Spanish"),
selectedOption = language,
onOptionSelected = { language = it }
)
link(title = "Privacy Policy", onClick = { /* ... */ })
}
}For a comprehensive guide, component catalog, and advanced usage examples, please visit the Project Wiki.
- Component Catalog: Code examples for all 20+ components.
- Theming: Material 3 token mapping and shape logic.
- Advanced Usage: Shared transitions and custom items.
|
|
Licensed under the Apache License, Version 2.0.



