
Work-in-progress design system offering reusable UI components, theming, tokenized styling and accessibility primitives for declarative UI; modular foundation artifact enables consistent visual language across apps.
An opinionated design system for Compose Multiplatform.
Published on Maven Central:
implementation("glass.yasan.kepko:component:<version>")
implementation("glass.yasan.kepko:foundation:<version>")Wrap your app content with KepkoTheme:
| Code | Preview |
|---|---|
KepkoTheme {
Text("Hello, Kepko!")
TextPill(
text = "Yasan Glass",
containerColor = KepkoTheme.colors.information,
)
} |
![]() |
| Name | Color Palette |
|---|---|
| Light | ![]() |
| Dark | ![]() |
| Black (AMOLED) | ![]() |
| Solarized Light | ![]() |
| Solarized Dark | ![]() |
| Catppuccin Latte | ![]() |
| Catppuccin Frappé | ![]() |
| Catppuccin Macchiato | ![]() |
| Catppuccin Mocha | ![]() |
| Gruvbox Light | ![]() |
| Gruvbox Dark | ![]() |
| Light | Dark |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
See the full list of components here.
An optional module that automatically persists and restores theme preferences across the app launches.
implementation("glass.yasan.kepko:persistence:<version>")Use PersistentKepkoTheme instead of KepkoTheme to automatically persist and restore theme preferences:
@OptIn(ExperimentalKepkoApi::class)
PersistentKepkoTheme {
// your app content
}To let users change the persisted theme setting, use PersistentPreferenceThemeScreen:
PersistentPreferenceThemeScreen(
onBackClick = { /* navigate back */ },
)PersistentPreferenceThemeScreen lets users pick between system-based or manual theme selection. In system mode, separate light and dark style pickers are shown:
PersistentKepkoTheme provides the following CompositionLocal values inside its content:
LocalKepkoThemeStyle: the currently active ThemeStyle
LocalKepkoPersistenceManager: the PersistenceManager instance for direct access to persistence stateExplore Kepko in a real project with the included sample project.
An opinionated design system for Compose Multiplatform.
Published on Maven Central:
implementation("glass.yasan.kepko:component:<version>")
implementation("glass.yasan.kepko:foundation:<version>")Wrap your app content with KepkoTheme:
| Code | Preview |
|---|---|
KepkoTheme {
Text("Hello, Kepko!")
TextPill(
text = "Yasan Glass",
containerColor = KepkoTheme.colors.information,
)
} |
![]() |
| Name | Color Palette |
|---|---|
| Light | ![]() |
| Dark | ![]() |
| Black (AMOLED) | ![]() |
| Solarized Light | ![]() |
| Solarized Dark | ![]() |
| Catppuccin Latte | ![]() |
| Catppuccin Frappé | ![]() |
| Catppuccin Macchiato | ![]() |
| Catppuccin Mocha | ![]() |
| Gruvbox Light | ![]() |
| Gruvbox Dark | ![]() |
| Light | Dark |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
See the full list of components here.
An optional module that automatically persists and restores theme preferences across the app launches.
implementation("glass.yasan.kepko:persistence:<version>")Use PersistentKepkoTheme instead of KepkoTheme to automatically persist and restore theme preferences:
@OptIn(ExperimentalKepkoApi::class)
PersistentKepkoTheme {
// your app content
}To let users change the persisted theme setting, use PersistentPreferenceThemeScreen:
PersistentPreferenceThemeScreen(
onBackClick = { /* navigate back */ },
)PersistentPreferenceThemeScreen lets users pick between system-based or manual theme selection. In system mode, separate light and dark style pickers are shown:
PersistentKepkoTheme provides the following CompositionLocal values inside its content:
LocalKepkoThemeStyle: the currently active ThemeStyle
LocalKepkoPersistenceManager: the PersistenceManager instance for direct access to persistence stateExplore Kepko in a real project with the included sample project.