Releases: ronjunevaldoz/shadcn-compose
Releases · ronjunevaldoz/shadcn-compose
Release list
v0.2.0
Features
- Catalog: finish the heroicons migration (top bar, Alert, MessageScroller demos) — no more text-glyph icon placeholders
- Catalog: add an inline sidebar search bar for the component list
- Catalog: add a top-level Components/Create nav, with a redesigned Create page — theme picker (Style/Base Color/Accent) with per-option color swatches, live preview, and a copy-to-clipboard setup snippet
- Theme: add
ShadcnRing.enabledtoggle, now off by default (text inputs are unaffected — they always show their focus ring) ShadcnMessageScroller: add aniconoverride slot for the jump-to-bottom buttonShadcnButton: add a pressed-state push effect
Fixes
ShadcnText'smuted/explicitcolorno longer gets silently overridden when nested inside a container that sets an ambientcontentColor(ShadcnCard,ShadcnAlert,ShadcnTextFieldplaceholders, ...)ShadcnCarousel: fix the Previous/Next buttons overlapping/clipping against the card edge- Catalog: fix Create page dark-mode/theme-preset scoping — dark mode now applies everywhere (top bar included), while Style/Base Color/Accent pickers scope to the sidebar + content pane only
- Focus ring: fix a layout reflow bug by reverting to a dropShadow-based ring paired with shape
v0.1.0
shadcn-compose v0.1.0 — first release
A shadcn/ui-inspired component library for Kotlin Multiplatform /
Compose Multiplatform — Android, iOS, Desktop (JVM), and Web (JS + WasmJS) from one
commonMain source set. No Material dependency: every component is drawn from this
library's own design tokens and the experimental Compose Styles API, the same way real
shadcn/ui owns its Tailwind-driven CSS instead of wrapping a design system it doesn't
control.
What's in this release
- Full registry parity with real shadcn/ui's
docs/components/base/*— all 64 real
components accounted for, with one deliberate scope exception (native-select, which
would require real native OS widgets per platform, out of this library's pure-Compose
scope).docs/data-table/direction/toastare correctly treated as non-gaps per
shadcn's own docs (guide-only, Compose-native equivalent, and deprecated→sonner,
respectively). - shadcn's "AI Elements" family:
Message/MessageGroup,Bubble/BubbleGroup,
Attachment/AttachmentGroup,Marker, andMessageScroller— a chat-transcript
scroller with sticky-release auto-scroll semantics matching real shadcn's own
documented behavior, plus a real interactive streaming-reply demo in the catalog app. - shadcn's
docs/utils/*utilities:Modifier.shadcnShimmer()and
Modifier.shadcnScrollFade(), both implemented as real Compose draw-phase effects
(not stubs). - Token-based theming: 8 named style presets (Vega/Nova/Maia/Lyra/Mira/Luma/Sera/Rhea),
multiple base color families, accent overrides, and full light/dark mode support. - Slot-based composition APIs where real shadcn needs them (
DropdownMenu/ContextMenu/
Menubarfreely mix labeled sections, separators, and destructive items;Command
supports grouped/headed, live-filterable item lists).
Quality bar
- Compiles clean on all 6 KMP targets (JVM, Android, iOS arm64 + simulator arm64, JS,
WasmJS) for both the library and the catalog app. - Full test suite (unit tests + Roborazzi screenshot goldens) passes on every testable
target. ktlintCheckclean project-wide; a custom static check
(scripts/check_style_block_theme_reads.sh) guards against a real dark-mode-toggle
bug class found and fixed this cycle.ktlintCheck/detekt/the custom check all run in CI on every push.
Known limitations
- Not yet published to Maven Central.
library/build.gradle.ktsis fully wired for
it (vanniktech plugin, POM metadata), but publishing requires a real Sonatype account
and GPG signing key that don't exist yet —signAllPublications()is deliberately
left commented out until then../gradlew :library:publishToMavenLocalworks today if
you want to consume it locally in the meantime. - No
apiCheck/binary-compatibility-validator wired yet — the public API surface isn't
tracked for breaking changes between versions yet (reasonable for a pre-1.0 first
release, worth adding before the API is considered stable). - Detekt is currently only wired for the two thin platform-entry-point modules
(:app:desktopApp,:app:androidApp), not:libraryor:app:sharedwhere almost
all the actual logic lives.
See the README for the full component catalog, keyword index, and
Installation instructions.