OSKit-Compose-KMP 4.2.0-rc1 indexed Facilitates development with an opinionated architecture for Compose, implementing VISCE architecture. Offers animations, layouts, popups, markdown rendering, and system UI enhancements for seamless cross-platform development.
Bring this to kpkg
This library is indexed from the KMP ecosystem and already resolves through kpkg.dev's Maven Central proxy. Maintainers can verify the namespace and publish future versions to kpkg for free hosting, real download stats, and signed-provenance pages.
Publishing coming soonMetadata
Owner outsidesource
Stars 9
Used by —
Health —
License MIT License
Latest 4.2.0-rc1
Repository github.com/outsidesource/OSKit-Compose-KMP
Updated 2026-06-20 Readme Changelog OSKit Compose
An opinionated architecture/library for Jetbrains Compose Multiplatform development with an implementation of the VISCE architecture
Abstract
OSKit Compose is primarily a tool for us here at Outside Source. That being said, feel free to use this library in your own code.
We strive to adhere to semantic versioning.
Contributions
Contributions are appreciated and welcome, but we are a small team and make no guarantees that your changes will be
implemented.
OSKitKMP Version Compatibility
Documentation
https://outsidesource.github.io/OSKit-Compose-KMP/
Feature Highlights
Supported Platforms
Currently supported platforms include:
Android
JVM (MacOS/Windows/Linux)
iOS
Installation
implementation ("com.outsidesource:oskit-compose:4.0 .0 ")
Example App
https://github.com/outsidesource/OSKit-Example-App-KMP
Changelog
4.1.1 - 2026-02-28
Fixed
Fixed Html rendering on high density devices
4.1.0 - 2026-02-27
Added
Fixes
Markdown: fixed initial loading of local images in WASM
Breaking Changes
KmpBackHandler now accepts parameters for cancellation and progress of back presses
Removed kmpWindowInfo as LocalWindowInfo.current has implemented all desired functionality
Renamed InnerShadow and OuterShadow to KmpShadow due to potential conflict with Compose 1.9.0 shadows
Removed rememberInteractor
Removed rememberInject with key parameters. Keys are handled by koin
Removed koinInjector.inject which prevented isolated koin contexts from working
4.0.1 - 2025-05-20
Kotlin 2.1.10 support
Compose multiplatform 1.8.0
4.0.0 - 2025-02-07
Added
Breaking Changes
Adopted Upper Camel Case for all acronym prefixes on class and function names (i.e. KMP changed to )
3.7.2 - 2024-08-30
Fixed
Non-fullscreen popups (i.e. Popover) on Android had a regression where they were not positioned correctly
3.7.1 - 2024-07-12
Fixed
Back handling and key events in Android Popups
3.7.0 - 2024-05-30
Added
onKeyEvent to BottomSheet
KmpBackHandler/BackHandler to KmpPopup
3.6.0 - 2024-05-21
Added
Focusable parameter to Popover
KmpDisableScreenIdleTimeoutEffect
Breaking Changes
Fixed typo in KmpTimePicker. Previously TimeMerdiem was TimeMeridian
3.5.0 - 2024-03-23
Added
Support for Jetbrains Compose 1.6
Support for Kotlin 1.9.23
Removed
KmpResource - No longer works with compose 1.6
KmpFont - No longer works with compose 1.6
KmpImage - No longer works with compose 1.6
3.4.0 - 2024-03-06
Added
KmpTimePicker
KmpDatePicker
KmpWheelPicker
3.3.0 - 2024-02-16
Added
rememberKmpWindowInfo()
createInteractor()
Fixed
Breaking Changes
Markdown onLinkClick now accepts a second parameter
Common
Screen Wake Lock
Animation
TransitionAnimatedContent (AnimatedContent with flexible transitions)
Common CubicBezier transitions
Canvas
Blur
URL Image painter
Bitmap Painter
Painter to Bitmap converter
Layouts
Arrangement.spacedByWithPadding()
FixedTableRow
FlexRow
PanAndScale
WrappableRow
Popups (able to be placed anywhere in composable tree)
BottomSheet
Drawer
Modal
Popover
Popup
OSKit Integration
Router
Compose implementation of OSKit Router
Backpress handling
Route transitions
Interactor
Compose implementation of OSKit Interactor
Markdown
Markdown renderer
Customizable styles with sane defaults
Load local or remote images and specify alignment and size
Asynchronous image loading
Modifier
borderTop, borderBottom, borderStart, borderEnd
innerShadow, outerShadow
disablePointerInput, preventClickPropagationToParent
Desktop external drag and drop support
Resources
Fonts
Images
Strings with localization
System UI
Application Lifecycle Observer
Customizable Window Insets
Customizable system bar colors
Window info
Misc
rememberLastNonNullValue()
Desktop
Persisted window state
SizedWindow for windows with enforced minimum size
Kotlin 2.3.10 support
Predictive back support
KmpScrollbarAdapter for LazyGridState
ShapePainter
HsvColor
KmpColorPicker
KmpSlider
VerticalGrid
Modifier.ifThen
WindowInfo.widthSizeClass
WindowInfo.containerSizeDp
Html composable for WASM
DrawScope.drawKmpInnerShadow
DrawScope.drawKmpOuterShadow
KmpShadow now supports brushes
Updated rememberInject and rememberInjectForRoute to use koin-compose so that both calls work with IsolatedContexts now
Kotlin 2.1.0 support
Compose multiplatform 1.7.3 support
WindowInsets.ime
Fixes for KmpWheelPicker to properly handle mouse wheel scrolling
Added onDestroy parameter for rememberInjectForRoute
Added FadeRouteTransition as a ComposeRouteTransition for Router
Added onDestroy for rememberForRoute
Added KmpScreenWakeLockEffect Kmp
KMPDeepLinkEffect renamed to AndroidDeepLinkEffect and only available on Android
kmpUrlImagePainter is now a suspending function
Renamed rememberLastNonNullState to rememberLastNonNullValue
Modifier.kmpOnExternalDrag was renamed and reworked to Modifier.kmpOnExternalDragAndDrop
KmpAppLifecycleObserver
Context helper functions
rememberLastNonNullState()
Fallback locale for KmpString Markdown
Async image loading
Loading Markdown from other sources
PopupShapeCaretPositionRelated libraries Surfaced from shared tags and platforms — no rankings paid for.
ParticleEmitter ★ 91
PiotrPrus Physics-driven particle effects with two renderers: layout-based custom particle content and high-performance canvas; directional gravity, edge behaviors (bounce/stick/wrap), blend modes, multi-emitter orchestration. Shared: image, graphics, compose-ui Odyssey ★ 255
AlexGladkov Declarative navigation library supporting simple and nested navigation, parameters, bottom and tab navigation, side drawers, state saving, and transition animations, with back press handling. Shared: navigation, compose-multiplatform, bottomsheet compose-cupertino ★ 171
slanos Enhances the original with updated features like SwipeBox, improved Date Picker interactions, and faster automated releases. Integrates new multiplatform features efficiently. Shared: design-system, compose-ui, compose-multiplatform RikkaUi ★ 137
rainxchzed Beautiful production-ready UI components and theme system, over 40 customizable primitives, optional CLI copies components into source for full ownership and unlimited customization. Shared: design-system, compose-ui, compose-multiplatform MapComposeMP ★ 125
p-lr Facilitates efficient display of tiled maps with support for markers, paths, and gestures like flinging, dragging, scaling, and rotating. Features marker clustering and multi-layer capabilities, ensuring responsive and smooth map interactions. Shared: image, gestures, compose-ui LazyCardStack ★ 92
Hukumister Provides a Tinder-like card stack interface with a LazyColumn-like API, supporting swipe gestures, advanced animations, and programmatic card swiping. Includes callback for swipe detection and method to return previous cards. Shared: gestures, compose-ui, compose-multiplatform