This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
CZAN is a Kotlin Multiplatform design system for Compose Multiplatform, following Atomic Design methodology. It provides reusable UI components organized as atoms, molecules, and organisms.
./gradlew build- Build the entire project./gradlew test- Run tests./gradlew publishToMavenLocal- Publish to local Maven (also copies demo samples to docs)./gradlew dependencyUpdates- Check for dependency updates./gradlew copyDemoSamples- Copy JS demo build to docs directory
./gradlew jsBrowserDistribution- Build JS distribution for web demos./gradlew wasmJsBrowserDistribution- Build WASM distribution./gradlew assembleRelease- Build Android release variant
mkdocs serve- Start local documentation server (requires Python venv setup)mkdocs build- Build documentation site
- Main module:
czan/- Contains the design system library - Sample app:
sample/- Multiplatform demo application showcasing components - Documentation:
docs/- MkDocs-based documentation site
Components follow Atomic Design principles:
-
Atoms (
czan/src/commonMain/kotlin/com/tweener/czan/designsystem/atom/):- Basic building blocks: Button, Text, Icon, Checkbox, etc.
- Each atom has its own directory with style enums and size configurations
-
Molecules (
czan/src/commonMain/kotlin/com/tweener/czan/designsystem/molecule/):- Combined atoms: Carousel, NumericKeyboard, ContextMenu, etc.
-
Organisms (
czan/src/commonMain/kotlin/com/tweener/czan/designsystem/organism/):- Complex components: Cards, etc.
commonMain/- Shared Compose UI codeandroidMain/- Android-specific implementations and previewsiosMain/- iOS-specific code (limited)jsMain/wasmJsMain/- Web platform implementationsnonIosMain/- Shared code for non-iOS platforms
buildSrc/src/main/kotlin/ProjectConfiguration.kt- Project configuration and versioninggradle/libs.versions.toml- Dependency version catalogczan/src/commonMain/kotlin/com/tweener/czan/theme/CzanTheme.kt- Main theme component
Each component includes comprehensive Compose previews in:
czan/src/androidMain/kotlin/com/tweener/czan/preview/- Preview implementationsczan/src/commonMain/kotlin/demo/- Demo implementations for web builds
- Create component in appropriate atomic level directory
- Add companion style/size enums if needed
- Create preview in
androidMain/preview/directory - Add demo implementation in
demo/directory - Update documentation in
docs/if needed
The project uses Vanniktech Maven Publish plugin with automatic releases to Maven Central. Version is controlled in ProjectConfiguration.kt:12.
./gradlew iosSimulatorArm64Test- Run iOS simulator tests./gradlew testAndroidHostTest- Run Android unit tests
- Android (minSdk 24, compileSdk 35)
- iOS (arm64, x64, simulator)
- JVM Desktop
- JavaScript (browser)
- WASM (browser)
Pull requests should target the develop branch. Include visual assets (images, videos, GIFs) to showcase changes. Update documentation for API changes.