diff --git a/README.md b/README.md
index 551a67aa9..321e17b1a 100644
--- a/README.md
+++ b/README.md
@@ -22,57 +22,118 @@ Jewel provides an implementation of the IntelliJ Platform themes that can be use
application. Additionally, it has a Swing LaF Bridge that only works in the IntelliJ Platform (i.e., used to create IDE
plugins), but automatically mirrors the current Swing LaF into Compose for a native-looking, consistent UI.
+> [!TIP]
+>
+>
+>
+>
+> If you want to learn more about Jewel and Compose for Desktop and why they're a great, modern solution for your
+> desktop
+> UI needs, check out [this talk](https://www.droidcon.com/2023/11/15/meet-jewelcreate-ide-plugins-in-compose/) by Jewel
+> contributors Sebastiano and Chris.
+>
+> It covers why Compose is a viable choice, and an overview of the Jewel project, plus
+> some real-life use cases.
+
+
+
## Getting started
-To use Jewel in your app, you only need to add the relevant dependency. There are two scenarios: standalone Compose for
-Desktop app, and IntelliJ Platform plugin.
+The first thing to add is the necessary Gradle plugins, including the Compose Multiplatform plugin. You need to add a
+custom repository for it in `settings.gradle.kts`:
+
+```kotlin
+pluginManagement {
+ repositories {
+ google()
+ gradlePluginPortal()
+ maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
+ mavenCentral()
+ }
+}
+```
-For now, Jewel artifacts aren't available on Maven Central. You need to add a custom Maven repository to your build:
+Then, in your app's `build.gradle.kts`:
```kotlin
+plugins {
+ // Should align with the Kotlin and Compose dependencies in Jewel
+ kotlin("jvm") version "1.9.21"
+ id("org.jetbrains.compose") version "1.6.0-dev1440"
+}
+
repositories {
maven("https://packages.jetbrains.team/maven/p/kpm/public/")
// Any other repositories you need (e.g., mavenCentral())
}
```
+> [!WARNING]
+> If you use convention plugins to configure your project you might run into issues such as
+> [this](https://github.com/JetBrains/compose-multiplatform/issues/3748). To solve it, make sure the
+> plugins are only initialized once — for example, by declaring them in the root `build.gradle.kts`
+> with `apply false`, and then applying them in all the submodules that need them.
+
+To use Jewel in your app, you only need to add the relevant dependency. There are two scenarios: standalone Compose for
+Desktop app, and IntelliJ Platform plugin.
+
If you're writing a **standalone app**, then you should depend on the `int-ui-standalone` artifact:
```kotlin
dependencies {
+ // See https://github.com/JetBrains/Jewel/releases for the release notes
implementation("org.jetbrains.jewel:jewel-int-ui-standalone:[jewel version]")
// Optional, for custom decorated windows:
implementation("org.jetbrains.jewel:jewel-int-ui-decorated-window:[jewel version]")
+
+ // Do not bring in Material (we use Jewel)
+ implementation(compose.desktop.currentOs) {
+ exclude(group = "org.jetbrains.compose.material")
+ }
}
```
-For an **IntelliJ Platform plugin**, then you should depend on the appropriate `ide-laf-bridge` artifact:
+For an **IntelliJ Platform plugin**, then you should depend on the appropriate `ide-laf-bridge-*` artifact:
```kotlin
dependencies {
+ // See https://github.com/JetBrains/Jewel/releases for the release notes
// The platform version is a supported major IJP version (e.g., 232 or 233 for 2023.2 and 2023.3 respectively)
implementation("org.jetbrains.jewel:jewel-ide-laf-bridge-[platform version]:[jewel version]")
+
+ // Do not bring in Material (we use Jewel) and Coroutines (the IDE has its own)
+ api(compose.desktop.currentOs) {
+ exclude(group = "org.jetbrains.compose.material")
+ exclude(group = "org.jetbrains.kotlinx")
+ }
}
```
> [!TIP]
->
->
->
->
-> If you want to learn more about Jewel and Compose for Desktop and why they're a great, modern solution for your
-> desktop
-> UI needs, check out [this talk](https://www.droidcon.com/2023/11/15/meet-jewelcreate-ide-plugins-in-compose/) by Jewel
-> contributors Sebastiano and Chris.
->
-> It covers why Compose is a viable choice, and an overview of the Jewel project, plus
-> some real-life use cases.
+> It's easier to use version catalogs — you can use the Jewel [version catalog](gradle/libs.versions.toml) as reference.
+## Dependencies matrix
+
+For each version of Jewel, these are the minimum supported Kotlin and Compose Multiplatform versions:
+
+ Jewel version | Kotlin version | Compose version
+ --- | --- | ---
+ 0.15.0 –> * | 1.8.21 | 1.6.0-dev1440
+ 0.13.1 -> 0.14.1 | 1.8.21 | 1.6.0-dev1369
+
+For older versions please refer to the Jewel tags and release notes.
+
+The Compose Compiler version used is the latest compatible with the given Kotlin version. See
+[here](https://developer.android.com/jetpack/androidx/releases/compose-compiler) for the Compose
+Compiler release notes, which indicate the compatibility.
+
+The minimum supported Kotlin version is dictated by the minimum supported IntelliJ IDEA platform.
+
## Project structure
The project is split in modules: