Palette¶
Palette is a Compose Multiplatform component library targeting Android, Desktop (JVM), iOS and Web (WASM) from a single codebase.
Features¶
- :material-celluloid: 88+ components — General, Form, Data Display, Feedback, Navigation, Layout
- :material-palette: Themeable — a full token system (
PaletteThemecolors / spacing / shapes / typography) with root-level component theme overrides and dark mode - :material-chart-bar: Feature modules — Charts (pie/bar/line), code syntax highlighting (16 languages), Markdown rendering/editing, Mermaid diagrams (19 types)
- :material-language-kotlin: Compose-native — no WebView, no third-party UI deps; everything renders with Compose Canvas
- :material-web: Web/WASM — run the same components in the browser
Installation¶
Palette is published to Maven Central. Requires Kotlin 2.x and Compose Multiplatform 1.7+.
Quick start¶
import xyz.junerver.compose.palette.core.theme.PaletteMaterialTheme
import xyz.junerver.compose.palette.components.button.PButton
PaletteMaterialTheme {
PButton(text = "Hello Palette", onClick = { /* ... */ })
}
Explore¶
- Getting Started — setup, first component, theming basics
- Components — browse the component catalog by category
- Playground — interactive live previews (WASM)
- Theming — customize the entire look from one place
Platform support¶
| Platform | Status |
|---|---|
| Android (minSdk 24) | :material-check: Stable |
| Desktop (JVM) | :material-check: Stable |
| iOS (x64 / arm64 / simulator) | :material-check: Stable |
| Web (WASM) | :material-flask: Experimental |