Skip to content

Repository files navigation

Compose settings visualization

Compose Unified Material Expressive Settings

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.

Installation

The library is hosted on Maven Central.

1. Add Repository

Ensure mavenCentral() is in your settings.gradle.kts:

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
    }
}

2. Add Dependency

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")
}

Quick Start

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 = { /* ... */ })
    }
}

Documentation

For a comprehensive guide, component catalog, and advanced usage examples, please visit the Project Wiki.

Visuals

Adaptive Corner Rounding

Adaptive Corner Rounding

Shared Element Transitions

Shared Element Transitions

Full demo

Full demo

License

Licensed under the Apache License, Version 2.0.

About

Build grouped, Material 3-themed settings screens in Jetpack Compose with automatic corner radius calculation.

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages