Sushi Design System for Compose Multiplatform - A comprehensive design system built for Android, iOS, Desktop and Web platforms.
sushi/sushi-core
- Core classes used by the Sushisushi/sushi-compose
- Compose implementation of the Sushi design systemapp/
- Sample Android/iOS application demonstrating the componentswebsite/
- WASM/JS web application for the documentation
- Java 17 or higher
- Android Studio (for Android development)
- Xcode 15+ (for iOS development)
- Node.js (for web development)
# Assemble
./gradlew :sushi-compose:assemble
# Publish to local Maven repository
./gradlew :sushi-core:publishToMavenLocal :sushi-compose:publishToMavenLocal
# Install and run on connected device/emulator
./gradlew :app:installDebug
# Build APK
./gradlew :app:assembleDebug
Or open the project in Android Studio and run the app
configuration.
- macOS with Xcode 15+
- iOS Simulator or physical iOS device
-
Generate iOS framework:
./gradlew :app:embedAndSignAppleFrameworkForXcode
-
Run from Android Studio:
- Setup iPhone Simulator and open project in Android Studio.
- Select sample app from run configuration
- Select iPhone from Available Devices
- Run app
-
Run from Xcode:
# Open Xcode project
open iosApp/iosApp.xcodeproj
- Select your target device/simulator
- Press
Cmd + R
or click the Run button
# Build iOS app
./gradlew :app:iosX64MainKlibrary
# or for ARM64
./gradlew :app:iosArm64MainKlibrary
# Start WASM development server
./gradlew :website:wasmJsBrowserDevelopmentRun
# Alternative: JS version
./gradlew :website:jsBrowserDevelopmentRun
The website will be available at http://localhost:8080
# Build WASM production bundle
./gradlew :website:wasmJsBrowserDistribution
# Build JS production bundle
./gradlew :website:jsBrowserDistribution
Built files will be available in:
- WASM:
website/build/dist/wasmJs/productionExecutable/
- JS:
website/build/dist/js/productionExecutable/
# Run website's desktop version (java)
./gradlew :website:run
./gradlew :website:runHot # Hot Reload
# Run website's desktop version (Native App)
./gradlew :website:runDistributable
# Create website's desktop version (Native App)
./gradlew :website:createDistributable
# Run all tests
./gradlew test
# Run specific module tests
./gradlew :sushi-core:test
./gradlew :sushi-compose:test
./gradlew :app:testDebugUnitTest
- Make changes to sushi libraries
- Publish locally:
./localPublish.sh
- Test in sample apps by running Android/iOS apps or website
- Fork the repository
- Create a feature branch
- Make your changes
- Test on all platforms
- Submit a pull request
© 2025 Eternal Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.