https://github.com/composablehorizons/material-3-compose-unstyled
An implementation of Google's Material 3 Compose using Compose Unstyled
https://github.com/composablehorizons/material-3-compose-unstyled
compose-multiplatform jetpack-compose kotlin material-design ui
Last synced: 20 days ago
JSON representation
An implementation of Google's Material 3 Compose using Compose Unstyled
- Host: GitHub
- URL: https://github.com/composablehorizons/material-3-compose-unstyled
- Owner: composablehorizons
- License: mit
- Created: 2026-05-23T00:38:24.000Z (27 days ago)
- Default Branch: main
- Last Pushed: 2026-05-23T06:14:29.000Z (26 days ago)
- Last Synced: 2026-05-28T15:21:51.995Z (21 days ago)
- Topics: compose-multiplatform, jetpack-compose, kotlin, material-design, ui
- Language: Kotlin
- Homepage: https://composablehorizons.github.io/material-3-compose-unstyled/
- Size: 896 KB
- Stars: 28
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Material 3 Compose Unstyled

An example of how to create your own components with [Compose Unstyled](https://github.com/composablehorizons/compose-unstyled) in an existing Material 3 Compose project. The components still use `MaterialTheme` for theming, so they fit into a normal Material 3 Compose app while moving behavior and accessibility to Compose Unstyled primitives.
The difference from Material 3 Compose is that these implementations follow the Material 3 specs without Android's platform constraints. All components also follow the [W3C ARIA specs](http://w3.org/WAI/ARIA/apg/patterns) for accessibility.
## Components
- Alert dialog
- Buttons
- Checkbox
- Dividers
- Dropdown menu
- Floating action buttons
- Icon buttons
- Linear progress indicator
- Modal bottom sheet
- Outlined text field
- Primary tab row
- Radio button
- Secondary tab row
- Slider
- Switch
- Text field
- Tooltip
- Tri-state checkbox
## Run
Run the desktop demo:
```bash
./scripts/runJvm
```
Run the Android demo on a connected device or emulator:
```bash
./scripts/runAndroid
```