RimaKit is a sleek and minimal Kotlin Multiplatform UI library built with JetBrains Compose Multiplatform.
It includes handcrafted UI components designed for delightful cross-platform experiences — from swipeable Tinder-style cards to animated number flows and custom tab bars.
- Swipeable cards with smooth animations
- Animated number transitions
- Custom tab systems with icons
- Toggle switches with personality
- Clean design, fully composable and customizable
Make sure your project is set up for Compose Multiplatform (Android, iOS, Desktop).
Gradle/TOML integration coming soon.
In the meantime, copy components directly into your sharedcommonMainmodule.
A customizable animated toggle switch for Compose.
RimaToggle(
checked = isEnabled,
onCheckedChange = { isEnabled = it }
)Supports:
- Sizes:
width,height,thumbSize - Colors:
activeColor,inactiveColor,thumbColor - Disabled state
A swipeable stack of cards with autoplay and swipe detection.
SwipeCard(
images = imageList,
onSwipe = { direction, swipedUrl -> /* handle swipe */ }
)Supports:
cardSize,loop,autoplayDelayMillis
An animated Tinder-style card swiper with autoplay support.
TinderSwipeCard(
images = imageList,
onSwipe = { direction, swipedUrl -> /* handle swipe */ }
)Same props as SwipeCard.
A simple card UI to display an image, title and description.
MinimalCard(
imageUrl = "https://your-image",
title = "Card Title",
description = "Card description"
)Use MinimalCardData.kt to define your data class.
An animated horizontal tab bar using TabItem and TabIcon.
ExpandedTabs(
tabs = listOf(
TabItem(icon = { TabIcon(icon = Icons.Default.Home) }, label = "Home"),
TabItem(icon = { TabIcon(icon = Icons.Default.Settings) }, label = "Settings")
),
selectedTabIndex = currentIndex,
onChange = { currentIndex = it }
)A rounded button with optional border and loading indicator.
RimaButton(
text = "Start Now",
onClick = { /* handle action */ },
isLoading = false
)Displays an animated number with positive/negative coloring.
AnimatedNumberRandom(
value = 128.4,
diff = -7.6
)Props:
currencySymbolpositiveColor,negativeColor
- Add dark mode support
- Add more layout and animation utilities
RimaKit was born from a desire to make Compose Multiplatform apps not just functional, but beautiful.
It’s inspired by premium design systems, iOS fluidity, and developer ergonomics.
Pull requests are welcome! If you have a component or idea to add, feel free to contribute.
MIT © Riad Mahi